Revert last patch.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
2
3         * doc/md.texi, optabs.h, genopinit.c, internal-fn.def
4         internal-fn.c, tree.h, tree.c, tree-vectorizer.h,
5         tree-vect-data-refs.c, tree-vect-stmts.c, tree-vect-slp.c: Revert
6         last patch.
7
8 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
9
10         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
11         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12         convert_optab_index values.
13         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
14         * genopinit.c (optabs): Initialize the new optabs.
15         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
16         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
17         (expand_STORE_LANES): New functions.
18         * tree.h (build_array_type_nelts): Declare.
19         * tree.c (build_array_type_nelts): New function.
20         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
21         (vect_model_load_cost): Likewise.
22         (vect_store_lanes_supported, vect_load_lanes_supported)
23         (vect_record_strided_load_vectors): Declare.
24         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
25         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
26         (vect_transform_strided_load): Split out statement recording into...
27         (vect_record_strided_load_vectors): ...this new function.
28         * tree-vect-stmts.c (create_vector_array, read_vector_array)
29         (write_vector_array, create_array_ref): New functions.
30         (vect_model_store_cost): Add store_lanes_p argument.
31         (vect_model_load_cost): Add load_lanes_p argument.
32         (vectorizable_store): Try to use store-lanes functions for
33         interleaved stores.
34         (vectorizable_load): Likewise load-lanes and loads.
35         * tree-vect-slp.c (vect_get_and_check_slp_defs)
36         (vect_build_slp_tree):
37
38 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
39
40         * tree-vect-stmts.c (vectorizable_store): Only chain one related
41         statement per copy.
42
43 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
44
45         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
46         (GIMPLE_H): Include $(INTERNAL_FN_H).
47         (OBJS-common): Add internal-fn.o.
48         (internal-fn.o): New rule.
49         * internal-fn.def: New file.
50         * internal-fn.h: Likewise.
51         * internal-fn.c: Likewise.
52         * gimple.h: Include internal-fn.h.
53         (GF_CALL_INTERNAL): New gf_mask.
54         (gimple_statement_call): Put fntype into a union with a new
55         internal_fn field.
56         (gimple_build_call_internal): Declare.
57         (gimple_build_call_internal_vec): Likewise.
58         (gimple_call_same_target_p): Likewise.
59         (gimple_call_internal_p): New function.
60         (gimple_call_internal_fn): Likewise.
61         (gimple_call_fntype): Return null for internal calls.
62         (gimple_call_set_fntype): Assert that the function is not internal.
63         (gimple_call_set_fn): Likewise.
64         (gimple_call_set_fndecl): Likewise.
65         (gimple_call_set_internal_fn): New function.
66         (gimple_call_addr_fndecl): Handle null functions.
67         (gimple_call_return_type): Likewise null types.
68         * gimple.c (gimple_build_call_internal_1): New function.
69         (gimple_build_call_internal): Likewise.
70         (gimple_build_call_internal_vec): Likewise.
71         (gimple_call_same_target_p): Likewise.
72         (gimple_call_flags): Handle calls to internal functions.
73         (gimple_call_fnspec): New function.
74         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
75         (gimple_has_side_effects): Handle null functions.
76         (gimple_rhs_has_side_effects): Likewise.
77         (gimple_call_copy_skip_args): Handle calls to internal functions.
78         * cfgexpand.c (expand_call_stmt): Likewise.
79         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
80         * gimple-fold.c (gimple_fold_call): Handle null functions.
81         (gimple_fold_stmt_to_constant_1): Don't fold
82         calls to internal functions.
83         * gimple-low.c (gimple_check_call_args): Handle calls to internal
84         functions.
85         * gimple-pretty-print.c (dump_gimple_call): Likewise.
86         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
87         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
88         (do_warn_unused_result): Likewise.
89         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
90         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
91         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
92         the target of a call.
93         (initialize_hash_element): Update accordingly.
94         (hashable_expr_equal_p): Use gimple_call_same_target_p.
95         (iterative_hash_hashable_expr): Handle calls to internal functions.
96         (print_expr_hash_elt): Likewise.
97         * tree-ssa-pre.c (can_value_number_call): Likewise.
98         (eliminate): Handle null functions.
99         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
100         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
101         (find_func_aliases): Likewise.
102         * value-prof.c (gimple_ic_transform): Likewise.
103         (gimple_indirect_call_to_profile): Likewise.
104         * lto-streamer-in.c (input_gimple_stmt): Likewise.
105         * lto-streamer-out.c (output_gimple_stmt): Likewise.
106
107 2011-04-19  Jan Hubicka  <jh@suse.cz>
108
109         * ipa-inline-transform.c (save_inline_function_body): Add comments.
110         * ipa-inline.c (inline_small_functions): Compute summaries first, populate
111         heap later.
112
113 2011-04-19  Jan Hubicka  <jh@suse.cz>
114
115         * cgraph.h (save_inline_function_body): Remove.
116         * ipa-inline-transform.c: New file, broke out of...
117         * ipa-inline.c: ... this one; Update toplevel comment.
118         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
119         make global.
120         (update_noncloned_frequencies): Move to ipa-inline-transform.c
121         (cgraph_mark_inline_edge): Rename to inline_call; move to
122         ipa-inline-transform.c.
123         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
124         move to ipa-inline-transform.c
125         (recursive_inlining, inline_small_functions, flatten_function,
126         ipa_inline, inline_always_inline_functions,
127         early_inline_small_functions): Update.
128         (inline_transform): Move to ipa-inline-transform.c.
129         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
130         Declare.
131         * Makefile.in (ipa-inline-transform.o): New file.
132         * cgraphunit.c (save_inline_function_body): Move to
133         ipa-inline-transform.c
134
135 2011-04-19  DJ Delorie  <dj@redhat.com>
136
137         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
138         registers if we already know there aren't any.
139         (m32c_emit_epilogue): Don't emit a barrier here.
140         (m32c_emit_eh_epilogue): Likewise.
141         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
142         operands at expand time.
143         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
144         int" wchar type.
145         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
146         duplicates.  Provide aliases instead.
147         * config/m32c/prologue.md (eh_return): Emit a barrier here.
148         (eh_epilogue): Add a "(return)" here as a hint to other parts of
149         the compiler.
150
151 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
152
153         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
154         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
155         (general_or_i64_p, sparc_register_move_cost): New function.
156
157 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
158
159         * doc/install.texi (Configuration, --enable-threads): Remove mach.
160         Add lynx, mipssde.
161         Sort table.
162
163 2011-04-19  Xinliang David Li  <davidxl@google.com>
164         
165         * ipa-cp.c (ipcp_update_profiling): asserting
166         scale_completement is not negative.
167
168 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
169
170         PR target/48678
171         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
172         is a SUBREG with non-MODE_INT mode inside of it.
173
174 2011-04-19  Martin Jambor  <mjambor@suse.cz>
175
176         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
177         also according to actual contants.
178         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
179         (gimple_fold_call): Use it.
180         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
181
182 2011-04-19  Martin Jambor  <mjambor@suse.cz>
183
184         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
185         non-pointer assignments.
186
187 2011-04-19  Martin Jambor  <mjambor@suse.cz>
188
189         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
190         account anc_offset and otr_type from the indirect edge info.
191         * ipa-prop.c (get_ancestor_addr_info): New function.
192         (compute_complex_ancestor_jump_func): Assignment analysis moved to
193         get_ancestor_addr_info, call it.
194         (ipa_note_param_call): Do not initialize information about polymorphic
195         calls, return the indirect call graph edge.  Remove the last
196         parameter, adjust all callers.
197         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
198         parameters.  Initialize polymorphic information in the indirect edge.
199
200 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
201
202         PR lto/48148
203         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
204         the types if they have different enumeration identifiers.
205
206 2011-04-19  Jan Hubicka  <jh@suse.cz>
207
208         * cgraph.h (cgraph_optimize_for_size_p): Declare.
209         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
210         * predict.c (cgraph_optimize_for_size_p): Break out from ...
211         (optimize_function_for_size_p) ... here.
212
213 2011-04-19  Richard Guenther  <rguenther@suse.de>
214
215         PR lto/48207
216         * tree.c (free_lang_data): Do not reset the decl-assembler-name
217         langhook.
218
219 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
220
221         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
222         if DECL_NO_INLINE_WARNING_P is set on the function.
223
224 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
225
226         PR fortran/47976
227         * reload1.c (inc_for_reload): Return void. All callers changed.
228         (emit_input_reload_insns): Don't try to delete previous output
229         reloads to a register, or record spill_reg_store for autoincs.
230
231 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
232
233         * gengtype.h: Updated copyright year.
234         (struct input_file_st): Add inpisplugin field.
235         (type_fileloc): New function.
236         * gengtype.c
237         (write_typed_struct_alloc_def): Add gcc_assert.
238         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
239         (write_typed_alloc_defns): Don't output for plugin files.
240         (input_file_by_name): Clear inpisplugin field.
241         (main): Set inpisplugin field for plugin files.
242
243 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
244
245         * gengtype-state.c (string_eq): New.
246         (read_state): Use string_eq instead of strcmp when creating the
247         state_ident_tab.
248
249 2011-04-19  Wei Guozhi  <carrot@google.com>
250
251         PR target/47855
252         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
253         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
254         linkage.
255         * config/arm/constraints.md (Uu): New constraint.
256         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
257
258 2011-04-19  Tristan Gingold  <gingold@adacore.com>
259
260         * config.gcc (-*-*-*vms): Added.
261         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
262         definitions moved.
263         * config/vms/vms-ld.c: New file.
264         * config/vms/vms-ar.c: New file.
265         * config/vms/t-vmsnative: New file.
266
267 2011-04-18  Xinliang David Li  <davidxl@google.com>
268
269         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
270
271 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
272
273         PR middle-end/48661
274         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
275         if TREE_TYPE (v) is non-NULL.
276
277         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
278         gimple_get_virt_mehtod_for_binfo.
279         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
280         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
281         callers.
282         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
283
284 2011-04-18  Michael Matz  <matz@suse.de>
285             Steve Ellcey  <sje@cup.hp.com>
286
287         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
288         use its mode as source mode if it isn't VOIDmode.
289
290 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
291
292         * doc/passes.texi: Fill crossref nodes.
293
294 2011-04-18  Jim Meyering  <meyering@redhat.com>
295
296         Fix doubled-word typos in comments and strings
297         * config/alpha/vms-unwind.h: s/for for/for/
298         * config/arm/unwind-arm.h: Likewise.
299         * config/microblaze/microblaze.c: Likewise.
300         * config/sh/constraints.md: s/in in/in/
301         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
302
303 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
304
305         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
306         (AVX_FLOAT_MODE_P): Ditto.
307         (AVX128_VEC_FLOAT_MODE_P): Ditto.
308         (AVX256_VEC_FLOAT_MODE_P): Ditto.
309         (AVX_VEC_FLOAT_MODE_P): Ditto.
310         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
311         (UNSPEC_MASKSTORE): Ditto.
312         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
313         Merge from <sse>_movmsk<ssemodesuffix> and
314         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
315         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
316         iterator.
317         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
318         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
319         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
320
321 2011-04-18  Jan Hubicka  <jh@suse.cz>
322
323         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
324
325         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
326         (want_inline_function_called_once_p): Break out the logic from
327         ipa_inline.
328         (edge_badness): Ensure that profile is not misupdated.
329         (lookup_recursive_calls): Prioritize by call frequencies.
330         (inline_small_functions): Move program size estimates here;
331         actually process whole queue even when unit growth has been
332         met. (to properly compute inline_failed reasons and for the
333         case unit size decrease.) Revisit comments on recursive inlining.
334         (ipa_inline): Remove unit summary code; first inline hot calls
335         of functions called once, cold calls next.
336         (order, nnodes): Remove unused variables.
337         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
338         (GTFILES): Remove ipa-inline.c
339         * sel-sched.c (fill_insns): Silence uninitialized var warning.
340
341 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
342
343         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
344
345 2011-04-18  Jie Zhang  <jie@codesourcery.com>
346             Richard Earnshaw  <rearnsha@arm.com>
347
348         * arm.c (neon_builtin_type_bits): Remove.
349         (typedef enum neon_builtin_mode): New.
350         (T_MAX): Don't define.
351         (typedef enum neon_builtin_datum): Remove bits, codes[],
352         num_vars and base_fcode.  Add mode, code and fcode.
353         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
354         VAR10): Change accordingly.
355         (neon_builtin_data[]): Change accordingly
356         (arm_init_neon_builtins): Change accordingly.
357         (neon_builtin_compare): Remove.
358         (locate_neon_builtin_icode): Remove.
359         (arm_expand_neon_builtin): Change accordingly.
360
361         * arm.h (enum arm_builtins): Move to ...
362         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
363
364         * arm.c (arm_builtin_decl): Declare.
365         (TARGET_BUILTIN_DECL): Define.
366         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
367         (arm_builtin_decls[]): New.
368         (arm_init_neon_builtins): Store builtin declarations in
369         arm_builtin_decls[].
370         (arm_init_tls_builtins): Likewise.
371         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
372         (arm_builtin_decl): New.
373
374 2011-04-18  Richard Guenther  <rguenther@suse.de>
375
376         * tree.c (upper_bound_in_type): Build properly canonicalized
377         INTEGER_CSTs.
378         (lower_bound_in_type): Likewise.
379
380 2011-04-18  Richard Guenther  <rguenther@suse.de>
381
382         * gimple.h (gimple_call_addr_fndecl): New function.
383         (gimple_call_fndecl): Use it.
384         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
385         for direct calls.
386         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
387         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
388
389 2011-04-18  Richard Guenther  <rguenther@suse.de>
390
391         PR middle-end/48650
392         * tree.c (build_string): STRING_CST is now derived from tree_typed.
393
394 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
395
396         PR lto/48492
397         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
398         DECL_IN_CONSTANT_POOL without RTL.
399
400 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
401             Ira Rosen  <ira.rosen@linaro.org>
402
403         PR target/48252
404         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
405         to match neon_vzip/vuzp/vtrn_internal.
406         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
407         outputs explicitly dependent on both inputs.
408         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
409
410 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
411
412         PR tree-optimization/48616
413         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
414         whether the shift is by scalar or vector based on whether all SLP
415         scalar stmts have the same rhs.
416
417 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
418
419         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
420         memory operands.
421
422 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
423
424         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
425         registers.
426
427 2011-04-17  Jan Hubicka  <jh@suse.cz>
428
429         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
430         * cgrpahunit.c (cgraph_finalize_function): Do not set
431         finalized_by_frontend.
432         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
433         finalized_by_frontend.
434
435 2011-04-17  Jan Hubicka  <jh@suse.cz>
436
437         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
438         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
439         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
440         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
441         method.
442         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
443         gimple-fold.c
444         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
445
446 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
447
448         PR lto/48538
449         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
450         is non-null before accessing it.
451         (input_cgraph): Remove trailing spaces.
452
453 2011-04-17  Revital Eres  <revital.eres@linaro.org>
454
455         * params.def (sms-min-sc): New param flag.
456         * modulo-sched.c (sms_schedule): Use it.
457         * doc/invoke.texi (sms-min-sc): Document it.
458
459 2011-04-17  Jan Hubicka  <jh@suse.cz>
460
461         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
462         present, also set gimple_call_set_cannot_inline.
463         * ipa-inline.c: Update toplevel comment.
464         (MAX_TIME): Remove.
465         (cgraph_clone_inlined_nodes): Fix linebreaks.
466         (cgraph_check_inline_limits): Restructure to ...
467         (caller_growth_limits): ... this one; be more tolerant
468         on growth in nested inline chains; add explanatory comment;
469         fix stack accounting thinko introduced by previous patch.
470         (cgraph_default_inline_p): Remove.
471         (report_inline_failed_reason): New function.
472         (can_inline_edge_p): New function.
473         (can_early_inline_edge_p): New function.
474         (leaf_node_p): Move upwards in file.
475         (want_early_inline_function_p): New function.
476         (want_inline_small_function_p): New function.
477         (want_inline_self_recursive_call_p): New function.
478         (cgraph_edge_badness): Rename to ...
479         (edge_badness) ... this one; fix linebreaks.
480         (update_edge_key): Update call of edge_baddness; add
481         detailed dump about queue updates.
482         (update_caller_keys): Use can_inline_edge_p and
483         want_inline_small_function_p.
484         (cgraph_decide_recursive_inlining): Rename to...
485         (recursive_inlining): Use can_inline_edge_p and
486         want_inline_self_recursive_call_p; simplify and remove no longer
487         valid FIXME.
488         (cgraph_set_inline_failed): Remove.
489         (add_new_edges_to_heap): Use can_inline_edge_p and
490         want_inline_small_function_p.
491         (cgraph_decide_inlining_of_small_functions): Rename to ...
492         (inline_small_functions): ... this one; cleanup; use
493         can/want predicates; cleanup debug ouput; work edges till fibheap
494         is exhausted and do not stop once unit growth is reached; remove
495         later loop processing remaining edges.
496         (cgraph_flatten): Rename to ...
497         (flatten_function): ... this one; use can_inline_edge_p
498         and can_early_inline_edge_p predicates.
499         (cgraph_decide_inlining): Rename to ...
500         (ipa_inline): ... this one; remove unreachable nodes before
501         inlining functions called once; simplify the pass.
502         (cgraph_perform_always_inlining): Rename to ...
503         (inline_always_inline_functions): ... this one; use
504         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
505         (cgraph_decide_inlining_incrementally): Rename to ...
506         (early_inline_small_functions): ... this one; simplify
507         using new predicates; cleanup; make dumps prettier.
508         (cgraph_early_inlining): Rename to ...
509         (early_inliner): newer inline regular functions into always-inlines;
510         fix updating of call stmt summaries.
511         (pass_early_inline): Update for new names.
512         (inline_transform): Fix formating.
513         (gate_cgraph_decide_inlining): Rename to ...
514         (pass_ipa_inline): ... this one.
515         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
516         * ipa-inline-analysis.c (dump_inline_summary): Update.
517         (compute_inline_parameters): Do not compute disregard_inline_limits;
518         look for mismatching arguments.
519         (estimate_growth): Fix handlig of non-trivial self recursion.
520         (inline_read_summary): Do not read info->disregard_inline_limits.
521         (inline_write_summary): Do not write info->disregard_inline_limits.
522         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
523         and move all checks into can_inline_edge_p predicate; re-enable code
524         comparing optimization levels.
525         (expand_call_inline): Do not test inline_forbidden_into_p.
526         * Makefile.in (ipa-inline.o): Update arguments.
527
528 2011-04-17  Revital Eres  <revital.eres@linaro.org>
529
530         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
531
532 2011-04-17  Revital Eres  <revital.eres@linaro.org>
533
534         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
535
536 2011-04-17  Michael Matz  <matz@suse.de>
537
538         PR tree-optimization/48622
539         PR lto/48645
540         * ipa-inline-analysis.c (inline_read_summary): Read size/time
541         in same order as they're written.
542
543 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
544
545         * config/pa/predicates.md: Reorganize and simplify predicates.
546         Eliminate duplicate code checks.
547         (arith_operand): Rename to arith14_operand
548         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
549         * config/pa/pa.md: Use renamed operands.
550         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
551         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
552         arith11_operand, adddi3_operand, indexed_memory_operand,
553         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
554         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
555         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
556         move_dest_operand, move_src_operand, prefetch_cc_operand,
557         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
558         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
559         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
560         div_operand, int5_operand, movb_comparison_operator,
561         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
562         arith_double_operand, ireg_operand, lhs_lshift_operand,
563         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
564         integer_store_memory_operand): Likewise.
565         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
566         (integer_store_memory_operand, read_only_operand,
567         function_label_operand, borx_reg_operand,
568         non_hard_reg_operand): Likewise.
569         (eq_neq_comparison_operator): Delete unused operator.
570         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
571         function_label_operand.
572         (emit_move_sequence): Likewise.
573
574 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
575
576         * config/i386/sse.md (sseunpackmode): New mode attribute.
577         (ssepackmode): Ditto.
578         (vec_pack_trunc_<mode>): Macroize expander from
579         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
580         (vec_unpacks_lo_<mode>): Macroize expander from
581         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
582         (vec_unpacks_hi_<mode>): Macroize expander from
583         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
584         (vec_unpacku_lo_<mode>): Macroize expander from
585         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
586         (vec_unpacku_hi_<mode>): Macroize expander from
587         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
588         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
589         ix86_expand_sse4_unpack.
590         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
591
592 2011-04-16  Jan Hubicka  <jh@suse.cz>
593
594         * cgraphbuild.c: Include ipa-inline.h.
595         (reset_inline_failed): Use initialize_inline_failed.
596         * cgraph.c: Include ipa-inline.h.
597         (cgraph_create_node_1): Do not initialize estimated_growth.
598         (initialize_inline_failed): More to ipa-inline-analysis.c
599         (dump_cgraph_node): Do not dump inline flags.
600         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
601         and disregard_inline_limits flags.
602         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
603         time, size, estimated_growth.
604         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
605         Update.
606         * cgraphunit.c (cgraph_decide_is_function_needed): Use
607         DECL_DISREGARD_INLINE_LIMITS.
608         (cgraph_analyze_function): Do not initialize
609         node->local.disregard_inline_limits.
610         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
611         inlinable, versionable and disregard_inline_limits.
612         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
613         cgraph_check_inline_limits, cgraph_default_inline_p,
614         cgraph_edge_badness, update_caller_keys, update_callee_keys,
615         add_new_edges_to_heap): Update.
616         (cgraph_decide_inlining_of_small_function): Update; set
617         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
618         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
619         cgraph_decide_inlining_incrementally): Update.
620         * ipa-inline.h (inline_summary): Add inlinable, versionable,
621         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
622         time, size and estimated_growth parameters.
623         (estimate_edge_growth): Update.
624         (initialize_inline_failed): Declare.
625         * ipa-split.c: Include ipa-inline.h
626         (execute_split_functions): Update.
627         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
628         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
629         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
630         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
631         estimated_growth to INT_MIN.
632         (inline_node_duplication_hook): Likewise.
633         (dump_inline_summary): Dump new fields.
634         (compute_inline_parameters): Update.
635         (estimate_edge_time, estimate_time_after_inlining,
636         estimate_size_after_inlining, estimate_growth, inline_read_summary,
637         inline_write_summary):
638         (initialize_inline_failed): Move here from cgraph.c.
639         * tree-sra.c: Include ipa-inline.h.
640         (ipa_sra_preliminary_function_checks): Update.
641         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
642         ipa-inline.h.
643
644 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
645
646         * config/i386/sse.md (V16): New mode iterator.
647         (VI1, VI8): Ditto.
648         (AVXMODEQI, AVXMODEDI): Remove.
649         (sse2, sse3): New mode attribute.
650         (mov<mode>): Use V16 mode iterator.
651         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
652         (push<mode>1): Use V16 mode iterator.
653         (movmisalign<mode>): Ditto.
654         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
655         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
656         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
657         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
658         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
659         avx_movdqu<avxmodesuffix>.
660         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
661         *avx_movdqu<avxmodesuffix>.
662         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
663         avx_lddqu<avxmodesuffix>.
664         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
665         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
666         avx_movnt<AVXMODEDI:mode>.
667         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
668         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
669
670 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
671
672         PR target/48629
673         * haifa-sched.c (prune_ready_list, schedule_block): Use
674         sched_pressure_p rather than flag_sched_pressure.
675
676 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
677
678         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
679         cgraph_get_node instead of cgraph_get_create_node.
680
681 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
682
683         * cfgexpand.c (expand_debug_expr): Use
684         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
685
686 2011-04-15  Michael Matz  <matz@suse.de>
687
688         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
689         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
690         * function.c (gimplify_parameters): Ditto.
691         * gimplify.c (gimplify_vla_decl): Ditto.
692
693         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
694         (gimple_call_set_alloca_for_var): New inline function.
695         (gimple_call_alloca_for_var_p): Ditto.
696         * gimple.c (gimple_build_call_from_tree): Remember
697         CALL_ALLOCA_FOR_VAR_P state.
698         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
699
700         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
701         calls if they were for VLA objects.
702
703 2011-04-15  Martin Jambor  <mjambor@suse.cz>
704
705         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
706         of ADR_EXPRs.
707
708 2011-04-15  Martin Jambor  <mjambor@suse.cz>
709
710         PR middle-end/48601
711         * tree-emutls.c (lower_emutls_function_body): Call
712         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
713         result is non-NULL.
714
715 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
716
717         * c-decl.c (detect_field_duplicates): Call
718         objc_detect_field_duplicates instead of objc_get_interface_ivars.
719
720 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
721
722         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
723         * gimple.c (gimple_asm_clobbers_memory_p): Define.
724         * ipa-pure-const.c (check_stmt): Call it.
725         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
726
727 2011-04-15  Richard Guenther  <rguenther@suse.de>
728
729         PR tree-optimization/48290
730         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
731         Properly decide inhibiting propagation based on the valueized
732         operand.  Do loop-closed SSA form preserving here ...
733         (init_copy_prop): ... not here.
734
735 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
736
737         PR target/48612
738         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
739         (*ieee_smax<mode>3): Likewise.
740
741 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
742
743         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
744         Replace match_operand with match_dup for the third operand in
745         these expanders.
746
747 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
748
749         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
750         to track processing of conditionals.  Update all callers.
751         (try_combine, simplify_if_then_else): Update.
752
753 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
754
755         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
756         -fsched-pressure.
757
758 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
759
760         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
761         instead of match_operand for operand 3.
762
763 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
764
765         * recog.h (insn_operand_data): Add an "allows_mem" field.
766         * genoutput.c (output_operand_data): Initialize it.
767         * optabs.c (maybe_legitimize_operand_same_code): New function.
768         (maybe_legitimize_operand): Use it when matching the original
769         op->value.
770
771 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
772
773         * gimplify.c: Fix issues in comments throughout.
774         (voidify_wrapper_expr): Fix long line.
775         (build_stack_save_restore): Likewise.
776         (gimplify_loop_expr): Likewise.
777         (gimplify_compound_lval): Likewise.
778         (gimplify_init_ctor_eval): Likewise.
779         (gimplify_modify_expr_rhs): Likewise.
780         (omp_notice_threadprivate_variable): Likewise.
781
782 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
783
784         * cfgexpand.c (expand_call_stmt): Convert the function type to the
785         original one if this is not a builtin function.
786
787 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
788
789         PR target/48605
790         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
791         offset it as needed based on top 2 bits in operands[3], change
792         MEM mode to SFmode and mask those 2 bits away from operands[3].
793
794 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
795
796         * c-parser.c (c_parser_objc_protocol_definition): Updated for
797         change from objc_declare_protocols() to objc_declare_protocol().
798
799 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
800
801         * config/i386/sse.md (sse4_1): New mode attribute.
802         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
803         avx_blend<ssemodesuffix><avxmodesuffix> and
804         sse4_1_blend<ssemodesuffix> using VF mode iterator.
805         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
806         avx_blendv<ssemodesuffix><avxmodesuffix> and
807         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
808         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
809         avx_dp<ssemodesuffix><avxmodesuffix> and
810         sse4_1_dp<ssemodesuffix> using VF mode iterator.
811         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
812         (sse4_1_packusdw): Merge with *avx_packusdw.
813         (sse4_1_pblendvb): Merge with *avx_pblendvb.
814         (sse4_1_pblendw): Merge with *avx_pblendw.
815         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
816         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
817         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
818         VF mode iterator.
819         (sse4_1_round<ssescalarmodesuffix>): Merge with
820         *avx_round<ssescalarmodesuffix>.
821         (aesenc): Merge with *avx_aesenc.
822         (aesenclast): Merge with *avx_aesenclast.
823         (aesdec): Merge with *avx_aesdec.
824         (aesdeclast): Merge with *avx_aesdeclast.
825         (pclmulqdq): Merge with *pclmulqdq.
826         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
827         New predicate.
828         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
829
830 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
831
832         PR middle-end/48608
833         * cfgexpand.c (get_decl_align_unit): Renamed to ...
834         (align_local_variable): This.  Update DECL_ALIGN.
835         (add_stack_var): Updated.
836         (expand_one_stack_var): Likewise.
837
838 2011-04-14  Richard Guenther  <rguenther@suse.de>
839
840         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
841         Remove.
842         (dse_initialize_block_local_data, dse_leave_block,
843         record_voperand_set, get_stmt_uid): Likewise.
844         (dse_possible_dead_store_p): Allow any kind of killing stmt.
845         (dse_optimize_stmt): Remove voperand set handling code.
846         Simplify and improve to handle any kind of killing stmt.
847         (dse_record_phi): Remove.
848         (dse_enter_block): Simplify.
849         (tree_ssa_dse): Likewise.
850         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
851
852 2011-04-14  Jan Hubicka  <jh@suse.cz>
853
854         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
855         * cgraph.h (struct inline_summary): Move to ipa-inline.h
856         (cgraph_local_info): Remove inline_summary.
857         * ipa-cp.c: Include ipa-inline.h.
858         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
859         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
860         accesor.
861         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
862         (input_overwrite_node): Do not set inline summary.
863         (input_node): Do not stream inline summary.
864         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
865         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
866         growth; we do not have inline parameters computed for that anyway.
867         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
868         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
869         (inline_summary_t): New type and VECtor.
870         (debug_inline_summary, dump_inline_summaries): Declare.
871         (inline_summary): Use VOCtor.
872         (estimate_edge_growth): Kill hack computing call stmt size directly.
873         * lto-section-in.c (lto_section_name): Add inline section.
874         * ipa-inline-analysis.c: Include lto-streamer.h
875         (node_removal_hook_holder, node_duplication_hook_holder): New holders
876         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
877         (inline_summary_vec): Define.
878         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
879         dump_inline_summaries): New functions.
880         (estimate_function_body_sizes): Properly compute size/time of outgoing
881         calls.
882         (compute_inline_parameters): Alloc inline_summary; do not compute
883         size/time of incomming calls.
884         (estimate_edge_time): Avoid missing time summary hack.
885         (inline_read_summary): Read inline summary info.
886         (inline_write_summary): Write inline summary info.
887         (inline_free_summary): Free all hooks and inline summary vector.
888         * lto-streamer.h: Add LTO_section_inline_summary section.
889         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
890         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
891
892 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
893
894         * tree-vectorizer.h (vect_strided_store_supported): Add a
895         HOST_WIDE_INT argument.
896         (vect_strided_load_supported): Likewise.
897         (vect_permute_store_chain): Return void.
898         (vect_transform_strided_load): Likewise.
899         (vect_permute_load_chain): Delete.
900         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
901         count argument.  Check that the count is a power of two.
902         (vect_strided_load_supported): Likewise.
903         (vect_permute_store_chain): Return void.  Update after above changes.
904         Assert that the access is supported.
905         (vect_permute_load_chain): Likewise.
906         (vect_transform_strided_load): Return void.
907         * tree-vect-stmts.c (vectorizable_store): Update calls after
908         above interface changes.
909         (vectorizable_load): Likewise.
910         (vect_analyze_stmt): Don't check for strided powers of two here.
911
912 2011-04-14  Richard Guenther  <rguenther@suse.de>
913
914         PR tree-optimization/48590
915         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
916         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
917         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
918         BUILT_IN_STACK_SAVE.
919         * tree-ssa-dce.c (propagate_necessity): Handle
920         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
921
922 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
923
924         * c-parser.c (c_parser_objc_class_declaration): Updated call to
925         objc_declare_class.
926
927 2011-04-14  Richard Guenther  <rguenther@suse.de>
928
929         * tree.h (get_object_alignment_1): Declare.
930         * builtins.c (get_object_alignment_1): Split out worker from ...
931         (get_object_alignment): ... here.
932         * fold-const.c (get_pointer_modulus_and_residue): Use
933         get_object_alignment_1.
934
935 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
936
937         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
938         type parameter.
939         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
940         parameter.  Generalise code to handle arrays as well as vectors.
941         (vect_setup_realignment): Update accordingly.
942         * tree-vect-stmts.c (vectorizable_store): Likewise.
943         (vectorizable_load): Likewise.
944
945 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
946
947         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
948         within the per-copy loop.
949
950 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
951
952         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
953         in the dump file.
954
955 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
956
957         * doc/options.texi (Negative): Explicitly mention that the
958         Negative chain must be circular.
959
960 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
961
962         * function.h (block_chainon): Declare.
963         * function.c (block_chainon): Define.
964
965 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
966             Eric Weddington  <eric.weddington@atmel.com>
967             Georg-Johann Lay <avr@gjlay.de>
968
969         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
970         New Includes
971         (avr_init_builtins, avr_expand_builtin,
972         avr_expand_delay_cycles, avr_expand_unop_builtin,
973         avr_expand_binop_builtin ): New functions.
974         (avr_builtin_id): New enum
975         (struct avr_builtin_description): New struct
976         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
977         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
978
979         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
980         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
981         UNSPECV_DELAY_CYCLES): new enumeration values
982         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
983         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
984         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
985         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
986         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
987         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
988         "fmulsu"): New insns
989
990         * config/avr/avr-c.c: fix line endings
991         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
992         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
993         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
994         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
995         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
996
997         * doc/extend.texi (AVR Built-in Functions): New node
998         (Target Builtins): Add documentation of AVR
999         built-in functions.
1000
1001 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
1002
1003         PR target/44643
1004         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1005         alone. Error if non-const data has attribute progmem.
1006
1007 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1008
1009         * tree.h (struct tree_constructor): Include tree_typed instead of
1010         tree_common.
1011         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
1012         TS_TYPED instead of TS_COMMON.
1013
1014 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1015
1016         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
1017         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
1018         (sse2_psadbw): Merge with *avx_psadbw.
1019         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
1020         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
1021         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
1022         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
1023         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
1024         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
1025         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
1026         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
1027         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
1028         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
1029         (ssse3_palignrti): Merge with *avx_palignrti.
1030
1031 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1032
1033         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
1034         * tree-ssanames.c (fini_ssanames): VEC_free it.
1035         (make_ssa_name_fn): Update for VECness of free_ssanames.
1036         (release_ssa_name, release_dead_ssa_names): Likewise.
1037         * tree.h (struct tree_ssa_name): Include tree_typed instead of
1038         tree_common.
1039         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
1040         TS_TYPED instead of TS_COMMON.
1041
1042 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1043
1044         * postreload-gcse.c (gcse_after_reload_main): Add calls to
1045         statistics_counter_event.
1046         * tree-ssa-copyrename.c (stats): Define.
1047         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
1048         statistics_counter_event.
1049         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
1050         (bswap_stats, widen_mul_stats): Define.
1051         (insert_reciprocals): Increment rdivs_inserted.
1052         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
1053         rfuncs_inserted.  Add calls to statistics_counter_event.
1054         (execute_cse_sincos_1): Increment inserted.
1055         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
1056         statistics_counter_event.
1057         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
1058         of bswap_stats.  Add calls to statistics_counter_event.
1059         (convert_mult_to_widen): Increment widen_mults_inserted.
1060         (convert_plusminus_to_widen): Increment maccs_inserted.
1061         (convert_mult_to_fma): Increment fmas_inserted.
1062         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
1063         calls to statistics_counter_event.
1064
1065 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1066
1067         PR rtl-optimization/48455
1068         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
1069         `temp_costs->mem_cost'.
1070
1071 2011-04-13  Jan Hubicka  <jh@suse.cz>
1072
1073         * ipa-inline.h: New file.
1074         * ipa-inline-analysis.c: New file. Broken out of ...
1075         * ipa-inline.c: ... this file; update toplevel comment;
1076         include ipa-inline.h
1077         (inline_summary): Move to ipa-inline.h
1078         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
1079         ipa-inline-analysis.c.
1080         (cgraph_estimate_time_after_inlining): Rename to
1081         estiamte_time_after_inlining; move to ipa-inline-analysis.c
1082         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
1083         to estimate_edge_growth.
1084         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
1085         rename to estimate_size_after_inlining.
1086         (cgraph_mark_inline_edge): Update for new naming convention.
1087         (cgraph_check_inline_limits): Likewise.
1088         (cgraph_edge_badness): Likewise.
1089         (cgraph_decide_recursive_inlining): Likewise.
1090         (cgraph_decide_inlining_of_small_functions): Likewise.
1091         (cgraph_decide_inlining_incrementally): Likewise.
1092         (cgraph_estimate_growth): Rename to estimate_growth; move to
1093         ipa-inline-analysis.c.
1094         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
1095         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
1096         (compute_inline_parameters): Likewise.
1097         (compute_inline_parameters_for_current): Likewise.
1098         (pass_inline_parameters): Likewise.
1099         (inline_indirect_intraprocedural_analysis): Likewise.
1100         (analyze_function): Rename to inline_analyze_function; likewise.
1101         (add_new_function): Move to ipa-inline-analysis.c.
1102         (inline_generate_summary): Likewise.
1103         (inline_read_summary): Likewise.
1104         (inline_write_summary): Likewise.
1105         * Makefile.in (ipa-inline-analysis.c): New file.
1106
1107 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1108
1109         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
1110         * configure: Regenerate.
1111
1112 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1113
1114         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
1115         instead of tree_common.
1116         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
1117         Likewise.
1118         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
1119         TS_TYPED rather than TS_COMMON.
1120         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
1121
1122 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
1123
1124         PR target/45263
1125         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
1126         r20 around calls of __tablejump_elpm__
1127
1128 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1129
1130         PR middle-end/48591
1131         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
1132         NULL.
1133         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
1134
1135 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
1136
1137         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
1138         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
1139         (cfi_vec): New typedef.
1140         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
1141         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
1142         (cie_cfi_vec): New static variable.
1143         (cie_cfi_head): Delete.
1144         (add_cfi): Accept a cfi_vec * as first argument. All callers and
1145         declaration changed. Use vector rather than list operations.
1146         (new_cfi): Don't initialize the dw_cfi_next field.
1147         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
1148         rather than list operations.
1149         (lookup_cfa): Use vector rather than list operations.
1150         (output_cfis): New argument upto. Accept a cfi_vec rather than
1151         a dw_cfi_ref list head as argument. All callers changed.
1152         Iterate over the vector using upto as a maximum index.
1153         (output_all_cfis): New static function.
1154         (output_fde): Use vector rather than list operations. Use the
1155         new upto argument for output_cfis rather than manipulating a
1156         list.
1157         (dwarf2out_begin_prologue): Change initializations to match
1158         new struct members.
1159         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
1160         from the vector length rather than searching for the end of a list.
1161         Use output_all_cfis.
1162         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
1163
1164 2011-04-13  Nick Clifton  <nickc@redhat.com>
1165
1166         * config/rx/rx.md (movmemsi): Do not use this pattern when
1167         volatile pointers are involved.
1168
1169 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1170
1171         * config/i386/sse.md (pinsrbits): Remove.
1172         (sse2_packsswb): Merge with *avx_packsswb.
1173         (sse2_packssdw): Merge with *avx_packssdw.
1174         (sse2_packuswb): Merge with *avx_packuswb.
1175         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
1176         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
1177         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
1178         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
1179         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
1180         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
1181         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
1182         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
1183         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
1184         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
1185         (sse2_loadld): Merge with *avx_loadld.
1186         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
1187         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
1188         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
1189         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
1190         (vec_concatv2di): Merge with *vec_concatv2di_avx.
1191
1192 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1193
1194         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1195         calling TREE_CHAIN.
1196         * print-tree.c (print_node): Likewise.
1197         * tree-inline.c (copy_tree_r): Likewise.
1198         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
1199         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
1200         instead of TS_COMMON.
1201         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
1202         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
1203         (copy_node_stat): Zero TREE_CHAIN only if necessary.
1204         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
1205         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
1206         ...and these...
1207         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1208         * tree.h: ...here.
1209         (TREE_CHAIN): Check for a TS_COMMON structure.
1210         (TREE_TYPE): Check for a TS_TYPED structure.
1211
1212 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
1213
1214         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1215         cgraph_get_create_node instead of cgraph_node.
1216
1217 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1218
1219         * c-parser.c (c_parser_initelt): Updated call to
1220         objc_build_message_expr.
1221         (c_parser_postfix_expression): Likewise.
1222
1223 2011-04-12  Kai Tietz  <ktietz@redhat.com>
1224
1225         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1226         MASK_MS_BITFIELD_LAYOUT bit.
1227
1228 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1229
1230         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
1231         assert it is always true.
1232         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
1233         moves.
1234
1235 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1236
1237         * c-parser.c (c_lex_one_token): Rewritten conditional used when
1238         compiling Objective-C to be more efficient.
1239
1240 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
1241
1242         * opts-common.c (decode_cmdline_options_to_array): Remove variable
1243         argv_copied.
1244
1245 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1246
1247         * recog.h, genoutput.c, optabs.c: Revert last patch.
1248
1249 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1250
1251         PR target/48090
1252         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1253
1254 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1255
1256         * recog.h (insn_operand_data): Add an "allows_mem" field.
1257         * genoutput.c (output_operand_data): Initialize it.
1258         * optabs.c (maybe_legitimize_operand_same_code): New function.
1259         (maybe_legitimize_operand): Use it when matching the original
1260         op->value.
1261
1262 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1263
1264         * genpreds.c (process_define_predicate): Move most processing
1265         to gensupport.c.  Continue to validate the expression.
1266         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
1267         (process_define_predicate): Move processing to gensupport.c.
1268         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
1269         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
1270         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
1271         argument.
1272         (valid_predicate_name_p): New function, split out from old
1273         genpreds.c:process_define_predicate.
1274         (process_define_predicate): New function, combining code from
1275         old genpreds.c and genrecog.c functions.
1276         (process_rtx): Call it for DEFINE_PREDICATE and
1277         DEFINE_SPECIAL_PREDICATE.
1278
1279 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1280
1281         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
1282         size of a '%A' memory reference.
1283         (T_DREG, T_QREG): New neon_builtin_type_bits.
1284         (arm_init_neon_builtins): Assert that the load and store operands
1285         are neon_struct_operands.
1286         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
1287         (NEON_ARG_MEMORY): New builtin_arg.
1288         (neon_dereference_pointer): New function.
1289         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
1290         Handle NEON_ARG_MEMORY.
1291         (arm_expand_neon_builtin): Update after above interface changes.
1292         Use NEON_ARG_MEMORY for loads and stores.
1293         * config/arm/predicates.md (neon_struct_operand): New predicate.
1294         * config/arm/iterators.md (V_two_elem): Tweak formatting.
1295         (V_three_elem): Use BLKmode for accesses that have no associated mode.
1296         (V_four_elem): Tweak formatting.
1297         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1298         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
1299         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
1300         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
1301         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
1302         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
1303         (neon_vst4<mode>): Replace pointer operand with a memory operand.
1304         Use %A in the output template.
1305         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
1306         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
1307         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
1308         the width of the memory access.  Remove post-increment.
1309         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
1310
1311 2011-04-12  Nick Clifton  <nickc@redhat.com>
1312
1313         * config/v850/v850.c (expand_prologue): Do not use the CALLT
1314         instruction for interrupt handlers if the target is the basic V850
1315         architecture.
1316         (expand_epilogue): Likewise.
1317
1318 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1319
1320         PR rtl-optimization/48549
1321         * combine.c (propagate_for_debug): Also stop after BB_END of
1322         this_basic_block.  Process LAST and just stop processing after it.
1323         (combine_instructions): If last_combined_insn has been deleted,
1324         set last_combined_insn to its PREV_INSN.
1325
1326 2011-04-12  Richard Guenther  <rguenther@suse.de>
1327
1328         PR tree-optimization/46076
1329         * gimple.h (struct gimple_statement_call): Add fntype field.
1330         (gimple_call_fntype): Adjust.
1331         (gimple_call_set_fntype): New function.
1332         * gimple.c (gimple_build_call_1): Set the call function type.
1333         * gimplify.c (gimplify_call_expr): Preserve the function
1334         type the frontend used for the call.
1335         (gimplify_modify_expr): Likewise.
1336         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
1337         function type.
1338         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
1339         function type.
1340         * tree-ssa.c (useless_type_conversion_p): Function pointer
1341         conversions are useless.
1342
1343 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1344
1345         * cgraph.h (cgraph_node): Remove function declaration.
1346         (cgraph_create_node): Declare.
1347         (cgraph_get_create_node): Likewise.
1348         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
1349         Updated all callers.
1350         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
1351         the decl does not already exist.  Call cgraph_get_create_node instead
1352         of cgraph_node.
1353         (cgraph_get_create_node): New function.
1354         (cgraph_same_body_alias): Update comment.
1355         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
1356         assert it does not return NULL.
1357         (cgraph_update_edges_for_call_stmt): Likewise.
1358         (cgraph_clone_edge): Likewise.
1359         (cgraph_create_virtual_clone): Likewise.
1360         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
1361         instead of cgraph_node.
1362         (cgraph_add_new_function): Call cgraph_create_node or
1363         cgraph_get_create_node instead of cgraph_node.
1364         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
1365         instead of cgraph_node.
1366         (record_eh_tables): Likewise.
1367         (mark_address): Likewise.
1368         (mark_load): Likewise.
1369         (build_cgraph_edges): Call cgraph_get_create_node instead
1370         of cgraph_node.
1371         (rebuild_cgraph_edges): Likewise.
1372         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
1373         instead of cgraph_node.
1374         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
1375         cgraph_node.
1376         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
1377         cgraph_create_node instead of cgraph_node.
1378         * c-decl.c (finish_function): Call cgraph_get_create_node instead
1379         of cgraph_node.
1380         * lto-cgraph.c (input_node): Likewise.
1381         * lto-streamer-in.c (input_function): Likewise.
1382         * varasm.c (mark_decl_referenced): Likewise.
1383         (assemble_alias): Likewise.
1384
1385 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1386
1387         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
1388         instead of cgraph_node and assert it does not return NULL.
1389         * lto-streamer-in.c (lto_read_body): Likewise.
1390         * omp-low.c (new_omp_context): Likewise.
1391         (create_task_copyfn): Likewise.
1392         * tree-emutls.c (lower_emutls_function_body): Likewise.
1393         * matrix-reorg.c (transform_allocation_sites): Likewise.
1394
1395 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1396
1397         PR c/48552
1398         * c-typeck.c (build_asm_expr): Error out on attempts to use
1399         void type outputs or inputs for constraints that allow reg or
1400         don't allow memory.
1401
1402 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
1403             Richard Earnshaw  <rearnsha@arm.com>
1404
1405         PR target/48250
1406         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
1407         to use sign-magnitude offsets. Reject unsupported unaligned
1408         cases. Add detailed description in comments.
1409         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
1410         condition from TARGET_32BIT to TARGET_ARM.
1411
1412 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
1413
1414         * tree.h (struct typed_tree): New.
1415         (struct tree_common): Include it instead of tree_base.
1416         (TREE_TYPE): Update for new location of type field.
1417         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
1418         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
1419         (union tree_node): Add typed field.
1420         * treestruct.def (TS_TYPED): New.
1421         * lto-streamer.c (check_handled_ts_structures): Handle it.
1422         * tree.c (MARK_TS_TYPED): New macro.
1423         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
1424
1425 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
1426
1427         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
1428         (force_nonfallthru): Do not alter the loop nest if no basic block
1429         was created.
1430
1431 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1432
1433         * config/i386/sse.md (VI): New mode iterator.
1434         (SSEMODEI): Remove.
1435         (AVX256MODEI): Ditto.
1436         (AVXMODEF4P): Ditto.
1437         (avxvecpsmode): Ditto.
1438         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
1439         (sse2_andnot<mode>3): New expander.
1440         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
1441         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
1442         (<any_logic:code><mode>3): Use VI mode iterator.
1443         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
1444         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
1445         (*andnottf3): Handle AVX three-operand constraints.
1446         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
1447
1448 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1449             Robert Millan  <rmh@gnu.org>
1450
1451         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
1452         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1453         GNU_USER_DYNAMIC_LINKER64): Define.
1454         (REG_NAME): Don't undefine.
1455         (MD_UNWIND_SUPPORT): Undefine.
1456         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1457         (REG_NAME): Don't undefine.
1458         (MD_UNWIND_SUPPORT): Undefine.
1459         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1460
1461 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1462
1463         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1464         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1465
1466 2011-04-11  Xinliang David Li  <davidxl@google.com>
1467
1468         * value-profile.c (check_ic_target): New function.
1469         (gimple_ic_transform): Sanity check indirect call target.
1470         * gimple-low.c (gimple_check_call_args): Interface change.
1471         (gimple_check_call_matching_types): New function.
1472         * tree-inline.c (tree_can_inline_p): Call new function.
1473
1474 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
1475
1476         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1477         tree-pretty-print.h & realmpfr.h.
1478
1479 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
1480
1481         PR middle-end/48464
1482         * ira.c (setup_pressure_classes): Fix typo in loop condition.
1483         (setup_allocno_and_important_classes): Ditto.
1484
1485 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1486
1487         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1488         GNU_USER_DYNAMIC_LINKER.
1489         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1490         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1491         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1492         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1493         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1494         GNU_USER_TARGET_OS_CPP_BUILTINS.
1495         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1496         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1497         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1498         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1499         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1500         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1501         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1502         GNU_USER_TARGET_OS_CPP_BUILTINS.
1503         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1504         GNU_USER_DYNAMIC_LINKER.
1505         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1506         GNU_USER_TARGET_OS_CPP_BUILTINS.
1507         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1508         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1509         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1510         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1511         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1512         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1513         GNU_USER_DYNAMIC_LINKER64): Remove.
1514         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1515         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1516         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1517         GNU_USER_DYNAMIC_LINKER.
1518         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1519         GNU_USER_TARGET_OS_CPP_BUILTINS.
1520         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1521         GNU_USER_TARGET_OS_CPP_BUILTINS.
1522         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1523         to GNU_USER_TARGET_OS_CPP_BUILTINS.
1524         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1525         GNU_USER_TARGET_OS_CPP_BUILTINS.
1526         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1527         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1528         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1529         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1530         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1531         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1532         GNU_USER_DYNAMIC_LINKER.
1533         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1534         GNU_USER_TARGET_OS_CPP_BUILTINS.
1535         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1536         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1537         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1538         GNU_USER_DYNAMIC_LINKER.
1539         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1540         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1541         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1542         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1543         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1544         GNU_USER_DYNAMIC_LINKER.
1545         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1546         GNU_USER_DYNAMIC_LINKERN32.
1547         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1548         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
1549         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
1550         GNU_USER_DYNAMIC_LINKER32.
1551         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1552         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1553         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1554         GNU_USER_DYNAMIC_LINKER.
1555         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1556         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1557         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1558         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1559         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1560         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1561         GNU_USER_DYNAMIC_LINKER32.
1562         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1563         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1564         GNU_USER_DYNAMIC_LINKER.
1565         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1566         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1567         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1568         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
1569         GNU_USER_DYNAMIC_LINKER64.
1570         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1571         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1572         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1573         GNU_USER_DYNAMIC_LINKER.
1574         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1575         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1576         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1577         GNU_USER_DYNAMIC_LINKER.
1578         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1579         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1580         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1581         GNU_USER_DYNAMIC_LINKER32.
1582         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1583         GNU_USER_DYNAMIC_LINKER64.
1584         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1585         GNU_USER_DYNAMIC_LINKER64.
1586         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1587         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1588         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1589         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1590         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1591
1592 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1593
1594         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
1595         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1596         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1597         GNU_USER_DYNAMIC_LINKER.
1598         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1599         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
1600         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1601         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1602         GNU_USER_DYNAMIC_LINKER64.
1603         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1604         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1605         GNU_USER_LINK_EMULATION.
1606         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1607         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1608         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1609         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1610         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1611         CPP_SPEC, CC1_SPEC): Remove.
1612         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1613         (GNU_USER_DYNAMIC_LINKER): Define.
1614         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1615         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1616         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1617         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1618         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1619         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1620         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1621         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1622         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1623         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1624         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1625         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1626         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1627         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1628         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1629         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1630         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1631         GNU_USER_DYNAMIC_LINKER.
1632         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1633         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1634         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1635         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1636         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1637         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1638         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1639         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1640         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1641         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1642
1643 2011-04-11  Kai Tietz  <ktietz@redhat.com>
1644
1645         PR target/9601
1646         PR target/11772
1647         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1648         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1649         comment.
1650         (ix86_is_msabi_thiscall): Removed.
1651         (ix86_is_type_thiscall): Likewise.
1652         (ix86_get_callcvt): New function.
1653         (ix86_comp_type_attributes): Simplify check.
1654         (ix86_function_regparm): Use ix86_get_callcvt for calling
1655         convention attribute checks.
1656         (ix86_return_pops_args): Likewise.
1657         (ix86_static_chain): Likewise.
1658         (x86_this_parameter): Likewise.
1659         (x86_output_mi_thunk): Likewise.
1660         (ix86_function_type_abi): Optimize check for types without attributes.
1661         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1662         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1663         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1664         by flag-values.
1665         (IX86_BASE_CALLCVT): Helper macro.
1666         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1667         Use ix86_get_callcvt for calling convention attribute checks and avoid
1668         symbol-decoration for stdcall in TARGET_RTD case.
1669         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1670         Likewise.
1671         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1672         for declaration.
1673
1674 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1675
1676         * config/i386/sse.md (VI_128): New mode iterator.
1677         (VI12_128): Rename from SSEMODE12.
1678         (VI14_128): Rename from SSEMODE14.
1679         (VI124_128): New mode iterator.
1680         (VI24_128): Rename from SSEMODE248.
1681         (VI248_128): Rename from SSEMODE248.
1682         (SSEMODE124C8): Remove.
1683         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1684         (*sse2_<plusminus_insn><mode>3): Merge with
1685         *avx_<plusminus_insn><mode>3.
1686         (*mulv8hi3): Merge with *avx_mulv8hi3.
1687         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1688         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1689         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1690         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1691         (ashr<mode>3): Merge with *avx_ashr<mode>3.
1692         (lshr<mode>3): Merge with *avx_lshr<mode>3.
1693         (ashl<mode>3): Merge with *avx_ashl<mode>3.
1694         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1695         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1696         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1697         (*<smaxmin:code>v8hi3): Ditto.
1698         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1699         (*<smaxmin:code>v16qi3): Ditto.
1700         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1701         (*sse2_eq<mode>3): Ditto.
1702         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1703         (*sse2_gt<mode>3): Ditto.
1704         (vcondv2di): Split out of vcond<mode>.
1705         (vconduv2di): Split out of vcondu<mode>.
1706
1707 2011-04-11  Richard Guenther  <rguenther@suse.de>
1708
1709         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1710         before calling tree_low_cst.
1711
1712 2011-04-11  Richard Guenther  <rguenther@suse.de>
1713
1714         * stor-layout.c (layout_type): Compute all array index size operations
1715         in the original type.
1716         (initialize_sizetypes): Add comment.
1717         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1718
1719 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1720
1721         * common.opt (Tbss=, Tdata=, Ttext=): New options.
1722
1723 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1724
1725         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1726         of cgraph_node, handle NULL return value.
1727         (cgraph_global_info): Likewise.
1728         (cgraph_rtl_info): Likewise.
1729         * tree-inline.c (estimate_num_insns): Likewise.
1730         * gimplify.c (unshare_body): Likewise.
1731         (unvisit_body): Likewise.
1732         (gimplify_body): Likewise.
1733         * predict.c (optimize_function_for_size_p): Likewise.
1734         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1735         (call_may_clobber_ref_p_1): Likewise.
1736         * varasm.c (function_section_1): Likewise.
1737         (assemble_start_function): Likewise.
1738
1739 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1740
1741         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1742         of cgraph_node.
1743         * final.c (rest_of_clean_state): Likewise.
1744         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1745         * passes.c (pass_init_dump_file): Likewise.
1746         (execute_all_ipa_transforms): Likewise.
1747         (function_called_by_processed_nodes_p): Likewise.
1748         * predict.c (maybe_hot_frequency_p): Likewise.
1749         (probably_never_executed_bb_p): Likewise.
1750         (compute_function_frequency): Likewise.
1751         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1752         (unnest_nesting_tree_1): Likewise.
1753         (lower_nested_functions): Likewise.
1754         * tree-optimize.c (execute_fixup_cfg): Likewise.
1755         (tree_rest_of_compilation): Likewise.
1756         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1757         * tree-sra.c (ipa_early_sra): Likewise.
1758         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1759         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1760         * ipa.c (record_cdtor_fn): Likewise.
1761         * ipa-inline.c (cgraph_early_inlining): Likewise.
1762         (compute_inline_parameters_for_current): Likewise.
1763         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1764         * ipa-pure-const.c (local_pure_const): Likewise.
1765         * ipa-split.c (split_function): Likewise.
1766         (execute_split_functions): Likewise.
1767         * cgraphbuild.c (build_cgraph_edges): Likewise.
1768         (rebuild_cgraph_edges): Likewise.
1769         (cgraph_rebuild_references): Likewise.
1770         (remove_cgraph_callee_edges): Likewise.
1771         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1772         (verify_cgraph_node): Likewise.
1773         (cgraph_analyze_functions): Likewise.
1774         (cgraph_preserve_function_body_p): Likewise.
1775         (save_inline_function_body): Likewise.
1776         (save_inline_function_body): Likewise.
1777         * tree-inline.c (copy_bb): Likewise.
1778         (optimize_inline_calls): Likewise.
1779
1780 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1781
1782         PR tree-optimization/48195
1783         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1784         ipa_check_create_edge_args.
1785         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1786         ipa_check_create_edge_args.
1787         * ipa-inline.c (inline_generate_summary): Do not call
1788         ipa_check_create_node_params and ipa_check_create_edge_args.
1789         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1790         ipa_check_create_edge_args.
1791
1792 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
1793
1794         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1795         instead of loop.
1796         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1797         * function.c (record_hard_reg_sets): Likewise.
1798         * ira.c (compute_regs_asm_clobbered): Likewise.
1799         * sched-deps.c (sched_analyze_1): Likewise.
1800         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1801
1802 2011-04-09  Xinliang David Li  <davidxl@google.com>
1803
1804         PR tree-optimization/PR48484
1805         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1806         has_valid_pred lazily
1807
1808 2011-04-09  Duncan Sands  <baldrick@free.fr>
1809
1810         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1811
1812 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1813
1814         * combine.c (combine_validate_cost): Adjust comments.  Set registered
1815         cost of I0 to zero at the end, if any.
1816
1817 2011-04-08  Xinliang David Li  <davidxl@google.com>
1818
1819         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1820         to insane profile data.
1821
1822 2011-04-08  Xinliang David Li  <davidxl@google.com>
1823
1824         * ipa-cp.c (ipcp_update_profiling): Correct
1825          negative scale factor due to insane profile data.
1826
1827 2011-04-08  Xinliang David Li  <davidxl@google.com>
1828
1829         * final.c (dump_basic_block_info): New function.
1830         (final): Dump basic block.
1831         (final_scan_insn): Remove old dump.
1832
1833 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1834
1835         PR target/47829
1836         * config.gcc (i386-*-freebsd): Disable unwind table generation for
1837         crtbegin/crtend.
1838
1839 2011-04-08  Michael Matz  <matz@suse.de>
1840
1841         PR middle-end/48389
1842         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1843         functions.
1844         (rebuild_jump_labels): Call rebuild_jump_labels_1.
1845         * rtl.h (rebuild_jump_labels_chain): Declare.
1846         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1847         insns inserted on edges.
1848
1849 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
1850
1851         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1852         * config/arm/arm-arches.def: New.
1853         * config/arm/arm-opts.h: New.
1854         * config/arm/genopt.sh: New.
1855         * config/arm/arm-tables.opt: New (generated).
1856         * config/arm/arm.c (arm_handle_option, arm_target_help,
1857         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1858         (all_architectures): Get most table contents from arm-arches.def.
1859         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1860         arm_selected_tune here.
1861         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1862         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1863         (march=, mcpu=, mtune=): Use Enum and Var.
1864         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1865         (arm.o): Update dependencies.
1866
1867 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
1868
1869         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1870         of header_file.
1871         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1872         (write_typed_alloc_defns): Likewise.
1873         (main): Calls write_typed_alloc_defns with output_header.
1874
1875 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
1876
1877         PR inline-asm/48435
1878         * ira-color.c (setup_profitable_hard_regs): Add comments.
1879         Don't take prohibited hard regs into account.
1880         (setup_conflict_profitable_regs): Rename to
1881         get_conflict_profitable_regs.
1882         (check_hard_reg_p): Check prohibited hard regs.
1883
1884 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
1885
1886         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1887         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1888         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1889
1890 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1891
1892         PR target/48366
1893         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1894         move from floating point to shift amount register.
1895         (emit_move_sequence): Remove secondary reload support for floating
1896         point to shift amount amount register copies.
1897         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1898         amount register copies.
1899         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1900         register, return false if mode isn't a scalar integer mode.
1901         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1902
1903 2011-04-08  Richard Guenther  <rguenther@suse.de>
1904
1905         * gimple.c (gimple_call_flags): Remove kludge.
1906
1907 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1908
1909         * sel-sched.c (sel_region_init): Move call to
1910         sel_setup_region_sched_flags after setup_current_loop_nest.
1911
1912 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
1913
1914         PR rtl-optimization/48272
1915         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1916         init_insn_reg_pressure_info.  Adjust a caller.
1917         * sched-int.h (init_insn_reg_pressure_info): Declare.
1918         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1919         when sched-pressure is enabled.
1920
1921 2011-04-08  Richard Guenther  <rguenther@suse.de>
1922
1923         * gimple.c (gimple_set_modified): Do not queue calls to
1924         MODIFIED_NORETURN_CALLS here ...
1925         * tree-ssa-operands.c (update_stmt_operands): ... but here.
1926
1927 2011-04-08  Richard Guenther  <rguenther@suse.de>
1928
1929         PR lto/48467
1930         * toplev.c (lang_dependent_init): Do not open asm_out_file
1931         in WPA mode, nor perform debug machinery initialization.
1932         (finalize): Do not unlink asm_out_file in WPA mode.
1933
1934 2011-04-08  Richard Guenther  <rguenther@suse.de>
1935
1936         * gimple.h (gimple_call_fntype): New function.
1937         (gimple_call_return_type): Use it.
1938         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1939         * gimple-low.c (gimple_check_call_args): Likewise.
1940         * gimple.c (gimple_call_flags): Likewise.
1941         (gimple_call_arg_flags): Likewise.
1942         (gimple_call_return_flags): Likewise.
1943         * tree-cfg.c (verify_gimple_call): Likewise.
1944         (do_warn_unused_result): Likewise.
1945         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1946         * value-prof.c (gimple_ic_transform): Fix fndecl check.
1947
1948 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
1949
1950         PR rtl-optimization/48235
1951         * sel-sched.c (code_motion_process_successors): Recompute the last
1952         insn in basic block if control flow changed.
1953         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
1954         Update condition for ilist_remove.
1955
1956 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1957
1958         PR rtl-optimization/48302
1959         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1960         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
1961         it to record added preheader blocks.
1962         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
1963         on to sel_add_loop_preheaders.
1964         (sel_region_init): Move call to setup_current_loop_nest after
1965         sel_init_bbs.
1966
1967 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1968
1969         PR target/48273
1970         * cfgloop.h (loop_has_exit_edges): New helper.
1971         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1972         non-clonable.
1973         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1974         that have no exit edges.
1975
1976 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1977
1978         PR rtl-optimization/48442
1979         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
1980         all callers.  Adjust assert.
1981
1982 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
1983
1984         PR tree-optimization/48377
1985         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1986         is_packed to true even for types with smaller TYPE_ALIGN than
1987         TYPE_SIZE.
1988
1989 2011-04-08  Richard Guenther  <rguenther@suse.de>
1990
1991         PR bootstrap/48513
1992         * doc/tm.texi: Re-generate.
1993
1994 2011-04-08  Wei Guozhi  <carrot@google.com>
1995
1996         PR target/47855
1997         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1998         * config/arm/arm.c (arm_attr_length_push_multi): New function.
1999         * config/arm/arm.md (*push_multi): Change the length computation to
2000         call a C function.
2001
2002 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
2003
2004         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
2005         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
2006         * doc/tm.texi: Regenerate.
2007         * system.h (ASM_OUTPUT_BSS): Poison.
2008         * varasm.c (asm_output_bss): Remove function.
2009         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
2010
2011         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
2012         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
2013         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
2014         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2015         Likewise.
2016         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2017         Likewise.
2018         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
2019         Likewise.
2020         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
2021
2022 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2023
2024         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
2025         EnumValue lines.
2026
2027 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
2028
2029         * config/m68k/m68k.c (m68k_handle_option): Don't handle
2030         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
2031         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
2032         OPT_mcpu32.
2033         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2034         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
2035         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
2036         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
2037         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
2038         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
2039         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2040         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
2041         options.  Don't map other m68k options manually.  Don't handle
2042         old-style options as canonical.
2043         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
2044         * doc/install.texi (m68k-*-*): Document binutils version requirement.
2045
2046 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
2047
2048         * basic-block.h (force_nonfallthru): Move to...
2049         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
2050         (force_nonfallthru): ...here.
2051         * cfghooks.c (force_nonfallthru): New function.
2052         * cfgrtl.c (force_nonfallthru): Rename into...
2053         (rtl_force_nonfallthru): ...this.
2054         (commit_one_edge_insertion): Do not set AUX field.
2055         (commit_edge_insertions): Do not discover new basic blocks.
2056         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
2057         (cfg_layout_rtl_cfg_hooks): Likewise.
2058         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
2059         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
2060         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
2061
2062 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
2063
2064         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
2065         Remove macros.
2066
2067 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
2068
2069         * config/i386/sse.md: Update copyright year.
2070         (avxcvtvecmode): Remove.
2071         (sse_movhlps): Merge with *avx_movhlps.
2072         (sse_movlhps): Merge with *avx_movlhps.
2073         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
2074         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
2075         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
2076         (sse_loadhps): Merge with *avx_loadhps.
2077         (sse_storelps): Merge with *avx_storelps.
2078         (sse_loadlps): Merge with *avx_loadlps.
2079         (sse_movss): Merge with *avx_movss.
2080         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
2081         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
2082         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
2083         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
2084         (vec_set<mode>_0): Ditto.
2085         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
2086         (sse4_1_insertps): Merge with *avx_insertps.
2087         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
2088         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
2089         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
2090         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
2091         (sse2_storehpd): Merge with *avx_storehpd.
2092         (sse2_loadhpd): Merge with *avx_loadhpd.
2093         (sse2_loadlpd): Merge with *avx_loadlpd.
2094         (sse2_movsd): Merge with *avx_movsd.
2095         (*vec_concatv2df): Merge with *vec_concatv2df.
2096
2097 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
2098
2099         PR debug/48343
2100         * combine.c (combine_instructions): Add last_combined_insn,
2101         update it if insn is after it, pass it to all try_combine calls.
2102         (try_combine): Add last_combined_insn parameter, pass it instead of
2103         i3 to propagate_for_debug.
2104
2105 2011-04-07  Nick Clifton  <nickc@redhat.com>
2106
2107         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
2108         to handle MDR <-> data register transfers.
2109         (movhi_internal): Likewise.
2110
2111 2011-04-07  Alan Modra  <amodra@gmail.com>
2112
2113         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
2114         previous stack info.
2115
2116 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2117
2118         PR target/43920
2119         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
2120         flow_find_cross_jump.  Swap variables to implement backward replacement.
2121         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
2122
2123 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2124
2125         PR target/43920
2126         * cfgcleanup.c (walk_to_nondebug_insn): New function.
2127         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
2128         and bb2.
2129         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
2130         src1 or src2.  Redirect edges to the last basic block.  Update
2131         frequency and count on multiple basic blocks in case of fallthru.
2132
2133 2011-04-07  Tom de Vries  <tom@codesourcery.com>
2134
2135         PR target/43920
2136         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
2137         function.
2138         (old_insns_match_p): Change return type.  Replace return false/true
2139         with return dir_none/dir_both.  Use can_replace_by.
2140         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
2141         direction from dir_p.  Register replacement direction in dir, last_dir
2142         and afterlast_dir.  Handle new return type of old_insns_match_p using
2143         merge_dir.  Return replacement direction in dir_p.
2144         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
2145         return type of old_insns_match_p.
2146         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
2147         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
2148         flow_find_cross_jump.
2149         * basic-block.h (enum replace_direction): New type.
2150         (flow_find_cross_jump): Add parameter to declaration.
2151
2152 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2153
2154         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
2155         (AVXMODEDCVTPS2DQ): Ditto.
2156         (VEC_FLOAT_MODE): Ditto.
2157         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
2158         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2159         (<any_logic:code><mode>3): Use VF mode iterator.
2160         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
2161         Use VF mode iterator.
2162         (copysign<mode>3): Use VF mode iterator.
2163         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
2164         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2165         (*<any_logic:code><MODEF:mode>3): Merge with
2166         *avx_<any_logic:code><MODEF:mode>3.
2167         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
2168         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
2169         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
2170         (avx_cvtdq2ps<avxmodesuffix>): Remove.
2171         (sse2_cvtdq2ps): Use %v modifier.
2172         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
2173         (avx_cvtps2dq<avxmodesuffix>): Remove.
2174         (sse2_cvtps2dq): Use %v modifier.
2175         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
2176         (avx_cvttps2dq<avxmodesuffix>): Remove.
2177         (sse2_cvttps2dq): Use %v modifier.
2178         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
2179         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
2180         (sse2_cvtsd2siq): Fix insn template.
2181         (sse2_cvtsd2siq_2): Ditto.
2182         (sse2_cvttsd2siq): Ditto.
2183         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
2184         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
2185
2186 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2187
2188         * gcov-io.c: Use GCC Runtime Library Exception.
2189
2190 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
2191
2192         PR debug/48466
2193         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
2194         as base_reg whatever register reg has been eliminated to, instead
2195         of hardcoding STACK_POINTER_REGNUM.
2196
2197 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2198
2199         * doc/tm.texi.in: Document C target hooks as separate from general
2200         target hooks.
2201         * doc/tm.texi: Regenerate.
2202         * genhooks.c (struct hook_desc): Add docname field.
2203         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
2204         docname field.
2205         (hook_array): Include c-target.def.
2206         (emit_documentation): Use docname field in output.
2207         (emit_init_macros): Take docname argument.  Only emit definitions
2208         for hooks matching docname.
2209         (main): Expect additional arguments in all cases.  Pass argument
2210         to emit_init_macros.
2211         * target.def: Move initial macro definitions and comments to
2212         target-hooks-macros.h.
2213         (gcc_targetcm): Move to c-family/c-target.def.
2214         * target.h (targetcm): Move declaration to c-family/c-target.h.
2215         * targhooks.c (default_handle_c_option): Move to
2216         c-family/c-opts.c.
2217         * targhooks.h (default_handle_c_option): Move declaration to
2218         c-family/c-common.h.
2219         * target-hooks-macros.h: New file.
2220         * config.gcc (target_has_targetcm): Define and use to add to
2221         c_target_objs and cxx_target_objs.
2222         * config/default-c.c: New file.
2223         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
2224         of target.h and target-def.h.
2225         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
2226         (darwin_objc_construct_string, darwin_cfstring_ref_p,
2227         darwin_check_cfstring_format_arg): Make static.
2228         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2229         TARGET_STRING_OBJECT_REF_TYPE_P,
2230         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
2231         * config/darwin-protos.h (darwin_objc_construct_string,
2232         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
2233         declare.
2234         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2235         TARGET_STRING_OBJECT_REF_TYPE_P,
2236         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
2237         * config/t-darwin (darwin-c.o): Update dependencies.
2238         * system.h (TARGET_HAS_TARGETCM): Poison.
2239         * Makefile.in (TARGET_H): Update.
2240         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
2241         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
2242         (default-c.o): New target.
2243         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
2244         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
2245         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
2246         c-target.def.
2247         (build/genhooks.o): Update dependencies.
2248
2249 2011-04-06  Richard Guenther  <rguenther@suse.de>
2250
2251         * ipa-inline.c (enum inlining_mode): Remove.
2252         (cgraph_flatten): Use some other token.
2253         (cgraph_edge_early_inlinable_p): New function, split out from ...
2254         (cgraph_perform_always_inlining): New function, split out from ...
2255         (cgraph_decide_inlining_incrementally): ... here.
2256         (cgraph_mark_inline_edge): Adjust.
2257         (cgraph_early_inlining): Re-structure.
2258         (pass_early_inline): Require SSA form.
2259
2260 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
2261             Julian Brown  <julian@codesourcery.com>
2262             Mark Shinwell  <shinwell@codesourcery.com>
2263
2264         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
2265         LO_REGS only for Thumb-1.
2266         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
2267         be used in short instructions when optimising for size on Thumb-2.
2268
2269 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2270
2271         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2272         associated with user returns to be preserved.
2273
2274 2011-04-06  Tristan Gingold  <gingold@adacore.com>
2275
2276         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
2277         symbol_queue_size, DBXOUT_DECR_NESTING,
2278         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
2279         if XCOFF_DEBUGGING_INFO.
2280
2281 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2282
2283         * config/i386/i386.md (attribute isa): New.
2284         (attribute enabled): New.
2285         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
2286         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
2287         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
2288         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
2289         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
2290         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2291         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
2292         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
2293
2294         * config/i386/sse.md (VF): New mode iterator.
2295         (VF1): Ditto.
2296         (VF2): Ditto.
2297         (VF_128): Ditto.
2298         (SSEMODEF4): Remove.
2299         (attribute sse): Handle V8SF and V4DF modes.
2300         (<absneg:code><mode>2): Use VF mode iterator.
2301         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
2302         mode iterator.
2303         (<plusminus_insn><mode>3): Use VF mode iterator.
2304         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2305         Use VF mode iterator.
2306         (<sse>_vm<plusminus_insn><mode>3): Merge with
2307         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
2308         (mul<mode>3): Use VF mode iterator.
2309         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
2310         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
2311         mode iterator.
2312         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
2313         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
2314         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
2315         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
2316         mode iterator.
2317         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
2318         Use VF1 mode iterator.
2319         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
2320         (sqrt<VF2:mode>2): New expander.
2321         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
2322         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
2323         and sqrtv2df2.  Use VF mode iterator.
2324         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
2325         mode iterator.
2326         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
2327         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
2328         Use VF1 mode iterator.
2329         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
2330         (<smaxmin:code><mode>3): Use VF mode iterator.
2331         (*<smaxmin:code><mode>3_finite): Merge with
2332         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
2333         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2334         (<sse>_vm<smaxmin:code><mode>2): Merge with
2335         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
2336         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
2337         mode iterator.
2338         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
2339         mode iterator.
2340         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
2341         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
2342         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
2343         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
2344         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
2345         VF mode iterator.
2346         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
2347         Use VF_128 mode iterator.
2348         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
2349         mode iterator.
2350         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
2351         VF_128 mode iterator.
2352         (vcond<mode>): Use VF mode iterator.
2353         * config/i386/predicates.md (sse_comparison_operator): Merge with
2354         avx_comparison_float_operator.  Do not declare as special_predicate.
2355         * config/i386/i386.c (struct builtin_description): Update for renamed
2356         compare patterns.
2357         (ix86_expand_args_builtin): Ditto.
2358         (ix86_expand_sse_compare_mask): Ditto.
2359
2360 2011-04-06  Richard Guenther  <rguenther@suse.de>
2361
2362         * tree-inline.c (estimate_num_insns): For calls simply account
2363         for all passed arguments and a used return value.
2364
2365 2011-04-06  Richard Guenther  <rguenther@suse.de>
2366
2367         PR tree-optimization/47663
2368         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
2369         call_stmt_time fields.
2370         (cgraph_edge_inlinable_p): Declare.
2371         (cgraph_edge_recursive_p): New inline function.
2372         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
2373         (cgraph_clone_edge): Copy it.
2374         * ipa-inline.c (cgraph_estimate_edge_time): New function.
2375         Account for call stmt time.
2376         (cgraph_estimate_time_after_inlining): Take edge argument.
2377         (cgraph_estimate_edge_growth): Account call stmt size.
2378         (cgraph_estimate_size_after_inlining): Take edge argument.
2379         (cgraph_mark_inline_edge): Adjust.
2380         (cgraph_check_inline_limits): Likewise.
2381         (cgraph_recursive_inlining_p): Remove.
2382         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
2383         (cgraph_decide_recursive_inlining): Take edge argument and
2384         adjust.
2385         (cgraph_decide_inlining_of_small_functions): Do not avoid
2386         diags for recursive inlining here.
2387         (cgraph_flatten): Adjust.
2388         (cgraph_decide_inlining_incrementally): Likewise.
2389         (estimate_function_body_sizes): Remove call cost handling.
2390         (compute_inline_parameters): Initialize caller edge call costs.
2391         (cgraph_estimate_edge_growth): New function.
2392         (cgraph_estimate_growth): Use it.
2393         (cgraph_edge_badness): Likewise.
2394         (cgraph_check_inline_limits): Take an edge argument.
2395         (cgraph_decide_inlining_of_small_functions): Adjust.
2396         (cgraph_decide_inlining): Likewise.
2397         * tree-inline.c (estimate_num_insns): Only account for call
2398         return value if it is used.
2399         (expand_call_inline): Avoid diagnostics on recursive inline
2400         functions here.
2401         * lto-cgraph.c (lto_output_edge): Output edge call costs.
2402         (input_edge): Input edge call costs.
2403
2404 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2405
2406         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
2407
2408 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2409
2410         * doc/invoke.texi (Spec Files): Fix typo.
2411
2412 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2413
2414         * profile.c (branch_prob): Move declaration of local variable.  Remove
2415         obsolete ??? comment.  Expand the location explicitly instead of using
2416         the LOCATION_FILE and LOCATION_LINE macros.
2417
2418 2011-04-06  Wei Guozhi  <carrot@google.com>
2419
2420         PR target/47855
2421         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
2422         (arm_cond_branch): Likewise.
2423         (arm_cond_branch_reversed): Likewise.
2424         (arm_jump): Likewise.
2425         (push_multi): Likewise.
2426         * config/arm/constraints.md (Py): New constraint.
2427
2428 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2429
2430         PR bootstrap/48471
2431         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
2432         Move these...
2433         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
2434         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
2435         #ifdef DBX_DEBUGGING_INFO.
2436
2437 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2438
2439         PR bootstrap/48403
2440         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2441         if old and new states differ.
2442
2443 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2444
2445         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
2446         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
2447         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2448         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
2449         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
2450         mcfv4e): Use Alias.
2451         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
2452         ColdFire options to -mcpu= options.
2453
2454 2011-04-05  Jeff Law  <law@redhat.com>
2455
2456         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
2457         check if BB is a successor of LOOP->header and return
2458         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2459
2460 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2461
2462         * cprop.c (struct reg_use): Remove.
2463         (reg_use_table): Make an array of RTX.
2464         (find_used_regs, constprop_register, local_cprop_pass,
2465         bypass_block): Simplify users of reg_use_table.
2466         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
2467         on one of the uses found by find_used_regs.
2468
2469 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2470
2471         PR bootstrap/48469
2472         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2473         declaration.
2474
2475 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2476
2477         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2478         as an rtx.
2479         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2480
2481 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2482
2483         PR middle-end/48441
2484         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2485
2486 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2487
2488         * combine.c: Include obstack.h.
2489         (struct insn_link): Define.
2490         (uid_log_links): Adjust type.
2491         (FOR_EACH_LOG_LINK): New macro.
2492         (insn_link_obstack): Declare.
2493         (alloc_insn_link): Define.
2494         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
2495         type of link variables.
2496         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2497         (try_combine, record_promoted_values, distribute_notes): Likewise.
2498         (distribute_links): Likewise.  Tweak prototype.
2499         (clear_log_links): Delete.
2500         (adjust_for_new_dest): Call alloc_insn_link.
2501         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2502
2503 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2504
2505         * gcse.c (modify_mem_list): Convert to an array of VECs.
2506         (canon_modify_mem_list, compute_transp): Tweak formatting.
2507         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
2508         (load_killed_in_block_p): Likewise.
2509         (record_last_mem_set_info): Likewise.
2510         (clear_modify_mem_tables): Likewise.
2511
2512 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2513
2514         PR middle-end/48461
2515         * function.c (emit_use_return_register_into_block): Only define if
2516         HAVE_return.
2517
2518 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
2519
2520         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2521
2522 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2523
2524         * config/rx/rx-opts.h: New.
2525         * config/rx/rx.c (rx_cpu_type): Remove.
2526         (rx_handle_option): Don't assert that global structures are in
2527         use.  Access variables via opts pointer.  Defer most handling of
2528         OPT_mint_register_.  Use error_at.
2529         (rx_option_override): Handle deferred OPT_mint_register_ here.
2530         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2531         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2532         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2533         (rx_cpu_types): New Enum and EnumValue entries.
2534         (mint-register=): Use Defer and use Var accordingly.
2535
2536 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2537
2538         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2539         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2540         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2541         Move these...
2542         (debug_free_queue, debug_nesting, symbol_queue_index):
2543         ...and these...
2544         * dbxout.c: ...to here.  Make static.
2545
2546 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2547
2548         * gcse.c (modify_pair): Define.  Define a VEC of it.
2549         (canon_modify_mem_list): Convert to an array of VECs.
2550         (free_insn_expr_list_list): Delete.
2551         (clear_modify_mem_tables): Call VEC_free instead.
2552         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2553         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2554         (canon_list_insert, compute_transp): Likewise.
2555
2556 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2557
2558         PR target/43920
2559         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2560         for size.
2561
2562 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2563
2564         PR target/43920
2565         * function.c (emit_use_return_register_into_block): New function.
2566         (thread_prologue_and_epilogue_insns): Use
2567         emit_use_return_register_into_block.
2568
2569 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2570
2571         PR target/43920
2572         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2573         insn.
2574
2575 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2576
2577         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2578
2579 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
2580
2581         * config/arm/arm.md (define_constants for unspec): Replace with
2582         define_c_enum.
2583         (define_constants for unspecv): Replace with define_c_enum.
2584         * config/arm/neon.md (define_constants for unspec): Replace with
2585         define_c_enum.
2586
2587 2011-04-04  Richard Henderson  <rth@redhat.com>
2588
2589         PR bootstrap/48400
2590         * dwarf2out.c (output_line_info): Always emit line info from
2591         at least one section.
2592         (dwarf2out_init): Create text_section_line_info here ...
2593         (set_cur_line_info_table): ... not here.
2594
2595 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
2596
2597         PR target/48380
2598         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2599         not called.
2600
2601         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2602
2603 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
2604
2605         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2606         (expr_equiv_p): Remove.
2607         (insert_set_in_table): Look at <dest, src> pair instead of expr.
2608         (hash_scan_set): Update call to insert_set_in_table.
2609         (dump_hash_table): Dump <dest, src> pair.
2610         (lookup_set): Simplify.  Lookup <dest, src> pair.
2611         (compute_transp): Remove, fold heavily simplified code into...
2612         (compute_local_properties): ...here.  Expect COMP and TRANSP
2613         unconditionally.
2614         (find_avail_set): Take set directly from struct expr.
2615         (find_bypass-set): Likewise.
2616         (bypass_block): Likewise.
2617         (cprop_insn): Likewise.  Remove redundant INSN_P test.
2618
2619         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2620         checks on form of COND from find_implicit_sets to here.
2621         (find_implicit_sets): Cleanup control flow. Split critical edges
2622         if it exposes implicit sets.  Allocate/resize implicit_sets as
2623         necessary.
2624         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2625         changed something.  Run df_analyze after find_implicit_sets if any
2626         edges were split.  Do not allocate implicit_sets here.
2627
2628         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2629         (gcse_obstack): Renamed to cprop_obstack.
2630         (GNEW, GNEWVEC, GNEWVAR): Remove.
2631         (gmalloc): Remove.
2632         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2633         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2634         (gcse_alloc): Likewise, and rename to cprop_alloc.
2635         (alloc_gcse_men, free_gcse_mem): Remove.
2636         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2637         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2638         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2639
2640         * cprop.c (oprs_not_set_p): Remove.
2641         (mark_set, mark_clobber): Remove.
2642         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2643         (reg_not_set_p): New function.
2644         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2645         (cprop_insn): Likewise.
2646         (cprop_jump): Use FOR_EACH_EDGE.
2647
2648 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
2649
2650         PR bootstrap/48403
2651         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2652         (rank_for_schedule): Use scheduled_insns vector instead of
2653         last_scheduled_insn.
2654         (ok_for_early_queue_removal): Likewise.
2655         (queue_to_ready): Search forward in nonscheduled_insns_begin if
2656         we have a dbg_cnt.
2657         (choose_ready): Likewise.
2658         (commit_schedule): Use VEC_iterate.
2659         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
2660         a dbg_cnt, use it and ensure the first insn is in the ready list.
2661         (haifa_sched_init): Allocate scheduled_insns.
2662         (sched_extend_ready_list): Don't allocate it; reserve space.
2663         (haifa_sched_finish): Free it.
2664
2665 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2666
2667         * optc-gen.awk: Always remove type from Variable entry before
2668         recording in var_seen.
2669
2670 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
2671
2672         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2673         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2674         call to tidy_fallthru_edges.
2675
2676 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2677
2678         * doc/options.texi (ToLower): Document.
2679         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2680         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2681         * opts.h (cl_option): Add cl_tolower field.
2682         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2683         arguments with lowercase strings.
2684         * config/rx/rx.opt (mcpu=): Add ToLower.
2685         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2686         argument.
2687
2688 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2689
2690         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2691
2692 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2693
2694         * config/vax/vax.c: Include reload.h.
2695
2696 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
2697
2698         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2699         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2700         (sparc_preferred_reload_class): New function.
2701
2702 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
2703
2704         PR debug/48401
2705         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2706         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2707
2708 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
2709
2710         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2711         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2712
2713 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
2714
2715         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2716         (ASM_OUTPUT_ALIGNED_BSS): Define.
2717
2718 2011-04-03  Michael Matz  <matz@suse.de>
2719
2720         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2721         and next_slot members.
2722         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2723         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2724         (lto_streamer_cache_append): Declare.
2725         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2726         unsigned index, remove offset parameter, ensure that we append
2727         or update existing entries.
2728         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2729         parameter, update next_slot for append.
2730         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2731         parameter.
2732         (lto_streamer_cache_insert_at): Likewise.
2733         (lto_streamer_cache_append): New function.
2734         (lto_streamer_cache_lookup): Use unsigned index.
2735         (lto_streamer_cache_get): Likewise.
2736         (lto_record_common_node): Don't test tree_node_can_be_shared.
2737         (preload_common_node): Adjust call to lto_streamer_cache_insert.
2738         (lto_streamer_cache_delete): Don't free offsets member.
2739         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2740         (lto_output_string_with_length): Use lto_output_data_stream.
2741         (lto_output_tree_header): Remove ix parameter, don't write it.
2742         (lto_output_builtin_tree): Likewise.
2743         (lto_write_tree): Adjust callers to above, don't track and write
2744         offset, write unsigned index.
2745         (output_unreferenced_globals): Don't emit all global vars.
2746         (write_global_references): Use unsigned indices.
2747         (lto_output_decl_state_refs): Likewise.
2748         (write_symbol): Likewise.
2749         * lto-streamer-in.c (lto_input_chain): Move earlier.
2750         (input_function): Use unsigned index.
2751         (input_alias_pairs): Don't read and then ignore all global vars.
2752         (lto_materialize_tree): Remove ix_p parameter, don't read index,
2753         don't pass it back, use lto_streamer_cache_append.
2754         (lto_register_var_decl_in_symtab): Use unsigned index.
2755         (lto_register_function_decl_in_symtab): Likewise.
2756         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2757         index.
2758         (lto_get_builtin_tree): Don't read index, use
2759         lto_streamer_cache_append.
2760         (lto_read_tree): Adjust call to lto_materialize_tree.
2761
2762         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2763         don't use function calls in arguments to MIN.
2764
2765         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2766         twice.
2767
2768         * gimple.c (gimple_type_leader_entry): Mark deletable.
2769
2770 2011-04-03  Alan Modra  <amodra@gmail.com>
2771
2772         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2773
2774 2011-04-03  Michael Matz  <matz@suse.de>
2775
2776         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2777         an integer.
2778         * tree.h (tree_decl_non_common.vindex): Adjust comment.
2779
2780 2011-04-03  Michael Matz  <matz@suse.de>
2781
2782         * cgraphbuild.c (record_reference): Canonicalize constructor values.
2783         * gimple-fold.c (canonicalize_constructor_val): Accept being called
2784         without function context.
2785         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2786         current_function_decl and cfun.
2787
2788 2011-04-03  Michael Matz  <matz@suse.de>
2789
2790         * tree.c (decl_init_priority_insert): Don't create entry for
2791         default priority.
2792         (decl_fini_priority_insert): Ditto.
2793         (fields_compatible_p, find_compatible_field): Remove.
2794         * tree.h (fields_compatible_p, find_compatible_field): Remove.
2795         * gimple.c (gimple_compare_field_offset): Adjust block comment.
2796
2797 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2798
2799         * combine.c (try_combine): Remove useless local variable.
2800
2801 2011-04-03  Richard Guenther  <rguenther@suse.de>
2802             Ira Rosen  <ira.rosen@linaro.org>
2803
2804         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2805         non-variable offsets and compare the remaining bases of the two
2806         accesses instead of looking for exact same data-ref.
2807
2808 2011-04-02  Kai Tietz  <ktietz@redhat.com>
2809
2810         PR target/48416
2811         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2812
2813         * i386.c (ix86_is_msabi_thiscall): New helper function.
2814         (ix86_is_type_thiscall): New helper function.
2815         (ix86_comp_type_attributes): Handle thiscall for method-functions
2816         special.
2817         (init_cumulative_args): Likewise.
2818         (find_drap_reg): Likewise.
2819         (ix86_static_chain): Likewise.
2820         (x86_this_parameter): Likewise.
2821         (x86_output_mi_thunk): Likewise.
2822
2823 2011-04-01  Olivier Hainque  <hainque@adacore.com>
2824             Nicolas Setton  <setton@adacore.com>
2825             Eric Botcazou  <ebotcazou@adacore.com>
2826
2827         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2828         (add_gnat_descriptive_type_attribute): New function.
2829         (gen_array_type_die): Call it.
2830         (gen_enumeration_type_die): Likewise.
2831         (gen_struct_or_union_type_die): Likewise.
2832         (modified_type_die): Likewise.
2833         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2834         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2835         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2836
2837 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2838
2839         PR bootstrap/48148
2840         * dwarf2out.c (resolve_addr): Don't call force_decl_die
2841         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2842
2843         Revert:
2844         2011-03-17  Richard Guenther  <rguenther@suse.de>
2845
2846         PR bootstrap/48148
2847         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2848         origin for decls in other ltrans units.
2849         (input_varpool_node): Likewise.
2850
2851 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2852
2853         PR middle-end/48335
2854         * expr.c (expand_assignment): Handle all possibilities
2855         if TO_RTX is CONCAT.
2856         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2857         (store_split_bit_field): If SUBREG_REG (op0) or
2858         op0 itself has smaller mode than word, return it
2859         for offset 0 and const0_rtx for out-of-bounds stores.
2860         If word is const0_rtx, skip it.
2861
2862 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
2863
2864         * config/h8300/h8300.c (print_operand_address): Rename to...
2865         (h8300_print_operand_address): ...this. Make static. Adjust comments.
2866         Call h8300_print_operand and h8300_print_operand_address instead of
2867         print_operand and print_operand_address. Declare.
2868         (print_operand): Renake to...
2869         (h8300_print_operand): ...this. Make static. Adjust comments.
2870         Call h8300_print_operand instead of print_operand. Declare.
2871         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2872         (h8300_register_move_cost): Likewise.
2873         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2874         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2875         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2876         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2877         * config/h8300/h8300-protos.h (print_operand): Delete.
2878         (print_operand_address): Delete.
2879
2880 2011-04-01  Richard Henderson  <rth@redhat.com>
2881
2882         PR 48400
2883         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2884         in strict mode before dwarf4.  Re-order tests to early out
2885         before switching sections.
2886
2887 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
2888
2889         * config/h8300/constraints.md: New file.
2890         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
2891         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2892         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2893         * config/h8300/predicates.md (bit_operand): Likewise.
2894         (incdec_operand): Use satisfies_constraint_M and
2895         satisfies_constraint_O.  Don't use C code block.
2896         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2897         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2898         (compute_mov_length): Use satisfies_constraint_G.
2899         (fix_bit_operand): Use satisfies_constraint_U.
2900         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2901         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2902         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2903         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2904         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2905         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2906         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2907         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2908         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2909         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2910         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2911         (EXTRA_MEMORY_CONSTRAINT): Delete.
2912
2913 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
2914             Michael Meissner  <meissner@linux.vnet.ibm.com>
2915
2916         PR target/48262
2917         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2918         operands, as per the specifications.
2919
2920         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2921         (vec_extract_evenv4sf): Ditto.
2922         (vec_extract_evenv8hi): Ditto.
2923         (vec_extract_evenv16qi): Ditto.
2924         (vec_extract_oddv4si): Ditto.
2925
2926 2011-03-31  Mark Wielaard  <mjw@redhat.com>
2927
2928         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2929         high_pc attribute if the CU has no associated code. Only output
2930         DW_AT_entry_pc for CU if not generating strict dwarf and
2931         dwarf_version < 4.
2932
2933 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
2934
2935         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2936         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2937         out of ...
2938         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2939         * final.c (final_start_function): Call the new function rather
2940         than using a NULL argument for dwarf2out_frame_debug.
2941
2942         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2943         that contains the prologue.
2944
2945         * haifa-sched.c (queue_insn): New arg REASON.  All callers
2946         changed.  Print it in debugging output.
2947
2948         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2949
2950         * sched-ebb.c (begin_schedule_ready): Remove second argument.
2951         Split most of the code into...
2952         (begin_move_insn): ... here.  New function.
2953         (ebb_sched_info): Add a pointer to it.
2954         * haifa-sched.c (scheduled_insns): New static variable.
2955         (sched_extend_ready_list): Allocate it.
2956         (schedule_block): Use it to record the order of scheduled insns.
2957         Perform RTL changes to move insns only after all scheduling
2958         decisions have been made.
2959         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2960         begin_move_insn field.
2961         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2962         * sched-int.h (struct haifa_sched_info): Remove second argument
2963         from begin_schedule_ready hook.  Add new member begin_move_insn.
2964         * sched-rgn.c (begin_schedule_ready): Remove second argument.
2965         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2966
2967         * haifa-sched.c (prune_ready_list): New function, broken out of
2968         schedule_block.
2969         (schedule_block): Use it.
2970
2971 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2972
2973         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2974
2975 2011-04-01  Kai Tietz  <ktietz@redhat.com>
2976
2977         * config.gcc (*-*-mingw*): Allow as option the
2978         posix threading model.
2979         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
2980         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2981         definition.
2982         (CPP_SPEC): Add pthread/no-pthread handling.
2983         (LIB_SPEC): Likewise.
2984         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2985         (LIB_SPEC): Likewise.
2986         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2987         flag to pass -pthread option for shared libgcc build.
2988         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2989         for shared libgcc build.
2990         * config/i386/t-mingw-pthread: New file.
2991         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2992         New define to enable use of library pthread by default.
2993         * config/i386/mingw.opt (pthread): New driver option.
2994         (no-pthread): New driver option.
2995         * config/i386/cygming.opt: Make sure trailing empty line is retained.
2996         * config/i386/mingw-w64.opt: Likewise.
2997
2998 2011-04-01  Gary Funck <gary@intrepid.com>
2999
3000         * c-decl.c (grokdeclarator): Fix formatting.
3001
3002 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3003
3004         * expr.c (emit_block_move_via_movmem): Use n_generator_args
3005         instead of n_operands.
3006         (set_storage_via_setmem): Likewise.
3007         * optabs.c (maybe_gen_insn): Likewise.
3008         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
3009         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
3010         (mips_expand_builtin_direct): Likewise.
3011         * config/spu/spu.c (expand_builtin_args): Likewise.
3012
3013 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3014
3015         * recog.h (insn_data_d): Add n_generator_args.
3016         * genoutput.c (data): Likewise.
3017         (output_insn_data): Print it.
3018         (max_opno, num_dups): Delete.
3019         (scan_operands): Just fill in "d->operand[...]".
3020         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
3021
3022 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3023
3024         * gensupport.h (pattern_stats): New structure.
3025         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
3026         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
3027         (max_operand_1, max_operand_vec): Delete.
3028         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
3029
3030 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
3031
3032         * emit-rtl.c (emit_pattern_after_setloc): New function.
3033         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
3034         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
3035         (emit_pattern_after): New function.
3036         (emit_insn_after, emit_jump_insn_after): Call it.
3037         (emit_call_insn_after, emit_debug_insn_after): Likewise.
3038         (emit_pattern_before_setloc): New function.
3039         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
3040         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
3041         Likewise.
3042         (emit_pattern_before): New function.
3043         (emit_insn_before, emit_jump_insn_before): Call it.
3044         (emit_call_insn_before, emit_debug_insn_before): Likewise.
3045
3046 2011-03-31  Richard Henderson  <rth@redhat.com>
3047
3048         * dwarf2out.c (dw_separate_line_info_ref): Remove.
3049         (dw_separate_line_info_entry): Remove.
3050         (enum dw_line_info_opcode): New.
3051         (dw_line_info_entry): Use it.
3052         (dw_line_info_table, dw_line_info_table_p): New.
3053         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
3054         (line_info_table, line_info_label_num): Remove.
3055         (line_info_table_in_use): Remove.
3056         (separate_line_info_table): Remove.
3057         (separate_line_info_table_allocated): Remove.
3058         (separate_line_info_table_in_use): Remove.
3059         (LINE_INFO_TABLE_INCREMENT): Remove.
3060         (line_info_label_num): New.
3061         (cur_line_info_table): New.
3062         (text_section_line_info, cold_text_section_line_info): New.
3063         (separate_line_info): New.
3064         (SEPARATE_LINE_CODE_LABEL): Remove.
3065         (print_dwarf_line_table): Remove.
3066         (debug_dwarf): Don't dump it.
3067         (output_one_line_info_table): New.
3068         (output_line_info): Use it.
3069         (new_line_info_table): New.
3070         (set_cur_line_info_table): New.
3071         (dwarf2out_switch_text_section): Use it.
3072         (dwarf2out_begin_function): Likewise.
3073         (push_dw_line_info_entry): New.
3074         (dwarf2out_source_line): Rewrite for new line info tables.
3075         (dwarf2out_init): Remove dead initailizations.
3076
3077 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
3078
3079         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
3080         various flags.
3081         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
3082         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
3083         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
3084         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
3085         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
3086         * opt-functions.awk (flag_init, switch_bit_fields): New.
3087         (switch_flags): Don't handle flags moved to bit-fields.  Don't
3088         generate CL_MISSING_OK or CL_SAVE.
3089         * optc-gen.awk: Update to generate bit-field output as well as
3090         flags field.
3091         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
3092         bit-field instead of CL_REJECT_DRIVER flag.
3093         * opts-common.c (generate_canonical_option,
3094         decode_cmdline_option): Use bit-fields instead of CL_* flags.
3095         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
3096         instead of CL_REJECT_NEGATIVE flag.
3097         * toplev.c (print_switch_values): Use cl_report bit-field instead
3098         of CL_REPORT flag.
3099
3100 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3101
3102         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
3103         a zero minimum index only if it is redundant.
3104
3105 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
3106
3107         PR rtl-optimization/48381
3108         * ira-color.c (assign_hard_reg): Use hard reg set intersection
3109         instead of ira_class_hard_reg_index for calculating conflicting
3110         hard registers.
3111
3112 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
3113
3114         * cprop.c: Clean up hash table building.
3115         (reg_avail_info): Remove.
3116         (oprs_available_p): Remove.
3117         (record_last_reg_set_info): Remove.
3118         (record_last_set_info): Remove.
3119         (reg_available_p): New function.
3120         (gcse_constant_p): Do not treat unfolded conditions as constants.
3121         (make_set_regs_unavailable): New function.
3122         (hash_scan_set): Simplify with new reg_available_p.
3123         (compute_hash_table_work): Traverse insns stream only once.
3124         Do not compute reg_avail_info. Traverse insns in reverse order.
3125         Record implicit sets after recording explicit sets from the block.
3126
3127 2011-03-31  Michael Matz  <matz@suse.de>
3128
3129         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
3130
3131 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
3132
3133         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
3134         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
3135         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3136         (h8300_mode_dependent_address_p): New function.
3137         (h8300_get_index): Make static.
3138
3139 2011-03-31  Jeff Law  <law@redhat.com>
3140
3141         * reload1.c (elimination_effects): Fix typo in recent change.
3142
3143         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
3144         typo potentially leading to null pointer dereference.
3145
3146         * caller-save.c (new_saved_hard_reg): Eliminate return value.
3147         (setup_save_areas): Corresponding changes to avoid useless
3148         assignments.
3149
3150         * jump.c (reversed_comparison_code_parts): Avoid successive return
3151         statements when REVERSE_CONDITION is defined.
3152
3153         * expr.c (expand_assignment): Avoid useless assignments.
3154         (expand_expr_real_1): Likewise.
3155         (expand_expr_real_2): Avoid useless statements.
3156
3157         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
3158
3159         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3160
3161         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
3162         statements.
3163
3164         * stmt.c (expand_expr_stmt): Avoid useless assignment.
3165
3166 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
3167
3168         PR target/47109
3169         * doc/tm.texi.in (TARGET_VERSION): Remove.
3170         * doc/tm.texi: Regenerate.
3171         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
3172         * collect2.c (main): Don't use TARGET_VERSION.
3173         * mips-tdump.c (main): Don't use TARGET_VERSION.
3174         * mips-tfile.c (main): Don't use TARGET_VERSION.
3175         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
3176         * config/rs6000/vxworksae.h: Remove.
3177         * config/alpha/alpha.h (TARGET_VERSION): Remove.
3178         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
3179         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
3180         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
3181         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3182         * config/arm/arm.h (TARGET_VERSION): Remove.
3183         * config/arm/coff.h (TARGET_VERSION): Remove.
3184         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
3185         * config/arm/elf.h (TARGET_VERSION): Remove.
3186         * config/arm/freebsd.h (TARGET_VERSION): Remove.
3187         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
3188         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
3189         * config/arm/pe.h (TARGET_VERSION): Remove.
3190         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
3191         * config/arm/semi.h (TARGET_VERSION): Remove.
3192         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
3193         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
3194         * config/arm/vxworks.h (TARGET_VERSION): Remove.
3195         * config/avr/avr.h (TARGET_VERSION): Remove.
3196         * config/bfin/bfin.h (TARGET_VERSION): Remove.
3197         * config/fr30/fr30.h (TARGET_VERSION): Remove.
3198         * config/frv/frv.h (TARGET_VERSION): Remove.
3199         * config/h8300/h8300.h (TARGET_VERSION): Remove.
3200         * config/i386/cygwin.h (TARGET_VERSION): Remove.
3201         * config/i386/darwin.h (TARGET_VERSION): Remove.
3202         * config/i386/darwin64.h (TARGET_VERSION): Remove.
3203         * config/i386/djgpp.h (TARGET_VERSION): Remove.
3204         * config/i386/freebsd.h (TARGET_VERSION): Remove.
3205         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
3206         * config/i386/gnu.h (TARGET_VERSION): Remove.
3207         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
3208         * config/i386/i386elf.h (TARGET_VERSION): Remove.
3209         * config/i386/linux.h (TARGET_VERSION): Remove.
3210         * config/i386/linux64.h (TARGET_VERSION): Remove.
3211         * config/i386/lynx.h (TARGET_VERSION): Remove.
3212         * config/i386/mingw32.h (TARGET_VERSION): Remove.
3213         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
3214         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
3215         * config/i386/netware.h (TARGET_VERSION): Remove.
3216         * config/i386/nto.h (TARGET_VERSION): Remove.
3217         * config/i386/openbsd.h (TARGET_VERSION): Remove.
3218         * config/i386/vxworks.h (TARGET_VERSION): Remove.
3219         * config/ia64/elf.h (TARGET_VERSION): Remove.
3220         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
3221         * config/ia64/hpux.h (TARGET_VERSION): Remove.
3222         * config/ia64/linux.h (TARGET_VERSION): Remove.
3223         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3224         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
3225         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3226         * config/lm32/lm32.h (TARGET_VERSION): Remove.
3227         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
3228         * config/m32c/m32c.h (TARGET_VERSION): Remove.
3229         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
3230         * config/m32r/m32r.h (TARGET_VERSION): Remove.
3231         * config/m68k/linux.h (TARGET_VERSION): Remove.
3232         * config/m68k/m68k.h (TARGET_VERSION): Remove.
3233         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
3234         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
3235         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
3236         * config/mep/mep.h (TARGET_VERSION): Remove.
3237         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
3238         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3239         * config/mips/iris6.h (MACHINE_TYPE): Remove.
3240         * config/mips/linux.h (TARGET_VERSION): Remove.
3241         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
3242         * config/mips/vxworks.h (TARGET_VERSION): Remove.
3243         * config/mmix/mmix.h (TARGET_VERSION): Remove.
3244         * config/mn10300/linux.h (TARGET_VERSION): Remove.
3245         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
3246         * config/pa/pa.h (TARGET_VERSION): Remove.
3247         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
3248         * config/picochip/picochip.h (TARGET_VERSION): Remove.
3249         * config/rs6000/aix.h (TARGET_VERSION): Remove.
3250         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
3251         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
3252         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
3253         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
3254         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
3255         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
3256         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
3257         * config/rs6000/linux.h (TARGET_VERSION): Remove.
3258         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
3259         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
3260         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
3261         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
3262         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
3263         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
3264         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
3265         * config/s390/linux.h (TARGET_VERSION): Remove.
3266         * config/s390/s390.h (TARGET_VERSION): Remove.
3267         * config/s390/tpf.h (TARGET_VERSION): Remove.
3268         * config/score/score.h (TARGET_VERSION): Remove.
3269         * config/sh/linux.h (TARGET_VERSION): Remove.
3270         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
3271         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
3272         * config/sh/sh.h (TARGET_VERSION): Remove.
3273         * config/sh/sh64.h (TARGET_VERSION): Remove.
3274         * config/sh/superh.h (TARGET_VERSION): Remove.
3275         * config/sh/vxworks.h (TARGET_VERSION): Remove.
3276         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
3277         * config/sparc/linux.h (TARGET_VERSION): Remove.
3278         * config/sparc/linux64.h (TARGET_VERSION): Remove.
3279         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
3280         TARGET_NAME32, TARGET_NAME): Remove.
3281         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
3282         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
3283         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
3284         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
3285         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
3286         * config/spu/spu.h (TARGET_VERSION): Remove.
3287         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
3288         * config/v850/v850.h (TARGET_VERSION): Remove.
3289         * config/vax/linux.h (TARGET_VERSION): Remove.
3290         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
3291         * config/xtensa/elf.h (TARGET_VERSION): Remove.
3292         * config/xtensa/linux.h (TARGET_VERSION): Remove.
3293
3294 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3295
3296         PR target/48142
3297         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
3298         frame-related from frame-unrelated adjustments to the stack pointer.
3299
3300 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
3301
3302         * common.opt (fdebug-types-section): Move earlier.
3303         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
3304
3305 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
3306
3307         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
3308         var.
3309
3310 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
3311
3312         * tree.h (CASE_CHAIN): Define.
3313         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
3314         (gimple_redirect_edge_and_branch): Likewise.
3315
3316 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3317
3318         PR middle-end/48367
3319         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
3320         calculation.
3321
3322 2011-03-30  Jeff Law  <law@redhat.com>
3323
3324         * PR bootstrap/48371
3325         * reload1.c (reload): Fix botch in last change.
3326
3327         * reload.h (struct reload): Fix typo introduced in last change.
3328
3329 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3330
3331         * config/arm/arm.opt (mhard-float, msoft-float): Mark
3332         Undocumented.  Remove help text.
3333         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
3334         -mhard-float.
3335
3336 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3337
3338         * doc/options.texi (NegativeAlias): Document.
3339         (Alias): Mention NegativeAlias.
3340         * opt-functions.awk: Handle NegativeAlias.
3341         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
3342         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
3343         * opts.h (CL_NEGATIVE_ALIAS): Define.
3344         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
3345         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
3346         OPT_mspe_.
3347         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
3348         Alias entries.
3349         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3350         mno-spe and mno-isel instead of mspe=no and -misel=no.
3351
3352 2011-03-29  Mark Wielaard  <mjw@redhat.com>
3353
3354         * common.opt (fdebug-types-section): New flag.
3355         * doc/invoke.texi: Document new -fno-debug-types-section flag.
3356         * dwarf2out.c (use_debug_types): New define.
3357         (struct die_struct): Mark die_id with GTY desc use_debug_types.
3358         (print_die): Guard output of type unit signatures using
3359         use_debug_types.
3360         (build_abbrev_table): Replace assert of dwarf_version >= 4
3361         with assert on use_debug_types.
3362         (size_of_die): Likewise.
3363         (unmark_dies): Likewise.
3364         (value_format): Decide AT_ref_external form on use_debug_types.
3365         (output_die): Replace dwarf_version version check guard with
3366         use_debug_types where appropriate.
3367         (modified_type_die): Likewise.
3368         (gen_reference_type_die): Likewise.
3369         (dwarf2out_start_source_file): Likewise.
3370         (dwarf2out_end_source_file): Likewise.
3371         (prune_unused_types_walk_attribs): Likewise.
3372         (dwarf2out_finish): Likewise.
3373
3374 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3375
3376         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
3377
3378 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3379
3380         PR rtl-optimization/48332
3381         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
3382         mode of input operand N and modeN to its actual mode.
3383
3384 2011-03-30  Jeff Law  <law@redhat.com>
3385
3386         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
3387         define accessor macro.
3388         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
3389         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
3390         (reg_equiv_init): Likewise.
3391         (reg_equivs_size): New variable.
3392         (reg_equiv_init_size): Remove.
3393         (allocate_initial_values): Move prototype to here from....
3394         * integrate.h (allocate_initial_values): Remove prototype.
3395         * integrate.c: Include reload.h.
3396         (allocate_initial_values): Corresponding changes.
3397         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
3398         (fix_reg_equiv_init, no_equiv): Corresponding changes.
3399         (update_equiv_regs): Corresponding changes.
3400         (ira): Corresponding changes.
3401         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
3402         (push_secondary_reload): Corresponding changes.
3403         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
3404         (make_memloc, find_reloads_address): Corresponding changes.
3405         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
3406         (find_reloads_address_1): Corresponding changes.
3407         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
3408         (refers_to_regno_for_reload_p): Corresponding changes.
3409         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
3410         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
3411         * reload1.c: Include ggc.h.
3412         (grow_reg_equivs): New function.
3413         (replace_pseudos_in, reload): Corresponding changes.
3414         (calculate_needs_all_insns, alter_regs): Corresponding changes.
3415         (eliminate_regs_1, elimination_effects): Corresponding changes.
3416         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
3417         (delete_output_reload): Likewise.
3418         * caller-save.c (mark_referenced_regs): Corresponding changes.
3419         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
3420         * frv/predicates.md (frv_load_operand): Corresponding changes.
3421         * microblaze/microblaze.c (double_memory_operand): Corresponding
3422         changes.
3423         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
3424         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
3425         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
3426         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
3427         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
3428         changes.
3429         * pa/pa.c (emit_move_sequence): Corresponding changes.
3430         * vax/vax.c (nonindexed_address_p): Corresponding changes.
3431
3432 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3433
3434         PR target/47551
3435         * config/arm/arm.c (coproc_secondary_reload_class): Handle
3436         structure modes.  Don't check neon_vector_mem_operand for
3437         vector or structure modes.
3438
3439 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3440             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3441
3442         PR target/43590
3443         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
3444         operand 1 and reshuffle the operands to match.
3445         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
3446
3447 2011-03-30  Christian Schüler  <cschueler@gmx.de>
3448
3449         PR driver/48208
3450         * config/c.opt (F): Added 'Driver' to -F option.
3451
3452         PR driver/48260
3453         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
3454           handler function.
3455         * config/darwin.opt: Added '-arch' option.
3456
3457 2011-03-30  Nick Clifton  <nickc@redhat.com>
3458
3459         * config/rx/rx.md: Add peepholes and patterns to combine
3460         extending loads and simple arithmetic instructions.
3461         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3462         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3463         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3464         modes to use pre-decrement and post-increment addressing.
3465         (rx_is_restricted_memory_address): Add range checking of REG+INT
3466         addresses.
3467         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
3468         (rx_memory_move_cost): Adjust cost of stores.
3469         (rx_adjust_insn_length): New function.
3470
3471 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
3472
3473         PR c/48305
3474         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3475         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3476         matching arg00/arg01 types.
3477
3478 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3479
3480         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3481         last_location to UNKNOWN_LOCATION.
3482
3483 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3484
3485         PR target/48349
3486         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3487         FLOAT_SSE_REGS.
3488
3489 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3490             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3491
3492         PR bootstrap/48337
3493         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3494         Init(PROCESSOR_V7).
3495         (sparc_cpu): Likewise.
3496         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3497         PROCESSOR_V7.
3498
3499 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3500
3501         PR target/48336
3502         PR middle-end/48342
3503         PR rtl-optimization/48345
3504         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3505         hard regs for given mode from profitable regs when doing secondary
3506         allocation.
3507
3508 2011-03-29  Jeff Law  <law@redhat.com>
3509
3510         PR bootstrap/48327
3511         * tree-ssa-threadupdate.c (struct redirection_data): Remove
3512         do_not_duplicate field.
3513         (lookup_redirection_data): Corresponding changes.
3514         (create_duplicates): Always create a template block.
3515         (redirect_edges): Remove code which reused the original block
3516         when it was going to become unreachable code.
3517         (thread_block): Don't set do_not_duplicate field.
3518
3519 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
3520
3521         * lto-opts.c (register_user_option_p, lto_register_user_option):
3522         Make type argument unsigned.
3523         * lto-streamer.h (lto_register_user_option): Make type argument
3524         unsigned.
3525         * opth-gen.awk: Make CL_* macros unsigned.
3526         * opts-common.c (find_opt): Make lang_mask argument unsigned.
3527         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3528         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3529         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3530         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3531         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3532         (find_opt): Make lang_mask argument unsigned.
3533
3534 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3535
3536         PR rtl-optimization/48331
3537         PR rtl-optimization/48334
3538         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
3539         for any used algorithm.
3540
3541 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3542
3543         * ira-conflicts.c (build_object_conflicts): Add unused attribute
3544         to parent_max.
3545
3546 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
3547
3548         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
3549         (alpha_option_override): Don't set alpha_sr_alias_set.
3550         (emit_frame_store_1): Use gen_frame_mem rather than calling
3551         set_mem_alias_set.
3552         (alpha_expand_epilogue): Ditto.
3553
3554 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
3555
3556         PR tree-optimization/48290
3557         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
3558         vectorization, check that relevant phis in the basic block after
3559         the inner loop are really inner loop's exit phis.
3560
3561 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
3562
3563         PR debug/48190
3564         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
3565         (cached_dw_loc_list_def): New structure.
3566         (cached_dw_loc_list): New typedef.
3567         (cached_dw_loc_list_table): New variable.
3568         (cached_dw_loc_list_table_hash): New function.
3569         (cached_dw_loc_list_table_eq): Likewise.
3570         (add_location_or_const_value_attribute): Take a bool cache_p.
3571         Cache the list when the parameter is true.
3572         (gen_formal_parameter_die): Update caller.
3573         (gen_variable_die): Likewise.
3574         (dwarf2out_finish): Likewise.
3575         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
3576         while generating debug info for the decl.
3577         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
3578         (dwarf2out_init): Initialize cached_dw_loc_list_table.
3579         (resolve_addr): Cache the result of resolving a chain of
3580         location lists.
3581
3582 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3583
3584         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
3585         conflict object hard regset nodes have intersecting hard reg sets.
3586
3587         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
3588         after regstat_init_n_sets_and_refs.
3589
3590         * ira.c: Add more comments at the top.
3591         (setup_stack_reg_pressure_class, setup_pressure_classes):
3592         Add comments how we compute the register pressure classes.
3593         (setup_allocno_and_important_classes): Add more comments.
3594         (setup_class_translate_array, reorder_important_classes)
3595         (setup_reg_class_relations): Add comments.
3596
3597         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
3598         start of the file.
3599
3600         * ira-color.c: Add 2011 to the Copyright line.
3601         (assign_hard_reg):  Add more comments.
3602         (improve_allocation): Ditto.
3603
3604         * ira-costs.c: Add 2011 to the Copyright line.
3605         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
3606         comments.
3607         (setup_regno_cost_classes_by_mode): Ditto.
3608
3609         Initial patches from ira-improv branch:
3610
3611         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3612
3613         * ira-build.c (ira_create_object): Remove initialization of
3614         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
3615         (ira_create_allocno): Remove initialization of
3616         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
3617         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
3618         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3619         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
3620         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
3621         Initialize ALLOCNO_ADD_DATA.
3622         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
3623         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
3624         ALLOCNO_REG.
3625         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
3626         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
3627
3628         * ira.c (ira_reallocate): Remove.
3629         (setup_pressure_classes): Call
3630         ira_init_register_move_cost_if_necessary.  Use
3631         ira_register_move_cost instead of ira_get_register_move_cost.
3632         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
3633         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
3634
3635         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
3636         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3637         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
3638         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
3639         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
3640         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
3641         Fix formatting.
3642         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
3643         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3644         (struct allocno_color_data): New.
3645         (allocno_color_data_t): New typedef.
3646         (allocno_color_data): New definition.
3647         (ALLOCNO_COLOR_DATA): New macro.
3648         (struct object_color_data): New.
3649         (object_color_data_t): New typedef.
3650         (object_color_data): New definition.
3651         (OBJECT_COLOR_DATA): New macro.
3652         (update_copy_costs, calculate_allocno_spill_cost): Call
3653         ira_init_register_move_cost_if_necessary.  Use
3654         ira_register_move_cost instead of ira_get_register_move_cost.
3655         (move_spill_restore, update_curr_costs): Ditto.
3656         (allocno_spill_priority): Make it inline.
3657         (color_pass): Allocate and free allocno_color_dat and object_color_data.
3658         (struct coalesce_data, coalesce_data_t): New.
3659         (allocno_coalesce_data): New definition.
3660         (ALLOCNO_COALESCE_DATA): New macro.
3661         (merge_allocnos, coalesced_allocno_conflict_p): Use
3662         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
3663         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
3664         (coalesce_allocnos): Ditto.
3665         (setup_coalesced_allocno_costs_and_nums): Ditto.
3666         (collect_spilled_coalesced_allocnos): Ditto.
3667         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
3668         (setup_slot_coalesced_allocno_live_ranges): Ditto.
3669         (coalesce_spill_slots): Ditto.
3670         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
3671         free allocno_coalesce_data.
3672
3673         * ira-conflicts.c: Fix formatting.
3674         (process_regs_for_copy): Call
3675         ira_init_register_move_cost_if_necessary.  Use
3676         ira_register_move_cost instead of ira_get_register_move_cost.
3677         (build_object_conflicts): Optimize.
3678
3679         * ira-costs.c (record_reg_classes): Optimize.  Call
3680         ira_init_register_move_cost_if_necessary.  Use
3681         ira_register_move_cost, ira_may_move_in_cost, and
3682         ira_may_move_out_cost instead of ira_get_register_move_cost and
3683         ira_get_may_move_cost.
3684         (record_address_regs): Ditto.
3685         (scan_one_insn): Optimize.
3686         (find_costs_and_classes): Optimize.
3687         (process_bb_node_for_hard_reg_moves): Call
3688         ira_init_register_move_cost_if_necessary.  Use
3689         ira_register_move_cost instead of ira_get_register_move_cost.
3690
3691         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
3692         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
3693         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
3694         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
3695         definitions.
3696         (ira_initiate_emit_data, ira_finish_emit_data)
3697         (create_new_allocno): New functions.
3698         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
3699         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
3700         Use ira_register_move_cost instead of ira_get_register_move_cost.
3701
3702         * ira-int.h: Fix some comments.
3703         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
3704         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3705         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
3706         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
3707         add_data.
3708         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
3709         bitfield after mode.  Make hard_regno a short int.  Make
3710         hard_regno short.  Remove first_coalesced_allocno and
3711         next_coalesced_allocno.  Move mem_optimized_dest_p,
3712         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
3713         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
3714         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
3715         temp, colorable_p.  Add new member add_data.
3716         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
3717         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
3718         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
3719         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
3720         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
3721         (ALLOCNO_ADD_DATA): New macro.
3722         (ira_emit_data_t): New typedef.
3723         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
3724         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
3725         from struct ira_allocno.
3726         (ALLOCNO_EMIT_DATA): New macro.
3727         (ira_allocno_emit_data, allocno_emit_reg): New.
3728         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
3729         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
3730         (OBJECT_ADD_DATA): New macro.
3731         (ira_reallocate): Remove.
3732         (ira_initiate_emit_data, ira_finish_emit_data): New.
3733         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
3734         (ira_init_register_move_cost_if_necessary): New.
3735         (ira_object_conflict_iter_next): Merge into
3736         ira_object_conflict_iter_cond.
3737         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
3738
3739         * ira-live.c (process_single_reg_class_operands): Call
3740         ira_init_register_move_cost_if_necessary.  Use
3741         ira_register_move_cost instead of ira_get_register_move_cost.
3742
3743         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3744
3745         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3746
3747         * ira-costs.c: Fix formatting.
3748         (cost_classes, cost_classes_num): Remove.
3749         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3750         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3751         (cost_classes_del, cost_classes_htab): New.
3752         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3753         (initiate_regno_cost_classes, setup_cost_classes): New.
3754         (setup_regno_cost_classes_by_aclass): New.
3755         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3756         (record_reg_classes): Use regno_cost_classes instead of
3757         cost_classes.  Move checking opposite operand up.
3758         (record_address_regs): Use regno_cost_classes
3759         instead of cost_classes.
3760         (scan_one_insn): Ditto.  Use always general register.
3761         (print_allocno_costs): Use regno_cost_classes instead of
3762         cost_classes.
3763         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
3764         (find_costs_and_classes): Set up cost classes for each registers.
3765         Use also their mode for this.  Use regno_cost_classes instead of
3766         cost_classes.
3767         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3768         cost_classes.
3769         (free_ira_costs, ira_init_costs): Don't use cost_classes.
3770         (ira_costs, ira_set_pseudo_classes): Call
3771         initiate_regno_cost_classes and finish_regno_cost_classes.
3772
3773         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3774
3775         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3776
3777         * target.def (ira_cover_classes): Remove.
3778
3779         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3780
3781         * doc/tm.texi.in: Ditto.
3782
3783         * ira-conflicts.c: Remove mentioning cover classes from the file.
3784         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
3785         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
3786
3787         * targhooks.c (default_ira_cover_classes): Remove.
3788
3789         * targhooks.h (default_ira_cover_classes): Ditto.
3790
3791         * haifa-sched.c: Remove mentioning cover classes from the file.
3792         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3793         ira_pressure_classes and ira_pressure_classes_num instead of
3794         ira_reg_class_cover_size and ira_reg_class_cover.  Use
3795         sched_regno_pressure_class instead of sched_regno_cover_class.
3796         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3797         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3798
3799         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
3800         classes from the file.
3801         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3802         (struct object_hard_regs, struct object_hard_regs_node): New.
3803         (struct ira_object): New members profitable_hard_regs,
3804         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3805         (struct ira_allocno): Rename cover_class to aclass.  Rename
3806         cover_class_cost and updated_cover_class_cost to class_cost and
3807         updated_class_cost.  Remove splay_removed_p and
3808         left_conflict_size.  Add new members colorable_p.
3809         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3810         (ALLOCNO_COLORABLE_P): New macro.
3811         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3812         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3813         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3814         (OBJECT_...): Rename parameter C to O.
3815         (OBJECT_PROFITABLE_HARD_REGS): New macro.
3816         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3817         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3818         (struct target_ira_int): New members x_ira_max_memory_move_cost,
3819         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3820         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3821         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3822         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
3823         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
3824         x_ira_reg_class_subunion.
3825         (ira_max_memory_move_cost, ira_max_register_move_cost)
3826         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3827         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3828         (ira_important_class_nums, ira_reg_class_superunion): New macros.
3829         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3830         (ira_reg_class_union): Rename to ira_reg_class_subunion.
3831         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3832         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3833         (ira_tune_allocno_costs_and_cover_classes): Rename to
3834         ira_tune_allocno_costs.
3835         (ira_debug_hard_regs_forest): New.
3836         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3837         (ira_object_conflict_iter_next): Fix comments.
3838         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3839         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3840         cover_class to aclass.
3841         (ira_allocate_and_accumulate_costs): Ditto.
3842         (ira_allocate_and_set_or_copy_costs): Ditto.
3843
3844         * opts.c (decode_options): Remove ira_cover_class check.
3845
3846         * ira-color.c: Remove mentioning cover classes from the file.  Use
3847         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3848         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3849         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3850         (splay-tree.h): Remove include.
3851         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3852         before copy_freq_compare_func.
3853         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3854         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3855         New definitions.
3856         (hard_regs_roots, hard_regs_node_vec): Ditto.
3857         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3858         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3859         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3860         (create_new_object_hard_regs_node): Ditto.
3861         (add_new_object_hard_regs_node_to_forest): Ditto.
3862         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3863         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3864         Ditto.
3865         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3866         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3867         (remove_unused_object_hard_regs_nodes): Ditto.
3868         (enumerate_object_hard_regs_nodes): Ditto.
3869         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3870         (object_hard_regs_subnode_t): Ditto.
3871         (struct object_hard_regs_subnode): Ditto.
3872         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3873         (setup_object_hard_regs_subnode_index): Ditto.
3874         (get_object_hard_regs_subnodes_num): Ditto.
3875         (form_object_hard_regs_nodes_forest): Ditto.
3876         (finish_object_hard_regs_nodes_tree): Ditto.
3877         (finish_object_hard_regs_nodes_forest): Ditto.
3878         (allocnos_have_intersected_live_ranges_p): Rename to
3879         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3880         (pseudos_have_intersected_live_ranges_p): Rename to
3881         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3882         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3883         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3884         (update_copy_costs): Remove assert.  Skip cost update if the hard
3885         reg does not belong the class.
3886         (assign_hard_reg): Process only profitable hard regs.
3887         (uncolorable_allocnos_num): Make it scalar.
3888         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3889         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3890         and ira_reg_class_max_nregs.
3891         (bucket_allocno_compare_func): Check frequency first.
3892         (sort_bucket): Add compare function as a parameter.
3893         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3894         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3895         (push_allocno_to_stack): Rewrite for checking new allocno
3896         colorability.
3897         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
3898         (push_only_colorable): Pass new parameter to sort_bucket.
3899         (push_allocno_to_spill): Remove.
3900         (allocno_spill_priority_compare): Make it inline and rewrite.
3901         (splay_tree_allocate, splay_tree_free): Remove.
3902         (allocno_spill_sort_compare): New function.
3903         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
3904         build and use splay tree.  Choose first allocno in uncolorable
3905         allocno bucket to spill.  Remove setting spill cost.
3906         (all_conflicting_hard_regs): Remove.
3907         (setup_allocno_available_regs_num): Check only profitable hard
3908         regs.  Print info about hard regs nodes.
3909         (setup_allocno_left_conflicts_size): Remove.
3910         (put_allocno_into_bucket): Don't call
3911         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
3912         (improve_allocation): New.
3913         (color_allocnos): Call setup_profitable_hard_regs,
3914         form_object_hard_regs_nodes_forest, improve_allocation,
3915         finish_object_hard_regs_nodes_forest.  Setup spill cost.
3916         (print_loop_title): Use pressure classes.
3917         (color_allocnso): Ditto.
3918         (do_coloring): Remove allocation and freeing splay_tree_node_pool
3919         and allocnos_for_spilling.
3920         (ira_sort_regnos_for_alter_reg): Don't setup members
3921         {first,next}_coalesced_allocno.
3922         (color): Remove allocating and freeing removed_splay_allocno_vec.
3923         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3924         prohibited_class_mode_regs.
3925
3926         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
3927         formatting.
3928         (update_allocno_pressure_excess_length): Use pressure classes.
3929         (inc_register_pressure, dec_register_pressure): Check for pressure
3930         class.
3931         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3932         pressure class.  Use ira_reg_class_nregs instead of
3933         ira_reg_class_max_nregs.
3934         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3935         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3936         (single_reg_class): Use ira_reg_class_nregs instead of
3937         ira_reg_class_max_nregs.
3938         (process_bb_node_lives): Use pressure classes.
3939
3940         * ira-emit.c: Remove mentioning cover classes from the file.  Use
3941         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3942         (change_loop): Use pressure classes.
3943         (modify_move_list): Call ira_set_allocno_class instead of
3944         ira_set_allocno_cover_class.
3945
3946         * ira-build.c: Remove mentioning cover classes from the file.  Use
3947         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3948         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
3949         ALLOCNO_UPDATED_CLASS_COST instead of
3950         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3951         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3952         (ira_create_allocno): Remove initialization of
3953         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
3954         ALLOCNO_COLORABLE_P.
3955         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3956         Update conflict regs for the objects.
3957         (create_cap_allocno): Remove assert.  Don't propagate
3958         ALLOCNO_AVAILABLE_REGS_NUM.
3959         (ira_free_allocno_costs): New function.
3960         (finish_allocno): Change a part of code into call of
3961         ira_free_allocno_costs.
3962         (low_pressure_loop_node_p): Use pressure classes.
3963         (object_range_compare_func): Don't compare classes.
3964         (setup_min_max_conflict_allocno_ids): Ditto.
3965
3966         * loop-invariant.c: Remove mentioning cover classes from the file.
3967         Use ira_pressure_classes and ira_pressure_classes_num instead of
3968         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
3969         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3970         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3971         Use reg_allocno_class instead of reg_cover_class.
3972         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3973         STACK_REG_COVER_CLASS.
3974         (get_regno_cover_class): Rename to get_regno_pressure_class.
3975         (move_loop_invariants): Initialize and finalize regstat.
3976
3977         * ira.c: Remove mentioning cover classes from the file.  Add
3978         comments about coloring without cover classes.  Use ALLOCNO_CLASS
3979         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3980         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3981         setup_class_subset_and_memory_move_costs.
3982         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3983         (setup_cover_and_important_classes): Rename to
3984         setup_allocno_and_important_classes.
3985         (setup_class_translate_array): New.
3986         (setup_class_translate): Call it for allocno and pressure classes.
3987         (cover_class_order): Rename to allocno_class_order.
3988         (comp_reg_classes_func): Use ira_allocno_class_translate instead
3989         of ira_class_translate.
3990         (reorder_important_classes): Set up ira_important_class_nums.
3991         (setup_reg_class_relations): Set up ira_reg_class_superunion.
3992         (print_class_cover): Rename to print_classes.  Add parameter.
3993         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3994         Print pressure classes too.
3995         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
3996         setup_reg_subclasses.
3997         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3998         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3999         (setup_prohibited_class_mode_regs): Use
4000         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
4001         (clarify_prohibited_class_mode_regs): New function.
4002         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
4003         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
4004         (ira_init_once): Initialize them.
4005         (free_register_move_costs): Process them.
4006         (ira_init): Move calls of find_reg_classes and
4007         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
4008         Call clarify_prohibited_class_mode_regs.
4009         (ira_no_alloc_reg): Remove.
4010         (too_high_register_pressure_p): Use pressure classes.
4011
4012         * sched-deps.c: Remove mentioning cover classes from the file.
4013         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
4014         ira_pressure_classes and ira_pressure_classes_num instead of
4015         ira_reg_class_cover_size and ira_reg_class_cover.
4016         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
4017         sched_regno_pressure_class instead of sched_regno_cover_class.
4018         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
4019         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4020
4021         * ira.h: Add 2010 to Copyright.
4022         (ira_no_alloc_reg): Remove external.
4023         (struct target_ira): Rename x_ira_hard_regno_cover_class,
4024         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
4025         x_ira_class_translate to x_ira_hard_regno_allocno_class,
4026         x_ira_allocno_classes_num, x_ira_allocno_classes, and
4027         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
4028         x_ira_pressure_classes, x_ira_pressure_class_translate, and
4029         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
4030         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
4031         x_ira_no_alloc_regs.
4032         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4033         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
4034         ira_allocno_classes_num and ira_allocno_classes.
4035         (ira_class_translate): Rename to ira_allocno_class_translate.
4036         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
4037         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
4038         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4039         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
4040         (ira_no_alloc_regs): New.
4041
4042         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
4043         classes from the file.  Use ALLOCNO_CLASS instead of
4044         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
4045         ALLOCNO_COVER_CLASS_COST.
4046         (regno_cover_class): Rename to regno_aclass.
4047         (record_reg_classes): Use ira_reg_class_subunion instead of
4048         ira_reg_class_union.
4049         (record_address_regs): Check overflow.
4050         (scan_one_insn): Ditto.
4051         (print_allocno_costs): Print total mem cost fore regional allocation.
4052         (print_pseudo_costs): Use REG_N_REFS.
4053         (find_costs_and_classes): Use classes intersected with them on the
4054         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
4055         ira_reg_class_union.  Use ira_allocno_class_translate and
4056         regno_aclass instead of ira_class_translate and regno_cover_class.
4057         Modify code for finding regno_aclass.  Setup preferred classes for
4058         the next pass.
4059         (setup_allocno_cover_class_and_costs): Rename to
4060         setup_allocno_class_and_costs.  Use regno_aclass instead of
4061         regno_cover_class.  Use ira_set_allocno_class instead of
4062         ira_set_allocno_cover_class.
4063         (init_costs, finish_costs): Use regno_aclass instead of
4064         regno_cover_class.
4065         (ira_costs): Use setup_allocno_class_and_costs instead of
4066         setup_allocno_cover_class_and_costs.
4067         (ira_tune_allocno_costs_and_cover_classes): Rename to
4068         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
4069         by processing objects.  Use ira_reg_class_max_nregs instead of
4070         ira_reg_class_nregs.
4071
4072         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
4073
4074         * sched-int.h: Remove mentioning cover classes from the file.
4075         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
4076
4077         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
4078         classes from the file.
4079         (struct reg_pref): Rename coverclass into allocnoclass.
4080         (reg_cover_class): Rename to reg_allocno_class.
4081
4082         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
4083
4084         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
4085
4086         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
4087
4088         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
4089
4090         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
4091
4092         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
4093
4094         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
4095
4096         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
4097
4098         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
4099
4100         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
4101
4102         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
4103         (i386_ira_cover_classes): Ditto.
4104
4105         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
4106
4107         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
4108
4109         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
4110
4111         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
4112
4113         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
4114
4115         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
4116
4117         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
4118         (mips_ira_cover_classes): Ditto.
4119
4120         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
4121
4122         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
4123
4124         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
4125
4126         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
4127
4128         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
4129
4130         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
4131         (IRA_COVER_CLASSES_VSX): Ditto.
4132
4133         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
4134         (rs6000_ira_cover_classes): Ditto.
4135
4136         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
4137
4138         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
4139
4140         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
4141
4142         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
4143
4144         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
4145
4146         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
4147
4148         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
4149
4150         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
4151
4152         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
4153
4154         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
4155
4156 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
4157
4158         PR debug/48253
4159         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
4160         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
4161         dw_fde_unlikely_section_end_label, cold_in_std_section,
4162         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
4163         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
4164         fields.
4165         (output_fde): Use dw_fde_second_{begin,end} if second is
4166         true, otherwise dw_fde_{begin,end}.
4167         (output_call_frame_info): Test dw_fde_second_begin != NULL
4168         instead of dw_fde_switched_sections.
4169         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
4170         fields, initialize new fields.  Initialize in_std_section
4171         unconditionally from the first partition.
4172         (dwarf2out_end_epilogue): Don't override dw_fde_end when
4173         dw_fde_second_begin is non-NULL.
4174         (dwarf2out_switch_text_section): Stop initializing removed
4175         dw_fde_struct fields, initialize new fields, initialize
4176         also dw_fde_end here.  Set dw_fde_switch_cfi even when
4177         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
4178         (struct var_loc_list_def): Add last_before_switch field.
4179         (arange_table, arange_table_allocated, arange_table_in_use,
4180         ARANGE_TABLE_INCREMENT, add_arange): Removed.
4181         (size_of_aranges): Count !in_std_section and !second_in_std_section
4182         hunks in fdes, instead of looking at arange_table_in_use.
4183         (output_aranges): Add aranges_length argument, don't call
4184         size_of_aranges here.  Instead of using aranges_table*
4185         emit ranges for fdes when !in_std_section resp.
4186         !second_in_std_section.
4187         (dw_loc_list): Break ranges crossing section switch.
4188         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
4189         use dw_fde_second_end instead of dw_fde_end as end of last range.
4190         (gen_subprogram_die): Don't call add_arange.  Use
4191         dw_fde_{begin,end} for first partition and if switched
4192         section dw_fde_second_{begin,end} for the second.
4193         (var_location_switch_text_section_1,
4194         var_location_switch_text_section): New functions.
4195         (dwarf2out_begin_function): Initialize cold_text_section even
4196         when function_section () isn't text_section.
4197         (prune_unused_types): Don't walk arange_table.
4198         (dwarf2out_finish): Don't needlessly test
4199         flag_reorder_blocks_and_partition when testing cold_text_section_used.
4200         If info_section_emitted, call size_of_aranges and if it indicates
4201         non-empty .debug_aranges, call output_aranges with the computed
4202         size.  Stop using removed dw_fde_struct fields, use
4203         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
4204         for second.
4205
4206         PR debug/48203
4207         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
4208         create ENTRY_VALUE if incoming or address of incoming's MEM
4209         is a hard REG.
4210         * dwarf2out.c (mem_loc_descriptor): Don't emit
4211         DW_OP_GNU_entry_value of DW_OP_fbreg.
4212         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
4213         on ENTRY_VALUE is able to find the canonical parameter VALUE.
4214         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
4215         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
4216         ENTRY_VALUE_EXPs.
4217         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
4218         is a REG_P or MEM_P with REG_P address, compute hash directly
4219         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
4220         (preserve_only_constants): Don't clear VALUES forwaring
4221         ENTRY_VALUE to some other VALUE.
4222
4223 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
4224
4225         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
4226         instead of GEN_INT.
4227
4228 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
4229
4230         * cfgexpand.c (expand_gimple_cond): Always set the source location and
4231         block before expanding the statement.
4232         (expand_gimple_stmt_1): Likewise.  Set them here...
4233         (expand_gimple_stmt): ...and not here.  Tidy.
4234         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
4235         unknown.
4236
4237 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
4238
4239         * Makefile.in: New rule for cprop.o.
4240         * gcse.c: Move constant/copy propagation to cprop.c.
4241         (compute_local_properties): Only handle expression tables.
4242         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
4243         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
4244         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
4245         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
4246         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
4247         compute_cprop_data, find_used_regs, try_replace_reg,
4248         find_avail_set, cprop_jump, constprop_register, cprop_insn,
4249         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
4250         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
4251         find_bypass_set, reg_killed_on_edge, bypass_block,
4252         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
4253         execute_rtl_cprop, pass_rtl_cprop): Move to...
4254         * cprop.c: ...here.  New file, constant/copy propagation for RTL
4255         moved from gcse.c to here with minor cleanups in duplicated code.
4256
4257 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
4258
4259         * config/i386/i386.c (flag_opts): Fix a typo in
4260         -mavx256-split-unaligned-store.
4261
4262 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
4263
4264         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
4265         LIBCALL_VALUE): Remove macros.
4266         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4267         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4268         (h8300_function_value, h8300_libcall_value,
4269         h8300_function_value_regno_p): New functions.
4270
4271 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
4272
4273         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
4274
4275 2011-03-28  Jeff Law  <law@redhat.com>
4276
4277         * tree-ssa-threadupdate.c (redirect_edges): Call
4278         create_edge_and_update_destination_phis as needed.
4279         (create_edge_and_update_destination_phis): Accept new BB argument.
4280         All callers updated.
4281         (thread_block): Do not update the profile when threading around
4282         intermediate blocks.
4283         (thread_single_edge): Likewise.
4284         (determine_bb_domination_status): If BB is not a successor of the
4285         loop header, return NONDOMINATING.
4286         (register_jump_thread): Note when we register a jump thread around
4287         an intermediate block.
4288         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
4289         (thread_across_edge): Use it.
4290
4291 2011-03-28  Tristan Gingold  <gingold@adacore.com>
4292
4293         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
4294         when for_return is 2.
4295
4296 2011-03-28  Jeff Law  <law@redhat.com>
4297
4298         * var-tracking.c (canonicalize_values_mark): Delete unused
4299         lhs assignment.
4300         (canonicalize_values_star, set_variable_part): Likewise.
4301         (clobber_variable_part, delete_variable_part): Likewise.
4302
4303 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
4304
4305         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
4306
4307 2011-03-28  Martin Jambor  <mjambor@suse.cz>
4308
4309         * tree-inline.c (expand_call_inline): Do not check that destination
4310         node is analyzed.
4311         (optimize_inline_calls): Assert that destination node is analyzed.
4312         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
4313         not call tree_lowering_passes.
4314         * cgraph.h (cgraph_analyze_function): Declare.
4315         * cgraphunit.c (cgraph_analyze_function): Make public.
4316
4317 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
4318
4319         * config/sparc/sparc-opts.h: New.
4320         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
4321         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
4322         (sparc_option_override): Store processor_type enumeration rather
4323         than string in cpu_default.  Remove name and enumeration from
4324         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
4325         without using sparc_select.  Use target_flags_explicit instead of
4326         fpu_option_set.
4327         * config/sparc/sparc.h (enum processor_type): Move to
4328         sparc-opts.h.
4329         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
4330         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
4331         HeaderInclude entry.
4332         (mcpu=, mtune=): Use Var and Enum.
4333         (sparc_processor_type): New Enum and EnumValue entries.
4334
4335 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4336             Iain Sandoe  <iains@gcc.gnu.org>
4337
4338         PR target/48245
4339         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
4340
4341 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
4342
4343         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
4344         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
4345         Insert new statements at it in lieu of STMT.
4346         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
4347         * tree-vect-stmts.c (vectorizable_store): Likewise.
4348         (vectorizable_load): Likewise.
4349
4350 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
4351
4352         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
4353         (divtf3): Ditto.
4354         (multf3): Ditto.
4355         (subtf3): Ditto.
4356
4357 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4358
4359         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
4360         unaligned 256bit load/store.
4361         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
4362         (*avx_movdqu<avxmodesuffix>): Likewise.
4363
4364 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4365
4366         PR target/48288
4367         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
4368         * config/pa/pa.md (iordi3): Use new predicate in expander.
4369         (iorsi3): Likewise.
4370
4371 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
4372
4373         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
4374         FUNCTION_VALUE_REGNO_P): Remove macros.
4375         * config/mips/mips-protos.h (mips_function_value): Remove.
4376         * config/mips/mips.c (mips_function_value): Rename to...
4377         (mips_function_value_1): ... this. Make static.  Handle receiving
4378         the function type in 'fn_decl_or_type' argument.
4379         (mips_function_value, mips_libcall_value,
4380         mips_function_value_regno_p): New function.
4381         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4382         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4383
4384 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
4385
4386         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
4387         and -mavx256-split-unaligned-store.
4388         (ix86_option_override_internal): Split 32-byte AVX unaligned
4389         load/store by default.
4390         (ix86_avx256_split_vector_move_misalign): New.
4391         (ix86_expand_vector_move_misalign): Use it.
4392
4393         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
4394         -mavx256-split-unaligned-store.
4395
4396         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
4397         256bit load/store.  Generate unaligned store on misaligned memory
4398         operand.
4399         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
4400         256bit load/store.
4401         (*avx_movdqu<avxmodesuffix>): Likewise.
4402
4403         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
4404         -mavx256-split-unaligned-store.
4405
4406 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
4407
4408         PR target/38598
4409         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
4410         Update commentary.
4411
4412 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
4413
4414         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
4415         opno arguments with an expand_operand.  Use create_input_operand.
4416         (mips_prepare_builtin_target): Delete.
4417         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
4418         functions.
4419         (mips_expand_builtin_direct): Use create_output_operand and
4420         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
4421         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
4422         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
4423
4424 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
4425
4426         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
4427         function.
4428         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4429
4430 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
4431
4432         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
4433         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
4434         basic blocks and call commit_edge_insertions directly.
4435         (fixup_abnormal_edges): Move from here to...
4436         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
4437         on the edges and return whether some have actually been inserted.
4438         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
4439         compensation code.
4440
4441 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
4442
4443         PR rtl-optimization/48144
4444         * sel-sched-ir.c (merge_history_vect): Factor out from ...
4445         (merge_expr_data): ... here.
4446         (av_set_intersect): Rename to av_set_code_motion_filter.
4447         Update all callers.  Call merge_history_vect when an expression
4448         is found in both sets.
4449         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
4450
4451 2011-03-26  Alan Modra  <amodra@gmail.com>
4452
4453         * config/rs6000/predicates.md (word_offset_memref_op): Handle
4454         cmodel medium addresses.
4455         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
4456         64-bit gpr loads and stores.
4457         (rs6000_secondary_reload_ppc64): New function.
4458         * config/rs6000/rs6000-protos.h: Declare it.
4459         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
4460
4461 2011-03-26  Alan Modra  <amodra@gmail.com>
4462
4463         PR target/47487
4464         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
4465         GNU Go in traceback table.
4466
4467 2011-03-25  Richard Henderson  <rth@redhat.com>
4468
4469         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
4470         if there are exactly 6 operands.
4471         (set_storage_via_setmem): Similarly.
4472
4473 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4474
4475         * collect2.c (write_c_file_stat): Handle backslash
4476         as right-hand directory separator.
4477         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
4478         checking just for slash.
4479         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
4480         instead of checking for trailing slash.
4481         * gcc.c (record_temp_file): Use filename_cmp instead
4482         of strcmp.
4483         (do_spec_1): Likewise.
4484         (replace_outfile_spec_function): Likewise.
4485         (is_directory): Use filename_ncmp instead of strncmp.
4486         (print_multilib_info): Likewise.
4487         * gcov.c (find_source): Use filename_cmp instead
4488         instead of strcmp.
4489         (make_gcov_file_name): Fix order of slash/backslash
4490         checks.
4491         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
4492         (add_standard_paths): Likewise.
4493         * mips-tfile.c (saber_stop): Handle backslash.
4494         * prefix.c (update_path): Use filename_ncmp instead of
4495         strncmp.
4496         * profile.c (output_location): Use filename_cmp instead
4497         of strcmp.
4498         * read-md.c (handle_toplevel_file): Handle backslash.
4499         * tlink.c (frob_extension):  Likewise.
4500         * tree-cfg.c (same_line_p): Use filename_cmp instead of
4501         strcmp.
4502         * tree-dump.c (dequeue_and_dump): Handle backslash.
4503         * tree.c (get_file_function_name): Likewise.
4504         * gengtype.c (read_input_list): Likewise.
4505         (get_file_realbasename): Likewise.
4506         (get_output_file_with_visibility): Use filename_cmp
4507         instead of strcmp.
4508
4509 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
4510
4511         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
4512         case to VFPv1.
4513
4514 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4515
4516         * fold-const.c (expr_location_or): New function.
4517         (fold_truth_not_expr): Call it.
4518
4519 2011-03-25  Jeff Law  <law@redhat.com>
4520
4521         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
4522         va_end.
4523         * c-family/c-common.c (def_fn_type): Likewise.
4524         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
4525         * emit-rtl.c (gen_rtvec): Likewise.
4526         * lto/lto-lang.c (def_fn_type): Likewise.
4527
4528 2011-03-25  Richard Guenther  <rguenther@suse.de>
4529
4530         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
4531         also generate copies.
4532         (fini_copy_prop): Handle constant values properly.
4533
4534 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
4535
4536         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
4537         mode size instead of bitsize with DWARF2_ADDR_SIZE.
4538         (hash_loc_operands, compare_loc_operands): Handle
4539         DW_OP_GNU_entry_value.
4540
4541 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4542
4543         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
4544         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
4545         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
4546         comment and use macro TARGET_64BIT_MS_ABI instead.
4547         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
4548         and change default behavior for 32-bit MS_ABI.
4549         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
4550         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
4551         32-bit, too.
4552         (ix86_cfun_abi): Likewise.
4553         (ix86_maybe_switch_abi): Adjust comment.
4554         (init_cumulative_args): Check for bit-ness in MS_ABI case.
4555         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
4556         instead of checking for SYSV_ABI.
4557         (ix86_nsaved_sseregs): Likewise.
4558         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
4559         to 16 bytes.
4560         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
4561         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
4562         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
4563         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
4564         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
4565
4566 2011-03-25  Richard Guenther  <rguenther@suse.de>
4567
4568         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
4569         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4570         (verify_gimple): Remove.
4571         * tree-cfg.c (verify_gimple_call): Merge verification
4572         from verify_stmts.
4573         (verify_gimple_phi): Merge verification from verify_stmts.
4574         (verify_gimple_label): New function.
4575         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
4576         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
4577         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
4578         (verify_stmts): Rename to verify_gimple_in_cfg.
4579         (verify_gimple_in_cfg): New function.
4580         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
4581         * tree-ssa.c (verify_ssa): Likewise.
4582         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
4583
4584 2011-03-25  Richard Guenther  <rguenther@suse.de>
4585
4586         * passes.c (init_optimization_passes): Add FRE pass after
4587         early SRA.
4588
4589 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
4590             Andrew Stubbs  <ams@codesourcery.com>
4591
4592         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
4593         for Cortex-A8.
4594         (arm_movdi_vfp_cortexa8): New pattern.
4595         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
4596         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
4597         instructions when tuning for Cortex-A8.  Set attribute "arch".
4598         * config/arm/arm.md: Move include arm-tune.md up a bit.
4599         (define_attr "arch"): Add "onlya8" and "nota8" values.
4600         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
4601
4602 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
4603
4604         PR bootstrap/48282
4605         Revert:
4606         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4607
4608         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4609         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4610         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4611         * passes.c (init_optimization_passes): Move
4612         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4613
4614 2011-03-25  Kai Tietz  <ktietz@redhat.com>
4615
4616         * c-typeck.c (comptypes_internal): Replace target
4617         hook call of comp_type_attributes by version in tree.c file.
4618         * gimple.c (gimple_types_compatible_p_1): Likewise.
4619         * tree-ssa.c (useless_type_conversion_p): Likewise.
4620         * tree.c (build_type_attribute_qual_variant): Likewise.
4621         (attribute_value_equal): New static helper function.
4622         (comp_type_attributes): New function.
4623         (merge_attributes): Use attribute_value_equal for comparison.
4624         (attribute_list_contained): Likewise.
4625         * tree.h (comp_type_attributes): New prototype.
4626
4627 2011-03-25  Richard Guenther  <rguenther@suse.de>
4628
4629         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
4630         of complex types at -O0.
4631         (verify_gimple_assign_binary): Likewise.
4632         (verify_gimple_assign_ternary): Likewise.
4633
4634 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4635
4636         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
4637         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
4638
4639 2011-03-24  Mark Wielaard  <mjw@redhat.com>
4640
4641         PR debug/48041
4642         * dwarf2out.c (output_abbrev_section): Only write table when
4643         abbrev_die_table_in_use > 1.
4644
4645 2011-02-24  Richard Henderson  <rth@redhat.com>
4646
4647         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
4648         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
4649         (alpha_expand_unaligned_load_words): Use extql.
4650         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
4651         (emit_insxl): Handle all modes for consistency.
4652
4653 2011-02-24  Richard Henderson  <rth@redhat.com>
4654
4655         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
4656         (alpha_expand_unaligned_load): Likewise.
4657         (alpha_expand_unaligned_store): Likewise.
4658         (alpha_expand_unaligned_load_words): Likewise.
4659         (alpha_expand_unaligned_store_words): Likewise.
4660         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
4661         (alpha_split_lock_test_and_set_12): Likewise.
4662         (print_operand, alpha_fold_builtin_extxx): Likewise.
4663         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
4664         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
4665         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
4666         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
4667         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
4668         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
4669         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
4670         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
4671         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
4672         (extwl, extll, extql): Similarly.
4673         (inswh, inslh, insqh): Similarly.
4674         (mskbl, mskwl, mskll, mskql): Similarly.
4675         (mskwh, msklh, mskqh): Similarly.
4676
4677 2011-02-24  Richard Henderson  <rth@redhat.com>
4678
4679         * config/alpha/alpha.md (attribute isa): Add er, ner.
4680         (attribute enabled): Handle them.
4681         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
4682
4683 2011-02-24  Richard Henderson  <rth@redhat.com>
4684
4685         * config/alpha/alpha.md (attribute isa): Add vms.
4686         (attribute enabled): Handle it.
4687         (*movsf): Merge *movsf_{nofix,fix,nofp}.
4688         (*movdf): Merge *movdf_{nofix,fix,nofp}.
4689         (*movtf): Rename from *movtf_internal for consistency.
4690         (*movsi): Merge with *movsi_nt_vms.
4691         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
4692         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
4693         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
4694         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
4695
4696 2011-02-24  Richard Henderson  <rth@redhat.com>
4697
4698         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
4699         (extendqisi2, extendhisi2): Likewise.
4700         (extendqidi2): Simplify BWX/non-BWX expansions.
4701         (extendhidi2): Similarly.
4702
4703 2011-02-24  Richard Henderson  <rth@redhat.com>
4704
4705         * config/alpha/alpha.md (attribute isa): New.
4706         (attribute enabled): New.
4707         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
4708         (zero_extendqisi2, zero_extendqidi2): Similarly.
4709         (zero_extendhisi2, zero_extendhidi2): Similarly.
4710         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
4711
4712 2011-02-24  Richard Henderson  <rth@redhat.com>
4713
4714         * config/alpha/predicates.md (input_operand): Revert last change;
4715         update comment to mention 32-bit VMS rather than Windows.
4716
4717 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4718
4719         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
4720         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
4721         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
4722         * passes.c (init_optimization_passes): Move
4723         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
4724
4725 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4726
4727         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
4728
4729 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4730
4731         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
4732         correctly.
4733
4734 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
4735
4736         PR debug/48204
4737         * simplify-rtx.c (simplify_const_unary_operation): Call
4738         real_convert when changing mode class with FLOAT_EXTEND.
4739
4740 2011-03-24  Nick Clifton  <nickc@redhat.com>
4741
4742         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
4743         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4744         * config/rx/rx.c (rx_option_override): Set align_jumps,
4745         align_loops and align_labels if not set by the user.
4746         (rx_align_for_label): New function.
4747         (rx_max_skip_for_label): New function.
4748         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
4749         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
4750         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
4751         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
4752         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
4753
4754 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4755
4756         PR rtl-optimization/48263
4757         * optabs.c (expand_binop_directly): Reinstate convert_modes code
4758         and original commutative_p handling.  Use maybe_gen_insn.
4759
4760 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4761
4762         * reload.c (find_reloads_subreg_address): Add address_reloaded
4763         parameter and return true there if the full address has been
4764         reloaded.
4765         (find_reloads_toplev): Pass address_reloaded flag.
4766         (find_reloads_address_1): Don't use address_reloaded parameter.
4767
4768 2011-03-24  Jeff Law  <law@redhat.com>
4769
4770         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
4771         unused variable "ann".
4772         (remove_unused_locals): Likewise.
4773
4774         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
4775         statement.
4776
4777         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
4778         after it is freed.
4779
4780 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4781
4782         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
4783         for invalid symbolic addresses.
4784         (s390_secondary_reload): Don't use s390_check_symref_alignment for
4785         larl operands.
4786
4787 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4788
4789         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
4790         the argument in calls to fold_truth_not_expr.
4791
4792 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4793
4794         * tree.c (record_node_allocation_statistics): New function.
4795         (make_node_stat, copy_node_stat, build_string): Call it.
4796         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
4797         (build1_stat, build_omp_clause): Likewise.
4798
4799 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4800
4801         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
4802         last commit.
4803
4804 2011-03-24  Richard Guenther  <rguenther@suse.de>
4805
4806         PR tree-optimization/48271
4807         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
4808         blocks that still exist.
4809
4810 2011-03-24  Richard Guenther  <rguenther@suse.de>
4811
4812         PR tree-optimization/48270
4813         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
4814         not free datarefs before ddrs.
4815
4816 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
4817
4818         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
4819         from the address built for a reference with variable offset.
4820
4821 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
4822
4823         PR target/48237
4824         * config/i386/i386.md (*movdf_internal_rex64): Do not split
4825         alternatives that can be handled with movq or movabsq insn.
4826         (*movdf_internal): Disable for !TARGET_64BIT.
4827         (*movdf_internal_nointeger): Ditto.
4828         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
4829
4830 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
4831
4832         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
4833         (FUNCTION_ARG_ADVANCE): Likewise.
4834         * tm.texi.in: Change references to them to hook references.
4835         * tm.texi: Regenerate.
4836         * targhooks.c (default_function_arg): Eliminate check for target macro.
4837         (default_function_incoming_arg): Likewise.
4838         (default_function_arg_advance): Likewise.
4839         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
4840         (function_arg_advance): Likewise.
4841         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
4842
4843 2011-03-24  Richard Guenther  <rguenther@suse.de>
4844
4845         PR middle-end/48269
4846         * tree-object-size.c (addr_object_size): Do not double-account
4847         for MEM_REF offsets.
4848
4849 2011-03-24  Diego Novillo  <dnovillo@google.com>
4850
4851         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
4852         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
4853         (lto_input_data_block): Move from lto-opts.c.  Make extern.
4854         Update all users.
4855         (lto_input_string): Rename from input_string.  Make extern.
4856         Update all users.
4857         * lto-streamer-out.c (lto_output_string_with_length): Rename from
4858         output_string_with_length.
4859         Output 0 to indicate a non-NULL string.  Update all callers to
4860         not emit 0.
4861         (lto_output_string): Rename from output_string.  Make extern.
4862         Update all users.
4863         (lto_output_decl_state_streams): Make extern.
4864         (lto_output_decl_state_refs): Make extern.
4865         * lto-streamer.h (lto_input_string): Declare.
4866         (lto_input_data_block): Declare.
4867         (lto_output_string): Declare.
4868         (lto_output_string_with_length): Declare.
4869         (lto_output_decl_state_streams): Declare.
4870         (lto_output_decl_state_refs): Declare.
4871
4872 2011-03-24  Richard Guenther  <rguenther@suse.de>
4873
4874         PR tree-optimization/46562
4875         * tree.c (build_invariant_address): New function.
4876         * tree.h (build_invariant_address): Declare.
4877         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
4878         a renamed function moved ...
4879         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
4880         Take valueization callback parameter.
4881         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
4882         * gimple-fold.h: New file.
4883         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
4884         (ccp_fold, fold_const_aggregate_ref,
4885         fold_ctor_reference, fold_nonarray_ctor_reference,
4886         fold_array_ctor_reference, fold_string_cst_ctor_reference,
4887         get_base_constructor): Move ...
4888         * gimple-fold.c: ... here.
4889         (gimple_fold_stmt_to_constant_1): New function
4890         split out from ccp_fold.  Take a valueization callback parameter.
4891         Valueize all operands.
4892         (gimple_fold_stmt_to_constant): New wrapper function.
4893         (fold_const_aggregate_ref_1): New function split out from
4894         fold_const_aggregate_ref.  Take a valueization callback parameter.
4895         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
4896         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
4897         invariant POINTER_PLUS_EXPRs to invariant form.
4898         (vn_valueize): New function.
4899         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
4900         * tree-vrp.c (vrp_valueize): New function.
4901         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
4902         to fold statements to constants.
4903         * tree-ssa-pre.c (eliminate): Properly guard propagation of
4904         function declarations.
4905         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
4906         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
4907
4908 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
4909
4910         * config/h8300/predicates.md (jump_address_operand): Fix register
4911         mode check.
4912
4913 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
4914
4915         * doc/invoke.texi (max-stores-to-sink): Document.
4916         * params.h (MAX_STORES_TO_SINK): Define.
4917         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
4918         if either vectorization or if-conversion is disabled.
4919         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
4920         tree-vect-data-refs.c vect_equal_offsets.
4921         (dr_equal_offsets_p): New function.
4922         (find_data_references_in_bb): Remove static.
4923         * tree-data-ref.h (find_data_references_in_bb): Declare.
4924         (dr_equal_offsets_p): Likewise.
4925         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
4926         (vect_drs_dependent_in_basic_block): Update calls to
4927         vect_equal_offsets.
4928         (vect_check_interleaving): Likewise.
4929         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
4930         (cond_if_else_store_replacement): Rename to...
4931         (cond_if_else_store_replacement_1): ... this.  Change arguments and
4932         documentation.
4933         (cond_if_else_store_replacement): New function.
4934         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
4935         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
4936
4937 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
4938
4939         PR target/46934
4940         * config/arm/arm.md (casesi): Use the gen_int_mode() function
4941         to subtract lower bound instead of GEN_INT().
4942
4943 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
4944
4945         PR other/48179
4946         PR other/48221
4947         PR other/48234
4948         * doc/extend.texi (Alignment): Move section to match order in TOC.
4949         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
4950         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
4951
4952 2011-03-23  Jeff Law  <law@redhat.com>
4953
4954         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
4955         before removing the edge.
4956
4957         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
4958         it may have been freed by redirect_branch_edge or
4959         redirect_edge_succ_nodup.
4960
4961 2011-03-23  Richard Guenther  <rguenther@suse.de>
4962
4963         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
4964         (check_va_list_escapes): Likewise.
4965         (check_all_va_list_escapes): Likewise.
4966
4967 2011-03-23  Richard Guenther  <rguenther@suse.de>
4968
4969         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
4970         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
4971         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
4972         (alias.o): Likewise.
4973         (ipa-type-escape.o): Remove.
4974         (ipa-struct-reorg.o): Likewise.
4975         (GTFILES): Remove ipa-struct-reorg.c.
4976         * alias.c: Do not include ipa-type-escape.h.
4977         * tree-ssa-alias.c: Likewise.
4978         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
4979         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
4980         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
4981         and ipa-type-escape passes.
4982         * tree-pass.h (pass_ipa_type_escape): Remove.
4983         (pass_ipa_struct_reorg): Likewise.
4984         * ipa-struct-reorg.h: Remove.
4985         * ipa-struct-reorg.c: Likewise.
4986         * ipa-type-escape.h: Likewise.
4987         * ipa-type-escape.c: Likewise.
4988         * doc/invoke.texi (-fipa-struct-reorg): Remove.
4989         (--param struct-reorg-cold-struct-ratio): Likewise.
4990         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4991         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
4992         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
4993
4994 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4995
4996         * config/s390/2084.md: Enable all insn reservations also for z9_ec
4997         cpu attribute value.
4998         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
4999         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
5000         * config/s390/s390.c (processor_flags_table): New constant array.
5001         (s390_handle_arch_option): Remove.
5002         (s390_handle_option): Remove s390_handle_arch_option invocations
5003         and OPT_mwarn_framesize_ handling.
5004         (s390_option_override): Remove s390_handle_arch_option invocation.
5005         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
5006         warnings.
5007         * config/s390/s390.md (cpu attribute): Add z9_ec value.
5008         * config/s390/s390.opt (s390_tune, s390_arch)
5009         (march=): Replace s390_arch_option enum and values with
5010         processor_type.  Set variable name to s390_arch.  Set
5011         initialization value.
5012         (mtune=): Replace s390_arch_option with processor_type.  Set
5013         variable name to s390_tune.  Set initialization value.
5014
5015 2011-03-23  Julian Brown  <julian@codesourcery.com>
5016
5017         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
5018         accesses which are not naturally aligned.
5019
5020 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
5021
5022         PR target/47553
5023         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
5024
5025 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
5026
5027         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
5028         parameter from "int" to "enum insn_code".
5029         (expand_operand_type): New enum.
5030         (expand_operand): New structure.
5031         (create_expand_operand): New function.
5032         (create_fixed_operand, create_output_operand): Likewise
5033         (create_input_operand, create_convert_operand_to): Likewise.
5034         (create_convert_operand_from, create_address_operand): Likewise.
5035         (create_integer_operand): Likewise.
5036         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
5037         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5038         (expand_insn, expand_jump_insn): Likewise.
5039         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
5040         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
5041         (expand_movstr, expand_builtin___clear_cache): Likewise.
5042         (expand_builtin_lock_release): Likewise.
5043         * explow.c (allocate_dynamic_stack_space): Likewise.
5044         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
5045         and use the default handling in that case.
5046         * expmed.c (check_predicate_volatile_ok): Delete.
5047         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
5048         (emit_cstore): Likewise.
5049         * expr.c (emit_block_move_via_movmem): Likewise.
5050         (set_storage_via_setmem, expand_assignment): Likewise.
5051         (emit_storent_insn, try_casesi): Likewise.
5052         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
5053         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
5054         (expand_vec_shift_expr, expand_binop_directly): Likewise.
5055         (expand_twoval_unop, expand_twoval_binop): Likewise.
5056         (expand_unop_direct, emit_indirect_jump): Likewise.
5057         (emit_conditional_move, vector_compare_rtx): Likewise.
5058         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
5059         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
5060         (expand_sync_lock_test_and_set): Likewise.
5061         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
5062         (emit_unop_insn): Likewise.
5063         (expand_copysign_absneg): Change icode to an insn_code.
5064         (create_convert_operand_from_type): New function.
5065         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
5066         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
5067         (expand_insn, expand_jump_insn): Likewise.
5068         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
5069         than const_int_operand for operand 2.
5070
5071 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5072
5073         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
5074         if possible.
5075
5076 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5077
5078         * emit-rtl.c (emit_pattern_before_noloc): New function.
5079         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
5080         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
5081         (emit_pattern_after_noloc): New function.
5082         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
5083         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
5084
5085 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5086
5087         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
5088         (__ffsDI2): Likewise.
5089
5090 2011-03-22  Richard Henderson  <rth@redhat.com>
5091
5092         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
5093         of !TARGET_ABI_OPEN_VMS.
5094         (alpha_trampoline_init, alpha_start_function): Likewise.
5095         (alpha_expand_epilogue, alpha_file_start): Likewise.
5096         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
5097         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
5098         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
5099         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
5100         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
5101
5102 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5103
5104         * config/s390/s390-opts.h: New.
5105         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
5106         s390_arch_flags, s390_warn_framesize, s390_stack_size,
5107         s390_stack_guard): Remove.
5108         (s390_handle_arch_option): Return void.  Take enum
5109         s390_arch_option value instead of string and searching array.
5110         (s390_handle_option): Don't assert that global structures are in
5111         use.  Access variables via opts pointer.  Use error_at.  Don't use
5112         sscanf for -mstack-guard= or -mstack-size=.  Update call to
5113         s390_handle_arch_option.
5114         (s390_option_override): Update call to s390_handle_arch_option.
5115         (s390_emit_prologue): Use %d format for s390_stack_size in
5116         diagnostic.  Use %wd for HOST_WIDE_INT.
5117         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
5118         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
5119         * config/s390/s390.opt (config/s390/s390-opts.h): New
5120         HeaderInclude entry.
5121         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
5122         s390_arch_flags, s390_warn_framesize): New Variable entries.
5123         (s390_arch_option): New Enum and EnumValue entries.
5124         (march=): Use Enum instead of Var.
5125         (mstack-guard=, mstack-size=): Use UInteger and Var.
5126         (mtune=): Use Enum.
5127
5128 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5129
5130         * config/score/score.c (score_handle_option): Don't assert that
5131         global structures are in use.  Access target_flags via opts
5132         pointer.  Use value of -march= option to determine target_flags
5133         settings.
5134         * config/score/score.opt (march=): Use Enum.
5135         (score_arch): New Enum and EnumValue entries.
5136
5137 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5138
5139         * config/mep/mep.c (option_mtiny_specified): Remove.
5140         (mep_option_override): Move register handling for -mivc2 from
5141         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
5142         instead of option_mtiny_specified.
5143         (mep_handle_option): Access target_flags via opts pointer.  Don't
5144         assert that global structures are in use.  Defer part of -mivc2
5145         handling and move it to mep_option_override.
5146         * config/mep/mep.opt (IVC2): New Mask entry.
5147         (mivc2): Use Var and Defer instead of Mask.
5148
5149 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5150
5151         * config/v850/v850-opts.h: New.
5152         * config/v850/v850.c (small_memory): Replace with
5153         small_memory_physical_max array.  Make that array static const.
5154         (v850_handle_memory_option): Take integer value of argument.  Take
5155         gcc_options pointer, option text and location.  Return void.
5156         Update for changes to small memory structures.
5157         (v850_handle_option): Access target_flags via opts pointer.  Don't
5158         assert that global structures are in use.  Update calls to
5159         v850_handle_memory_option.
5160         (v850_encode_data_area): Update references to small memory settings.
5161         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
5162         (enum small_memory_type): Move to v850-opts.h.
5163         * config/v850/v850.opt (config/v850/v850-opts.h): New
5164         HeaderInclude entry.
5165         (small_memory_max): New Variable entry.
5166         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
5167         (mtda, mzda): Likewise.
5168
5169 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5170
5171         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
5172         pointer.  Don't assert that global structures are in use.
5173
5174 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5175
5176         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
5177         via opts pointer.  Don't assert that global structures are in use.
5178
5179 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5180
5181         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
5182         (munix=93): Use Var.
5183         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
5184         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
5185         * config/pa/pa-opts.h: New.
5186         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
5187         (pa_handle_option): Don't assert that global structures are in
5188         use.  Access target_flags via opts pointer.  Don't handle
5189         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
5190         OPT_munix_98 here.
5191         (pa_option_override): Handle deferred OPT_mfixed_range_.
5192
5193 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5194
5195         * config/mn10300/mn10300-opts.h: New.
5196         * config/mn10300/mn10300.c (mn10300_processor,
5197         mn10300_tune_string): Remove.
5198         (mn10300_handle_option): Don't assert that global structures are
5199         in use.  Access mn10300_processor via opts pointer.  Don't handle
5200         OPT_mtune_ here.
5201         * config/mn10300/mn10300.h (enum processor_type): Move to
5202         mn10300-opts.h.
5203         (mn10300_processor): Remove.
5204         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
5205         HeaderInclude entry.
5206         (mn10300_processor): New Variable entry.
5207         (mtune=): Use Var.
5208
5209 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5210
5211         * config/microblaze/microblaze.c: Don't include opts.h.
5212         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
5213         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
5214         (mno-clearbss): Use Var and Warn.
5215
5216 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5217
5218         * config/m32r/m32r-opts.h: New.
5219         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
5220         (m32r_handle_option): Don't assert that global structures are in
5221         use.  Access target_flags and m32r_cache_flush_func via opts
5222         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
5223         OPT_mno_flush_trap here.
5224         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
5225         include of m32r-opts.h.
5226         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
5227         HeaderInclude entry.
5228         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
5229         (mmodel=): Use Enum and Var.
5230         (m32r_model): New Enum and EnumValue entries.
5231         (mno-flush-trap): Use Var.
5232         (msdata=): Use Enum and Var.
5233         (m32r_sdata): New Enum and EnumValue entries.
5234
5235 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5236
5237         * config/m32c/m32c.c: Don't include opts.h.
5238         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
5239         m32c_handle_option): Remove.
5240         (m32c_option_override): Check global_options_set.x_target_memregs
5241         instead of target_memregs_set.
5242         * config/m32c/m32c.h (target_memregs): Remove.
5243         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
5244         variable.
5245
5246 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5247
5248         * config/iq2000/iq2000-opts.h: New.
5249         * config/iq2000/iq2000.c: Don't include opts.h.
5250         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
5251         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
5252         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
5253         HeaderInclude entry.
5254         (iq2000_tune): New Variable entry.
5255         (march=): Add comment.  Use Enum.
5256         (iq2000_arch): New Enum and EnumValue entries.
5257         (mcpu=): Use Enum and Var.
5258         (iq2000_tune): New Enum and EnumValue entries.
5259
5260 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5261
5262         * config/ia64/ia64-opts.h: New.
5263         * config/ia64/ia64.c (ia64_tune): Remove.
5264         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
5265         here.  Use error_at.
5266         (ia64_option_override): Handle deferred OPT_mfixed_range_.
5267         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
5268         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
5269         HeaderInclude entry.
5270         (ia64_tune): New Variable entry.
5271         (mfixed-range=): Use Defer and Var.
5272         (mtune=): Use Enum and Var.
5273         (ia64_tune): New Enum and EnumValue entries.
5274
5275 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5276
5277         * config/frv/frv-opts.h: New.
5278         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
5279         frv-opts.h.
5280         (frv_cpu_type): Remove.
5281         * config/frv/frv.c: Don't include opts.h.
5282         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
5283         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
5284         (frv_cpu_type): New Variable entry.
5285         (frv_cpu): New Enum and EnumValue entries.
5286
5287 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5288
5289         * config/cris/cris.c (cris_handle_option): Access target_flags via
5290         opts pointer.  Don't assert that global structures are in use.
5291         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
5292         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
5293
5294 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5295
5296         * config/bfin/bfin-opts.h: New.
5297         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
5298         bfin_si_revision, bfin_workarounds): Remove.
5299         (bfin_cpus): Make static const.
5300         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
5301         not bfin_lib_id_given.
5302         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
5303         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
5304         pointer. Use error_at.  Don't assert that global structures are in use.
5305         * config/bfin/bfin.h: Include bfin-opts.h.
5306         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
5307         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
5308         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
5309         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
5310         entries.
5311
5312 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5313
5314         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
5315         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
5316         or -msoft-float here.
5317         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
5318         -msoft-float and -mhard-float.
5319         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5320         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
5321         msoft-float.
5322         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
5323         -msoft-float.
5324         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
5325         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
5326         not mhard-float.
5327         (LIBGCC_SPEC): Don't handle -msoft-float.
5328         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
5329         -mhard-float.
5330         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
5331         msoft-float.
5332         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
5333         -mfloat-abi=*, not -msoft-float and -mhard-float.
5334         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
5335         -msoft-float.
5336         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
5337         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
5338         mhard-float and msoft-float.
5339         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
5340         mfloat-abi=soft in comments, not mhard-float and msoft-float.
5341         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5342         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
5343         mhard-float.
5344         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
5345         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
5346         msoft-float.
5347         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
5348         not mhard-float.
5349         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
5350         not msoft-float.
5351
5352 2011-03-22  Richard Henderson  <rth@redhat.com>
5353
5354         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
5355         TARGET_ABI_WINDOWS_NT.
5356         (alpha_output_function_end_prologue): Likewise.
5357         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
5358         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
5359         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
5360         (trap, *movsi_nt_vms): Likewise.
5361         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
5362         (*tablejump_osf_nt_internal): Remove.
5363         * config/alpha/predicates.md (input_operand): Only test Pmode.
5364
5365 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5366
5367         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
5368         via opts pointer.  Use error_at.  Don't assert that global
5369         structures are in use.
5370
5371 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5372
5373         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
5374         (ix86_handle_option): Access ix86_isa_flags and
5375         ix86_isa_flags_explicit via opts pointer.  Don't assert that
5376         global structures are in use.
5377         (ix86_function_specific_save, ix86_function_specific_restore):
5378         Update ix86_isa_flags_explicit field name.
5379         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
5380         (ix86_isa_flags_explicit): Rename TargetSave entry to
5381         x_ix86_isa_flags_explicit.
5382
5383 2011-03-22  Richard Henderson  <rth@redhat.com>
5384
5385         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
5386         (alpha_option_override, direct_return): Likewise.
5387         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
5388         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
5389         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
5390         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
5391         (alpha_expand_epilogue, alpha_end_function): Likewise.
5392         (alpha_init_libfuncs): Likewise.
5393         (struct machine_function): Remove unicosmk members.
5394         (print_operand) ['t']: Remove.
5395         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
5396         unicosmk_output_module_name, unicosmk_output_common,
5397         current_section_align, unicosmk_output_text_section_asm_op,
5398         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
5399         unicosmk_section_type_flags, unicosmk_unique_section,
5400         unicosmk_asm_named_section, unicosmk_insert_attributes,
5401         unicosmk_output_align, unicosmk_defer_case_vector,
5402         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
5403         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
5404         unicosmk_output_ssib, unicosmk_add_call_info_word,
5405         unicosmk_extern_head, unicosmk_output_default_externs,
5406         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
5407         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
5408         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
5409         * config/alpha/alpha-protos.h: Update.
5410         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
5411         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
5412         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
5413         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
5414         (*mulsi_se, mulvsi3): Likewise.
5415         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
5416         (*divmodsi_internal, call, call_value, realign): Likewise.
5417         (moddi3, umoddi3): Likewise; remove duplicate expander.
5418         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
5419         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
5420         (*movdi_nofix): Remove r/U alternative.
5421         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
5422         * config/alpha/constraints.md ("U"): Remove.
5423         * config/alpha/predicates.md (call_operand"): Don't test
5424         TARGET_ABI_UNICOSMK.
5425
5426 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5427
5428         * target.def (handle_option): Take gcc_options and
5429         cl_decoded_option pointers and location_t.
5430         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
5431         * doc/tm.texi: Regenerate.
5432         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
5433         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
5434         * lto-opts.c (lto_reissue_options): Generate option structure for
5435         targetm.handle_option call.
5436         * opts.c (target_handle_option): Update call to
5437         targetm.handle_option.  Remove assertions about values now passed
5438         down to hook.
5439         * targhooks.c (default_target_handle_option): New.
5440         * targhooks.h (default_target_handle_option): Declare.
5441         * config/alpha/alpha.c: Include opts.h.
5442         (alpha_handle_option): Update to new hook interface.
5443         * config/arm/arm.c: Include opts.h.
5444         (arm_handle_option): Update to new hook interface.
5445         * config/arm/t-arm (arm.o): Update dependencies.
5446         * config/bfin/bfin.c: Include opts.h.
5447         (bfin_handle_option): Update to new hook interface.
5448         * config/cris/cris.c: Include opts.h.
5449         (cris_handle_option): Update to new hook interface.
5450         * config/frv/frv.c: Include opts.h.
5451         (frv_handle_option): Update to new hook interface.
5452         * config/i386/i386.c: Include opts.h.
5453         (ix86_handle_option): Update to new hook interface.
5454         (ix86_valid_target_attribute_inner_p): Generate option structure
5455         for call to ix86_handle_option.
5456         * config/i386/t-i386 (i386.o): Update dependencies.
5457         * config/ia64/ia64.c: Include opts.h.
5458         (ia64_handle_option): Update to new hook interface.
5459         * config/ia64/t-ia64 (ia64.o): Update dependencies.
5460         * config/iq2000/iq2000.c: Include opts.h.
5461         (iq2000_handle_option): Update to new hook interface.
5462         * config/m32c/m32c.c: Include opts.h.
5463         (m32c_handle_option): Update to new hook interface.
5464         * config/m32r/m32r.c: Include opts.h.
5465         (m32r_handle_option): Update to new hook interface.
5466         * config/m68k/m68k.c: Include opts.h.
5467         (m68k_handle_option): Update to new hook interface.
5468         * config/mep/mep.c: Include opts.h.
5469         (mep_handle_option): Update to new hook interface.
5470         * config/microblaze/microblaze.c: Include opts.h.
5471         (microblaze_handle_option): Update to new hook interface.
5472         * config/mips/mips.c: Include opts.h.
5473         (mips_handle_option): Update to new hook interface.
5474         * config/mn10300/mn10300.c: Include opts.h.
5475         (mn10300_handle_option): Update to new hook interface.
5476         * config/pa/pa.c: Include opts.h.
5477         (pa_handle_option): Update to new hook interface.
5478         * config/pdp11/pdp11.c: Include opts.h.
5479         (pdp11_handle_option): Update to new hook interface.
5480         * config/rs6000/rs6000.c: Include opts.h.
5481         (rs6000_handle_option): Update to new hook interface.
5482         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
5483         * config/rx/rx.c: Include opts.h.
5484         (rx_handle_option): Update to new hook interface.
5485         * config/s390/s390.c: Include opts.h.
5486         (s390_handle_option): Update to new hook interface.
5487         * config/score/score.c: Include opts.h.
5488         (score_handle_option): Update to new hook interface.
5489         * config/sh/sh.c: Include opts.h.
5490         (sh_handle_option): Update to new hook interface.
5491         * config/sparc/sparc.c: Include opts.h.
5492         (sparc_handle_option): Update to new hook interface.
5493         * config/v850/v850.c: Include opts.h.
5494         (v850_handle_option): Update to new hook interface.
5495
5496 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5497
5498         * gcc.c (driver_unknown_option_callback): Only permit and save
5499         unknown -Wno- options.
5500         (driver_wrong_lang_callback): Save options directly instead of via
5501         driver_unknown_option_callback.
5502
5503 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5504
5505         * combine.c (simplify_set): Try harder to find the best CC mode when
5506         simplifying a nested COMPARE on the RHS.
5507
5508 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
5509
5510         * config/alpha/gnu.h: Remove.
5511         * config/arc: Remove directory.
5512         * config/arm/netbsd.h: Remove.
5513         * config/arm/t-pe: Remove.
5514         * config/crx: Remove directory.
5515         * config/i386/netbsd.h: Remove.
5516         * config/m68hc11: Remove directory.
5517         * config/m68k/uclinux-oldabi.h: Remove.
5518         * config/mcore/mcore-pe.h: Remove.
5519         * config/mcore/t-mcore-pe: Remove.
5520         * config/netbsd-aout.h: Remove.
5521         * config/rs6000/gnu.h: Remove.
5522         * config/sh/sh-symbian.h: Remove.
5523         * config/sh/symbian-base.c: Remove.
5524         * config/sh/symbian-c.c: Remove.
5525         * config/sh/symbian-cxx.c: Remove.
5526         * config/sh/symbian-post.h: Remove.
5527         * config/sh/symbian-pre.h: Remove.
5528         * config/sh/t-symbian: Remove.
5529         * config/svr3.h: Remove.
5530         * config/vax/netbsd.h: Remove.
5531         * config.build: Don't handle i[34567]86-*-pe.
5532         * config.gcc: Remove handling of deprecations for most deprecated
5533         targets.
5534         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
5535         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
5536         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
5537         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
5538         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
5539         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
5540         Remove cases.
5541         * config.host: Don't handle i[34567]86-*-pe.
5542         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
5543         (ASM_SPEC32): Don't handle -mcall-gnu.
5544         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
5545         -mcall-gnu.
5546         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
5547         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
5548         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5549         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
5550         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
5551         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
5552         conditional on SYMBIAN.
5553         * configure.ac: Don't handle powerpc*-*-gnu*.
5554         * configure: Regenerate.
5555         * doc/extend.texi (interrupt attribute): Don't mention CRX.
5556         * doc/install-old.texi (m6811, m6812): Don't mention.
5557         * doc/install.texi (arc-*-elf*): Don't document multilib option.
5558         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
5559         (m68k-uclinuxoldabi): Don't mention.
5560         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
5561         Remove.
5562         (-mcall-gnu): Remove.
5563         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
5564         families): Remove constraint documentation.
5565
5566 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
5567
5568         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
5569         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
5570         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
5571
5572 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
5573
5574         * config/avr/avr-protos.h (expand_epilogue): Change prototype
5575         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
5576         * config/avr/avr.c (init_cumulative_args)
5577         (avr_function_arg_advance): Use it.
5578         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
5579         sibcall epilogues.
5580         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
5581         (avr_function_ok_for_sibcall): ...this new function.
5582         (avr_lookup_function_attribute1): New static Function.
5583         (avr_naked_function_p, interrupt_function_p)
5584         (signal_function_p, avr_OS_task_function_p)
5585         (avr_OS_main_function_p): Use it.
5586         * config/avr/avr.md ("sibcall", "sibcall_value")
5587         ("sibcall_epilogue"): New expander.
5588         ("*call_insn", "*call_value_insn"): New insn.
5589         ("call_insn", "call_value_insn"): Remove
5590         ("call", "call_value", "epilogue"): Change expander to handle
5591         sibling calls.
5592
5593 2011-03-21  Nick Clifton  <nickc@redhat.com>
5594
5595         * doc/invoke.texi (Overall Options): Move closing brace to end of
5596         options list.
5597         (Optimization Options): Add missing @gol.
5598         (Directory Options): Likewise.
5599         (i386 and x86-64 Options): Likewise.
5600         (RS6000 and PowerPC Options): Likewise.
5601         (i386 and x86-64 Windows Options): Likewise.
5602         (V850 Options): Add text missing from descriptions.
5603
5604 2011-03-22  Richard Henderson  <rth@redhat.com>
5605
5606         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
5607         (avr_incoming_return_addr_rtx): New.
5608         (emit_push_byte): New.
5609         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
5610         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
5611         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
5612         (emit_pop_byte): New.
5613         (expand_epilogue): Use it.  Pop frame pointer by bytes.
5614         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
5615         (INCOMING_RETURN_ADDR_RTX): New.
5616         (INCOMING_FRAME_SP_OFFSET): New.
5617         (ARG_POINTER_CFA_OFFSET): New.
5618         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
5619         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
5620         (pophi): Remove.
5621
5622         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
5623
5624 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5625
5626         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5627         (FUNCTION_ARG_ADVANCE): Likewise.
5628         * tm.texi.in: Change references to them to hook references.
5629         * tm.texi: Regenerate.
5630         * targhooks.c (default_function_arg): Eliminate check for target
5631         macro.
5632         (default_function_incoming_arg): Likewise.
5633         (default_function_arg_advance): Likewise.
5634         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5635         (function_arg_advance): Likewise.
5636         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5637
5638 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
5639
5640         * tree.c (build_call_1): New function.
5641         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
5642
5643 2011-03-22  Richard Guenther  <rguenther@suse.de>
5644
5645         PR tree-optimization/48228
5646         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
5647         for single-arg PHIs.
5648
5649 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
5650
5651         PR rtl-optimization/48143
5652         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
5653         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
5654         sse2_cvtps2pd): Likewise.
5655
5656 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5657
5658         * recog.c (canonicalize_change_group): Use validate_unshare_change.
5659
5660 2011-03-22  Richard Guenther  <rguenther@suse.de>
5661
5662         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
5663         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
5664         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
5665         and REALIGN_LOAD_EXPR.
5666         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
5667         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
5668         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
5669         DOT_PROD_EXPR case ...
5670         (expand_expr_real_2): ... here.
5671         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
5672         and REALIGN_LOAD_EXPR.
5673         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
5674         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
5675         (vect_create_epilog_for_reduction): Likewise.
5676         (vectorizable_reduction): Likewise.
5677         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
5678         * tree-vect-stmts.c (vectorizable_load): Likewise.
5679
5680 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
5681
5682         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
5683
5684 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5685
5686         * config/s390/s390.c (s390_delegitimize_address): Fix offset
5687         handling for PLTOFF/GOTOFF.
5688
5689 2011-03-22  Nick Clifton  <nickc@redhat.com>
5690
5691         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
5692         trailing backslash from the end of the macro definition.
5693
5694 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5695
5696         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
5697         and PLT unspecs.
5698
5699 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
5700
5701         * expr.h (prepare_operand): Move to...
5702         * optabs.h (prepare_operand): ...here and change the insn code
5703         parameter from "int" to "enum insn_code".
5704         (insn_operand_matches): Declare.
5705         * expr.c (init_expr_target): Use insn_operand_matches.
5706         (compress_float_constant): Likewise.
5707         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
5708         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
5709         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
5710         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
5711         Likewise.
5712         (gen_cond_trap): Likewise.
5713         (prepare_operand): Likewise.  Change icode to an insn_code.
5714         (insn_operand_matches): New function.
5715         * reload.c (find_reloads_address_1): Use insn_operand_matches.
5716         * reload1.c (gen_reload): Likewise.
5717         * targhooks.c (default_secondary_reload): Likewise.
5718
5719 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5720
5721         * config/alpha/alpha.md (unspec): New define_c_enum.
5722         (unspecv): Ditto.
5723
5724 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
5725
5726         PR debug/48214
5727         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
5728         between a call and its CALL_ARG_LOCATION note.
5729
5730 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
5731
5732         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
5733
5734 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5735
5736         PR c/42544
5737         PR c/48197
5738         * c-common.c (shorten_compare): If primopN is first sign-extended
5739         to opN and then zero-extended to result type, set primopN to opN.
5740
5741 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
5742
5743         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
5744         for barrier handlers.
5745
5746 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
5747
5748         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
5749         UNSPEC constants to be in the unspec enumeration, and redefine
5750         all UNSPECV constants to be in the unspecv enumeration, so that
5751         dumps print which unspec/unspec_volatile this is.
5752         * config/rs6000/vector.md (UNSPEC_*): Ditto.
5753         * config/rs6000/paired.md (UNSPEC_*): Ditto.
5754         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
5755         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
5756         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
5757
5758         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
5759         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
5760         UNSPECV_LWSYNC, since these are used as unspec_volatile.
5761         * config/rs6000/sync.md (isync, lwsync): Ditto.
5762
5763 2011-03-21  Richard Guenther  <rguenther@suse.de>
5764
5765         * params.def (lto-min-partition): Fix typo.
5766
5767 2011-03-21  Richard Guenther  <rguenther@suse.de>
5768
5769         PR c/47939
5770         * c-decl.c (grokdeclarator): Drop to the main variant only
5771         for array types.  Drop flag_gen_aux_info check.
5772
5773 2011-03-21  Richard Guenther  <rguenther@suse.de>
5774
5775         PR translation/47911
5776         * params.def (lto-partitions): Fix typo.
5777         (lto-min-partition): Fix wording.
5778
5779 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
5780
5781         * config/rs6000/t-freebsd: Remove duplication from file.
5782
5783 2011-03-21  Richard Guenther  <rguenther@suse.de>
5784
5785         PR middle-end/47661
5786         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
5787
5788 2011-03-21  Richard Guenther  <rguenther@suse.de>
5789
5790         PR lto/48210
5791         * params.def (lto-partitions): Require at least 1 partition.
5792
5793 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5794
5795         * gthr-solaris.h: Remove.
5796         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
5797         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
5798         (LIB_SPEC): Likewise.
5799         * config/sol2.opt (threads): Remove.
5800         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
5801         (sparc*-*-solaris2*): Likewise.
5802         * configure.ac (enable_threads): Enable solaris support.
5803         * configure: Regenerate.
5804         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
5805         * doc/install.texi (Configuration, --enable-threads=lib): Remove
5806         solaris.
5807
5808 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5809
5810         * config.gcc: Obsolete *-*-solaris2.8*.
5811         * doc/install.texi (Specific, *-*-solaris2*): Document it.
5812
5813 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5814
5815         PR bootstrap/48135
5816         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
5817         reference.  Solaris 8 perl works.
5818
5819 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5820
5821         PR bootstrap/48135
5822         * doc/install.texi (Prerequisites): Move jar etc. up.
5823         Explain support library version requirements.
5824
5825 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5826
5827         PR bootstrap/48135
5828         * doc/install.texi (Prerequisites): Move Perl to build
5829         requirements.  Always necessary on Solaris 2 with Sun ld.
5830
5831 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5832
5833         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
5834         binutils 2.21.
5835         (Specific, i?86-*-solaris2.[89]): Likewise.
5836         (Specific, i?86-*-solaris2.10): Likewise.
5837         (Specific, mips-sgi-irix6): Likewise.
5838         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
5839         Update for binutils 2.21.
5840
5841 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5842
5843         * configure.ac (gcc_cv_lto_plugin): Fix typo.
5844         Allow -fuse-linker-plugin for non-default plugin linker.
5845         * configure: Regenerate.
5846
5847 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
5848
5849         PR bootstrap/48167
5850         * gengtype.c (files_rules): Added rule for cp/parser.h.
5851
5852 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
5853
5854         PR target/48213
5855         * config/s390/s390.c (s390_delegitimize_address): Don't call
5856         lowpart_subreg if orig_x has BLKmode.
5857
5858 2011-03-21  Kai Tietz  <ktietz@redhat.com>
5859
5860         PR target/12171
5861         * doc/plugins.texi: Adjust documentation for plugin register_callback.
5862         * tree.h (attribute_spec): Add new member affects_type_identity.
5863         * attribs.c (empty_attribute_table): Adjust attribute_spec
5864         initializers.
5865         * config/alpha/alpha.c: Likewise.
5866         * config/arc/arc.c: Likewise.
5867         * config/arm/arm.c: Likewise.
5868         * config/avr/avr.c: Likewise.
5869         * config/bfin/bfin.c: Likewise.
5870         * config/crx/crx.c: Likewise.
5871         * config/darwin.h: Likewise.
5872         * config/h8300/h8300.c: Likewise.
5873         * config/i386/cygming.h: Likewise.
5874         * config/i386/i386.c: Likewise.
5875         * config/ia64/ia64.c: Likewise.
5876         * config/m32c/m32c.c: Likewise.
5877         * config/m32r/m32r.c: Likewise.
5878         * config/m68hc11/m68hc11.c: Likewise.
5879         * config/m68k/m68k.c: Likewise.
5880         * config/mcore/mcore.c: Likewise.
5881         * config/mep/mep.c: Likewise.
5882         * config/microblaze/microblaze.c: Likewise.
5883         * config/mips/mips.c: Likewise.
5884         * config/rs6000/rs6000.c: Likewise.
5885         * config/rx/rx.c: Likewise.
5886         * config/sh/sh.c: Likewise.
5887         * config/sol2.h: Likewise.
5888         * config/sparc/sparc.c: Likewise.
5889         * config/spu/spu.c: Likewise.
5890         * config/stormy16/stormy16.c: Likewise.
5891         * config/v850/v850.c: Likewise.
5892
5893 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
5894
5895         * simplify-rtx.c (simplify_binary_operation_1): Handle
5896         (xor (and A B) C) case when B and C are both constants.
5897
5898 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
5899
5900         * tree-dfa.c (add_referenced_var): Fix typo in comment.
5901
5902 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
5903
5904         PR bootstrap/48168
5905         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
5906
5907 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
5908
5909         PR rtl-optimization/48156
5910         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
5911         assume df and df_lr are not NULL.
5912
5913 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5914
5915         PR debug/48023
5916         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
5917         between a call and its CALL_ARG_LOCATION note.
5918
5919 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
5920
5921         PR debug/48178
5922         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5923         between a call and its corresponding CALL_ARG_LOCATION note.
5924
5925 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
5926
5927         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
5928         instead of loop. Use HARD_REGISTER_NUM_P predicate.
5929         * haifa-sched.c (setup_ref_regs): Ditto.
5930         * caller-save.c (add_used_regs_1): Ditto.
5931         * dse.c (look_for_hardregs): Ditto.
5932         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
5933         * sched-rgn.c (check_live_1): Ditto.
5934
5935 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5936
5937         * c-decl.c (diagnose_mismatched_decls): Give an error for
5938         redefining a typedef with variably modified type.
5939
5940 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
5941
5942         * c-decl.c (grokfield): Don't allow typedefs for structures or
5943         unions with no tag by default.
5944         * doc/extend.texi (Unnamed Fields): Update.
5945
5946 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
5947
5948         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5949         Rewrite using indirect functions.
5950         (lwp_slwpcb): Ditto.
5951         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
5952         (avx_vinsertf128<mode>): Ditto.
5953
5954 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5955
5956         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
5957         unspecs.
5958
5959 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5960
5961         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
5962         splitting between a call and its corresponding CALL_ARG_LOCATION note.
5963
5964 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
5965
5966         PR rtl-optimization/48170
5967         * gcse.c (hoist_code): Remove bogus asserts.
5968
5969 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
5970
5971         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
5972         computation for prologue/epilogue.
5973
5974 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5975
5976         * Makefile.in (check-consistency): Remove.
5977
5978 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
5979
5980         PR debug/48176
5981         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
5982         arange_table_in_use is 0, but either text_section_used or
5983         cold_text_section_used is true.  Don't call it if
5984         !info_section_emitted.
5985
5986 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
5987
5988         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
5989         FUNCTION_VALUE_REGNO_P): Remove.
5990         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
5991         Remove.
5992         * config/avr/avr.c (avr_ret_register): Make static inline.
5993         (avr_function_value_regno_p): New function.
5994         (avr_libcall_value): Make static. Add 'func' argument.
5995         (avr_function_value): Make static. Rename 'func' argument to
5996         'fn_decl_or_type', forward it to avr_libcall_value. Call
5997         avr_ret_register function instead of RET_REGISTER macro.
5998         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
5999
6000 2011-03-18  Jason Merrill  <jason@redhat.com>
6001
6002         PR c++/23372
6003         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
6004
6005 2011-03-18  Richard Guenther  <rguenther@suse.de>
6006
6007         * doc/install.texi (--enable-gold): Remove.
6008         (--with-plugin-ld): Document.
6009         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
6010
6011 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
6012
6013         PR middle-end/47790
6014         * expr.c (optimize_bitfield_assignment_op): Revamp to work
6015         again after expansion changes.
6016
6017 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
6018
6019         * combine.c (try_combine): Do simplification only call of
6020         subst() on i2 even when i1 is present. Update comments.
6021
6022 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
6023
6024         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
6025         and UNSPEC_PCREL_SYMOFF.
6026
6027 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6028
6029         * config/s390/s390.md: Use define_c_enum for the unspec constant
6030         definitions.
6031
6032 2011-03-18  Richard Henderson  <rth@redhat.com>
6033             Jakub Jelinek  <jakub@redhat.com>
6034
6035         PR bootstrap/48161
6036         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
6037         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
6038
6039 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6040
6041         PR middle-end/47725
6042         * combine.c (cant_combine_insn_p): Don't check zero/sign
6043         extended hard registers.
6044
6045 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6046
6047         PR middle-end/47725
6048         * combine.c (cant_combine_insn_p): Check zero/sign extended
6049         hard registers.
6050
6051 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
6052
6053         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
6054         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
6055         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
6056         Change return type to bool.
6057         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
6058
6059 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6060
6061         PR debug/48163
6062         * var-tracking.c (prepare_call_arguments): If CALL target
6063         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
6064         pc instead of looking it up using cselib_lookup and use
6065         Pmode for it if x has VOIDmode.
6066         * dwarf2out.c (gen_subprogram_die): If also both first and
6067         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
6068
6069         PR debug/48163
6070         * function.c (assign_parms): For data.passed_pointer parms
6071         use MEM of data.entry_parm instead of data.entry_parm itself
6072         as DECL_INCOMING_RTL.
6073         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
6074         also when passed and declared mode is the same, DECL_RTL
6075         is a MEM with pseudo as address and DECL_INCOMING_RTL is
6076         a MEM too.
6077
6078 2011-03-16  Jeff Law  <law@redhat.com>
6079
6080         PR rtl-optimization/37273
6081         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6082         handle them like argument loads from stack slots.  Do not double
6083         count memory for memory constants and argument loads from stack slots.
6084
6085 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6086
6087         PR debug/48160
6088         * var-tracking.c (prepare_call_arguments): Check SUBREG.
6089
6090 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6091
6092         PR target/48171
6093         * config/i386/i386.opt: Add Save to -mavx and -mfma.
6094
6095 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6096
6097         PR bootstrap/48153
6098         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
6099         if dwarf_strict.
6100         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
6101         Clear call_arg_locations and call_arg_loc_last always.
6102
6103         PR middle-end/48152
6104         * var-tracking.c (prepare_call_arguments): If argument needs to be
6105         passed by reference, adjust argtype and mode.
6106
6107 2011-03-17  Richard Guenther  <rguenther@suse.de>
6108
6109         PR middle-end/48134
6110         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
6111         a value make sure to fold the statement.
6112
6113 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
6114
6115         PR target/43872
6116         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
6117         return condition with !cfun->calls_alloca.
6118
6119 2011-03-17  Richard Guenther  <rguenther@suse.de>
6120
6121         PR bootstrap/48148
6122         * lto-cgraph.c (input_overwrite_node): Clear the abstract
6123         origin for decls in other ltrans units.
6124         (input_varpool_node): Likewise.
6125
6126 2011-03-17  Richard Guenther  <rguenther@suse.de>
6127
6128         PR middle-end/48165
6129         * tree-object-size.c (compute_object_offset): Properly return
6130         the offset operand of MEM_REFs as sizetype.
6131
6132 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
6133
6134         PR rtl-optimization/48141
6135         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
6136         * dse.c: Include params.h.
6137         (active_local_stores_len): New variable.
6138         (add_wild_read, dse_step1): Clear it when setting active_local_stores
6139         to NULL.
6140         (record_store, check_mem_read_rtx): Decrease it when removing
6141         from the chain.
6142         (scan_insn): Likewise.  Increase it when adding to chain, if it
6143         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
6144         set active_local_stores to NULL before the addition.
6145         * Makefile.in (dse.o): Depend on $(PARAMS_H).
6146
6147         PR rtl-optimization/48141
6148         * dse.c (record_store): If no positions are needed in an insn
6149         that cannot be deleted, at least unchain it from active_local_stores.
6150
6151 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
6152
6153         PR debug/47510
6154         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
6155         (lookup_type_die_strip_naming_typedef): ... here.
6156         (get_context_die): Use it.
6157         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
6158         the anonymous struct named by the naming typedef.
6159
6160 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
6161
6162         PR target/48154
6163         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
6164         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6165
6166 2011-03-16  Jeff Law  <law@redhat.com>
6167
6168         * tree-vrp.c (identify_jump_threads): Slightly simplify type
6169         check for operands of conditional.  Allow type to be a pointer.
6170
6171 2011-03-16  Richard Guenther  <rguenther@suse.de>
6172
6173         PR tree-optimization/48149
6174         * fold-const.c (fold_binary_loc): Fold
6175         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
6176
6177 2011-03-16  Richard Guenther  <rguenther@suse.de>
6178
6179         PR tree-optimization/26134
6180         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
6181         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
6182         (non_rewritable_mem_ref_base): Handle complex type component
6183         accesses, constrain offsets for vector and complex extracts
6184         more properly.
6185
6186 2011-03-16  Richard Guenther  <rguenther@suse.de>
6187
6188         PR tree-optimization/48146
6189         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
6190         operands avoiding the need for renaming.
6191
6192 2011-03-16  Richard Guenther  <rguenther@suse.de>
6193
6194         * gimple-fold.c (maybe_fold_reference): Open-code relevant
6195         constant folding.  Move MEM_REF canonicalization first.
6196         Rely on fold_const_aggregate_ref for initializer folding.
6197         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
6198
6199 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
6200
6201         PR middle-end/48136
6202         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
6203         arg0/arg1 or their arguments are always fold converted to matching
6204         types.
6205
6206         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
6207         to nargs.
6208
6209 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6210
6211         PR lto/46944
6212         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
6213         Handle in-tree gold.
6214         (ld_vers): Extract binutils version for gold.
6215         (gcc_cv_ld_hidden): Handle gold here.
6216         (gcc_cv_lto_plugin): Determine level of linker plugin support.
6217         * configure: Regenerate.
6218         * config.in: Regenerate.
6219         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
6220         -fuse-linker-plugin otherwise.
6221         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
6222         (LINK_COMMAND_SPEC): Use it.
6223         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
6224
6225 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
6226
6227         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
6228         * calls.c: Remove debug.h include.
6229         (emit_call_1): Don't call virtual_call_token debug hook.
6230         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
6231         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
6232         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
6233         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
6234         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
6235         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
6236         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
6237         dwarf2out_virtual_call): Remove.
6238         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
6239         copy_call_info and virtual_call hooks.
6240         (dwarf2out_init): Don't initialize vcall_insn_table,
6241         debug_dcall_section and debug_vcall_section.
6242         (prune_unused_types): Don't mark nodes from dcall_table.
6243         (dwarf2out_finish): Don't output dcall or vcall tables.
6244         * final.c (final_scan_insn): Don't call direct_call or
6245         virtual_call debug hooks.
6246         * debug.h (struct gcc_debug_hooks): Remove direct_call,
6247         virtual_call_token, copy_call_info and virtual_call hooks.
6248         (debug_nothing_uid): Remove prototype.
6249         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
6250         copy_call_info and virtual_call hooks.
6251         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6252         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
6253         * debug.c (do_nothing_debug_hooks): Likewise.
6254         (debug_nothing_uid): Remove.
6255         * doc/invoke.texi (-fenable-icf-debug): Remove.
6256         * common.opt (-fenable-icf-debug): Likewise.
6257
6258         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
6259         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
6260         call's MEM.  Handle functions returning aggregate through a hidden
6261         first pointer.  For virtual calls add clobbered pc to call arguments
6262         chain.
6263         * dwarf2out.c (gen_subprogram_die): Emit
6264         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
6265         can't be emitted.
6266
6267         PR debug/45882
6268         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
6269         * rtl.h (ENTRY_VALUE_EXP): Define.
6270         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
6271         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
6272         * print-rtl.c (print_rtx): Likewise.
6273         * gengtype.c (adjust_field_rtx_def): Likewise.
6274         * var-tracking.c (vt_add_function_parameter): Adjust
6275         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
6276         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
6277         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
6278         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
6279         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
6280
6281         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
6282         Call var_location debug hook even on CALL_INSNs.
6283         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
6284         * rtl.def (ENTRY_VALUE): New.
6285         * dwarf2out.c: Include cfglayout.h.
6286         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
6287         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
6288         (struct call_arg_loc_node): New type.
6289         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
6290         tail_call_site_count): New variables.
6291         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
6292         DW_TAG_GNU_call_site_parameter.
6293         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
6294         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
6295         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
6296         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
6297         and DW_AT_GNU_all_source_call_sites.
6298         (mem_loc_descriptor): Handle ENTRY_VALUE.
6299         (add_src_coords_attributes): Don't add enything if
6300         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
6301         (dwarf2out_abstract_function): Save and clear call_arg_location,
6302         call_site_count and tail_call_site_count around dwarf2out_decl call.
6303         (gen_call_site_die): New function.
6304         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
6305         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
6306         (dwarf2out_function_decl): Clear call_arg_locations,
6307         call_arg_loc_last, set call_site_count and tail_call_site_count
6308         to -1 and free block_map.
6309         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
6310         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
6311         followed by any real instructions.
6312         (dwarf2out_begin_function): Set call_site_count and
6313         tail_call_site_count to 0.
6314         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
6315         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
6316         attempt to force a DIE for it and worst case remove the attribute.
6317         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
6318         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
6319         the decl itself.
6320         * var-tracking.c: Include tm_p.h.
6321         (vt_stack_adjustments): For calls call note_register_arguments.
6322         (argument_reg_set): New variable.
6323         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
6324         ensure the VALUE is resolved.
6325         (call_arguments): New variable.
6326         (prepare_call_arguments): New function.
6327         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
6328         (struct expand_loc_callback_data): Add ignore_cur_loc field.
6329         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
6330         always use the best expression.
6331         (vt_expand_loc): Add ignore_cur_loc argument.
6332         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
6333         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
6334         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
6335         note for all calls.
6336         (vt_add_function_parameter): Use cselib_lookup_from_insn.
6337         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
6338         argument.  Don't call cselib_preserve_only_values and
6339         cselib_reset_table.
6340         (note_register_arguments): New function.
6341         (vt_initialize): Compute argument_reg_set.  Call
6342         vt_add_function_parameters before processing basic blocks instead of
6343         afterwards.  For calls call prepare_call_arguments before calling
6344         cselib_process_insn.
6345         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
6346         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
6347         (var-tracking.o): Depend on $(TM_P_H).
6348         * cfglayout.h (insn_scope): New prototype.
6349         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
6350         * cfglayout.c (insn_scope): No longer static.
6351         * insn-notes.def (CALL_ARG_LOCATION): New.
6352         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
6353         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
6354         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
6355         nothing for DECL_EXTERNAL BLOCK_VARS.
6356
6357 2011-03-16  Alan Modra  <amodra@gmail.com>
6358
6359         PR target/45844
6360         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
6361         create invalid offset address for vsx splat insn.
6362         * config/rs6000/predicates.md (splat_input_operand): New.
6363         * config/rs6000/vsx.md (vsx_splat_*): Use it.
6364
6365 2011-03-15  Xinliang David Li  <davidxl@google.com>
6366
6367         PR c/47837
6368         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
6369         (normalize_preds): New function.
6370         (is_use_properly_guarded): Normalize def predicates.
6371
6372 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6373
6374         PR target/46788
6375         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
6376         in the output template.
6377
6378 2011-03-15  Richard Guenther  <rguenther@suse.de>
6379
6380         PR middle-end/47650
6381         * tree-pretty-print.c (dump_function_declaration): Properly
6382         dump unprototyped and varargs function types.
6383
6384 2011-03-15  Richard Guenther  <rguenther@suse.de>
6385
6386         PR tree-optimization/13954
6387         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
6388         and friends.
6389
6390 2011-03-15  Richard Guenther  <rguenther@suse.de>
6391
6392         PR tree-optimization/48037
6393         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
6394         selects into BIT_FIELD_REFs.
6395         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
6396         vector select.
6397
6398 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
6399
6400         PR tree-optimization/48129
6401         * builtins.c (fold_builtin_snprintf): Convert to type of
6402         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
6403         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
6404
6405 2011-03-15  Richard Guenther  <rguenther@suse.de>
6406
6407         PR tree-optimization/41490
6408         * tree-ssa-dce.c (propagate_necessity): Handle returns without
6409         value but with VUSE.
6410         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
6411         return statements.
6412         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
6413         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
6414         * tree-tailcall.c (find_tail_calls): Ignore returns.
6415
6416 2011-03-15  Richard Guenther  <rguenther@suse.de>
6417
6418         PR middle-end/48031
6419         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
6420         or variable-indexed array accesses when in gimple form.
6421
6422 2011-03-15  Richard Guenther  <rguenther@suse.de>
6423
6424         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
6425
6426 2011-03-15  Alan Modra  <amodra@gmail.com>
6427
6428         PR target/48032
6429         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
6430         presume symbol_refs without a symbol_ref_decl are suitably
6431         aligned, nor other trees we may see here.  Handle anchor symbols.
6432         (legitimate_constant_pool_address_p): Comment.  Add mode param.
6433         Check cmodel=medium addresses.  Adjust all calls.
6434         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
6435         creating cmodel=medium optimized access to locals.
6436         * config/rs6000/constraints.md (R): Pass QImode to
6437         legitimate_constant_pool_address_p.
6438         * config/rs6000/predicates.md (input_operand): Pass mode to
6439         legitimate_constant_pool_address_p.
6440         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
6441         Update prototype.
6442
6443 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6444
6445         PR target/48053
6446         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
6447         64-bit constants being loaded into registers other than GPRs such
6448         as loading 0 into a VSX register.
6449
6450 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6451
6452         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
6453
6454 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6455
6456         PR middle-end/47917
6457         * builtins.c (fold_builtin_snprintf): New function.
6458         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
6459         (fold_builtin_4): Likewise.
6460
6461         PR middle-end/38878
6462         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
6463         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
6464         and C - X == X also strip nops from +/-/p+ operand.
6465         When optimizing -X == C, fold C to arg0's type.
6466
6467         PR debug/47946
6468         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
6469         emit it as add_AT_int instead of add_AT_unsigned.
6470
6471 2011-03-14  Tom Tromey  <tromey@redhat.com>
6472
6473         * unwind-dw2.c: Include sys/sdt.h if it exists.
6474         (_Unwind_DebugHook): Use STAP_PROBE2.
6475         * config.in, configure: Rebuild.
6476         * configure.ac: Check for sys/sdt.h.
6477
6478 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
6479
6480         * config/i386/i386.md (ROUND_FLOOR): New constant.
6481         (ROUND_CEIL): Ditto.
6482         (ROUND_TRUNC): Ditto.
6483         (ROUND_MXCSR): Ditto.
6484         (ROUND_NO_EXC): Ditto.
6485         (rint<mode>2): Use new defines instead of numerical constants.
6486         (floor<mode>2): Ditto.
6487         (ceil<mode>2): Ditto.
6488         (btrunc<mode>2): Ditto.
6489         * config/i386/i386-builtin-types.def: Define ROUND function type
6490         aliases.
6491         * config/i386/i386.c (enum ix86_builtins): Add
6492         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
6493         (struct builtin_description): Add
6494         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
6495         (ix86_expand_sse_round): New static function.
6496         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
6497         function types.
6498         (ix86_builtin_vectorized_function): Handle
6499         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
6500
6501 2011-03-14  Tom Tromey  <tromey@redhat.com>
6502
6503         * c-parser.c (c_parser_asm_string_literal): Clear
6504         warn_overlength_strings.
6505
6506 2011-03-14  Tom Tromey  <tromey@redhat.com>
6507
6508         * c-parser.c (disable_extension_diagnostics): Save
6509         warn_overlength_strings.
6510         (restore_extension_diagnostics): Restore warn_overlength_strings.
6511
6512 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6513
6514         * BASE-VER: Change to 4.7.0.
6515
6516 2011-03-14  Richard Guenther  <rguenther@suse.de>
6517
6518         PR middle-end/48098
6519         * tree.c (build_vector_from_val): Adjust assert to requirements
6520         and reality.
6521
6522 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
6523
6524         PR bootstrap/48102
6525         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
6526
6527 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
6528
6529         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
6530         terms of target_flags_explicit. Adjust copyright year.
6531
6532         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
6533         * config/rs6000/t-freebsd: New file. Add override for
6534         LIB2FUNCS_EXTRA.
6535
6536 2011-03-13  Chris Demetriou  <cgd@google.com>
6537
6538         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
6539         (-fno-diagnostics-show-option): this, to reflect current default.
6540         (-Werror=): Update text about -fno-diagnostics-show-option.
6541
6542 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
6543
6544         PR target/48053
6545         * config/rs6000/predicates.md (easy_vector_constant_add_self,
6546         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
6547         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
6548         mode is not V2DImode or V2DFmode.
6549         (vspltis_constant): Do not handle V2DImode and V2DFmode.
6550         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
6551         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
6552         registers to 0.
6553         (movdi_internal64): Likewise.
6554
6555 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
6556
6557         PR tree-optimization/47127
6558         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
6559         parameter.
6560         (set_cloog_options): Same.
6561         (scop_to_clast): Same.
6562         (print_clast_stmt): Do not call cloog_state_malloc and
6563         cloog_state_free.
6564         (print_generated_program): Same.
6565         (gloog): Same.
6566         * graphite-clast-to-gimple.h (cloog_state): Declared.
6567         (scop_to_clast): Adjust declaration.
6568         * graphite.c (cloog_state): Defined here.
6569         (graphite_initialize): Call cloog_state_malloc.
6570         (graphite_finalize): Call cloog_state_free.
6571
6572 2011-03-11  Jason Merrill  <jason@redhat.com>
6573
6574         * attribs.c (lookup_attribute_spec): Take const_tree.
6575         * tree.h: Adjust.
6576
6577 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
6578
6579         * config/sparc/sparc.c (sparc_option_override): Use
6580         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
6581
6582 2011-03-11  Richard Guenther  <rguenther@suse.de>
6583
6584         PR tree-optimization/48067
6585         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
6586         multiplication result will be only used once on the target
6587         stmt.
6588
6589 2011-03-11  Richard Guenther  <rguenther@suse.de>
6590
6591         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
6592
6593 2011-03-11  Richard Guenther  <rguenther@suse.de>
6594
6595         PR lto/48073
6596         * tree.c (find_decls_types_r): Do not walk types only reachable
6597         from IDENTIFIER_NODEs.
6598
6599 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6600
6601         PR middle-end/48044
6602         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
6603         all vnode->force_output nodes as needed.
6604
6605 2011-03-11  Jason Merrill  <jason@redhat.com>
6606
6607         PR c++/48069
6608         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
6609         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
6610
6611 2011-03-11  Martin Jambor  <mjambor@suse.cz>
6612
6613         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
6614         cgraph_node.
6615
6616 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
6617
6618         PR tree-optimization/48063
6619         * ipa-inline.c (cgraph_decide_inlining): Don't try to
6620         inline functions called once if !tree_can_inline_p (node->callers).
6621
6622 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
6623
6624         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
6625         extra_objs.
6626         * config/score/score3.c: Delete.
6627         * config/score/score3.h: Delete.
6628         * config/score/mul-div.S: Delete.
6629         * config/score/sfp-machine.h: Add new file.
6630         * config/score/constraints.md: Add new file.
6631         * config/score/t-score-softfp: Add new file.
6632         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
6633         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
6634         (score7_extra_constraint): Delete.
6635         (score7_option_override): Remove unused code.
6636         * config/score/score.c: Remove score3 and score5 define and code.
6637         * config/score/score.h: Remove score3 and score5 define and code.
6638         * config/score/score.md: Remove score3 template and unusual insn.
6639         * config/score/score.opt: Remove score3 and score5 options.
6640
6641 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6642
6643         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
6644         when _HPUX_SOURCE is defined.
6645         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
6646
6647 2011-03-10  Jason Merrill  <jason@redhat.com>
6648
6649         PR c++/48029
6650         * stor-layout.c (layout_type): Don't set structural equality
6651         on arrays of incomplete type.
6652         * tree.c (type_hash_eq): Handle comparing them properly.
6653
6654 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
6655
6656         PR debug/48043
6657         * config/s390/s390.c (s390_delegitimize_address): Make sure the
6658         result mode matches original rtl mode.
6659
6660 2011-03-10  Nick Clifton  <nickc@redhat.com>
6661
6662         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
6663         (andsi3, andsi3_flags): Fix timings for three operand alternative.
6664
6665 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
6666
6667         PR rtl-optimization/47866
6668         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
6669         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
6670         if target wasn't scalar.
6671         * function.c (assign_stack_temp_for_type): Assert that neither
6672         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
6673         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
6674         macro.
6675         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
6676
6677 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6678
6679         * config/s390/s390-protos.h (s390_label_align): New prototype.
6680         * config/s390/s390.c (s390_label_align): New function.
6681         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
6682
6683 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6684
6685         PR target/47755
6686         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
6687         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
6688         (output_vec_const_move): Ditto.
6689
6690 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
6691
6692         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
6693         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
6694         * config/mips/mips.c (mips_preferred_reload_class): Make static.
6695         Change 'rclass' argument and result type to reg_class_t.
6696         (TARGET_PREFERRED_RELOAD_CLASS): Define.
6697
6698 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
6699
6700         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6701         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
6702         (TARGET_MEMORY_MOVE_COST): Define.
6703         (avr_register_move_cost, avr_memory_move_cost): New Functions.
6704
6705 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
6706
6707         PR debug/47881
6708         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
6709         removed anything.
6710
6711         PR tree-optimization/48022
6712         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
6713         for EQ/NE_EXPR.
6714
6715 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
6716
6717         PR debug/47991
6718         * var-tracking.c (find_use_val): Return NULL for
6719         cui->sets && cui->store_p BLKmode MEMs.
6720
6721 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
6722
6723         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
6724         Remove.
6725         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
6726         xstormy16_print_operand_address): Remove.
6727         * config/stormy16/stormy16.c (xstormy16_print_operand,
6728         xstormy16_print_operand_address): Make static.
6729         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6730
6731 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
6732
6733         PR target/47862
6734         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6735         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
6736         before definition.
6737
6738 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
6739
6740         PR bootstrap/48000
6741         * cfgloopmanip.c (fix_bb_placements): Return immediately
6742         if FROM is BASE_LOOP's header.
6743
6744 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
6745
6746         * gimplify.c (gimplify_function_tree): Fix building calls
6747         to __builtin_return_address.
6748
6749 2011-03-07  Alan Modra  <amodra@gmail.com>
6750
6751         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
6752         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
6753         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
6754         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
6755         return_mode args.
6756         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
6757         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
6758         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
6759         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
6760         * config/rs6000/rs6000.c
6761         (rs6000_elf_end_indicate_exec_stack): Rename to..
6762         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
6763         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
6764         (rs6000_file_start): ..here.
6765         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
6766         file scope variables.
6767         (call_ABI_of_interest): New function.
6768         (init_cumulative_args): Set above vars when function return value
6769         is a float, vector, or small struct.
6770         (rs6000_function_arg_advance_1): Likewise for function args.
6771         (rs6000_va_start): Set rs6000_passes_float if variable arg function
6772         references float args.
6773
6774 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
6775
6776         * doc/cfg.texi: Remove "See" before @ref.
6777         * doc/invoke.texi: Likewise.
6778
6779 2011-03-05  Jason Merrill  <jason@redhat.com>
6780
6781         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
6782
6783 2011-03-05  Anthony Green  <green@moxielogic.com>
6784
6785         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
6786
6787 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
6788
6789         PR rtl-optimization/47899
6790         * cfgloopmanip.c (fix_bb_placements): Fix first argument
6791         to flow_loop_nested_p when moving the loop upward.
6792
6793 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
6794
6795         PR target/47719
6796         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
6797
6798 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
6799
6800         PR tree-optimization/47967
6801         * ipa-cp.c (build_const_val): Return NULL instead of creating
6802         VIEW_CONVERT_EXPR for mismatching sizes.
6803         (ipcp_create_replace_map): Return NULL if build_const_val failed.
6804         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
6805         give up on versioning.
6806
6807 2011-03-05  Alan Modra  <amodra@gmail.com>
6808
6809         PR target/47986
6810         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
6811         full cmodel medium/large lo_sum + high addresses.
6812
6813 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6814
6815         * config/s390/s390.c (s390_decompose_address): Reject non-literal
6816         pool references in UNSPEC_LTREL_OFFSET.
6817
6818 2011-03-04  Jan Hubicka  <jh@suse.cz>
6819
6820         PR lto/47497
6821         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
6822         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
6823         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
6824         Add node pointers.
6825         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
6826         cgraph_add_thunk): Add node pointers.
6827         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
6828         associated to right node.
6829         (input_node): Update use of cgraph_same_body_alias
6830         and cgraph_add_thunk.
6831
6832 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
6833
6834         * config/i386/i386.opt (mprefer-avx128): New flag.
6835         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
6836         modes when the flag -mprefer-avx128 is on.
6837
6838 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
6839
6840         * dwarf2out.c (compare_loc_operands): Fix address handling.
6841
6842 2011-03-04  Alan Modra  <amodra@gmail.com>
6843
6844         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
6845
6846 2011-03-04  Richard Guenther  <rguenther@suse.de>
6847
6848         PR middle-end/47968
6849         * expmed.c (extract_bit_field_1): Prefer vector modes that
6850         vec_extract patterns can handle.
6851
6852 2011-03-04  Richard Guenther  <rguenther@suse.de>
6853
6854         PR middle-end/47975
6855         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
6856
6857 2011-03-04  Richard Henderson  <rth@redhat.com>
6858
6859         * explow.c (emit_stack_save): Remove 'after' parameter.
6860         (emit_stack_restore): Likewise.
6861         * expr.h: Update to match.
6862         * builtins.c, calls.c, stmt.c: Likewise.
6863         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
6864         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
6865         * function.c (expand_function_end): Insert the emit_stack_save
6866         sequence before parm_birth_insn instead of after.
6867
6868 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
6869
6870         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
6871         (ssse3_pmaddubsw128): Ditto.
6872         (ssse3_pmaddubsw): Ditto.
6873
6874 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
6875
6876         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
6877
6878 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
6879
6880         PR c/47963
6881         * gimplify.c (omp_add_variable): Only call omp_notice_variable
6882         on TYPE_SIZE_UNIT if it is a DECL.
6883
6884         PR debug/47283
6885         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
6886         first operand is not is_gimple_mem_ref_addr, try to fold it.
6887         If the operand still isn't is_gimple_mem_ref_addr, clear
6888         MEM_EXPR on op0.
6889
6890 2011-03-03  Richard Guenther  <rguenther@suse.de>
6891
6892         PR middle-end/47283
6893         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
6894         match comment.
6895         (refs_may_alias_p_1): For release branches return true if
6896         we are confused by our input.
6897
6898 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6899
6900         * config/s390/s390.c (s390_function_value): Rename to ...
6901         (s390_function_and_libcall_value): ... this.
6902         (s390_function_value): New function.
6903         (s390_libcall_value): New function.
6904         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
6905         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
6906         target macro definitions.
6907         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
6908
6909 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
6910
6911         * config/i386/freebsd64.h (CC1_SPEC): Define.
6912         * config/i386/linux64.h (CC1_SPEC): Define.
6913         * config/i386/x86-64.h (CC1_SPEC): Don't define.
6914
6915 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
6916
6917         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
6918         Remove.
6919         * config/stormy16/stormy16.c: Include reload.h.
6920         (xstormy16_memory_move_cost): New function.
6921         (TARGET_MEMORY_MOVE_COST): Define.
6922
6923 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
6924
6925         PR rtl-optimization/47925
6926         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
6927         with side effects.  Remove the more-specific check for volatile asms.
6928
6929 2011-03-02  Alan Modra  <amodra@gmail.com>
6930
6931         PR target/47935
6932         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
6933         toc relative addresses for valid offsets.
6934
6935 2011-03-01  Richard Guenther  <rguenther@suse.de>
6936
6937         PR tree-optimization/47890
6938         * tree-vect-loop.c (get_initial_def_for_induction): Set
6939         related stmt properly.
6940
6941 2011-03-01  Richard Guenther  <rguenther@suse.de>
6942
6943         PR lto/47924
6944         * lto-streamer.c (lto_record_common_node): Also register
6945         the canonical type.
6946
6947 2011-03-01  Richard Guenther  <rguenther@suse.de>
6948
6949         PR lto/46911
6950         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
6951         Do not stream DECL_ABSTRACT_ORIGIN.
6952         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6953         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6954         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6955         Do not stream DECL_ABSTRACT_ORIGIN.
6956         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
6957         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
6958
6959 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
6960
6961         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
6962         FUNCTION_VALUE_REGNO_P): Remove.
6963         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
6964         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
6965         Add 'outgoing' argument.
6966         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
6967         function.
6968         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6969         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6970
6971 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
6972
6973         PR debug/28047
6974         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
6975         (lookup_filename): Likewise.
6976         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
6977
6978 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
6979             Jakub Jelinek  <jakub@redhat.com>
6980
6981         PR middle-end/47893
6982         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
6983         (assign_stack_local_1): Change last argument type to int.
6984         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
6985         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
6986         don't record padding space into frame_space_list nor use those areas.
6987         (assign_stack_local): Adjust caller.
6988         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
6989         of assign_stack_local, pass 0 as last argument.
6990         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
6991         callers.
6992
6993 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
6994
6995         PR debug/47283
6996         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
6997         Use target address_mode and pointer_mode hooks instead of hardcoded
6998         Pmode and ptr_mode.  Handle some simple cases of extending if
6999         POINTERS_EXTEND_UNSIGNED < 0.
7000         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
7001         Call convert_debug_memory_address.
7002         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
7003         convert_debug_memory_address.
7004
7005         PR middle-end/46790
7006         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
7007         * configure: Regenerated.
7008         * config.in: Regenerated.
7009         * varasm.c (default_function_section): Return NULL
7010         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
7011
7012 2011-02-28  Martin Jambor  <mjambor@suse.cz>
7013
7014         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
7015         the description to match the printed values.
7016
7017 2011-02-28  Richard Guenther  <rguenther@suse.de>
7018
7019         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
7020         of the copied scope tree.
7021
7022 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7023
7024         * doc/extend.texi (Function Attributes): Avoid deeply (and
7025         wrongly) nested tables.
7026
7027 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
7028
7029         PR middle-end/47903
7030         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
7031         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
7032         r isn't op0 nor op1.
7033
7034 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
7035
7036         * config/avr/avr.md: Remove magic comment for emacs.
7037
7038 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
7039
7040         PR target/45261
7041         * config/avr/avr.c (avr_option_override): Use error on bad options.
7042         (avr_help): New function.
7043         (TARGET_HELP): Define.
7044
7045 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
7046
7047         PR target/42240
7048         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
7049         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
7050
7051 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
7052
7053         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
7054         (ARM Options): Ditto.
7055         (i386 and x86-64 Options): Ditto.
7056         (RX Options): Ditto.
7057         (SPARC Options): Ditto.
7058
7059 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
7060
7061         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
7062         FreeBSD 6 and later.  Generally use cpu generic.
7063
7064 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
7065
7066         * doc/cpp.texi: Update copyright years.
7067
7068 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
7069
7070         PR target/46898
7071         * config/lm32/lm32.md (ashrsi3): Added needed variable.
7072
7073 2011-02-25  Jon Beniston  <jon@beniston.com>
7074
7075         PR target/46898
7076         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
7077         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
7078         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
7079         (lm32_block_move_inline): Add type cast to remove warning.
7080         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
7081         (gen_int_relational): Move declarations to start of function.
7082
7083 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
7084
7085         PR tree-optimization/45470
7086         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
7087         can throw internally only.
7088         * tree-vect-stmts.c (vectorizable_call): Likewise.
7089
7090 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
7091
7092         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
7093         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
7094         * config/stormy16/stormy16-protos.h
7095         (xstormy16_preferred_reload_class): Remove.
7096         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
7097         static. Change 'rclass' argument and return type to reg_class_t.
7098         (TARGET_PREFERRED_RELOAD_CLASS,
7099         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7100
7101 2011-02-24  Richard Guenther  <rguenther@suse.de>
7102
7103         * lto-streamer-in.c (input_bb): Do not find referenced vars
7104         in debug statements.
7105
7106 2011-02-23  Jason Merrill  <jason@redhat.com>
7107
7108         * common.opt (fabi-version): Document v5 and v6.
7109
7110 2011-02-23  Richard Guenther  <rguenther@suse.de>
7111
7112         PR tree-optimization/47849
7113         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
7114
7115 2011-02-23  Jie Zhang  <jie@codesourcery.com>
7116
7117         * opts-common.c (decode_cmdline_option): Print empty string
7118         argument as "" in decoded->orig_option_with_args_text.
7119         * gcc.c (execute): Print empty string argument as ""
7120         in the verbose output.
7121         (do_spec_1): Keep empty string argument.
7122
7123 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
7124
7125         * config.gcc: Declare score-* and crx-* obsolete.
7126
7127 2011-02-23  Jie Zhang  <jie@codesourcery.com>
7128
7129         PR rtl-optimization/47763
7130         * web.c (web_main): Ignore naked clobber when replacing register.
7131
7132 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
7133
7134         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
7135         Remove.
7136
7137 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
7138
7139         PR doc/47848
7140         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
7141
7142 2011-02-22  Mike Stump  <mikestump@comcast.net>
7143
7144         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
7145         assembler.
7146         * configure: Regenerate.
7147
7148 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
7149
7150         PR rtl-optimization/46002
7151         * ira-color.c (update_copy_costs): Change class intersection
7152         test to reg_class_contents[] test of 'hard_regno'.
7153
7154 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
7155
7156         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
7157         than Driver option.
7158         * config/hpux11.opt (mt): Likewise.
7159         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
7160         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
7161         * config/vax/elf.opt (mno-asm-pic): Likewise.
7162         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
7163
7164 2011-02-21  Mike Stump  <mikestump@comcast.net>
7165
7166         PR target/47822
7167         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
7168         tree so we can get save the type.
7169         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
7170         for CFString instead of trying to use past the end of the builtins.
7171         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
7172         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
7173         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
7174         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
7175         Rename to darwin_builtin_cfstring.
7176         (darwin_init_cfstring_builtins): Return the built type.
7177
7178 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
7179
7180         PR target/47840
7181         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
7182         (_mm256_insert_epi64): Use _mm_insert_epi64.
7183
7184 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
7185
7186         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7187         * config/stormy16/stormy16-protos.h
7188         (xstormy16_mode_dependent_address_p): Remove.
7189         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
7190         Make static. Change return type to bool. Change argument type to
7191         const_rtx. Remove dead code.
7192         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7193
7194 2011-02-21  Richard Guenther  <rguenther@suse.de>
7195
7196         PR lto/47820
7197         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7198         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
7199         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
7200         TUs context.
7201         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7202         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
7203
7204 2011-02-20  Richard Guenther  <rguenther@suse.de>
7205
7206         PR lto/47822
7207         * tree.c (free_lang_data_in_decl): Clean builtins from
7208         the TU decl BLOCK_VARS.
7209
7210 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
7211
7212         PR debug/47620
7213         PR debug/47630
7214         * haifa-sched.c (fix_tick_ready): Skip tick computation
7215         for debug insns.
7216
7217 2011-02-19  Richard Guenther  <rguenther@suse.de>
7218
7219         PR lto/47647
7220         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
7221         Remove lazy BLOCK_VARS streaming.
7222         (lto_input_ts_block_tree_pointers): Likewise.
7223         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
7224
7225 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
7226
7227         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
7228
7229 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
7230
7231         * config/i386/biarch32.h, config/i386/mach.h,
7232         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
7233
7234 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
7235
7236         PR target/47800
7237         * config/i386/i386.md (peephole2 for shift and plus): Use
7238         operands[1] original mode in the first insn.
7239
7240 2011-02-18  Mike Stump  <mikestump@comcast.net>
7241
7242         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
7243
7244 2011-02-18  Jan Hubicka  <jh@suse.cz>
7245
7246         PR middle-end/47788
7247         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
7248         to zero when the function is not inlinable at all.
7249
7250 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7251
7252         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
7253         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7254         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
7255         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
7256         * config/pa/t-pa64: Likewise.
7257         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
7258
7259 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
7260
7261         PR driver/47787
7262         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
7263
7264 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7265
7266         PR target/47792
7267         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
7268
7269 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
7270
7271         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
7272         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
7273         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
7274         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
7275         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
7276         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
7277         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
7278         m32r_load_postinc_p, m32r_store_preinc_predec_p,
7279         m32r_legitimate_address_p): New functions.
7280         * config/m32r/constraints.md (constraint "S"): Don't use
7281         STORE_PREINC_PREDEC_P.
7282         (constraint "U"): Don't use LOAD_POSTINC_P.
7283
7284 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
7285
7286         PR rtl-optimization/46178
7287         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
7288         compute ira_hard_regno_cover_class[].
7289
7290 2011-02-18  Richard Guenther  <rguenther@suse.de>
7291
7292         PR lto/47798
7293         * lto-streamer.h (lto_global_var_decls): Declare.
7294         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
7295         statics for global var processing.
7296
7297 2011-02-18  Richard Guenther  <rguenther@suse.de>
7298
7299         PR tree-optimization/47737
7300         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
7301         edge dominance check.
7302
7303 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
7304
7305         PR debug/47780
7306         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
7307         avoid invalid rtx sharing.
7308
7309 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
7310
7311         * doc/cpp.texi (Obsolete Features): Add background on the
7312         origin of assertions.
7313
7314 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
7315
7316         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
7317         objc_abi == 2.
7318         * config/darwin.c (output_objc_section_asm_op): Added support for
7319         ABI v1 and v2.
7320         (is_objc_metadata): New.
7321         (darwin_objc2_section): New.
7322         (darwin_objc1_section): New.
7323         (machopic_select_section): Added support for ABI v1 and v2.
7324         (darwin_emit_objc_zeroed): New.
7325         (darwin_output_aligned_bss): Detect objc metadata and treat it
7326         appropriately.
7327         (darwin_asm_output_aligned_decl_common): Same.
7328         (darwin_asm_output_aligned_decl_local): Same.
7329         * config/darwin-sections.def: Updated for ABI v1 and v2.
7330         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
7331         compiling Objective-C code for the NeXT runtime, default to using
7332         ABI version 0 for 32-bit, and version 2 for 64-bit.
7333
7334 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
7335
7336         * common.opt (optimize_fast): New Variable.
7337         * opts.c (default_options_optimization): Use opts->x_optimize_fast
7338         instead of local variable ofast.
7339
7340 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
7341
7342         * doc/invoke.texi (fobjc-abi-version): Documented.
7343         (fobjc-nilcheck): Documented.
7344         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
7345         version.
7346
7347 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
7348
7349         PR driver/47390
7350         * common.opt (export-dynamic): New Driver option.
7351         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
7352
7353 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
7354
7355         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
7356
7357 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
7358             Jan Hubicka  <jh@suse.cz>
7359
7360         PR debug/47106
7361         PR debug/47402
7362         * cfgexpand.c (account_used_vars_for_block): Remove.
7363         (estimated_stack_frame_size): Use referenced vars.
7364         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
7365         that were referenced in the original function.  Test src_fn
7366         rather than cfun.  Drop redundant get_var_ann.
7367         (setup_one_parameter): Drop redundant get_var_ann.
7368         (declare_return_variable): Likewise.
7369         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
7370         (copy_arguments_for_versioning): Drop redundant get_var_ann.
7371         * ipa-inline.c (compute_inline_parameters): Do not compute
7372         disregard_inline_limits here.
7373         (compute_inlinable_for_current, pass_inlinable): New.
7374         (pass_inline_parameters): Require PROP_referenced_vars.
7375         * cgraphunit.c (cgraph_process_new_functions): Don't run
7376         compute_inline_parameters explicitly unless function is in SSA form.
7377         (cgraph_analyze_function): Set .disregard_inline_limits.
7378         * tree-sra.c (convert_callers): Compute inliner parameters
7379         only for functions already in SSA form.
7380
7381 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
7382
7383         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
7384         -mlittle-endian-data.
7385
7386 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
7387
7388         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
7389         -mno-fpu, not -fpu and -no-fpu.
7390         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
7391         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
7392
7393 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
7394
7395         PR target/43653
7396         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
7397         input reload with PLUS RTX.
7398
7399 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7400
7401         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
7402         of InverseVar(MDMX).
7403
7404 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7405
7406         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
7407         --m4-340.
7408
7409 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7410
7411         * config/mn10300/mn10300.opt (mno-crt0): New.
7412
7413 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7414
7415         * config/m68k/uclinux.opt (static-libc): New Driver option.
7416
7417 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7418
7419         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
7420
7421 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
7422
7423         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
7424         %{muser-extend-enabled}.
7425
7426 2011-02-16  Richard Guenther  <rguenther@suse.de>
7427
7428         PR tree-optimization/47738
7429         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
7430         the TODO from tree_predictive_commoning.
7431
7432 2011-02-15  Jeff Law  <law@redhat.com>
7433
7434         Revert
7435         2011-01-25  Jeff Law  <law@redhat.com>
7436
7437         PR rtl-optimization/37273
7438         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7439         handle them like argument loads from stack slots.  Do not double
7440         count memory for memory constants and argument loads from stack slots.
7441
7442 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7443
7444         PR middle-end/47725
7445         * combine.c (cant_combine_insn_p): Revert the last change.
7446
7447 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7448
7449         PR target/47755
7450         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
7451         mode for vector constants.  Remove code that checks for TImode.
7452
7453 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7454
7455         PR debug/47106
7456         PR debug/47402
7457         * cgraph.h (compute_inline_parameters): Return void.
7458         * ipa-inline.c (compute_inline_parameters): Adjust.
7459
7460 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7461
7462         PR debug/47106
7463         PR debug/47402
7464         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
7465         rather than decl.
7466         * cfgexpand.c (estimated_stack_frame_size): Likewise.
7467         * ipa-inline.c (compute_inline_parameters): Adjust.
7468
7469 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7470
7471         PR debug/47106
7472         PR debug/47402
7473         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
7474         Adjust all users.  Pass FN to...
7475         * tree-flow-inline.h (first_referenced_var): ... this.  Add
7476         fn argument.
7477         * ipa-struct-reorg.c: Adjust.
7478         * tree-dfa.c: Adjust.
7479         * tree-into-ssa.c: Adjust.
7480         * tree-sra.c: Adjust.
7481         * tree-ssa-alias.c: Adjust.
7482         * tree-ssa-live.c: Adjust.
7483         * tree-ssa.c: Adjust.
7484         * tree-ssanames.c: Adjust.
7485         * tree-tailcall.c: Adjust.
7486
7487 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
7488
7489         PR debug/47106
7490         PR debug/47402
7491         * tree-flow.h (referenced_var_lookup): Add fn parameter.
7492         Adjust all callers.
7493         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
7494         * tree-flow-inline.h: Adjust.
7495         * gimple-pretty-print.c: Adjust.
7496         * tree-into-ssa.c: Adjust.
7497         * tree-ssa.c: Adjust.
7498         * cfgexpand.c: Adjust.
7499
7500 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7501
7502         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
7503         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7504         (EXTRA_CONSTRAINT): Delete.
7505         * config/iq2000/constraints.md: New file.
7506         * config/iq2000/iq2000.md: Include it.
7507         (define_insn ""): Delete.
7508         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
7509         unsupported constraint letters from patterns.
7510         (call_value, call_value_internal1): Likewise.
7511         (call_value_multiple_internal1): Likewise.
7512
7513 2011-02-15  Nick Clifton  <nickc@redhat.com>
7514
7515         * config/mn10300/mn10300.c: Include tm-constrs.h.
7516         (struct liw_data): New data structure describing an LIW candidate
7517         instruction.
7518         (extract_bundle): Use struct liw_data.  Allow small integer
7519         operands for some instructions.
7520         (check_liw_constraints): Use struct liw_data.  Remove swapped
7521         parameter.  Add comments describing the checks.  Fix bug when
7522         assigning the source of liw1 to the source of liw2.
7523         (liw_candidate): Delete.  Code moved into extract_bundle.
7524         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
7525         before swapping.
7526         * config/mn10300/predicates.md (liw_operand): New predicate.
7527         Allows registers and small integer constants.
7528         * config/mn10300/constraints.md (O): New constraint.  Accetps
7529         integers in the range -8 to +7 inclusive.
7530         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
7531         for moving a small integer into a register.  Give this alternative
7532         LIW attributes.
7533         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
7534         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
7535         using the J,K,L and M constraints,
7536         (liw): Remove SI mode on second operands to allow for HI and QI
7537         mode values.
7538         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
7539         instruction.
7540
7541 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7542
7543         PR middle-end/47725
7544         * combine.c (cant_combine_insn_p): Check zero/sign extended
7545         hard registers.
7546
7547 2011-02-15  Richard Guenther  <rguenther@suse.de>
7548
7549         PR tree-optimization/47743
7550         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
7551         for a non-type-compatible VN lookup bail out.
7552
7553 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7554
7555         * config/fr30/constraints.md: New file.
7556         * config/fr30/fr30.md: Include it.
7557         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
7558         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7559         (EXTRA_CONSTRAINT): Delete.
7560
7561 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
7562
7563         * config/frv/constraints.md: New file.
7564         * config/frv/predicates.md: Include it.
7565         * config/frv/frv.c (reg_class_from_letter): Delete.
7566         (frv_option_override): Don't initialize it.
7567         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
7568         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
7569         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
7570         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7571         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
7572         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7573         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
7574         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
7575         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
7576         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
7577         (REG_CLASS_FROM_CONSTRAINT): Delete.
7578
7579 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
7580
7581         PR middle-end/47581
7582         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
7583         if frame size is 0 in a leaf function.
7584
7585 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7586
7587         PR pch/14940
7588         * config/alpha/host-osf.c: New file.
7589         * config/alpha/x-osf: New file.
7590         * config.host (alpha*-dec-osf*): Use it.
7591
7592 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7593
7594         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
7595         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
7596         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
7597         (rx_mode_dependent_address_p): ...this. Make static. Change argument
7598         type to const_rtx.
7599         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
7600
7601 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7602
7603         * config/stormy16/constraints.md: New file.
7604         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
7605         Use satisfies_constraint_Q and satisfies_constraint_R.
7606         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
7607         Delete.
7608         (xstormy16_legitiamte_address_p): Declare.
7609         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
7610         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7611         (EXTRA_CONSTRAINT): Delete.
7612         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7613         Un-staticize.
7614         (xstormy16_extra_constraint_p): Delete.
7615
7616 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
7617
7618         PR tree-optimization/46494
7619         * loop-unroll.c (split_edge_and_insert): Adjust comment.
7620         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
7621         (pass_rtl_loop_done): Add TODO_verify_flow.
7622         * fwprop.c (pass_rtl_fwprop): Likewise.
7623         * modulo-sched.c (pass_sms): Likewise.
7624         * tree-ssa-dom.c (pass_dominator): Likewise.
7625         * tree-ssa-loop-ch.c (pass_ch): Likewise.
7626         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
7627         (pass_tree_loop_done): Likewise.
7628         * tree-ssa-pre.c (execute_pre): Likewise.
7629         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
7630         * tree-ssa-sink.c (pass_sink_code): Likewise.
7631         * tree-vrp.c (pass_vrp): Likewise.
7632
7633 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7634
7635         * config/v850/constraints.md: New file.
7636         * config/v850/v850.md: Include it.
7637         * config/v850/predicates.md (reg_or_0_operand): Use
7638         satisfies_constraint_G.
7639         (special_symbolref_operand): Use satisfies_constraint_K.
7640         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
7641         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
7642         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
7643         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
7644         (EXTRA_CONSTRAINT): Delete.
7645         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
7646         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
7647         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
7648
7649 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
7650
7651         PR target/47696
7652         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
7653         description.
7654
7655 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
7656
7657         * config/mcore/constraints.md: New file.
7658         * config/mcore/mcore.md: Include it.
7659         * config/mcore/mcore.c (reg_class_from_letter): Delete.
7660         * config/mcore/mcore.h (reg_class_from_letter): Delete.
7661         (REG_CLASS_FROM_LETTER): Delete.
7662         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
7663         insn_const_int_ok_for_constraint.
7664         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
7665         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
7666         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7667         (EXTRA_CONSTRAINT): Delete.
7668
7669 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7670
7671         PR ada/41929
7672         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
7673         (IS_SIGHANDLER): Define.
7674         (sparc64_is_sighandler): New function, split off from
7675         sparc64_fallback_frame_state.
7676         (sparc_is_sighandler): New function, split off from
7677         sparc_fallback_frame_state.
7678         (sparc64_fallback_frame_state): Merge with ...
7679         (sparc_fallback_frame_state): ... this into ...
7680         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
7681         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
7682         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
7683         stack instead of hardcoded offsets.
7684
7685 2011-02-14  Andriy Gapon  <avg@freebsd.org>
7686
7687         PR target/45808
7688         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
7689
7690 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7691
7692         * configure: Regenerate.
7693
7694 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
7695
7696         PR driver/45731
7697         * gcc.c (asm_options): Correct spec matching --target-help.
7698
7699 2011-02-12  Martin Jambor  <mjambor@suse.cz>
7700
7701         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
7702         to gimple call error.
7703
7704 2011-02-12  Mike Stump  <mikestump@comcast.net>
7705
7706         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
7707         comments in backslash regions.
7708
7709 2011-02-12  Mike Stump  <mikestump@comcast.net>
7710             Jakub Jelinek  <jakub@redhat.com>
7711             Iain Sandoe  <iains@gcc.gnu.org>
7712
7713         PR target/47324
7714         * dwarf2out.c (output_cfa_loc): When required, apply the
7715         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
7716         (output_loc_sequence): Likewise.
7717         (output_loc_operands_raw): Likewise.
7718         (output_loc_sequence_raw): Likewise.
7719         (output_cfa_loc): Likewise.
7720         (output_loc_list): Suppress register number adjustment when
7721         calling output_loc_sequence()
7722         (output_die): Likewise.
7723
7724 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
7725
7726         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7727         Remove macros.
7728         * config/xtensa/xtensa.c (xtensa_register_move_cost,
7729         xtensa_memory_move_cost): New functions.
7730         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
7731
7732 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
7733
7734         PR lto/47225
7735         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
7736         in the current directory.
7737         * configure: Rebuilt.
7738
7739 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7740
7741         * config/darwin.c (darwin_override_options): Add a hunk missed
7742         from the commit of r168571.  Trim comment line lengths and
7743         correct indents of the preceding block.
7744
7745 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
7746
7747         * gcc.c (driver_handle_option): Concatenate the argument to -F with
7748         the switch.
7749
7750 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7751
7752         * common.opt (nostartfiles): New Driver option.
7753
7754 2011-02-11  Xinliang David Li  <davidxl@google.com>
7755
7756         PR tree-optimization/47707
7757         * tree-chrec.c (convert_affine_scev): Keep type precision.
7758
7759 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
7760
7761         PR tree-optimization/47420
7762         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
7763
7764 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
7765
7766         PR rtl-optimization/47614
7767         * rtl.h (check_for_inc_dec): Declare.
7768         * dse.c (check_for_inc_dec): Externalize...
7769         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
7770         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
7771
7772 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
7773
7774         PR driver/47678
7775         * gcc.c (main): Do not compile inputs if there were errors in
7776         option handling.
7777         * opts-common.c (read_cmdline_option): Check for wrong language
7778         after other error checks.
7779
7780 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
7781
7782         * cgraph.c: Fix comment typos.
7783         * cgraph.h: Likewise.
7784         * cgraphunit.c: Likewise.
7785         * ipa-cp.c: Likewise.
7786         * ipa-inline.c: Likewise.
7787         * ipa-prop.c: Likewise.
7788         * ipa-pure-const.c: Likewise.
7789         * ipa-ref.c: Likewise.
7790         * ipa-reference.c: Likewise.
7791
7792 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
7793
7794         PR debug/47684
7795         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
7796
7797 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7798
7799         PR testsuite/47400
7800         * doc/sourcebuild.texi (Require Support): Document
7801         dg-require-ascii-locale.
7802
7803 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
7804
7805         * doc/lto.texi (Write summary): Fix missing parentheses.
7806
7807 2011-02-10  DJ Delorie  <dj@redhat.com>
7808
7809         * config/m32c/m32c.c (m32c_option_override): Disable
7810         -fcombine-stack-adjustments until flag value tracking and compare
7811         optimization can be rewritten.
7812
7813 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
7814
7815         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
7816         PROCESSOR_POWER7.
7817         (PROCESSOR_DEFAULT64): Likewise.
7818
7819 2011-02-10  Richard Henderson  <rth@redhat.com>
7820
7821         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
7822         change from 2011-02-03.
7823         * config/rx/rx.c (flags_from_code): Likewise.
7824         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
7825         is valid, n/pz otherwise.
7826         (rx_select_cc_mode): Return CCmode if Y is not zero.
7827
7828 2011-02-10  Richard Guenther  <rguenther@suse.de>
7829
7830         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
7831
7832 2011-02-10  Richard Guenther  <rguenther@suse.de>
7833
7834         PR tree-optimization/47677
7835         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
7836
7837 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
7838
7839         PR target/47665
7840         * combine.c (make_compound_operation): Only change shifts into
7841         multiplication for SCALAR_INT_MODE_P.
7842
7843 2011-02-10  Jie Zhang  <jie@codesourcery.com>
7844
7845         PR testsuite/47622
7846         Revert
7847         2011-02-05  Jie Zhang  <jie@codesourcery.com>
7848         PR debug/42631
7849         * web.c (entry_register): Don't clobber the number of the
7850         first uninitialized reference in used[].
7851
7852 2011-02-09  Richard Guenther  <rguenther@suse.de>
7853
7854         PR tree-optimization/47664
7855         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
7856         all edges again.
7857
7858 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
7859
7860         PR target/46481
7861         PR target/47032
7862         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
7863         PROCESSOR_POWER7.
7864         (PROCESSOR_DEFAULT64): Same.
7865         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
7866
7867 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7868
7869         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
7870
7871 2011-02-09  Martin Jambor  <mjambor@suse.cz>
7872
7873         PR middle-end/45505
7874         * tree-sra.c (struct access): New flags grp_scalar_read and
7875         grp_scalar_write.  Changed description of assignment read and write
7876         flags.
7877         (dump_access): Dump new flags, reorder all of them.
7878         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
7879         to detect multiple scalar reads.
7880         (analyze_access_subtree): Use the new scalar read write flags instead
7881         of the old flags.  Adjusted comments.
7882
7883 2011-02-08  DJ Delorie  <dj@redhat.com>
7884
7885         PR target/47548
7886         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
7887         patterns.
7888
7889 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7890
7891         * config/m68k/uclinux.opt: New.
7892         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
7893
7894 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7895
7896         * config/cris/elf.opt (sim): New Driver option.
7897
7898 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7899
7900         * config/xtensa/elf.opt: New.
7901         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
7902
7903 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7904
7905         * config/vax/elf.opt: New.
7906         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
7907
7908 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7909
7910         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
7911
7912 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7913
7914         * config/gnu-user.opt: New.
7915         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
7916         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
7917         *-*-uclinux*): Use gnu-user.opt.
7918
7919 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
7920
7921         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
7922         * config/i386/gnu.h (CPP_SPEC): Likewise.
7923
7924 2011-02-08  Ian Lance Taylor  <iant@google.com>
7925
7926         * common.opt (fcx-limited-range): Add SetByCombined flag.
7927         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
7928         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
7929         (fassociative-math, freciprocal-math): Likewise.
7930         (funsafe-math-optimizations): Likewise.
7931         * opth-gen.awk: Handle SetByCombined.
7932         * optc-gen.awk: Likewise.
7933         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
7934         (set_unsafe_math_optimizations_flags): Likewise.
7935         * doc/options.texi (Option properties): Document SetByCombined.
7936
7937 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
7938
7939         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
7940         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
7941         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
7942         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
7943         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
7944
7945 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
7946
7947         PR tree-optimization/46834
7948         PR tree-optimization/46994
7949         PR tree-optimization/46995
7950         * graphite-sese-to-poly.c (used_outside_reduction): New.
7951         (detect_commutative_reduction): Call used_outside_reduction.
7952         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
7953         translate_scalar_reduction_to_array only when at least one
7954         loop-phi/close-phi tuple has been detected.
7955
7956 2011-02-08  Richard Guenther  <rguenther@suse.de>
7957
7958         PR middle-end/47639
7959         * tree-vect-generic.c (expand_vector_operations_1): Update
7960         stmts here ...
7961         (expand_vector_operations): ... not here.  Cleanup EH info
7962         and the CFG if required.
7963
7964 2011-02-08  Richard Guenther  <rguenther@suse.de>
7965
7966         PR tree-optimization/47641
7967         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
7968         require type compatibility.
7969
7970 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7971
7972         * gimple-low.c (lower_function_body): Don't remove the location of
7973         the return statement here.
7974         (lower_gimple_return): Do it here instead but only if the return
7975         statement is actually used twice.
7976
7977 2011-02-08  Richard Guenther  <rguenther@suse.de>
7978
7979         PR tree-optimization/47632
7980         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
7981         unused up_to_stmt parameter, return whether cfg-cleanup is
7982         necessary, remove EH info properly.
7983         (forward_propagate_into_gimple_cond): Adjust caller.
7984         (forward_propagate_into_cond): Likewise.
7985         (forward_propagate_comparison): Likewise.
7986         (tree_ssa_forward_propagate_single_use_vars): Make
7987         forward_propagate_comparison case similar to the two others.
7988
7989 2011-02-08  Nick Clifton  <nickc@redhat.com>
7990
7991         * config/mn10300/mn10300.opt (mliw): New command line option.
7992         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
7993         (liw_bundling): New automaton.
7994         (liw): New attribute.
7995         (liw_op): New attribute.
7996         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
7997         (movsi_internal): Add LIW attributes.
7998         (andsi3): Likewise.
7999         (iorsi3): Likewise.
8000         (xorsi3): Likewise.
8001         (addsi3): Separate register and immediate alternatives.
8002         Add LIW attributes.
8003         (subsi3): Likewise.
8004         (cmpsi): Likewise.
8005         (aslsi3): Likewise.
8006         (lshrsi3): Likewise.
8007         (ashrsi3): Likewise.
8008         (liw): New pattern.
8009         * config/mn10300/mn10300.c (liw_op_names): New
8010         (mn10300_print_operand): Handle 'W' operand descriptor.
8011         (extract_bundle): New function.
8012         (check_liw_constraints): New function.
8013         (liw_candidate): New function.
8014         (mn10300_bundle_liw): New function.
8015         (mn10300_reorg): New function.
8016         (TARGET_MACHINE_DEPENDENT_REORG): Define.
8017         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
8018         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
8019         __LIW__ or __NO_LIW__.
8020         * doc/invoke.texi: Describe the -mliw command line option.
8021
8022 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8023
8024         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
8025         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8026         pthread_mutex_unlock): Remove.
8027         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
8028         * config/pa/t-pa64: Likewise.
8029         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
8030         shared libc if not linking against libpthread.
8031         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
8032
8033 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
8034
8035         PR target/47558
8036         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
8037         on 10.6 and later to ensure that we always use the unwinder from
8038         the system.  Only add -no_compact_unwind when tarteting darwin
8039         10.6 or later.
8040
8041 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
8042
8043         PR target/46997
8044         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
8045         (vec_interleave_lowv2sf): Ditto.
8046         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
8047         (vec_extract_oddv2sf): Ditto.
8048
8049 2011-02-07  Mike Stump  <mikestump@comcast.net>
8050
8051         PR target/42333
8052         Add __ieee_divdc3 entry point.
8053         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
8054         entry point.
8055         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
8056         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
8057         * config/darwin.c (darwin_rename_builtins): Add.
8058         * config/darwin-protos.h (darwin_rename_builtins): Add.
8059
8060 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
8061
8062         PR target/47636
8063         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
8064         for the condition.
8065
8066 2011-02-07  Mike Stump  <mikestump@comcast.net>
8067
8068         * config/darwin.opt (mmacosx-version-min): Update default OS version.
8069
8070 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
8071
8072         PR target/47534
8073         * config/avr/libgcc.S (exit): Move .endfunc
8074
8075 2011-02-07  Richard Guenther  <rguenther@suse.de>
8076
8077         PR tree-optimization/47615
8078         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
8079         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
8080         (run_scc_vn): Initialize it.
8081         (visit_reference_op_load): Use it.
8082         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
8083
8084 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8085
8086         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
8087         DImode trapping arithmetic libfuncs.
8088
8089 2011-02-07  Richard Guenther  <rguenther@suse.de>
8090
8091         PR tree-optimization/47621
8092         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
8093         two duplicates ...
8094         (execute_update_addresses_taken): ... here.  Make it more
8095         conservative in what we accept.
8096
8097 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
8098
8099         * config/sparc/freebsd.h (ASM_SPEC): Define.
8100         * config/sparc/vxworks.h (ASM_SPEC): Define.
8101
8102 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
8103
8104         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
8105
8106 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
8107
8108         * doc/invoke.texi: Remove reference to compiler internals from
8109         user documentation.
8110
8111         * reg-notes.def: Remove REG_VALUE_PROFILE.
8112         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
8113
8114 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
8115
8116         PR middle-end/47610
8117         * varasm.c (default_section_type_flags): If decl is NULL,
8118         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
8119
8120 2011-02-05  Jie Zhang  <jie@codesourcery.com>
8121
8122         PR debug/42631
8123         * web.c (entry_register): Don't clobber the number of the
8124         first uninitialized reference in used[].
8125
8126 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
8127
8128         PR tree-optimization/46194
8129         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
8130         (build_classic_dist_vector_1): Do not represent classic distance
8131         vectors when the access functions are variating in different loops.
8132
8133 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8134
8135         * config/mips/iris6.opt: New.
8136         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
8137
8138 2011-02-04  Richard Henderson  <rth@redhat.com>
8139             Steve Ellcey  <sje@cup.hp.com>
8140
8141         PR target/46997
8142         * config/ia64/predicates.md (mux1_brcst_element): New.
8143         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
8144         * config/ia64/ia64.c (ia64_unpack_assemble): New.
8145         (ia64_unpack_sign): New.
8146         (ia64_expand_unpack): Rewrite using new routines.
8147         (ia64_expand_widen_sum): Ditto.
8148         (ia64_expand_dot_prod_v8qi): Ditto.
8149         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
8150         routines, add endian check.
8151         (pmpy2_even): Rename from pmpy2_r, add endian check.
8152         (pmpy2_odd): Rename from pmpy2_l, add endian check.
8153         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
8154         (vec_widen_smult_hi_v4hi): Ditto.
8155         (vec_widen_umult_lo_v4hi): Ditto.
8156         (vec_widen_umult_hi_v4hi): Ditto.
8157         (mulv2si3): Change endian checks.
8158         (sdot_prodv4hi): Rewrite with new calls.
8159         (udot_prodv4hi): New.
8160         (vec_pack_ssat_v4hi): Add endian check.
8161         (vec_pack_usat_v4hi): Ditto.
8162         (vec_pack_ssat_v2si): Ditto.
8163         (max1_even): Rename from max1_r, add endian check.
8164         (max1_odd): Rename from max1_l, add endian check.
8165         (*mux1_rev): Format change.
8166         (*mux1_mix): Ditto.
8167         (*mux1_shuf): Ditto.
8168         (*mux1_alt): Ditto.
8169         (*mux1_brcst_v8qi): Use new predicate.
8170         (vec_extract_evenv8qi): Remove endian check.
8171         (vec_extract_oddv8qi): Ditto.
8172         (vec_interleave_lowv4hi): Format change.
8173         (vec_interleave_highv4hi): Ditto.
8174         (mix2_even): Rename from mix2_r, add endian check.
8175         (mix2_odd): Rename from mux2_l, add endian check.
8176         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
8177         (vec_extract_evenodd_helper): Format change.
8178         (vec_extract_evenv4hi): Remove endian check.
8179         (vec_extract_oddv4hi): Remove endian check.
8180         (vec_interleave_lowv2si): Format change.
8181         (vec_interleave_highv2si): Format change.
8182         (vec_initv2si): Remove endian check.
8183         (vecinit_v2si): Add endian check.
8184         (reduc_splus_v2sf): Add endian check.
8185         (reduc_smax_v2sf): Ditto.
8186         (reduc_smin_v2sf): Ditto.
8187         (vec_initv2sf): Remove endian check.
8188         (fpack): Add endian check.
8189         (fswap): Add endian check.
8190         (vec_interleave_highv2sf): Add endian check.
8191         (vec_interleave_lowv2sf): Add endian check.
8192         (fmix_lr): Add endian check.
8193         (vec_setv2sf): Format change.
8194         (*vec_extractv2sf_0_be): Use shift to extract operand.
8195         (*vec_extractv2sf_1_be): New.
8196         (vec_pack_trunc_v4hi): Add endian check.
8197         (vec_pack_trunc_v2si): Format change.
8198
8199 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
8200
8201         PR inline-asm/23200
8202         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
8203         do bb, locus and block comparison and disallow loads if it is not set.
8204         (stmt_is_replaceable_p): New function.
8205         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
8206         callers.
8207         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
8208         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
8209         SSA_NAME_DEF_STMT.
8210         * tree-flow.h (stmt_is_replaceable_p): New prototype.
8211
8212 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8213
8214         * config/rs6000/xilinx.opt: New.
8215         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
8216
8217 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
8218
8219         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
8220
8221 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
8222
8223         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
8224         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8225         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
8226         secondary_reload_info, xtensa_secondary_reload): Remove.
8227         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
8228         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8229         (xtensa_preferred_reload_class): Make static. Change return and
8230         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
8231         Use CONST_DOUBLE_P predicate.
8232         (xtensa_preferred_output_reload_class): New function.
8233         (xtensa_secondary_reload): Make static.
8234
8235 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
8236
8237         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
8238         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
8239         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
8240
8241 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8242
8243         PR middle-end/31490
8244         * output.h (SECTION_RELRO): Define.
8245         (SECTION_MACH_DEP): Adjust.
8246         (get_variable_section): New prototype.
8247         * varpool.c (varpool_finalize_named_section_flags): New function.
8248         (varpool_assemble_pending_decls): Call it.
8249         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
8250         * cgraphunit.c (cgraph_output_in_order): Call
8251         varpool_finalize_named_section_flags.
8252         * varasm.c (get_section): Allow section flags conflicts between
8253         relro and read-only sections if the section hasn't been declared yet.
8254         Set SECTION_OVERRIDE after diagnosing section type conflict.
8255         (get_variable_section): No longer static.
8256         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
8257         readonly sections that need relocations.
8258         (decl_readonly_section_1): New function.
8259         (decl_readonly_section): Use it.
8260
8261         Revert:
8262         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
8263                     Steve Ellcey  <sje@cup.hp.com>
8264
8265         PR middle-end/31490
8266         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
8267         if section attribute used.
8268
8269 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8270
8271         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
8272         * config/darwin.c (SECTION_NO_ANCHOR): Define.
8273         (darwin_init_sections): Remove assertion.
8274
8275 2011-02-03  Nick Clifton  <nickc@redhat.com>
8276
8277         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
8278         lt and ge.
8279         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
8280         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
8281         instead of "n" and "pz".
8282         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
8283         CC_FLAG_S.
8284
8285 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
8286
8287         PR target/47312
8288         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
8289         fma, expand FMA_EXPR as fma{,f,l} call.
8290
8291         PR lto/47274
8292         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
8293         copy them into a unsigned char variable and pass address of it to
8294         lto_output_data_stream.
8295
8296         PR target/47564
8297         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
8298         around backend_init_target and lang_dependent_init_target calls.
8299         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
8300         (verify_cgraph_node): Don't call set_cfun here.  Use
8301         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
8302         Set error_found for incorrectly represented calls to thunks.
8303
8304 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
8305
8306         PR debug/43092
8307         PR rtl-optimization/43494
8308         * rtl.h (for_each_inc_dec_fn): New type.
8309         (for_each_inc_dec): Declare.
8310         * rtlanal.c (struct for_each_inc_dec_ops): New type.
8311         (for_each_inc_dec_find_inc_dec): New fn.
8312         (for_each_inc_dec_find_mem): New fn.
8313         (for_each_inc_dec): New fn.
8314         * dse.c (struct insn_size): Remove.
8315         (replace_inc_dec, replace_inc_dec_mem): Remove.
8316         (emit_inc_dec_insn_before): New fn.
8317         (check_for_inc_dec): Use it, along with for_each_inc_dec.
8318         (canon_address): Pass mem modes to cselib_lookup.
8319         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
8320         (cselib_lookup_from_insn): Likewise.
8321         (cselib_subst_to_values): Likewise.
8322         * cselib.c (find_slot_memmode): New var.
8323         (cselib_find_slot): New fn.  Use it instead of
8324         htab_find_slot_with_hash everywhere.
8325         (entry_and_rtx_equal_p): Use find_slot_memmode.
8326         (autoinc_split): New fn.
8327         (rtx_equal_for_cselib_p): Rename and implement in terms of...
8328         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
8329         Deal with autoinc.  Special-case recursion into MEMs.
8330         (cselib_hash_rtx): Likewise.
8331         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
8332         address and MEM modes.
8333         (cselib_subst_to_values): Add memmode, pass it on.
8334         Deal with autoinc.
8335         (cselib_lookup): Add memmode argument, pass it on.
8336         (cselib_lookup_from_insn): Add memmode.
8337         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
8338         (struct cselib_record_autoinc_data): New.
8339         (cselib_record_autoinc_cb): New fn.
8340         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
8341         mode to cselib_lookup.  Reset autoinced REGs here instead of...
8342         (cselib_process_insn): ... here.
8343         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
8344         to cselib_lookup.
8345         (add_uses): Likewise, also to cselib_subst_to_values.
8346         (add_stores): Likewise.
8347         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
8348         cselib_subst_to_values.
8349         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
8350         * gcse.c (do_local_cprop): Adjusted.
8351         * postreload.c (reload_cse_simplify_set): Adjusted.
8352         (reload_cse_simplify_operands): Adjusted.
8353         * sel-sched-dump (debug_mem_addr_value): Pass mode.
8354
8355 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
8356
8357         PR tree-optimization/45122
8358         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
8359         unsafe assumptions when there's more than one loop exit.
8360
8361 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8362
8363         PR target/47272
8364         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
8365         Document using vector double with the load/store builtins, and
8366         that the load/store builtins always use Altivec instructions.
8367
8368         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
8369         to use altivec memory instructions, even on VSX.
8370         (vector_altivec_store_<mode>): Ditto.
8371
8372         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
8373         function.
8374
8375         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8376         V2DF, V2DI support to load/store overloaded builtins.
8377
8378         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
8379         altivec load/store builtins for V2DF/V2DI types.
8380
8381         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8382         set avoid indexed addresses on power6 if -maltivec.
8383         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
8384         vector_altivec_load/vector_altivec_store builtins.
8385         (altivec_expand_st_builtin): Ditto.
8386         (altivec_expand_builtin): Add VSX memory builtins.
8387         (rs6000_init_builtins): Add V2DI types to internal types.
8388         (altivec_init_builtins): Add support for V2DF/V2DI altivec
8389         load/store builtins.
8390         (rs6000_address_for_altivec): Insure memory address is appropriate
8391         for Altivec.
8392
8393         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
8394         vec_vsx_ld and vec_vsx_st.
8395         (vsx_store_<mode>): Ditto.
8396
8397         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
8398         variables to hold long long types for VSX vector memory builtins.
8399         (RS6000_BTI_unsigned_long_long): Ditto.
8400         (long_long_integer_type_internal_node): Ditti.
8401         (long_long_unsigned_type_internal_node): Ditti.
8402
8403         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
8404         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
8405         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
8406
8407         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
8408         short cuts.
8409         (vec_vsx_st): Ditto.
8410
8411 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
8412
8413         * config/pa/pa-hpux10.opt: New.
8414         * config/hpux11.opt (pthread): New Driver option.
8415         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
8416         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
8417
8418 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
8419
8420         * config/ia64/vms.opt: New.
8421         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
8422
8423 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
8424
8425         PR target/47580
8426         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
8427         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
8428         generator functions.
8429         (vsx_floatuns<VSi><mode>2): Ditto.
8430         (vsx_fix_trunc<mode><VSi>2): Ditto.
8431         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
8432
8433 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
8434
8435         * config/i386/djgpp.opt (posix): New Driver option.
8436
8437 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
8438
8439         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
8440         Move to the unsupported targets list.
8441
8442 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
8443
8444         PR rtl-optimization/47525
8445         * df-scan.c: Update copyright years.
8446         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
8447         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
8448
8449 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8450
8451         * config/i386/sysv4.h (TARGET_VERSION): Remove.
8452         (SUBTARGET_RETURN_IN_MEMORY): Remove.
8453         (ASM_OUTPUT_ASCII): Remove.
8454         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
8455
8456 2011-02-02  Jeff Law  <law@redhat.com>
8457
8458         PR middle-end/47543
8459         * reload.c (find_reloads_address): Handle reg+d address where both
8460         components are invalid by reloading the entire address.
8461
8462 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8463             Richard Guenther  <rguenther@suse.de>
8464
8465         PR tree-optimization/40979
8466         PR bootstrap/47044
8467         * passes.c (init_optimization_passes): After LIM call copy_prop
8468         and DCE to clean up.
8469         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
8470
8471 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
8472
8473         PR tree-optimization/47576
8474         PR tree-optimization/47555
8475         * doc/invoke.texi (scev-max-expr-complexity): Documented.
8476         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8477         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
8478         * tree-scalar-evolution.c (follow_ssa_edge): Use
8479         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
8480
8481 2011-02-02  Richard Guenther  <rguenther@suse.de>
8482
8483         PR tree-optimization/47566
8484         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
8485
8486 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8487
8488         PR debug/47106
8489         PR debug/47402
8490         * tree-inline.c (declare_return_variable): Remove unused caller
8491         variable.
8492
8493         PR debug/47106
8494         PR debug/47402
8495         * tree-flow-inline.h (clear_is_used, is_used_p): New.
8496         * cfgexpand.c (account_used_vars_for_block): Use them.
8497         * tree-nrv.c (tree_nrv): Likewise.
8498         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
8499         (dump_scope_block): Likewise.
8500         (remove_unused_locals): Likewise.
8501
8502         PR debug/47106
8503         PR debug/47402
8504         * tree-inline.c (declare_return_variable): Add result decl to
8505         local decls only once.
8506         * gimple-low.c (record_vars_into): Mark newly-created variables
8507         as referenced.
8508
8509 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
8510
8511         PR debug/47498
8512         PR debug/47501
8513         PR debug/45136
8514         PR debug/45130
8515         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8516         debug insns.
8517         (no_real_insns_p, schedule_block, set_priorities): Drop special
8518         treatment of boundary debug insns.
8519         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8520         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
8521         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8522         (BOUNDARY_DEBUG_INSN_P): Likewise.
8523         (SCHEDULE_DEBUG_INSN_P): Likewise.
8524         * sched-rgn.c (init_ready_list): Drop special treatment of
8525         boundary debug insns.
8526         * final.c (rest_of_clean_state): Clear notes' BB.
8527
8528 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8529
8530         * config/openbsd.opt (assert=): New Driver option.
8531
8532 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8533
8534         * config/i386/nto.opt: New.
8535         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
8536
8537 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8538
8539         * config/i386/netware.opt: New.
8540         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
8541
8542 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8543
8544         * config/interix.opt (posix): New Driver option.
8545
8546 2011-02-01  DJ Delorie  <dj@redhat.com>
8547
8548         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
8549
8550         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
8551         class for A0/A1.
8552
8553 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
8554
8555         PR tree-optimization/47561
8556         * toplev.c (process_options): Print the Graphite flags.  Add
8557         flag_loop_flatten to the list of options requiring Graphite.
8558
8559 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8560
8561         * config/i386/cygming.opt (posix): New Driver option.
8562
8563 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8564
8565         * config/arm/vxworks.opt: New.
8566         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
8567
8568 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
8569
8570         * config/alpha/elf.opt: New.
8571         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
8572         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
8573
8574 2011-02-01  Richard Guenther  <rguenther@suse.de>
8575
8576         PR tree-optimization/47559
8577         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
8578         store-motion on references that can throw.
8579
8580 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
8581
8582         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
8583         * tree-pass.h (TDF_CSELIB): New macro.
8584         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
8585         cselib_lookup): Check for it rather than for TDF_DETAILS.
8586
8587 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
8588
8589         PR driver/47547
8590         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
8591         is HOST_BIT_BUCKET.
8592
8593         * opts.c (finish_options): Don't add x_aux_base_name if it is
8594         HOST_BIT_BUCKET.
8595
8596 2011-02-01  Richard Guenther  <rguenther@suse.de>
8597
8598         PR tree-optimization/47555
8599         Revert
8600         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
8601
8602         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8603
8604 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
8605
8606         PR gcc/46692
8607         * config/lm32/t-lm32: Add multilib for all CPU options.
8608
8609 2011-02-01  Richard Guenther  <rguenther@suse.de>
8610
8611         PR tree-optimization/47541
8612         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
8613         sure to have a field at offset zero.
8614
8615 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8616
8617         * config/arc/arc.opt (EB, EL): New Driver options.
8618
8619 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8620
8621         * config/alpha/osf5.opt: New.
8622         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
8623
8624 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
8625
8626         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
8627
8628 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
8629
8630         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
8631         -floop-interchange.
8632         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
8633         is an alias of -floop-interchange and that it requires the
8634         Graphite infrastructure.
8635         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
8636         flag_loop_interchange based on the value of flag_tree_loop_linear.
8637
8638 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
8639             Richard Guenther  <rguenther@suse.de>
8640
8641         PR tree-optimization/47538
8642         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
8643         type instead of r1type, except for comparisons.  For right
8644         shifts and comparisons punt if there are mismatches in
8645         sizetype vs. non-sizetype types.
8646
8647 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8648
8649         * doc/sourcebuild.texi (Effective-Target Keywords): Document
8650         avx_runtime.
8651
8652 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8653
8654         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
8655         version number.
8656         * configure: Regenerate.
8657
8658 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8659
8660         * configure.ac (gcc_cv_ld_static_option): Define.
8661         (gcc_cv_ld_dynamic_option): Define.
8662         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
8663         instead.
8664         (HAVE_LD_STATIC_DYNAMIC): Update message.
8665         (LD_STATIC_OPTION): Define.
8666         (LD_DYNAMIC_OPTION): Define.
8667         * configure: Regenerate.
8668         * config.in: Regenerate.
8669         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
8670         HAVE_LD_STATIC_DYNAMIC]: Use them.
8671
8672 2011-01-31  Nick Clifton  <nickc@redhat.com>
8673
8674         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
8675         registers inside interrupt handlers if the handler is not a leaf
8676         function.
8677
8678 2011-01-31  Nick Clifton  <nickc@redhat.com>
8679
8680         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
8681         reg_renumber returning an INVALID_REGNUM.
8682
8683 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8684
8685         PR libgcj/44341
8686         * doc/install.texi: Document host options discarded when cross
8687         configuring target libraries.
8688
8689 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
8690
8691         Reverted:
8692         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8693         PR debug/45136
8694         PR debug/45130
8695         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
8696         debug insns.
8697         (no_real_insns_p, schedule_block, set_priorities): Drop special
8698         treatment of boundary debug insns.
8699         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
8700         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
8701         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
8702         (BOUNDARY_DEBUG_INSN_P): Likewise.
8703         (SCHEDULE_DEBUG_INSN_P): Likewise.
8704         * sched-rgn.c (init_ready_list): Drop special treatment of
8705         boundary debug insns.
8706         * final.c (rest_of_clean-state): Clear notes' BB.
8707
8708 2011-01-31  Alan Modra  <amodra@gmail.com>
8709
8710         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
8711         toc relative expressions as we do in print_operand_address.
8712
8713 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
8714
8715         * doc/extend.texi: Follow spelling conventions.
8716         * doc/invoke.texi: Fix a typo.
8717
8718 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
8719
8720         * config/hpux11.opt: New.
8721         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
8722         ia64*-*-hpux*): Use hpux11.opt.
8723
8724 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
8725
8726         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
8727         to tmake_file.
8728
8729 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8730
8731         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
8732         support sites.
8733
8734 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8735
8736         * doc/install.texi (Binaries): Remove outdated reference for
8737         Motorola 68HC11/68HC12 downloads.
8738
8739 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
8740
8741         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
8742         Drepper's paper.
8743
8744 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
8745
8746         PR bootstrap/47147
8747         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
8748         used by NetBSD.
8749
8750 2011-01-28  Ahmad Sharif  <asharif@google.com>
8751
8752         * value-prof.c (check_counter): Corrected error message.
8753
8754 2011-01-29  Jie Zhang  <jie@codesourcery.com>
8755
8756         * config/arm/arm.c (arm_legitimize_reload_address): New.
8757         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
8758         arm_legitimize_reload_address.
8759         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
8760
8761 2011-01-28  Ian Lance Taylor  <iant@google.com>
8762
8763         * godump.c (go_define): Ignore macros whose definitions include
8764         two adjacent operands.
8765
8766 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
8767
8768         PR target/42894
8769         * varasm.c (force_const_mem): Store copy of x in desc->constant
8770         instead of x itself.
8771         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
8772         itself into REG_EQUAL note.
8773
8774 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
8775
8776         * config/freebsd.opt (posix, rdynamic): New Driver options.
8777
8778 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8779
8780         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
8781         -Bstatic/-Bdynamic.
8782         * configure: Regenerate.
8783
8784 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
8785
8786         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
8787         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
8788
8789 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
8790
8791         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
8792         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
8793         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
8794         (s390_preferred_reload_class): Make static. Change return and
8795         'rclass' argument type to reg_class_t.
8796
8797 2011-01-27  Jan Hubicka  <jh@suse.cz>
8798
8799         PR middle-end/46949
8800         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
8801         (process_function_and_variable_attributes): Check defined weakrefs.
8802
8803 2011-01-27  Martin Jambor  <mjambor@suse.cz>
8804
8805         PR tree-optimization/47228
8806         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
8807         build_ref_for_offset.
8808
8809 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8810
8811         * config/spu/spu-elf.h (ASM_SPEC): Remove.
8812
8813 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
8814
8815         PR rtl-optimization/46856
8816         * postreload.c (reload_combine_recognize_const_pattern): Do not
8817         separate cc0 setter and user on cc0 targets.
8818
8819 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
8820
8821         PR c/43082
8822         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
8823         passed a VOID_TYPE expression, immediately emit an error and
8824         return error_mark_node.
8825
8826 2011-01-26  Jeff Law  <law@redhat.com>
8827
8828         PR rtl-optimization/47464
8829         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
8830         rather than may_trap_p as needed.
8831
8832 2011-01-26  DJ Delorie  <dj@redhat.com>
8833
8834         PR rtl-optimization/46878
8835         * combine.c (insn_a_feeds_b): Check for the implicit cc0
8836         setter/user dependency as well.
8837
8838 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8839
8840         PR rtl-optimization/44469
8841         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
8842         after removing trivially dead basic blocks.
8843
8844 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8845
8846         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
8847         * config/frv/frv.h (LINK_SPEC): Likewise.
8848         * config/i386/netware.h (LINK_SPEC): Likewise.
8849         * config/m68k/linux.h (ASM_SPEC): Likewise.
8850         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
8851         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8852         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8853         * config/sparc/linux.h (ASM_SPEC): Likewise.
8854         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8855         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8856
8857 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8858
8859         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
8860         * config/frv/frv.h (ASM_SPEC): Likewise.
8861         * config/m68k/linux.h (ASM_SPEC): Likewise.
8862         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8863         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
8864         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8865         * config/sparc/linux.h (ASM_SPEC): Likewise.
8866         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8867         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8868
8869 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8870
8871         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
8872         * config/frv/frv.h (LINK_SPEC): Likewise.
8873         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
8874
8875 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
8876
8877         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
8878         * config/frv/frv.h (ASM_SPEC): Likewise.
8879         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
8880         * config/m68k/linux.h (ASM_SPEC): Likewise.
8881         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
8882         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
8883         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
8884         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
8885         * config/sparc/linux.h (ASM_SPEC): Likewise.
8886         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8887         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
8888         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
8889
8890 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
8891
8892         PR target/46997
8893         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
8894         (*mux2): Ditto.
8895         (vec_extract_evenodd_help): Ditto.
8896         (vec_extract_evenv4hi): Ditto.
8897         (vec_extract_oddv4hi): Ditto.
8898         (vec_interleave_lowv2si): Ditto.
8899         (vec_interleave_highv2si): Ditto.
8900         (vec_extract_evenv2si): Ditto.
8901         (vec_extract_oddv2si: Ditto.
8902         (vec_pack_trunc_v2si): Ditto.
8903
8904 2011-01-22  Jan Hubicka  <jh@suse.cz>
8905
8906         PR target/47237
8907         * cgraph.h (cgraph_local_info): New field can_change_signature.
8908         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
8909         signature can change.
8910         (ipcp_estimate_growth): Call sequence simplify only if calle signature
8911         can change.
8912         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
8913         (cgraph_function_versioning): We can not change signature of functions
8914         that don't allow that.
8915         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
8916         (lto_input_node): Likewise.
8917         * ipa-inline.c (compute_inline_parameters): Compute
8918         local.can_change_signature.
8919         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
8920         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
8921         functions that can not change signature.
8922         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
8923         init_cumulative_args): Do not use local calling conventions
8924         for functions that can not change signature.
8925
8926 2011-01-22  Jan Hubicka  <jh@suse.cz>
8927
8928         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
8929
8930 2011-01-26  Richard Guenther  <rguenther@suse.de>
8931
8932         PR tree-optimization/47190
8933         * cgraphunit.c (process_common_attributes): New function.
8934         (process_function_and_variable_attributes): Use it.
8935
8936 2011-01-26  Richard Guenther  <rguenther@suse.de>
8937
8938         PR lto/47423
8939         * cgraphbuild.c (record_eh_tables): Record reference to personality
8940         function.
8941
8942 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
8943
8944         PR debug/45454
8945         * sel-sched.c (moveup_expr): Don't let debug insns prevent
8946         non-debug insns from moving up.
8947
8948 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8949
8950         PR target/40125
8951         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
8952         t-dlldir{,-x} fragment for build and add it to tmake_file.
8953         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8954         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
8955         * config/i386/t-dlldir: New file.
8956         (SHLIB_DLLDIR): Define.
8957         * config/i386/t-dlldir-x: New file.
8958         (SHLIB_DLLDIR): Define.
8959         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
8960         (SHLIB_INSTALL): Use it.
8961
8962 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
8963
8964         PR target/47246
8965         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
8966         lower bound of the allowed Thumb-2 coprocessor load/store
8967         index range to -256. Add explaining comment.
8968
8969 2011-01-25  Ian Lance Taylor  <iant@google.com>
8970
8971         * godump.c (go_define): Improve lexing of macro expansion to only
8972         accept expressions which match Go spec.
8973
8974 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
8975
8976         PR c++/43601
8977         * tree.c (handle_dll_attribute): Handle it.
8978         * doc/extend.texi (@item dllexport): Mention it.
8979         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
8980
8981 2011-01-25  Ian Lance Taylor  <iant@google.com>
8982
8983         PR tree-optimization/26854
8984         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
8985         (decl_jump_unsafe): Move higher in file, with no other change.
8986         (bind): Set has_jump_unsafe_decl if appropriate.
8987         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
8988         (check_earlier_gotos): Likewise.
8989         (c_check_switch_jump_warnings): Likewise.
8990
8991 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
8992
8993         * doc/invoke.texi (Warning Options): Add missing hyphen.
8994         (-fprofile-dir): Minor grammatical fixes.
8995         (-fbranch-probabilities): Likewise.
8996
8997 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
8998
8999         PR debug/45136
9000         PR debug/45130
9001         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9002         debug insns.
9003         (no_real_insns_p, schedule_block, set_priorities): Drop special
9004         treatment of boundary debug insns.
9005         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9006         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9007         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9008         (BOUNDARY_DEBUG_INSN_P): Likewise.
9009         (SCHEDULE_DEBUG_INSN_P): Likewise.
9010         * sched-rgn.c (init_ready_list): Drop special treatment of
9011         boundary debug insns.
9012         * final.c (rest_of_clean-state): Clear notes' BB.
9013
9014 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9015
9016         * Makefile.in (LAMBDA_H): Removed.
9017         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
9018         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
9019         lambda-trans.o, and tree-loop-linear.o.
9020         (lto-symtab.o): Remove dependence on LAMBDA_H.
9021         (tree-loop-linear.o): Remove rule.
9022         (lambda-mat.o): Same.
9023         (lambda-trans.o): Same.
9024         (lambda-code.o): Same.
9025         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
9026         (tree-vect-slp.o): Same.
9027         * hwint.h (gcd): Moved here.
9028         (least_common_multiple): Same.
9029         * lambda-code.c: Removed.
9030         * lambda-mat.c: Removed.
9031         * lambda-trans.c: Removed.
9032         * lambda.h: Removed.
9033         * tree-loop-linear.c: Removed.
9034         * lto-symtab.c: Do not include lambda.h.
9035         * omega.c (gcd): Removed.
9036         * passes.c (init_optimization_passes): Remove pass_linear_transform.
9037         * tree-data-ref.c (print_lambda_vector): Moved here.
9038         (lambda_vector_copy): Same.
9039         (lambda_matrix_copy): Same.
9040         (lambda_matrix_id): Same.
9041         (lambda_vector_first_nz): Same.
9042         (lambda_matrix_row_add): Same.
9043         (lambda_matrix_row_exchange): Same.
9044         (lambda_vector_mult_const): Same.
9045         (lambda_vector_negate): Same.
9046         (lambda_matrix_row_negate): Same.
9047         (lambda_vector_equal): Same.
9048         (lambda_matrix_right_hermite): Same.
9049         * tree-data-ref.h: Do not include lambda.h.
9050         (lambda_vector): Moved here.
9051         (lambda_matrix): Same.
9052         (dependence_level): Same.
9053         (lambda_transform_legal_p): Removed declaration.
9054         (lambda_collect_parameters): Same.
9055         (lambda_compute_access_matrices): Same.
9056         (lambda_vector_gcd): Same.
9057         (lambda_vector_new): Same.
9058         (lambda_vector_clear): Same.
9059         (lambda_vector_lexico_pos): Same.
9060         (lambda_vector_zerop): Same.
9061         (lambda_matrix_new): Same.
9062         * tree-flow.h (least_common_multiple): Removed declaration.
9063         * tree-parloops.c (lambda_trans_matrix): Moved here.
9064         (LTM_MATRIX): Same.
9065         (LTM_ROWSIZE): Same.
9066         (LTM_COLSIZE): Same.
9067         (LTM_DENOMINATOR): Same.
9068         (lambda_trans_matrix_new): Same.
9069         (lambda_matrix_vector_mult): Same.
9070         (lambda_transform_legal_p): Same.
9071         * tree-pass.h (pass_linear_transform): Removed declaration.
9072         * tree-ssa-loop.c (tree_linear_transform): Removed.
9073         (gate_tree_linear_transform): Removed.
9074         (pass_linear_transform): Removed.
9075         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
9076         flag_loop_interchange.
9077
9078 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9079
9080         PR tree-optimization/47265
9081         PR tree-optimization/47443
9082         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
9083         if name still has some uses.
9084
9085 2011-01-25  Martin Jambor  <mjambor@suse.cz>
9086
9087         PR tree-optimization/47382
9088         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
9089         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
9090
9091 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
9092
9093         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
9094         sjlj_except_unwind_info.
9095
9096 2011-01-25  Richard Guenther  <rguenther@suse.de>
9097
9098         PR tree-optimization/47426
9099         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
9100         visible functions results escape.
9101
9102 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9103
9104         PR target/45701
9105         * config/arm/arm.c (any_sibcall_uses_r3): New function.
9106         (arm_get_frame_offsets): Use it.
9107
9108 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9109             Jakub Jelinek  <jakub@redhat.com>
9110
9111         PR tree-optimization/47271
9112         * tree-if-conv.c (bb_postdominates_preds): New.
9113         (if_convertible_bb_p): Call bb_postdominates_preds.
9114         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
9115         (predicate_scalar_phi): Call bb_postdominates_preds.
9116
9117 2011-01-25  Nick Clifton  <nickc@redhat.com>
9118
9119         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
9120         * config/rx/rx.c (rx_function_value): Likewise.
9121         (rx_promote_function_mode): Likewise.
9122         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
9123         in order to make it legitimate.
9124         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
9125         make sure that the first operand is the same as the result register.
9126         (addsi3_unspec): Delete.
9127         (subdi3): Do not accept immediate operands.
9128         (subdi3_internal): Likewise.
9129
9130 2011-01-25  Jeff Law  <law@redhat.com>
9131
9132         PR rtl-optimization/37273
9133         * ira-costs.c (scan_one_insn): Detect constants living in memory and
9134         handle them like argument loads from stack slots.  Do not double
9135         count memory for memory constants and argument loads from stack slots.
9136
9137 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
9138
9139         PR tree-optimization/47427
9140         PR tree-optimization/47428
9141         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9142         coalesce if the new root var would be TREE_READONLY.
9143
9144 2011-01-25  Richard Guenther  <rguenther@suse.de>
9145
9146         PR middle-end/47414
9147         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
9148         correct type for TBAA.
9149
9150 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9151
9152         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
9153         (close_phi_written_to_memory): Call for_each_index with
9154         dr_indices_valid_in_loop.
9155
9156 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9157
9158         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
9159         when it is initialized.
9160
9161 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9162
9163         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
9164         call to graphite_find_data_references_in_stmt.
9165         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
9166         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
9167         call to graphite_find_data_references_in_stmt.
9168         (analyze_drs_in_stmts): Same.
9169         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
9170         in which the scalar analysis of indices is performed.
9171         (create_data_ref): Same.  Update call to dr_analyze_indices.
9172         (find_data_references_in_stmt): Update call to create_data_ref.
9173         (graphite_find_data_references_in_stmt): Same.
9174         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
9175         declaration.
9176         (create_data_ref): Same.
9177         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
9178         call to create_data_ref.
9179
9180 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9181
9182         * graphite-sese-to-poly.c (build_poly_scop): Move
9183         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
9184
9185 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9186
9187         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
9188         VAR_DECL, PARM_DECL, and RESULT_DECL.
9189
9190 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9191
9192         * graphite-dependences.c (reduction_dr_1): Allow several reductions
9193         in a reduction PBB.
9194         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
9195         that have already been marked as PBB_IS_REDUCTION.
9196
9197 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9198
9199         * graphite-scop-detection.c (same_close_phi_node): New.
9200         (remove_duplicate_close_phi): New.
9201         (make_close_phi_nodes_unique): New.
9202         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
9203
9204 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9205
9206         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
9207         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
9208         of both data references to be the same.
9209
9210 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9211
9212         * graphite-dependences.c (build_lexicographical_constraint): Remove
9213         the gdim parameter.
9214         (build_lexicographical_constraint): Adjust call to
9215         ppl_powerset_is_empty.
9216         (dependence_polyhedron): Same.
9217         (graphite_legal_transform_dr): Same.
9218         (graphite_carried_dependence_level_k): Same.
9219         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
9220         parameter.
9221         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
9222
9223 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9224
9225         * graphite-sese-to-poly.c
9226         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
9227         (close_phi_written_to_memory): New.
9228         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
9229         and unshare_expr.
9230
9231 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9232
9233         * doc/install.texi: Update the expected version number of PPL to 0.11.
9234         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
9235         #if PPL_VERSION_MINOR < 11.
9236
9237 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9238
9239         * graphite-dependences.c: Include graphite-cloog-util.h.
9240         (new_poly_ddr): Inlined into dependence_polyhedron.
9241         (free_poly_ddr): Moved close by new_poly_ddr.
9242         (dependence_polyhedron_1): Renamed dependence_polyhedron.
9243         Early return NULL when ppl_powerset_is_empty returns true.
9244         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
9245         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
9246         (graphite_legal_transform_dr): Call new_poly_ddr.
9247         (graphite_carried_dependence_level_k): Same.
9248         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
9249         (dot_transformed_deps_stmt_1): Removed.
9250         (dot_deps_stmt_1): Call dot_deps_stmt_2.
9251         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
9252         (dot_deps_1): Call dot_deps_2.
9253         * Makefile.in (graphite-dependences.o): Add missing dependence on
9254         graphite-cloog-util.h.
9255
9256 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9257
9258         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
9259         (build_lexicographical_constraint): Same.
9260         (dependence_polyhedron_1): Same.
9261         (graphite_legal_transform_dr): Same.
9262         (graphite_carried_dependence_level_k): Same.
9263         * graphite-ppl.c (ppl_powerset_is_empty): New.
9264         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
9265         * tree-data-ref.c (dump_data_reference): Print the basic block index.
9266
9267 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9268
9269         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
9270         the "a followed by b" relation and document it.
9271
9272 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9273
9274         * graphite-dependences.c (build_lexicographical_constraint): Stop the
9275         iteration when the bag of constraints is empty.
9276
9277 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9278
9279         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
9280
9281 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9282
9283         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
9284         nest and two loop depths as parameters.
9285         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
9286         lst_perfect_nestify.
9287
9288 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9289
9290         * graphite-dependences.c (print_pddr): Call
9291         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
9292
9293 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
9294
9295         * graphite-ppl.c (debug_gmp_value): New.
9296         * graphite-ppl.h (debug_gmp_value): Declared.
9297
9298 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
9299
9300         * doc/install.texi: Document availability of cloog-0.16.
9301
9302 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
9303
9304         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
9305         invalid postdominance info.
9306
9307 2011-01-24  Jan Hubicka  <jh@suse.cz>
9308
9309         PR c/21659
9310         * doc/extend.texi (weak pragma): Drop claim that it must
9311         appear before definition.
9312         * varasm.c (merge_weak, declare_weak): Only sanity check
9313         that DECL is not output at a time it is declared weak.
9314
9315 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
9316
9317         * machmode.def: Fixed comments.
9318
9319 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
9320
9321         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
9322
9323 2011-01-24  Paul Koning  <ni1d@arrl.net>
9324
9325         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
9326         WORDS_BIG_ENDIAN.
9327
9328 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9329
9330         PR target/46519
9331         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
9332         (block_info): Add scanned and prev.
9333         (move_or_delete_vzeroupper_2): Return if the basic block
9334         has been scanned and the upper 128bit state is unchanged
9335         from the last scan.
9336         (move_or_delete_vzeroupper_1): Return true if the exit
9337         state is changed.
9338         (move_or_delete_vzeroupper): Visit basic blocks using the
9339         work-list based algorithm based on vt_find_locations in
9340         var-tracking.c.
9341
9342         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
9343
9344 2011-01-24  Nick Clifton  <nickc@redhat.com>
9345
9346         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
9347         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
9348         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
9349         then define __v850e1__.
9350         * doc/invoke.texi: Document -mv850es.
9351
9352 2011-01-24  Richard Henderson  <rth@redhat.com>
9353
9354         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
9355         compound unordered comparisons.
9356         * config/rx/rx.c (rx_split_fp_compare): Remove.
9357         * config/rx/rx-protos.h: Update.
9358         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
9359         (cbranchsf4): Don't call rx_split_fp_compare.
9360         (*cbranchsf4): Use rx_split_cbranch.
9361         (*cmpsf): Don't accept "i" constraint.
9362         (*conditional_branch): Only valid after reload.
9363         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
9364
9365 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
9366
9367         PR target/47385
9368         * config/rs6000/altivec.md (vector constant splitters): Add
9369         support for creating vector single precision constants if -mvsx is
9370         used and we would create the constant using Altivec primitives.
9371
9372 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
9373             Richard Sandiford  <rdsandiford@googlemail.com>
9374
9375         PR rtl-optimization/47166
9376         * reload1.c (emit_reload_insns): Disable the spill_reg_store
9377         mechanism for PRE_MODIFY and POST_MODIFY.
9378         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
9379         reloadreg.
9380
9381 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
9382
9383         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
9384
9385 2011-01-22  Jan Hubicka  <jh@suse.cz>
9386
9387         PR lto/47333
9388         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
9389
9390 2011-01-22  Jan Hubicka  <jh@suse.cz>
9391
9392         PR tree-optimization/43884
9393         PR lto/44334
9394         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
9395         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
9396
9397 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
9398
9399         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9400         * config/s390/s390.c (s390_register_move_cost,
9401         s390_memory_move_cost): New.
9402         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
9403
9404 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9405
9406         PR middle-end/47401
9407         * except.c (sjlj_assign_call_site_values): Move setting the
9408         crtl->uses_eh_lsda flag to ...
9409         (sjlj_mark_call_sites): ... here.
9410         (sjlj_emit_function_enter): Support NULL dispatch label.
9411         (sjlj_build_landing_pads): In a function with no landing pads
9412         that still has must-not-throw regions, generate code to register
9413         a personality function with empty LSDA.
9414
9415 2011-01-21  Richard Henderson  <rth@redhat.com>
9416
9417         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
9418
9419         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
9420
9421         * compare-elim.c: New file.
9422         * Makefile.in (OBJS-common): Add it.
9423         (compare-elim.o): New.
9424         * common.opt (fcompare-elim): New.
9425         * opts.c (default_options_table): Add OPT_fcompare_elim.
9426         * tree-pass.h (pass_compare_elim_after_reload): New.
9427         * passes.c (init_optimization_passes): Add it.
9428         * recog.h: Protect against re-inclusion.
9429         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
9430         * doc/invoke.texi (-fcompare-elim): Document it.
9431         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
9432         * doc/tm.texi: Rebuild.
9433
9434 2011-01-22  Nick Clifton  <nickc@redhat.com>
9435
9436         * config/rx/rx.md (cstoresf4): Pass comparison operator to
9437         rx_split_fp_compare.
9438
9439 2011-01-22  Nick Clifton  <nickc@redhat.com>
9440
9441         * config/rx/rx.md (UNSPEC_CONST): New.
9442         (deallocate_and_return): Wrap the amount popped off the stack in
9443         an UNSPEC_CONST in order to stop it being rejected by
9444         -mmax-constant-size.
9445         (pop_and_return): Add a "(return)" rtx.
9446         (call): Drop the immediate operand.
9447         (call_internal): Likewise.
9448         (call_value): Likewise.
9449         (call_value_internal): Likewise.
9450         (sibcall_internal): Likewise.
9451         (sibcall_value_internal): Likewise.
9452         (sibcall): Likewise.  Generate an explicit call using
9453         sibcall_internal.
9454         (sibcall_value): Likewise.
9455         (mov<>): FAIL if a constant operand is not legitimate.
9456         (addsi3_unpsec): New pattern.
9457
9458         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
9459         (ok_for_max_constant): New function.
9460         (gen_safe_add): New function.
9461         (rx_expand_prologue): Use gen_safe_add.
9462         (rx_expand_epilogue): Likewise.
9463         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
9464         UNSPEC CONSTs.
9465
9466 2011-01-21  Jeff Law  <law@redhat.com>
9467
9468         PR tree-optimization/47053
9469         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
9470         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
9471         statements are deleted.
9472         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
9473         is nonempty, then purge dead edges and cleanup the CFG.
9474
9475 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9476
9477         PR debug/47402
9478         Temporarily revert:
9479         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9480         PR debug/47106
9481         * tree-dfa.c (create_var_ann): Mark variable as used.
9482
9483 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9484
9485         PR middle-end/45566
9486         * except.c (convert_to_eh_region_ranges): Emit queued no-region
9487         notes from other section in hot/cold partitioning even if
9488         last_action is -3.  Increment call_site_base.
9489
9490         PR rtl-optimization/47366
9491         * fwprop.c (forward_propagate_into): Return bool.  If
9492         any changes are made, -fnon-call-exceptions is used and
9493         REG_EH_REGION note is present, call purge_dead_edges
9494         and return true if it purged anything.
9495         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
9496         any EH edges were purged.
9497
9498 2011-01-21  Jeff Law  <law@redhat.com>
9499
9500         PR rtl-optimization/41619
9501         * caller-save.c (setup_save_areas): Break out code to determine
9502         which hard regs are live across calls by examining the reload chains
9503         so that it is always used.
9504         Eliminate code which checked REG_N_CALLS_CROSSED.
9505
9506 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9507
9508         PR tree-optimization/47355
9509         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
9510         NOP has non-debug uses beyond PHIs in new_bb.
9511
9512 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
9513
9514         PR debug/47106
9515         * cfgexpand.c (account_used_vars_for_block): Only account vars
9516         that are annotated as used.
9517         (estimated_stack_frame_size): Don't set TREE_USED.
9518         * tree-dfa.c (create_var_ann): Mark variable as used.
9519
9520 2011-01-21  Richard Guenther  <rguenther@suse.de>
9521
9522         PR middle-end/47395
9523         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
9524
9525 2011-01-21  Richard Guenther  <rguenther@suse.de>
9526
9527         PR tree-optimization/47365
9528         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
9529         (vn_reference_lookup_pieces): Adjust.
9530         (vn_reference_lookup): Likewise.
9531         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
9532         (vn_reference_lookup_3): Only look through kills if in
9533         VN_WALKREWRITE mode.
9534         (vn_reference_lookup_pieces): Adjust.
9535         (vn_reference_lookup): Likewise.
9536         (visit_reference_op_load): Likewise.
9537         (visit_reference_op_store): Likewise.
9538         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
9539         (compute_avail): Likewise.
9540         (eliminate): Likewise.
9541
9542 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
9543
9544         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
9545         DECL_IGNORED_P non-reg vars if they are used.
9546
9547         PR tree-optimization/47391
9548         * varpool.c (const_value_known_p): Return false if
9549         decl is volatile.
9550
9551 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
9552
9553         PR bootstrap/47215
9554         * config/i386/i386.c (ix86_local_alignment): Handle
9555         case for va_list_type_node is nil.
9556         (ix86_canonical_va_list_type): Likewise.
9557
9558 2011-01-21  Alan Modra  <amodra@gmail.com>
9559
9560         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
9561         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
9562
9563 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9564
9565         * config/arm/arm.md (define_attr type): Rename f_load
9566         and f_store to f_fpa_load and f_fpa_store. Update.
9567         (write_conflict): Deal with rename fallout.
9568         (*push_fp_multi): Likewise.
9569         * config/arm/fpa.md (f_load): Use f_fpa_load.
9570         (f_store): Use f_fpa_store.
9571         (*movsf_fpa): Likewise.
9572         (*movdf_fpa): Likewise.
9573         (*movxf_fpa): Likewise.
9574         (*thumb2_movsf_fpa): Likewise.
9575         (*thumb2_movdf_fpa): Likewise.
9576         (*thumb2_movxf_fpa): Likewise.
9577         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
9578         f_loadd and f_stored.
9579         (*thumb2_movdi_vfp): Likewise.
9580         (*thumb2_movsf_vfp): Fix attribute to f_loads.
9581         (*thumb2_movsi_vfp): Likewise.
9582         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
9583         Use f_loads instead of f_load.
9584         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
9585
9586 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
9587
9588         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9589         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
9590         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9591         (xtensa_mode_dependent_address_p): New function.
9592         (constantpool_address_p): Make static. Change return type to bool.
9593         Change argument type to const_rtx. Use CONST_INT_P predicate.
9594
9595 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
9596
9597         PR debug/46583
9598         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
9599
9600 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9601
9602         PR debug/47283
9603         * cfgexpand.c (expand_debug_expr): Instead of generating
9604         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
9605         etc. handling.
9606
9607 2011-01-20  Richard Guenther  <rguenther@suse.de>
9608
9609         PR middle-end/47370
9610         * tree-inline.c (remap_gimple_op_r): Recurse manually for
9611         the pointer operand of MEM_REFs.
9612
9613 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
9614
9615         PR tree-optimization/46130
9616         * ipa-split.c (consider_split): If return_bb contains non-virtual
9617         PHIs other than for retval or if split_function would not adjust it,
9618         refuse to split.
9619
9620 2011-01-20  Richard Guenther  <rguenther@suse.de>
9621
9622         PR tree-optimization/47167
9623         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
9624         Revert previous change, only avoid enumeral type changes.
9625
9626 2011-01-19  Mike Stump  <mikestump@comcast.net>
9627
9628         * doc/tm.texi.in (BRANCH_COST): Englishify.
9629         * doc/tm.texi (BRANCH_COST): Likewise.
9630
9631 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
9632
9633         PR c++/47291
9634         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
9635         (gen_scheduled_generic_parms_dies): New functions.
9636         (gen_struct_or_union_type_die): Schedule template parameters DIEs
9637         generation for the end of CU compilation.
9638         (dwarf2out_finish): Generate template parameters DIEs here.
9639
9640 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9641
9642         PR debug/46240
9643         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
9644         debug bind stmt on merge edges.
9645
9646 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9647
9648         PR debug/47079
9649         PR debug/46724
9650         * function.c (instantiate_expr): Instantiate incoming rtl of
9651         implicit arguments, and recurse on VALUE_EXPRs.
9652         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
9653         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
9654
9655 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
9656
9657         * c-parser.c (c_parser_for_statement): Initialize
9658         collection_expression.
9659
9660 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9661
9662         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
9663
9664 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9665
9666         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
9667         (LINK_SHLIB_SPEC): Don't use %(link_path).
9668         (SUBTARGET_EXTRA_SPECS): Remove link_path.
9669
9670 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9671
9672         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
9673         (NO_SHARED_LIB_SUPPORT): Remove.
9674         (LINK_SHLIB_SPEC): Remove one conditional definition.
9675
9676 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
9677
9678         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
9679         %{call_shared}.
9680         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
9681         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
9682         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
9683         %{call_shared} and conditionals on these options not being passed.
9684         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
9685         %{call_shared}.
9686
9687 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9688
9689         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
9690         simplify.
9691
9692         * ipa-split.c: Spelling fixes.
9693
9694 2011-01-19  Richard Henderson  <rth@redhat.com>
9695
9696         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
9697         (*mulsi3): Likewise.
9698
9699         * longlong.h [__mn10300__] (count_leading_zeros): New.
9700         [__mn10300__] (umul_ppmm, smul_ppmm): New.
9701         [__mn10300__] (add_ssaaaa, subddmmss): New.
9702         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
9703         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
9704
9705 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9706
9707         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
9708
9709 2011-01-19  Richard Henderson  <rth@redhat.com>
9710
9711         * config/mn10300/mn10300.md (addsi3_flags): New.
9712         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
9713         (subsi3_flags, subc_internal, subdi3): New.
9714         (subdi3_internal, *subdi3_degenerate): New.
9715         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
9716
9717         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
9718         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
9719         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
9720         * config/mn10300/mn10300-protos.h: Update.
9721         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
9722         (return_ret): Likewise.  Rename from return_internal_regs.
9723         (return_internal): Remove.
9724
9725         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
9726         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
9727         (mn10300_legitimate_constant_p): Likewise.
9728         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
9729         (mn10300_frame_size): New.
9730         (mn10300_expand_prologue): Use it.
9731         (mn10300_expand_epilogue): Likewise.
9732         (mn10300_initial_offset): Likewise.
9733         * config/mn10300/mn10300-protos.h: Update.
9734         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
9735         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
9736         (prologue, epilogue, return_internal): Tidy output code.
9737         (mn10300_store_multiple_operation, return): Likewise.
9738         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
9739         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
9740         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
9741         (load_pic, am33_load_pic): New.
9742         (mn10300_load_pic0, mn10300_load_pic1): New.
9743
9744         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
9745         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
9746         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
9747         (cc_flags_for_mode, cc_flags_for_code): New.
9748         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
9749         overflow flag is not valid.  Validate that the flags we need
9750         for the comparison are valid.
9751         (mn10300_output_cmp): Remove.
9752         (mn10300_output_add): New.
9753         (mn10300_select_cc_mode): Use cc_flags_for_code.
9754         (mn10300_split_cbranch): New.
9755         (mn10300_match_ccmode): New.
9756         (mn10300_split_and_operand_count): New.
9757         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
9758         to the function.
9759         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
9760         (addsi3): ... here.  Use mn10300_output_add.
9761         (*addsi3_flags): New.
9762         (*am33_subsi3, *mn10300_subsi3): Merge...
9763         (subsi3): ... here.  Use attribute isa.
9764         (*subsi3_flags): New.
9765         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
9766         when possible.
9767         (*am33_andsi3, *mn10300_andsi3): Merge...
9768         (andsi3): ... here.
9769         (*andsi3_flags): New.
9770         (andsi3 splitters): New.
9771         (*am33_iorsi3, *mn10300_iorsi3): Merge...
9772         (iorsi3): ... here.
9773         (*iorsi3_flags): New.
9774         (*am33_xorsi3, *mn10300_xorsi3): Merge...
9775         (xorsi3): ... here.
9776         (*xorsi3_flags): New.
9777         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
9778         (one_cmplsi2): ... here.
9779         (*one_cmplsi2_flags): New.
9780         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
9781         instead of "dax" in constraints.  Use mn10300_split_cbranch.
9782         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
9783         use matching constraints to eliminate a self-comparison.
9784         (*integer_conditional_branch): Rename from integer_conditional_branch.
9785         Use int_mode_flags to match CC_REG.
9786         (*cbranchsi4_btst, *btstsi): New.
9787         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
9788         mn10300_split_cbranch.
9789         (*am33_cmpsf): Rename from am33_cmpsf.
9790         (*float_conditional_branch): Rename from float_conditional_branch.
9791         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
9792         (zero_extendqisi2): ... here.
9793         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
9794         (zero_extendhisi2): ... here.
9795         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
9796         (extendqisi2): ... here.
9797         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
9798         (extendhisi2): ... here.
9799         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
9800         (ashlsi3): ... here.
9801         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
9802         (lshrsi3): ... here.
9803         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
9804         (ashrsi3): ... here.
9805         (consecutive add peephole): Remove.
9806         * config/mn10300/predicates.md (label_ref_operand): New.
9807         (int_mode_flags): New.
9808         (CCZN_comparison_operator): New.
9809
9810         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
9811         (throughput_42_latency_43): New reservation.
9812         (mulsidi3, umulsidi3): New expanders.
9813         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
9814         the MDR register to allocation; separately allocate the low and
9815         high parts of the DImode result.
9816         (umulsidi3_internal): Similarly.
9817         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
9818         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
9819         (udivsi3, umodsi3): Remove.
9820         (udivmodsi4, divmodsi4): New expanders.
9821         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
9822         (*divmodsi4): Simiarly.
9823         (ext_internal): New.
9824
9825         * config/mn10300/constraints.md ("z"): New constraint.
9826         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
9827         (FIXED_REGISTERS): Don't fix MDR.
9828         (CALL_USED_REGSITERS): Reformat nicely.
9829         (REG_ALLOC_ORDER): Add MDR.
9830         (enum regclass): Add MDR_REGS.
9831         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
9832         (IRA_COVER_CLASSES): Add MDR_REGS.
9833         (REGNO_REG_CLASS): Handle MDR_REG.
9834         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
9835         (mn10300_register_move_cost): Likewise.
9836         * config/mn10300/mn10300.md (MDR_REG): New.
9837         (*movsi_internal): Handle moves to/from MDR_REGS.
9838
9839         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
9840         POST_MODIFY.
9841         (mn10300_secondary_reload): Tidy combination reload classes.
9842         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
9843         addresses for AM33.  Allow symbolic offsets for reg+imm.
9844         (mn10300_regno_in_class_p): New.
9845         (mn10300_legitimize_reload_address): New.
9846         * config/mn10300/mn10300.h (enum reg_class): Remove
9847         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
9848         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
9849         SP_OR_GENERAL_REGS.
9850         (REG_CLASS_NAMES): Update to match.
9851         (REG_CLASS_CONTENTS): Likewise.
9852         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
9853         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
9854         (REGNO_IN_RANGE_P): Remove.
9855         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
9856         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
9857         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
9858         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
9859         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
9860         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
9861         (REGNO_GENERAL_P): New.
9862         (HAVE_POST_MODIFY_DISP): New.
9863         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
9864         (LEGITIMIZE_RELOAD_ADDRESS): New.
9865         * config/mn10300/mn10300-protos.h: Update.
9866
9867         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
9868         DATA_REGS for AM33 stack-pointer destination.
9869         (mn10300_preferred_output_reload_class): Likewise.
9870         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
9871         into a form appropriate for ...
9872         (TARGET_SECONDARY_RELOAD): New.
9873         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
9874         * config/mn10300/mn10300-protos.h: Update.
9875         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
9876         reload_insi; use the "A" constraint for the scratch; handle AM33
9877         moves of sp to non-address registers.
9878
9879         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
9880         (*movqi_internal): ... here.
9881         (*am33_movhi, *mn10300_movhi): Merge into...
9882         (*movhi_internal): ... here.
9883         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
9884         as the source/destination of moves from/to SP.
9885         (movsf): Only allow for AM33-2.
9886         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
9887         any integer constant constraint.  Only allow for AM33-2.  Tidy
9888         all of the alternative outputs.
9889         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
9890         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
9891         for MN103.
9892         (udivsi3, umodsi3): New patterns for MN103 only.
9893
9894 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
9895
9896         * doc/tm.texi.in: Spell out that a lack of register class unions
9897         can lead to ICEs.
9898         * doc/tm.texi: Regenerate.
9899
9900 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
9901
9902         PR rtl-optimization/47337
9903         * dce.c (check_argument_store): New function.
9904         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
9905
9906         PR tree-optimization/47290
9907         * tree-eh.c (infinite_empty_loop_p): New function.
9908         (cleanup_empty_eh): Use it.
9909
9910 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
9911
9912         PR target/46997
9913         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
9914         (a64_expand_widen_sum): Ditto.
9915         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
9916         (vec_extract_evenodd_help): Ditto.
9917         (vec_extract_evenv4hi): Ditto.
9918         (vec_extract_oddv4hi): Ditto.
9919         (vec_extract_evenv2si): Ditto.
9920         (vec_extract_oddv2si): Ditto.
9921         (vec_extract_evenv2sf): Ditto.
9922         (vec_extract_oddv2sf): Ditto.
9923         (vec_pack_trunc_v4hi: Ditto.
9924         (vec_pack_trunc_v2si): Ditto.
9925         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
9926         (vec_interleave_highv8qi): Ditto.
9927         (mix1_r): Ditto.
9928         (vec_extract_oddv8qi): Ditto.
9929         (vec_interleave_lowv4hi): Ditto.
9930         (vec_interleave_highv4hi): Ditto.
9931         (vec_interleave_lowv2si): Ditto.
9932         (vec_interleave_highv2si): Ditto.
9933
9934 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9935
9936         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
9937         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
9938         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
9939         (pa_c_mode_for_suffix): New.
9940         (TARGET_EXPAND_BUILTIN): Define.
9941         (TARGET_C_MODE_FOR_SUFFIX): Define.
9942         (pa_builtins): Define.
9943         (pa_init_builtins): Register __float128 type and init new support
9944         builtins.
9945         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
9946         * config/pa/quadlib.c (_U_Qfcopysign): New.
9947
9948 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
9949
9950         PR middle-end/46894
9951         * explow.c (allocate_dynamic_stack_space): Do not assume more than
9952         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
9953         are defined.
9954
9955 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9956
9957         PR tree-optimization/47179
9958         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
9959         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
9960
9961 2011-01-18  Richard Guenther  <rguenther@suse.de>
9962
9963         PR rtl-optimization/47216
9964         * emit-rtl.c: Include tree-flow.h.
9965         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
9966         of replicating it with different semantics.
9967         * Makefile.in (emit-rtl.o): Adjust.
9968
9969 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9970
9971         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
9972         (cortex_a9_dp): Handle neon types correctly.
9973
9974 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
9975
9976         PR rtl-optimization/47299
9977         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
9978         subtarget.  Use normal multiplication if both operands are constants.
9979         * expmed.c (expand_widening_mult): Don't try to optimize constant
9980         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
9981         before using it.
9982
9983 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9984
9985         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
9986         spacing after 'e.g.', typos, comma, hyphenation.
9987
9988 2011-01-17  Richard Henderson  <rth@redhat.com>
9989
9990         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
9991         (rx_restricted_mem_operand): New.
9992         (rx_shift_operand): Use register_operand.
9993         (rx_source_operand, rx_compare_operand): Likewise.
9994         * config/rx/rx.md (addsi3_flags): New expander.
9995         (adddi3): Rewrite as expander.
9996         (adc_internal, *adc_flags, adddi3_internal): New patterns.
9997         (subsi3_flags): New expander.
9998         (subdi3): Rewrite as expander.
9999         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
10000
10001         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
10002         (rx_init_builtins): Remove sat builtin.
10003         (rx_expand_builtin): Likewise.
10004         * config/rx/rx.md (ssaddsi3): New.
10005         (*sat): Rename from sat.  Represent the CC_REG input.
10006
10007         * config/rx/predicates.md (rshift_operator): New.
10008         * config/rx/rx.c (rx_expand_insv): Remove.
10009         * config/rx/rx-protos.h: Update.
10010         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
10011         operand to the canonical position.
10012         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
10013         (*bitclr, *bitclr_in_memory): Similarly.
10014         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
10015         (insv): Retain the zero_extract in the expansion.
10016
10017         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
10018         (bswaphi2, bitinvert, revw): Likewise.
10019
10020         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
10021         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
10022         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
10023         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
10024         (bitset, bitset_in_memory): Likewise.
10025         (bitinvert, bitinvert_in_memory): Likewise.
10026         (bitclr, bitclr_in_memory): Likewise.
10027         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
10028         (rx_strend, rx_cmpstrn): Likewise.
10029         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
10030         (bitop peep2 patterns): Remove.
10031
10032         * config/rx/rx.c (rx_match_ccmode): New.
10033         * config/rx/rx-protos.h: Update.
10034         * config/rx/rx.md (abssi2): Clobber, don't set flags.
10035         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
10036         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
10037         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
10038         (fix_truncsfsi2, floatsisf2): Likewise.
10039         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
10040         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
10041         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
10042         (*subsi3_flags, *xorsi3_flags): New.
10043
10044         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
10045
10046         * config/rx/rx.c (rx_print_operand): Remove workaround for
10047         unsplit comparison operations.
10048
10049         * config/rx/rx.md (movsicc): Split after reload.
10050         (*movsicc): Merge *movsieq and *movsine via match_operator.
10051         (*stcc): New pattern.
10052
10053         * config/rx/rx.c (rx_float_compare_mode): Remove.
10054         * config/rx/rx.h (rx_float_compare_mode): Remove.
10055         * config/rx/rx.md (cstoresi4): Split after reload.
10056         (*sccc): New pattern.
10057
10058         * config/rx/predicates.md (label_ref_operand): New.
10059         (rx_z_comparison_operator): New.
10060         (rx_zs_comparison_operator): New.
10061         (rx_fp_comparison_operator): New.
10062         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
10063         Validate that the flags are set properly for the comparison.
10064         (rx_gen_cond_branch_template): Remove.
10065         (rx_cc_modes_compatible): Remove.
10066         (mode_from_flags): New.
10067         (flags_from_code): Rename from flags_needed_for_conditional.
10068         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
10069         (rx_select_cc_mode): Likewise.
10070         (rx_split_fp_compare): New.
10071         (rx_split_cbranch): New.
10072         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
10073         (*cbranchsi4): Use match_operator and rx_split_cbranch.
10074         (*cbranchsf4): Similarly.
10075         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
10076         match_operator and rx_split_cbranch.
10077         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
10078         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
10079         (*cmpsi): Rename from cmpsi.
10080         (*tstsi): Rename from tstsi.
10081         (*cmpsf): Rename from cmpsf; use CC_Fmode.
10082         (*conditional_branch): Rename from conditional_branch.
10083         (*reveresed_conditional_branch): Remove.
10084         (b<code>): Remove expander.
10085         * config/rx/rx-protos.h: Update.
10086
10087         * config/rx/rx.c (rx_compare_redundant): Remove.
10088         * config/rx/rx.md (cmpsi): Don't use it.
10089         * config/rx/rx-protos.h: Update.
10090
10091         * config/rx/rx-modes.def (CC_F): New mode.
10092         * config/rx/rx.c (rx_select_cc_mode): New.
10093         * config/rx/rx.h (SELECT_CC_MODE): Use it.
10094         * config/rx/rx-protos.h: Update.
10095
10096 2011-01-17  Richard Henderson  <rth@redhat.com>
10097
10098         * except.c (dump_eh_tree): Fix stray ; after for statement.
10099
10100 2011-01-17  Richard Guenther  <rguenther@suse.de>
10101
10102         PR tree-optimization/47313
10103         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
10104         handling before copying the body.  Properly deal with
10105         by-reference result in SSA form.
10106
10107 2011-01-17  Ian Lance Taylor  <iant@google.com>
10108
10109         PR target/47219
10110         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
10111         (struct_value_alias_set): Don't define.
10112         (sparc_option_override): Don't set sparc_sr_alias_set and
10113         struct_value_alias_set.
10114         (save_or_restore_regs): Use gen_frame_mem rather than calling
10115         set_mem_alias_set.
10116         (sparc_struct_value_rtx): Likewise.
10117
10118 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
10119
10120         PR target/47318
10121         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
10122         (_mm_maskstore_pd): Likewise.
10123         (_mm_maskload_ps): Likewise.
10124         (_mm_maskstore_ps): Likewise.
10125         (_mm256_maskload_pd): Change mask to __m256i.
10126         (_mm256_maskstore_pd): Likewise.
10127         (_mm256_maskload_ps): Likewise.
10128         (_mm256_maskstore_ps): Likewise.
10129
10130         * config/i386/i386-builtin-types.def: Updated.
10131         (ix86_expand_special_args_builtin): Likewise.
10132
10133         * config/i386/i386.c (bdesc_special_args): Update
10134         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
10135         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
10136         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
10137         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
10138
10139         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
10140         Use <avxpermvecmode> on mask register.
10141         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
10142
10143 2011-01-17  Olivier Hainque  <hainque@adacore.com>
10144             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
10145             Eric Botcazou  <ebotcazou@adacore.com>
10146
10147         PR target/46655
10148         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
10149         if <= USHRT_MAX in 32-bit mode.
10150
10151 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10152
10153         * doc/install.texi (Configuration, Specific): Wrap long
10154         lines in examples.  Allow line wrapping in long options
10155         and URLs where beneficial for PDF output.
10156
10157 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
10158
10159         * config/mips/mips.c (mips_classify_symbol): Don't return
10160         SYMBOL_PC_RELATIVE for nonlocal labels.
10161
10162 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10163
10164         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
10165
10166 2011-01-15  Jan Hubicka  <jh@suse.cz>
10167
10168         PR tree-optimization/47276
10169         * ipa.c (function_and_variable_visibility): Do not try to mark alias
10170         declarations as needed.
10171
10172 2011-01-15  Martin Jambor  <mjambor@suse.cz>
10173
10174         * common.opt (fdevirtualize): New flag.
10175         * doc/invoke.texi (Option Summary): Document it.
10176         * opts.c (default_options_table): Add devirtualize flag.
10177         * ipa-prop.c (detect_type_change): Return immediately if
10178         devirtualize flag is not set.
10179         (detect_type_change_ssa): Likewise.
10180         (compute_known_type_jump_func): Likewise.
10181         (ipa_analyze_virtual_call_uses): Likewise.
10182
10183 2011-01-14  Martin Jambor  <mjambor@suse.cz>
10184
10185         PR tree-optimization/45934
10186         PR tree-optimization/46302
10187         * ipa-prop.c (type_change_info): New type.
10188         (stmt_may_be_vtbl_ptr_store): New function.
10189         (check_stmt_for_type_change): Likewise.
10190         (detect_type_change): Likewise.
10191         (detect_type_change_ssa): Likewise.
10192         (compute_complex_assign_jump_func): Check for dynamic type change.
10193         (compute_complex_ancestor_jump_func): Likewise.
10194         (compute_known_type_jump_func): Likewise.
10195         (compute_scalar_jump_functions): Likewise.
10196         (ipa_analyze_virtual_call_uses): Likewise.
10197         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
10198
10199 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10200
10201         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
10202         * config/i386/i386.opt (msse5): New Alias.
10203
10204 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10205
10206         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10207         * config/sparc/linux64.h (CC1_SPEC): Likewise.
10208         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
10209         * config/sparc/sparc.h (CC1_SPEC): Likewise.
10210
10211 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10212
10213         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
10214         -mcpu options.
10215         * config/sparc/linux64.h (CC1_SPEC): Likewise.
10216         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
10217         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
10218         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
10219         Likewise.
10220         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
10221
10222 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10223
10224         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
10225
10226 2011-01-14  Mike Stump  <mikestump@comcast.net>
10227
10228         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
10229         * config/fr30/fr30.md: Likweise
10230         (movsi_push): Likewise.
10231         (movsi_pop): Likewise.
10232         (enter_func): Likewise.
10233         * config/moxie/moxie.md (movsi_push): Likewise.
10234         (movsi_pop): Likewise.
10235
10236 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10237
10238         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
10239         %{no_archive} %{exact_version}.
10240         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
10241         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
10242         %{no_archive} %{exact_version}.
10243         * config/mips/openbsd.h (LINK_SPEC): Likewise.
10244         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
10245         * config/mips/vxworks.h: Likewise.
10246
10247 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10248
10249         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
10250
10251 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10252
10253         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
10254         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
10255
10256 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10257
10258         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
10259         -nodefaultlib.
10260
10261 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10262
10263         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
10264         for mcpu not cpu.
10265         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
10266         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
10267         not cpu.
10268         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
10269         Don't handle -shlib.
10270
10271 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10272
10273         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
10274         (CC1_SPEC): Don't handle -profile.
10275
10276 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10277
10278         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
10279         * config/mips/mips.h (CC1_SPEC): Likewise.
10280
10281 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10282
10283         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
10284         * config/mips/mips.h (CC1_SPEC): Likewise.
10285
10286 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10287
10288         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
10289         * config/m32r/linux.h (LINK_SPEC): Likewise.
10290         * config/mips/linux.h (LINK_SPEC): Likewise.
10291         * config/mips/linux64.h (LINK_SPEC): Likewise.
10292         * config/sparc/linux.h (LINK_SPEC): Likewise.
10293         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
10294         LINK_SPEC): Likewise.
10295         * config/xtensa/linux.h (LINK_SPEC): Likewise.
10296
10297 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10298
10299         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
10300         %{version:-v}.
10301         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
10302
10303 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10304
10305         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
10306         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
10307
10308 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
10309
10310         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
10311
10312 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10313
10314         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
10315         supports -Bstatic/-Bdynamic.
10316         * configure: Regenerate.
10317
10318 2011-01-14  Jan Hubicka  <jh@suse.cz>
10319             Jack Howarth  <howarth@bromo.med.uc.edu>
10320
10321         PR target/46037
10322         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
10323         when checking debug_info_level. Test write_symbols instead of
10324         debug_hooks->var_location when setting flag_var_tracking_uninit.
10325
10326 2011-01-14  Richard Guenther  <rguenther@suse.de>
10327
10328         PR tree-optimization/47179
10329         * target.def (ref_may_alias_errno): New target hook.
10330         * targhooks.h (default_ref_may_alias_errno): Declare.
10331         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
10332         (default_ref_may_alias_errno): New function.
10333         * target.h (struct ao_ref_s): Declare.
10334         * tree-ssa-alias.c: Include target.h.
10335         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
10336         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
10337         (targhooks.o): Likewise.
10338         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
10339         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
10340
10341 2011-01-14  Richard Guenther  <rguenther@suse.de>
10342
10343         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
10344
10345 2011-01-14  Richard Guenther  <rguenther@suse.de>
10346
10347         PR tree-optimization/47280
10348         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
10349         return CFG changes.
10350         (tree_ssa_forward_propagate_single_use_vars): Deal with
10351         CFG changes from associate_plusminus.
10352
10353 2011-01-14  Richard Guenther  <rguenther@suse.de>
10354
10355         PR middle-end/47281
10356         Revert
10357         2011-01-11  Richard Guenther  <rguenther@suse.de>
10358
10359         PR tree-optimization/46076
10360         * tree-ssa.c (useless_type_conversion_p): Conversions from
10361         unprototyped to empty argument list function types are useless.
10362
10363 2011-01-14  Richard Guenther  <rguenther@suse.de>
10364
10365         PR tree-optimization/47286
10366         * tree-ssa-structalias.c (new_var_info): Register variables are global.
10367
10368 2011-01-14  Martin Jambor  <mjambor@suse.cz>
10369
10370         PR middle-end/46823
10371         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
10372
10373 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
10374
10375         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
10376         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10377         * config/xtensa/xtensa.c (xtensa_libcall_value,
10378         xtensa_function_value_regno_p): New functions.
10379         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
10380
10381 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
10382
10383         PR c++/47213
10384         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
10385         PE specific hook.
10386         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
10387         New function prototype.
10388         * config/i386/winnt.c (i386_pe_assemble_visibility):
10389         Warn only if attribute was specified by user.
10390
10391 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
10392
10393         PR target/47251
10394         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
10395         floating point.
10396         (floatunsdidf2_fcfidu): Ditto.
10397
10398 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10399
10400         * config/s390/s390.c (print_operand_address): Replace 'error' with
10401         'output_operand_lossage'.
10402         (print_operand): Likewise.
10403
10404 2011-01-13  Jeff Law  <law@redhat.com>
10405
10406         PR rtl-optimization/39077
10407         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
10408         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
10409         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
10410         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
10411         * gcse.c (prune_insertions_deletions): New function.
10412         (compute_pre_data): Use it.
10413
10414 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
10415
10416         PR debug/PR46973
10417         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
10418         static function.
10419         (prune_unused_types_mark): Use it.
10420
10421 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
10422
10423         PR rtl-optimization/45352
10424         * sel-sched.c: Update copyright years.
10425         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
10426         in the advancing loop when we have issued issue_rate insns.
10427
10428 2011-01-12  Richard Henderson  <rth@redhat.com>
10429
10430         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
10431         (TARGET_MD_ASM_CLOBBERS): New.
10432
10433         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
10434         (TARGET_DELEGITIMIZE_ADDRESS): New.
10435
10436         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
10437         (clzsi2, *bsch): New patterns.
10438
10439         * config/mn10300/mn10300.md (INT): New mode iterator.
10440         (*mov<INT>_clr): New pattern, and peep2 to generate it.
10441
10442         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
10443         flag_split_wide_types.
10444
10445         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
10446         (mn10300_trampoline_init): Rewrite without a template, an immediate
10447         load and a direct branch.
10448         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
10449
10450 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
10451
10452         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10453         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
10454         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
10455         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10456
10457 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
10458
10459         PR debug/47209
10460         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
10461         of type.
10462
10463 2011-01-12  Jan Hubicka  <jh@suse.cz>
10464
10465         PR driver/47244
10466         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
10467         (PLUGIN_COND_CLOSE): New macro.
10468         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
10469
10470 2011-01-12  Richard Guenther  <rguenther@suse.de>
10471
10472         PR lto/47259
10473         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
10474         register variables in a MEM_REF.
10475
10476 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
10477
10478         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
10479         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
10480         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
10481         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
10482         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
10483         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
10484         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
10485         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
10486         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
10487         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
10488         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
10489         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
10490         * config/gnu-user.h: New.  Copied from linux.h.
10491         (LINUX_TARGET_STARTFILE_SPEC): Rename to
10492         GNU_USER_TARGET_STARTFILE_SPEC.
10493         (LINUX_TARGET_ENDFILE_SPEC): Rename to
10494         GNU_USER_TARGET_ENDFILE_SPEC.
10495         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
10496         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
10497         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
10498         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
10499         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
10500         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
10501         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
10502         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
10503         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
10504         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
10505         * config/arm/linux-eabi.h (CC1_SPEC): Use
10506         GNU_USER_TARGET_CC1_SPEC.
10507         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
10508         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
10509         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
10510         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
10511         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
10512         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
10513         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
10514         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
10515
10516 2011-01-12  Richard Guenther  <rguenther@suse.de>
10517
10518         PR other/46946
10519         * doc/invoke.texi (ffast-math): Document it is turned on
10520         with -Ofast.
10521
10522 2011-01-12  Jan Hubicka  <jh@suse.cz>
10523
10524         PR tree-optimization/47233
10525         * opts.c (common_handle_option): Disable ipa-reference with profile
10526         feedback.
10527
10528 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10529
10530         * c-parser.c (c_parser_objc_at_property_declaration): Improved
10531         error message.
10532
10533 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
10534
10535         * c-parser.c (c_lex_one_token): Updated and reindented some
10536         comments.  No changes in code.
10537
10538 2011-01-11  Ian Lance Taylor  <iant@google.com>
10539
10540         * godump.c (go_output_var): Don't output the variable if there is
10541         already a type with the same name.
10542
10543 2011-01-11  Ian Lance Taylor  <iant@google.com>
10544
10545         * godump.c (go_format_type): Don't generate float80.
10546
10547 2011-01-11  Richard Henderson  <rth@redhat.com>
10548
10549         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
10550         declaration.  Rewrite for both speed and size.
10551         (mn10300_address_cost_1): Remove.
10552         (mn10300_register_move_cost): New.
10553         (mn10300_memory_move_cost): New.
10554         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
10555         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
10556         extensions, shifts, BSWAP, CLZ.
10557         (mn10300_wide_const_load_uses_clr): Remove.
10558         (TARGET_REGISTER_MOVE_COST): New.
10559         (TARGET_MEMORY_MOVE_COST): New.
10560         * config/mn10300/mn10300-protos.h: Update.
10561         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
10562
10563         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
10564         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
10565         * config/mn10300/mn10300-protos.h: Update.
10566         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
10567         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
10568         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
10569         (*test_int_bitfield, *test_byte_bitfield): Remove.
10570         (*bit_test, *subreg_bit_test): Remove.
10571         * config/mn10300/predicates.md (const_8bit_operand): Remove.
10572
10573         * config/mn10300/constraints.md ("c"): Rename from "A".
10574         ("A", "D"): New constraint letters.
10575         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
10576         (fmssf4, fnmasf4, fnmssf4): Likewise.
10577
10578         * config/mn10300/mn10300.md (isa): New attribute.
10579         (enabled): New attribute.
10580
10581         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
10582         (abssf2, negsf2): Define only for hardware fp.
10583         (sqrtsf2): Reformat.
10584         (addsf3, subsf3, mulsf3): Merge expander and insn.
10585
10586         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
10587         (DEBUGGER_AUTO_OFFSET): Remove.
10588         (DEBUGGER_ARG_OFFSET): Remove.
10589
10590         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
10591         Emit register stores with the same offsets as the hardware.
10592         (mn10300_store_multiple_operation): Don't check that the register
10593         save offsets are monotonic.
10594         * config/mn10300/mn10300-protos.h: Update.
10595
10596         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
10597
10598         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
10599         in terms of the value on the stack, not the MDR register.
10600
10601 2011-01-11  Jan Hubicka  <jh@suse.cz>
10602
10603         PR lto/45721
10604         PR lto/45375
10605         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
10606         (symbol_alias_set_destroy, symbol_alias_set_contains,
10607         propagate_aliases_backward): Declare.
10608         * lto-streamer-out.c (struct sets): New sturcture.
10609         (trivally_defined_alias): New function.
10610         (output_alias_pair_p): Rewrite.
10611         (output_unreferenced_globals): Fix output of alias pairs.
10612         (produce_symtab): Likewise.
10613         * ipa.c (function_and_variable_visibility): Set weak alias destination
10614         as needed in lto.
10615         * varasm.c (symbol_alias_set_t): Remove.
10616         (symbol_alias_set_destroy): Export.
10617         (propagate_aliases_forward, propagate_aliases_backward): New functions
10618         based on ...
10619         (compute_visible_aliases): ... this one; remove.
10620         (trivially_visible_alias): New
10621         (trivially_defined_alias): New.
10622         (remove_unreachable_alias_pairs): Rewrite.
10623         (finish_aliases_1): Reorganize code checking if alias is defined.
10624         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
10625         in LTO mode.
10626
10627 2011-01-11  Richard Guenther  <rguenther@suse.de>
10628
10629         PR tree-optimization/46076
10630         * tree-ssa.c (useless_type_conversion_p): Conversions from
10631         unprototyped to empty argument list function types are useless.
10632
10633 2011-01-11  Richard Guenther  <rguenther@suse.de>
10634
10635         PR middle-end/45235
10636         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
10637         volatile MEMs as MEM_READONLY_P.
10638
10639 2011-01-11  Richard Guenther  <rguenther@suse.de>
10640
10641         PR tree-optimization/47239
10642         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
10643
10644 2011-01-11  Jeff Law  <law@redhat.com>
10645
10646         PR tree-optimization/47086
10647         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
10648         IVs from statements that might throw.
10649
10650 2011-01-10  Jan Hubicka  <jh@suse.cz>
10651
10652         PR lto/45375
10653         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
10654
10655 2011-01-10  Jan Hubicka  <jh@suse.cz>
10656
10657         PR lto/45375
10658         * profile.c (read_profile_edge_counts): Ignore profile inconistency
10659         when correcting profile.
10660
10661 2011-01-10  Jan Hubicka  <jh@suse.cz>
10662
10663         PR lto/46083
10664         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
10665         DECL_FINI_PRIORITY.
10666         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
10667         Restore DECL_FINI_PRIORITY.
10668
10669 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10670
10671         * doc/gimple.texi: Fix quoting of multi-word return values in
10672         @deftypefn statements.  Ensure presence of return value.  Wrap
10673         overlong @deftypefn lines.
10674         (is_gimple_operand, is_gimple_min_invariant_address): Remove
10675         descriptions of removed functions.
10676         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
10677         of multi-word return value in @deftypefn statement.
10678
10679 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10680
10681         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
10682         (Conditional Expressions, Logical Operators)
10683         (Statement and operand traversals): Do not indent smallexample
10684         code.  Fix duplicate function argument in example.
10685
10686 2011-01-10  Jeff Law  <law@redhat.com>
10687
10688         PR tree-optimization/47141
10689         * ipa-split.c (split_function): Handle case where we are
10690         returning a value and the return block has a virtual operand phi.
10691
10692 2011-01-10  Jan Hubicka  <jh@suse.cz>
10693
10694         PR tree-optimization/47234
10695         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
10696         (pass_feedback_split_functions): Declare.
10697         * passes.c (init_optimization_passes): Add ipa-split as subpass of
10698         tree-profile.
10699         * ipa-split.c (gate_split_functions): Update comments; disable
10700         split-functions for profile_arc_flag and branch_probabilities.
10701         (gate_feedback_split_functions): New function.
10702         (execute_feedback_split_functions): New function.
10703         (pass_feedback_split_functions): New global var.
10704
10705 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
10706
10707         PR lto/46760
10708         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
10709         calling gimple_call_set_cannot_inline.
10710
10711 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
10712
10713         * config/darwin-sections.def: Remove unused section.
10714
10715 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
10716
10717         PR c++/47218
10718         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
10719
10720 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
10721
10722         PR objc/47232
10723         * c-parser.c (c_parser_declaration_or_fndef): Improved
10724         error message.
10725
10726 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
10727
10728         * config/i386/winnt.c (i386_pe_start_function): Make sure
10729         to switch back to function's section.
10730
10731 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
10732
10733         PR gcc/46902
10734         PR testsuite/46912
10735         * plugin.c: Move include of dlfcn.h from here...
10736         * system.h: ... to here.
10737
10738 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10739
10740         * doc/cpp.texi (C++ Named Operators): Fix markup for header
10741         file name.
10742         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
10743         two extra empty pages in PDF output.
10744
10745 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
10746
10747         PR objc/47078
10748         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
10749         for error recovery purposes behave as if it was not specified so
10750         that the default type is usd.
10751
10752 2011-01-07  Jan Hubicka  <jh@suse.cz>
10753
10754         PR tree-optmization/46469
10755         * ipa.c (function_and_variable_visibility): Clear needed flags on
10756         nodes with external decls; handle weakrefs merging correctly.
10757
10758 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
10759
10760         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
10761         not false.
10762
10763 2011-01-07  Jan Hubicka  <jh@suse.cz>
10764
10765         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
10766         and no longer claim that gold is required for linker plugin.
10767         * configure: Regenerate.
10768         * gcc.c (PLUGIN_COND): New macro.
10769         (LINK_COMMAND_SPEC): Use it.
10770         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
10771         * config.in (HAVE_LTO_PLUGIN): New.
10772         * configure.ac (--with-lto-plugin): New parameter; autodetect
10773         HAVE_LTO_PLUGIN.
10774
10775 2011-01-07  Jan Hubicka  <jh@suse.cz>
10776
10777         PR tree-optimization/46367
10778         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
10779         when we can update original.
10780         (cgraph_mark_inline_edge): Sanity check.
10781         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
10782
10783 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10784
10785         * config/spu/spu.h (ASM_COMMENT_START): Define.
10786
10787 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
10788
10789         PR driver/42445
10790         * gcc.c (%>S): New.
10791         (SWITCH_KEEP_FOR_GCC): Likewise.
10792         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
10793         (do_spec_1): Handle "%>".
10794
10795         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
10796
10797 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
10798
10799         PR target/47201
10800         * config/i386/i386.c (ix86_delegitimize_address): If
10801         simplify_gen_subreg fails, return orig_x.
10802
10803         PR bootstrap/47187
10804         * value-prof.c (gimple_stringop_fixed_value): Handle
10805         lhs of the call properly.
10806
10807 2011-01-07  Jan Hubicka  <jh@suse.cz>
10808
10809         PR lto/45375
10810         * lto-opt.c (lto_reissue_options): Set flag_shlib.
10811
10812 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10813
10814         * target.def (function_switched_text_sections): New hook.
10815         * doc/tm.texi: Regenerated.
10816         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10817         * final.c (default_function_switched_text_sections): New.
10818         (final_scan_insn): Call function_switched_text_sections when a
10819         mid-function section change occurs.
10820         * output.h (default_function_switched_text_sections): Declare.
10821         * config/darwin-protos.h (darwin_function_switched_text_sections):
10822         Likewise.
10823         * config/darwin.c (darwin_function_switched_text_sections): New.
10824         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
10825
10826 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
10827
10828         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
10829         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
10830         the secondary code fragment when outputting for DWARF == 2.
10831
10832 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
10833
10834         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
10835         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
10836         Remove.
10837         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
10838         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
10839
10840 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
10841
10842         PR debug/46704
10843         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
10844         when it is not empty.
10845
10846 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
10847
10848         Bobcat Enablement
10849         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
10850         (case ${target}): Add btver1.
10851         * config/i386/driver-i386.c (host_detect_local_cpu): Let
10852         -march=native recognize btver1 processors.
10853         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10854         btver1 def_and_undef
10855         * config/i386/i386.c (struct processor_costs btver1_cost): New
10856         btver1 cost table.
10857         (m_BTVER1): New definition.
10858         (m_AMD_MULTIPLE): Includes m_BTVER1.
10859         (initial_ix86_tune_features): Add btver1 tune.
10860         (processor_target_table): Add btver1 entry.
10861         (static const char *const cpu_names): Add btver1 entry.
10862         (software_prefetching_beneficial_p): Add btver1.
10863         (ix86_option_override_internal): Add btver1 instruction sets.
10864         (ix86_issue_rate): Add btver1.
10865         (ix86_adjust_cost): Add btver1.
10866         * config/i386/i386.h (TARGET_BTVER1): New definition.
10867         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
10868         (enum processor_type): Add PROCESSOR_BTVER1.
10869         * config/i386/i386.md (define_attr "cpu"): Add btver1.
10870
10871 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10872
10873         PR target/43309
10874         * config/i386/i386.c (legitimize_tls_address)
10875         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
10876         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
10877         (tls_initial_exec_64_sun): New pattern.
10878
10879 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10880
10881         * doc/invoke.texi (Overall Options): Improve wording and markup
10882         of the description of -wrapper.
10883
10884 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10885
10886         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
10887         rdynamic, threads): New Driver options.
10888
10889 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10890
10891         PR target/38118
10892         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
10893         if coming from .tdata.
10894         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
10895
10896 2011-01-06  Jan Hubicka  <jh@suse.cz>
10897
10898         PR lto/47188
10899         * collect2.c (main): Do not enable LTOmode when plugin is active.
10900
10901 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10902
10903         PR other/45915
10904         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
10905         --version output if supported.
10906         * configure: Regenerate.
10907
10908 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
10909
10910         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
10911         Driver options.
10912
10913 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
10914
10915         PR c/47150
10916         * c-convert.c (convert): When converting a complex expression
10917         other than COMPLEX_EXPR to a different complex type, ensure
10918         c_save_expr is called instead of save_expr, unless in_late_binary_op.
10919         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
10920         when converting COMPLEX_TYPE.
10921
10922 2011-01-06  Ira Rosen  <irar@il.ibm.com>
10923
10924         PR tree-optimization/47139
10925         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
10926         only the last reduction value is used outside the loop.  Update
10927         documentation.
10928
10929 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
10930
10931         * config/rtems.opt: New.
10932         * config.gcc (*-*-rtems*): Use rtems.opt.
10933
10934 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
10935
10936         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
10937         processors do not support 3DNow instructions.
10938
10939 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10940
10941         * config/spu/spu.c (spu_option_override): Set parameter
10942         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
10943
10944 2011-01-05  Jan Hubicka  <jh@suse.cz>
10945
10946         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
10947         at the command line.
10948
10949 2011-01-05  Martin Jambor  <mjambor@suse.cz>
10950
10951         PR lto/47162
10952         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
10953         deltas on streamed outgoing edges.
10954         (output_node_opt_summary): Output info for outgoing edges only when
10955         the node is in new parameter set.
10956         (output_cgraph_opt_summary): New parameter set, passed to the two
10957         aforementioned functions.  Update its forward declaration and its
10958         callee too.
10959
10960 2011-01-05  Tom Tromey  <tromey@redhat.com>
10961
10962         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
10963         operator to c_finish_omp_atomic.
10964         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
10965         (build_unary_op): Update.
10966         (build_modify_expr): Update.
10967         (build_asm_expr): Update.
10968
10969 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10970
10971         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
10972         newly inserted insns.
10973         (pad_bb): Likewise.
10974         (spu_emit_branch_hint): Likewise.
10975         (insert_hbrp_for_ilb_runout): Likewise.
10976         (spu_machine_dependent_reorg): Call df_finish_pass after
10977         schedule_insns returns.
10978
10979 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10980
10981         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
10982
10983 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
10984
10985         PR tree-optimization/47005
10986         * tree-sra.c (struct access): Add 'non_addressable' bit.
10987         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
10988         (decide_one_param_reduction): Return 0 if the parameter is passed by
10989         reference and one of the accesses in the group is non_addressable.
10990
10991 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10992
10993         PR tree-optimization/47056
10994         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
10995         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
10996         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
10997
10998 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
10999
11000         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
11001         initializer.  Skip view conversions from aggregate types.
11002
11003 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
11004
11005         PR bootstrap/47055
11006         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
11007
11008 2011-01-04  Philipp Thomas  <pth@suse.de>
11009
11010         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
11011         obvious typo.
11012
11013 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11014
11015         * function.c (thread_prologue_and_epilogue_insns): Do not crash
11016         on empty epilogue sequences.
11017
11018 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
11019
11020         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
11021         non-static): New Driver options.
11022
11023 2011-01-04  Jie Zhang  <jie@codesourcery.com>
11024
11025         PR driver/47137
11026         * gcc.c (default_compilers[]): Set combinable field to 0
11027         for all assembly languages.
11028
11029 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
11030
11031         * config/mips/loongson3a.md: New file.
11032         * config/mips/mips.md: Include loongson3a.md.
11033         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
11034         TUNE_LOONGSON_3A.
11035
11036 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11037
11038         PR middle-end/47017
11039         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
11040         instead of convert_memory_address_addr_space on the base expression.
11041
11042 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11043
11044         * config/spu/spu.c (spu_option_override): Update error text
11045         for bad -march= / -mtune= values.
11046
11047 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11048
11049         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
11050         if branch-hint optimization will be performed.
11051
11052 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
11053
11054         PR tree-optimization/47148
11055         * ipa-split.c (split_function): Convert arguments to
11056         DECL_ARG_TYPE if possible.
11057
11058         PR tree-optimization/47155
11059         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
11060         when computing uns.
11061
11062         PR rtl-optimization/47157
11063         * combine.c (try_combine): If undobuf.other_insn becomes
11064         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
11065         and set *new_direct_jump_p too.
11066
11067 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
11068
11069         PR tree-optimization/47021
11070         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
11071
11072 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
11073
11074         * gcc.c (process_command): Update copyright notice dates.
11075         * gcov.c (print_version): Likewise.
11076         * gcov-dump.c (print_version): Likewise.
11077         * mips-tfile.c (main): Likewise.
11078         * mips-tdump.c (main): Likewise.
11079
11080 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11081
11082         PR tree-optimization/46801
11083         * tree-sra.c (type_internals_preclude_sra_p): Check whether
11084         aggregate fields start at byte boundary instead of the bit-field flag.
11085
11086 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11087
11088         PR driver/47137
11089         * gcc.c (main): Revert revision 168407.
11090
11091 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11092
11093         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
11094
11095 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11096
11097         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
11098         vector optab to expand vector/scalar shift, update gimple to vector.
11099
11100 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11101
11102         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
11103         a thunk.
11104
11105 2011-01-03  Martin Jambor  <mjambor@suse.cz>
11106
11107         PR tree-optimization/46984
11108         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
11109         HOST_WIDE_INT.
11110         (cgraph_create_indirect_edge): Fixed line length.
11111         (cgraph_indirect_call_info): Declare.
11112         (cgraph_make_edge_direct) Update declaration.
11113         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
11114         (cgraph_create_indirect_edge): Use it.
11115         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
11116         callees.
11117         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
11118         the new thunk_delta representation.
11119         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
11120         HOST_WIDE_INT.
11121         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
11122         (ipa_read_indirect_edge_info): Likewise.
11123         * lto-cgraph.c (output_edge_opt_summary): New function.
11124         (output_node_opt_summary): Call it on all outgoing edges.
11125         (input_edge_opt_summary): New function.
11126         (input_node_opt_summary): Call it on all outgoing edges.
11127
11128 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
11129
11130         PR driver/47137
11131         * gcc.c (main): Don't check have_o when settting combine_inputs.
11132
11133 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
11134
11135         * regrename.c: Add general comment describing the pass.
11136         (struct du_head): Remove 'length' field.
11137         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
11138         (regrename_optimize): Do not sort chains.  Rework comments, add others.
11139         Force renaming to the preferred class (if any) in the first pass and do
11140         not consider registers that belong to it in the second pass.
11141         (create_new_chain): Do not set 'length' field.
11142         (scan_rtx_reg): Likewise.
11143
11144 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
11145
11146         PR tree-optimization/47140
11147         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
11148         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
11149         to bit_value_binop.
11150
11151         PR rtl-optimization/47028
11152         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
11153         parm_birth_insn instead of at the beginning of first bb.
11154
11155 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
11156
11157         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
11158         Remove the word "see" before "@pxref".
11159         * doc/rtl.texi: Remove the word "see" before "@pxref".
11160
11161 2011-01-01  Jan Hubicka  <jh@suse.cz>
11162
11163         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
11164         memory.
11165
11166 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
11167
11168         PR target/38662
11169         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
11170
11171 \f
11172 Copyright (C) 2011 Free Software Foundation, Inc.
11173
11174 Copying and distribution of this file, with or without modification,
11175 are permitted in any medium without royalty provided the copyright
11176 notice and this notice are preserved.