751eb3e4454b891ba211021a1883bf4b26029659
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-04-27  Richard Guenther  <rguenther@suse.de>
2
3         * tree-ssa-structalias.c (changed_count): Remove.
4         (changed): Use a bitmap.
5         (unify_nodes): Adjust.
6         (do_sd_constraint): Likewise.
7         (do_ds_constraint): Likewise.
8         (do_complex_constraint): Likewise.
9         (solve_graph): Likewise.
10
11 2011-04-27  Jan Hubicka  <jh@suse.cz>
12
13         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
14
15 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
16
17         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
18         (avx_vperm2f128_*_operand): Ditto.
19         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
20         Use avx_vpermilp_parallel in insn condition.
21         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
22         Use avx_vperm2f128_parallel in insn condition.
23
24 2011-04-27  Richard Guenther  <rguenther@suse.de>
25
26         * Makefile.in (tree-ssa-structalias.o): Remove
27         gt-tree-ssa-structalias.h dependency.
28         (GTFILES): Remove tree-ssa-structalias.c.
29         * tree.c (allocate_decl_uid): New function.
30         (make_node_stat): Use it.
31         (copy_node_stat): Likewise.
32         * tree.h (allocate_decl_uid): Declare.
33         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
34         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
35         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
36         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
37         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
38         (struct heapvar_map): Likewise.
39         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
40         heapvar_insert): Likewise.
41         (make_heapvar_for): Rename to ...
42         (make_heapvar): ... this.  Simplify.
43         (fake_var_decl_obstack): New global var.
44         (build_fake_var_decl): New function.
45         (make_constraint_from_heapvar): Adjust.
46         (handle_lhs_call): Likewise.
47         (create_function_info_for): Likewise.
48         (intra_create_variable_infos): Likewise.
49         (init_alias_vars): Allocate fake_var_decl_obstack.
50         (init_alias_heapvars, delete_alias_heapvars): Remove.
51         (compute_points_to_sets): Do not call init_alias_heapvars.
52         (ipa_pta_execute): Likewise.
53         (delete_points_to_sets): Free fake_var_decl_obstack.
54
55 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
56
57         * config/spu/divmovti4.c (union qword_UTItype): New data type.
58         (si_from_UTItype, si_to_UTItype): New functions.
59         (__udivmodti4): Use them to implement type-punning.
60         * config/spu/multi3.c (union qword_TItype): New data type.
61         (si_from_TItype, si_to_TItype): New functions.
62         (__multi3): Use them to implement type-punning.
63
64 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
65
66         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
67
68 2011-04-27  Jan Hubicka  <jh@suse.cz>
69
70         * ipa-prop.c (function_insertion_hook_holder): New holder.
71         (ipa_add_new_function): New function.
72         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
73         Register/deregister holder.
74
75 2011-04-27  Richard Guenther  <rguenther@suse.de>
76
77         PR tree-optimization/48772
78         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
79
80 2011-04-27  Richard Guenther  <rguenther@suse.de>
81
82         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
83         TARGET_MEM_REF handling.
84
85 2011-04-27  Nick Clifton  <nickc@redhat.com>
86
87         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
88         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
89         (REG_CLASS_NAMES): Likewise.
90         (REG_CLASS_CONTENTS): Likewise.
91         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
92         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
93         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
94         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
95         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
96         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
97         duplicate register classes.
98         (frv_class_likely_spilled_p): Likewise.
99         (frv_register_move_cost): Likewise.
100
101         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
102         end of the regno_reg_class array.
103
104 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
105
106         PR c/48742
107         * c-typeck.c (build_binary_op): Don't wrap arguments if
108         int_operands is true.
109
110 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
111
112         PR target/48767
113         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
114         targetm.calls.must_pass_in_stack for void type.
115
116 2011-04-26  Jan Hubicka  <jh@suse.cz>
117
118         * cgraphbuild.c (build_cgraph_edges): Update call
119         of cgraph_create_edge and cgraph_create_indirect_edge.
120         * cgraph.c (cgraph_create_edge_including_clones,
121         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
122         cgraph_update_edges_for_call_stmt_node): Do not take nest
123         argument; do not initialize call_stmt_size/time.
124         (dump_cgraph_node): Do not dump nest.
125         (cgraph_clone_edge): Do not take loop_nest argument;
126         do not propagate it; do not clone call_stmt_size/time.
127         (cgraph_clone_node): Likewise.
128         (cgraph_create_virtual_clone): Update.
129         * cgraph.h (struct cgraph_edge): Remove
130         call_stmt_size/call_stmt_time/loop_nest.
131         (cgraph_create_edge, cgraph_create_indirect_edge,
132         cgraph_create_edge_including_clones, cgraph_clone_node): Update
133         prototype.
134         * tree-emutls.c (gen_emutls_addr): Update.
135         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
136         loop_nest; handle indirect calls, too.
137         (clone_inlined_nodes): Do not care about updating inline summaries.
138         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
139         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
140         stream call_stmt_size/call_stmt_time/loop_nest.
141         * ipa-inline.c (edge_badness): Update.
142         (ipa_inline): dump summaries after inlining.
143         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
144         New.
145         (inline_edge_summary): New function.
146         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
147         (inline_edge_removal_hook): Handle edge summaries.
148         (inline_edge_duplication_hook): New hook.
149         (inline_summary_alloc): Alloc hooks.
150         (initialize_growth_caches): Do not register removal hooks.
151         (free_growth_caches); Do not free removal hook.
152         (dump_inline_edge_summary): New function.
153         (dump_inline_summary): Use it.
154         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
155         (inline_update_callee_summaries): New function.
156         (inline_merge_summary): Use it.
157         (do_estimate_edge_time, do_estimate_edge_growth): Update.
158         (read_inline_edge_summary): New function.
159         (inline_read_section): Use it.
160         (write_inline_edge_summary): New function.
161         (inline_write_summary): Use it.
162         (inline_free_summary): Free edge new holders.
163         * tree-inline.c (copy_bb): Update.
164
165 2011-04-26  Jason Merrill  <jason@redhat.com>
166
167         * tree-eh.c (lower_try_finally_switch): Create the label along with
168         the CASE_LABEL_EXPR.
169
170 2011-04-26  David S. Miller  <davem@davemloft.net>
171             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
172
173         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
174         * configure: Regenerate.
175
176 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
177
178         PR target/48258
179         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
180         reduction.
181         (VEC_reduc): New code iterator and splitters for vector reduction.
182         (VEC_reduc_name): Ditto.
183         (VEC_reduc_rtx): Ditto.
184         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
185         (reduc_<VEC_reduc_name>_v4sf): Ditto.
186
187         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
188         support for extracting SF on VSX.
189
190         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
191         generating xscvspdp.
192         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
193         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
194         double add, minimum, maximum vector reduction.
195         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
196         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
197         optimize double vector reduction.
198         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
199
200 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
201
202         * config/fr30/fr30.h (inhibit_libc): Don't define.
203         * config/m32r/m32r-protos.h: Correct comment.
204         * config/v850/v850.h (GHS_default_section_names,
205         GHS_current_section_names): Use tree, not union tree_node *.
206
207 2011-04-26  Xinliang David Li  <davidxl@google.com>
208
209         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
210         * c-family/c-opts.c (c_common_handle_option): Set
211         warn_maybe_uninitialized.
212         * opts.c (common_handle_option): Ditto.
213         * common.opt:  New option.
214         * tree-ssa.c (warn_uninit): Add one more parameter.
215         (warn_uninitialized_var): Pass warning code.
216         * tree-flow.h: Interface change.
217
218
219 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
220
221         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
222         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
223         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
224
225 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
226
227         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
228         * config/mips/mips.opt (mmips-tfile): Remove.
229
230         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
231         mips-tdump reference to ...
232         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
233         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
234         reference by Tru64 UNIX.
235
236 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
237
238         PR debug/48768
239         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
240         is error_mark_node, set value to NULL.
241
242         PR tree-optimization/48734
243         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
244         if return value from maybe_fold_*_comparsions isn't something
245         the code is prepared to handle.
246
247 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
248
249         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
250         mode check.
251         (ext_QIreg_nomode_operands): Remove.
252         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
253         (*andsi_1): Ditto.
254         (*andhi_1): Ditto.
255
256 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
257
258         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
259
260 2011-04-26  Richard Guenther  <rguenther@suse.de>
261
262         * c-typeck.c (build_unary_op): Do not expand array-refs via
263         pointer arithmetic.  Only adjust qualifiers for function types.
264
265 2011-04-26  Richard Guenther  <rguenther@suse.de>
266
267         PR middle-end/48694
268         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
269         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
270         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
271         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
272
273 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
274
275         * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
276         * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
277         * doc/extend.texi: Document __underlying_type.
278
279 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
280
281         * config/rs6000/titan.md (automata_option "progress"): Remove.
282
283 2011-04-25  Jeff Law  <law@redhat.com>
284
285         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
286
287 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
288
289         * system.h (ENUM_BITFIELD): Remove.
290
291 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
292             Eric Botcazou <ebotcazou@adacore.com>
293
294         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
295         for STORE_FLAG_VALUE==-1 case.
296
297 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
298
299         PR target/43804
300         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
301         LEGITIMATE_PIC_OPERAND_P.
302
303 2011-04-24  Jan Hubicka  <jh@suse.cz>
304
305         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
306         WPA hack.
307         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
308         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
309         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
310         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
311         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
312         Sanity check predicate length.
313         (remap_predicate): Likewise; sanity check jump functions.
314         (inline_read_section, inline_write_summary): Sanity check
315         predicate length.
316
317 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
318
319         PR other/48748
320         * doc/extend.texi (Type Traits): Document __is_standard_layout,
321         __is_literal_type, and __is_trivial; update throughout about
322         possibly cv-qualified void types.
323
324 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
325
326         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
327         testsuite and make it version agnostic.
328
329 2011-04-22  Jan Hubicka  <jh@suse.cz>
330
331         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
332
333 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
334
335         PR c/48685
336         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
337         to VOID_TYPE even around MODIFY_EXPR.
338
339 2011-04-22  Mike Stump  <mikestump@comcast.net>
340
341         * gensupport.c (read_md_rtx): Fix typo in comment.
342         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
343         comment.
344
345 2011-04-22  Jan Hubicka  <jh@suse.cz>
346
347         * gengtype.c (open_base_files): Add ipa-inline.h include.
348         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
349         ipa-prop.c; update all uses.
350         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
351         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
352         merge summary of inlined function into former caller.
353         * ipa-inline.c (max_benefit): Remove.
354         (edge_badness): Compensate for removal of benefits.
355         (update_caller_keys): Use
356         reset_node_growth_cache/reset_edge_growth_cache.
357         (update_callee_keys): Likewise.
358         (update_all_callee_keys): Likewise.
359         (inline_small_functions): Do not collect max_benefit; do not reset
360         estimated_growth; call free_growth_caches and initialize_growth_caches.
361         * ipa-inline.h (struct condition, type clause_t, struct predicate,
362         struct size_time_entry): New structures.
363         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
364         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
365         and estimated_growth.
366         (edge_growth_cache_entry): New structure.
367         (node_growth_cache, edge_growth_cache): New global vars.
368         (estimate_growth): Turn into inline.
369         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
370         initialize_growth_caches, free_growth_caches): Declare.
371         (estimate_edge_growth): Rewrite.
372         (estimate_edge_time): Implement as inline cache lookup.
373         (reset_node_growth_cache, reset_edge_growth_cache): New inline
374         functions.
375         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
376         (NUM_CONDITIONS): New constant.
377         (predicate_conditions): New enum.
378         (IS_NOT_CONSTANT): New constant.
379         (edge_removal_hook_holder): New var.
380         (node_growth_cache, edge_growth_cache): New global vars.
381         (true_predicate, single_cond_predicate, false_predicate,
382         not_inlined_predicate, add_condition, add_clause, and_predicates,
383         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
384         dump_clause, dump_predicate, account_size_time,
385         evaulate_conditions_for_edge): New functions.
386         (inline_summary_alloc): Move to heap.
387         (inline_node_removal_hook): Clear condition and entry vectors.
388         (inline_edge_removal_hook): New function.
389         (initialize_growth_caches, free_growth_caches): New function.
390         (dump_inline_summary): Update.
391         (edge_execution_predicate): New function.
392         (will_be_nonconstant_predicate): New function.
393         (estimate_function_body_sizes): Compute BB and constantness predicates.
394         (compute_inline_parameters): Do not clear estimated_growth.
395         (estimate_edge_size_and_time): New function.
396         (estimate_calls_size_and_time): New function.
397         (estimate_callee_size_and_time): New function.
398         (remap_predicate): New function.
399         (inline_merge_summary): New function.
400         (do_estimate_edge_time): New function based on...
401         (estimate_edge_time): ... this one.
402         (do_estimate_edge_growth): New function.
403         (do_estimate_growth): New function based on....
404         (estimate_growth): ... this one.
405         (inline_analyze_function): Analyze after deciding on jump functions.
406         (inline_read_section): New function.
407         (inline_read_summary): Use it.
408         (inline_write_summary): Write all the new data.
409         * ipa-prop.c (ipa_get_param_decl_index): Export.
410         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
411         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
412         Declare.
413         (ipa_get_lattice): Move here from ipa-cp.c
414         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
415         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
416         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
417         cgraph_edge_inlinable_p): Remove.
418         * cgraphunit.c: Include ipainline.h
419         (cgraph_process_new_functions): Update call of
420         compute_inline_parameters.
421
422 2011-04-22  Richard Guenther  <rguenther@suse.de>
423
424         * tree.c (build_int_cst): Properly create canonicalized integer
425         constants.
426         (build_int_cst_type): Remove scary comments.
427
428 2011-04-22  Xinliang David Li  <davidxl@google.com>
429
430         * toplev.c (process_options): Enable -Werror=coverage-mismatch
431         by default when -Wno-error is not specified.
432         * opts-global.c (decode_options): Remove call to
433         control_warning_options.
434
435 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
436
437         PR tree-optimization/48717
438         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
439         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
440
441 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
442
443         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
444         definition where used.
445
446 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
447
448         PR c/48716
449         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
450         TREE_STATIC variables declared inside of some OpenMP construct.
451
452 2011-04-22  Martin Jambor  <mjambor@suse.cz>
453
454         PR middle-end/48585
455         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
456
457 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
458
459         PR c/36750
460         * c-typeck.c (pop_init_level): Do not warn about initializing
461         with ` = {0}'.
462
463 2011-04-22  Alan Modra  <amodra@gmail.com>
464
465         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
466         when returning call_cookie.
467         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
468         pointers, to functions with no more vector args than the current
469         function, and some non-local calls for ABI_V4.
470         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
471         sibcall_nonlocal_aix64): Combine to ..
472         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
473         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
474         (sibcall_value_nonlocal_aix<mode>): ..likewise.
475         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
476         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
477         operand.
478         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
479         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
480         sibcall_value_symbolic_64): Delete.
481
482 2011-04-21  Xinliang David Li  <davidxl@google.com>
483
484         * cgraph.h: Remove pid.
485         * cgraph.c: Remove pid.
486         * value-prof.c (init_node_map): New function.
487         (del_node_map): New function.
488         (find_func_by_funcdef_no): New function.
489         (gimple_ic_transform): Call new function.
490         * cgraphunit.c (cgraph_finalize_function): Remove pid.
491         * function.c (get_last_funcdef_no): New function.
492         * function.h (get_last_funcdef_no): New function.
493         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
494         to libgcov function.
495         (tree-profiling): Call node map init and delete function.
496
497 2011-04-21  Ian Lance Taylor  <iant@google.com>
498
499         * godump.c (go_format_type): Use exported Go name for anonymous
500         field name.
501
502 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
503
504         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
505         Call builtin_function_type_list instead of builtin_function_type.
506         (UNARY, BINARY, TRINARY, QUAD): Likewise.
507
508 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
509
510         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
511         build_function_type_list instead of build_function_type.
512         Delete variable `endlink'.
513
514 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
515
516         * config/s390/s390.c (s390_init_builtins): Call
517         build_function_type_list instead of build_function_type.
518
519 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
520
521         * config/ia64/ia64.c (ia64_init_builtins): Call
522         build_function_type_list instead of builtin_function_type.
523
524 2011-04-21  Easwaran Raman  <eraman@google.com>
525
526         * cfgexpand.c (stack_var): Remove OFFSET...
527         (add_stack_var): ...and its reference here...
528         (expand_stack_vars): ...and here.
529         (stack_var_cmp): Sort by descending order of size.
530         (partition_stack_vars): Change heuristic.
531         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
532         (dump_stack_var_partition): Add newline after each partition.
533
534 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
535             Jeff Law  <law@redhat.com>
536
537         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
538         * gengtype.c (matching_file_name_substitute): Likewise.
539
540 2011-04-21  Richard Guenther  <rguenther@suse.de>
541
542         PR lto/48703
543         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
544
545 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
546
547         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
548
549 2011-04-21  Richard Guenther  <rguenther@suse.de>
550
551         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
552         file name.
553
554 2011-04-21  Richard Guenther  <rguenther@suse.de>
555
556         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
557         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
558         Use DECL_P, not SSA_VAR_P.
559         (ptr_derefs_may_alias_p): Likewise.
560         (ptr_deref_may_alias_ref_p_1): Likewise.
561         (decl_refs_may_alias_p): Likewise.
562         (refs_may_alias_p_1): Likewise.
563         (ref_maybe_used_by_call_p_1): Likewise.
564         (call_may_clobber_ref_p_1): Likewise.
565         (indirect_ref_may_alias_decl_p): Assume indirect refrences
566         are either MEM_REF or TARGET_MEM_REF.
567         (indirect_refs_may_alias_p): Likewise.
568         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
569         for MEM_EXPR of indirect calls.
570
571 2011-04-21  Tristan Gingold  <gingold@adacore.com>
572
573         * vmsdbgout.c (write_srccorr): Compute file length from the string.
574         (dst_file_info_struct): Remove flen field.
575         (lookup_filename): Remove code that set flen field.
576
577 2011-04-21  Tristan Gingold  <gingold@adacore.com>
578
579         * config/ia64/ia64.c (ia64_start_function): Add a guard.
580
581 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
582
583         PR target/48708
584         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
585         vec_extract and vec_concat for non-SSE4_1 targets.
586
587 2011-04-21  Richard Guenther  <rguenther@suse.de>
588
589         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
590         return statements.
591
592 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
593
594         * config/i386/cygming.h (union tree_node, TREE): Don't define or
595         undefine.
596         (FILE): Don't undefine.
597
598 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
599
600         * config/alpha/alpha.c (struct machine_function): Use rtx, not
601         struct rtx_def *.
602         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
603         struct rtx_def *.
604         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
605         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
606         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
607         rtx_def *.
608         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
609         definitions where used.
610         * config/microblaze/microblaze.h (struct microblaze_args): Use
611         rtx, not struct rtx_def *.
612         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
613         rtx_def *.
614         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
615         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
616         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
617         not struct rtx_def *.
618         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
619         struct rtx_def *.
620         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
621         rtx_def *.
622         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
623
624 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
625
626         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
627         operand_equal_p to compare DR_BASE_ADDRESSes.
628         (vect_check_interleaving): Likewise.
629
630 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
631
632         PR target/46329
633         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
634         for all Neon struct constants.
635
636 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
637
638         * target.def (legitimate_constant_p): New hook.
639         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
640         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
641         * doc/tm.texi: Regenerate.
642         * hooks.h (hook_bool_mode_rtx_true): Declare.
643         * hooks.c (hook_bool_mode_rtx_true): Define.
644         * system.h (LEGITIMATE_CONSTANT_P): Poison.
645         * calls.c (precompute_register_parameters): Replace uses of
646         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
647         (emit_library_call_value_1): Likewise.
648         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
649         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
650         * ira-costs.c (scan_one_insn): Likewise.
651         * recog.c (general_operand, immediate_operand): Likewise.
652         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
653         * reload1.c (init_eliminable_invariants): Likewise.
654
655         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
656         mode argument.
657         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
658         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
659         argument.
660         (TARGET_LEGITIMATE_CONSTANT_P): Define.
661         * config/alpha/predicates.md (input_operand): Update call to
662         alpha_legitimate_constant_p.
663
664         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
665         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
666         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
667         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
668         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
669         (arm_legitimate_constant_p): New functions.
670         (arm_cannot_force_const_mem): Make static.
671
672         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
673
674         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
675         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
676         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
677         instead of bfin_legitimate_constant_p.
678         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
679         (TARGET_LEGITIMATE_CONSTANT_P): Define.
680
681         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
682
683         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
684
685         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
686         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
687         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
688         (frv_legitimate_constant_p): Make static.  Add a mode argument.
689
690         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
691         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
692         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
693
694         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
695         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
696         * config/i386/i386.c (legitimate_constant_p): Rename to...
697         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
698         argument.
699         (ix86_cannot_force_const_mem): Update accordingly.
700         (ix86_legitimate_address_p): Likewise.
701         (TARGET_LEGITIMATE_CONSTANT_P): Define.
702         * config/i386/i386.md: Update commentary.
703
704         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
705         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
706         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
707         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
708
709         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
710
711         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
712         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
713         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
714         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
715
716         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
717         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
718         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
719
720         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
721         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
722         (m32r_legitimate_constant_p): New function.
723
724         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
725         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
726         LEGITIMATE_CONSTANT_P.
727         (LEGITIMATE_CONSTANT_P): Delete.
728         * config/m68k/m68k.c (m68k_expand_prologue): Call
729         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
730         (m68k_legitimate_constant_p): New function.
731         * config/m68k/m68k.md: Update comments.
732
733         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
734         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
735         (mcore_legitimate_constant_p): New function.
736
737         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
738         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
739         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
740         Add a mode argument.
741         (mep_legitimate_address): Update accordingly.
742         (TARGET_LEGITIMATE_CONSTANT_P): Define.
743
744         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
745         Delete.
746         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
747         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
748         static.  Check OP's mode for VOIDmode.
749         (microblaze_legitimate_constant_p): New function.
750         (TARGET_LEGITIMATE_CONSTANT_P): Define.
751
752         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
753         * config/mips/mips.c (mips_legitimate_constant_p): New function.
754         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
755         (TARGET_LEGITIMATE_CONSTANT_P): Define.
756         * config/mips/predicates.md: Update comments.
757
758         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
759         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
760         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
761         (mmix_legitimate_constant_p): Make static, return a bool, and take
762         a mode argument.
763         (mmix_print_operand_address): Update accordingly.
764
765         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
766         Delete.
767         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
768         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
769         static.  Add a mode argument.
770         (TARGET_LEGITIMATE_CONSTANT_P): Define.
771
772         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
773
774         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
775         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
776         (pa_legitimate_constant_p): New function.
777
778         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
779
780         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
781         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
782         (pdp11_legitimate_constant_p): New function.
783
784         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
785         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
786         (rs6000_legitimate_constant_p): New function.
787
788         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
789         (rx_legitimate_constant_p): ...this.
790         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
791         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
792         (rx_legitimate_constant_p): ...this.
793         (TARGET_LEGITIMATE_CONSTANT_P): Define.
794         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
795
796         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
797         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
798         * config/s390/s390.c (legitimate_constant_p): Rename to...
799         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
800         and add a mode argument.
801         (TARGET_LEGITIMATE_CONSTANT_P): Define.
802
803         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
804
805         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
806         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
807         (sh_legitimate_constant_p): New function.
808
809         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
810         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
811         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
812         (legitimate_constant_p): Rename to...
813         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
814         argument.
815         (constant_address_p): Update accordingly.
816
817         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
818         argument and return a bool.
819         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
820         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
821         (spu_legitimate_constant_p): Add a mode argument and return a bool.
822         (spu_rtx_costs): Update accordingly.
823         * config/spu/predicates.md (vec_imm_operand): Likewise.
824
825         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
826
827         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
828         * config/v850/v850.c (v850_legitimate_constant_p): New function.
829         (TARGET_LEGITIMATE_CONSTANT_P): Define.
830
831         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
832         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
833         * config/vax/vax.c (legitimate_constant_p): Likewise.
834
835         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
836         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
837         (xtensa_legitimate_constant_p): New function.
838
839 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
840
841         * target.def (cannot_force_const_mem): Add a mode argument.
842         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
843         * doc/tm.texi: Regenerate.
844         * hooks.h (hook_bool_mode_rtx_false): Declare.
845         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
846         (hook_bool_mode_const_rtx_true): Likewise.
847         (hook_bool_mode_rtx_false): New function.
848         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
849         to be non-VOID.  Update call to cannot_force_const_mem.
850         (find_reloads): Update accordingly.
851         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
852         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
853         argument.
854         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
855         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
856         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
857         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
858         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
859         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
860         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
861         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
862         (m68k_cannot_force_const_mem): ...this new function.
863         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
864         argument.
865         (mips_const_insns, mips_legitimize_const_move): Update calls.
866         (mips_secondary_reload_class): Likewise.
867         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
868         (pa_cannot_force_const_mem): ...this new function.
869         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
870         (rs6000_cannot_force_const_mem): ...this new function.
871         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
872         argument.
873         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
874         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
875         to...
876         (xtensa_cannot_force_const_mem): ...this new function.
877
878 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
879
880         * config/mips/mips.c (mips16_build_function_stub): Call
881         build_function_type_list instead of build_function_type.
882         (mips16_build_call_stub): Likewise.
883
884 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
885
886         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
887         instead of build_function_type.
888
889 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
890
891         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
892         instead of build_function_type.
893
894 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
895
896         PR target/48678
897         * config/i386/i386.md (insv): Change operand 0 constraint to
898         "register_operand".  Change operand 1 and 2 constraint to
899         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
900         * config/i386/sse.md (sse4_1_pinsrb): Export.
901         (sse2_pinsrw): Ditto.
902         (sse4_1_pinsrd): Ditto.
903         (sse4_1_pinsrq): Ditto.
904         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
905         * config/i386/i386.c (ix86_expand_pinsr): New.
906
907 2011-04-20  Easwaran Raman  <eraman@google.com>
908
909         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
910         containing union type only with -fstrict-aliasing.
911
912 2011-04-20  Jim Meyering  <meyering@redhat.com>
913
914         Remove useless if-before-free tests.
915         * calls.c (expand_call, save_area): Likewise.
916         * cfgcleanup.c (try_forward_edges): Likewise.
917         * collect2.c (collect_execute): Likewise.
918         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
919         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
920         * coverage.c (coverage_checksum_string): Likewise.
921         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
922         * cselib.c (cselib_init): Likewise.
923         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
924         (df_set_clean_cfg): Likewise.
925         * function.c (free_after_compilation): Likewise.
926         * gcc.c (do_spec_1, main): Likewise.
927         * gcov.c (create_file_names): Likewise.
928         * gensupport.c (identify_predicable_attribute): Likewise.
929         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
930         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
931         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
932         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
933         * ipa-pure-const.c (local_pure_const): Likewise.
934         * ipa-reference.c (propagate): Likewise.
935         * ira-costs.c (free_ira_costs): Likewise.
936         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
937         * matrix-reorg.c (mat_free): Likewise.
938         * prefix.c (get_key_value): Likewise.
939         * profile.c (compute_value_histograms): Likewise.
940         * reload1.c (free_reg_equiv): Likewise.
941         * sched-deps.c (free_deps): Likewise.
942         * sel-sched-ir.c (fence_clear): Likewise.
943         * sese.c (set_rename, if_region_set_false_region): Likewise.
944         * tree-data-ref.c (free_rdg): Likewise.
945         * tree-eh.c (lower_try_finally): Likewise.
946         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
947         * tree-ssa-live.c (delete_var_map): Likewise.
948         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
949         * tree-ssa-pre.c (phi_trans_add): Likewise.
950
951 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
952
953         PR tree-optimization/48611
954         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
955         beyond ERT_MUST_NOT_THROW region.
956
957 2011-04-20  Catherine Moore  <clm@codesourcery.com>
958
959         * config/mips/mips.opt (mfix-24k): New.
960         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
961         * config/mips/mips.md (length): Increase by 4 for stores if
962         fixing 24K errata.
963         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
964         all noreorder if fixing 24K errata.
965         * doc/invoke.texi: Document mfix-24k.
966
967 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
968
969         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
970         quad-word modes, reduce to 9-bit index range when above 1016 limit.
971
972 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
973
974         * config/arm/arm.c (arm_gen_constant): Move movw support ....
975         (const_ok_for_op): ... to here.
976
977 2011-04-20  Kai Tietz  <ktietz@redhat.com>
978
979         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
980         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
981
982 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
983
984         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
985
986 2011-04-20  Richard Guenther  <rguenther@suse.de>
987
988         PR tree-optimization/47892
989         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
990         are if-convertible.
991
992 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
993
994         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
995
996 2011-04-20  Tristan Gingold  <gingold@adacore.com>
997
998         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
999
1000 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
1001
1002         PR target/18145
1003
1004         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
1005         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1006         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1007         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1008         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
1009
1010         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
1011         New prototype.
1012
1013         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
1014         (avr_asm_named_section, avr_asm_output_aligned_common,
1015         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
1016         New functions to update...
1017         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
1018         (avr_asm_init_sections): Overwrite section callbacks for
1019         data_section, bss_section.
1020         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
1021         from here to...
1022         (avr_file_end): ...here.
1023
1024 2011-04-20  Richard Guenther  <rguenther@suse.de>
1025
1026         PR middle-end/48695
1027         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
1028         objects and types here.  Adjust for their offset before comparing.
1029
1030 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1031
1032         * tree-vect-stmts.c (vectorizable_store): Only chain one related
1033         statement per copy.
1034
1035 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
1036
1037         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
1038         (GIMPLE_H): Include $(INTERNAL_FN_H).
1039         (OBJS-common): Add internal-fn.o.
1040         (internal-fn.o): New rule.
1041         * internal-fn.def: New file.
1042         * internal-fn.h: Likewise.
1043         * internal-fn.c: Likewise.
1044         * gimple.h: Include internal-fn.h.
1045         (GF_CALL_INTERNAL): New gf_mask.
1046         (gimple_statement_call): Put fntype into a union with a new
1047         internal_fn field.
1048         (gimple_build_call_internal): Declare.
1049         (gimple_build_call_internal_vec): Likewise.
1050         (gimple_call_same_target_p): Likewise.
1051         (gimple_call_internal_p): New function.
1052         (gimple_call_internal_fn): Likewise.
1053         (gimple_call_fntype): Return null for internal calls.
1054         (gimple_call_set_fntype): Assert that the function is not internal.
1055         (gimple_call_set_fn): Likewise.
1056         (gimple_call_set_fndecl): Likewise.
1057         (gimple_call_set_internal_fn): New function.
1058         (gimple_call_addr_fndecl): Handle null functions.
1059         (gimple_call_return_type): Likewise null types.
1060         * gimple.c (gimple_build_call_internal_1): New function.
1061         (gimple_build_call_internal): Likewise.
1062         (gimple_build_call_internal_vec): Likewise.
1063         (gimple_call_same_target_p): Likewise.
1064         (gimple_call_flags): Handle calls to internal functions.
1065         (gimple_call_fnspec): New function.
1066         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
1067         (gimple_has_side_effects): Handle null functions.
1068         (gimple_rhs_has_side_effects): Likewise.
1069         (gimple_call_copy_skip_args): Handle calls to internal functions.
1070         * cfgexpand.c (expand_call_stmt): Likewise.
1071         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
1072         * gimple-fold.c (gimple_fold_call): Handle null functions.
1073         (gimple_fold_stmt_to_constant_1): Don't fold
1074         calls to internal functions.
1075         * gimple-low.c (gimple_check_call_args): Handle calls to internal
1076         functions.
1077         * gimple-pretty-print.c (dump_gimple_call): Likewise.
1078         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
1079         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
1080         (do_warn_unused_result): Likewise.
1081         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
1082         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
1083         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
1084         the target of a call.
1085         (initialize_hash_element): Update accordingly.
1086         (hashable_expr_equal_p): Use gimple_call_same_target_p.
1087         (iterative_hash_hashable_expr): Handle calls to internal functions.
1088         (print_expr_hash_elt): Likewise.
1089         * tree-ssa-pre.c (can_value_number_call): Likewise.
1090         (eliminate): Handle null functions.
1091         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
1092         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
1093         (find_func_aliases): Likewise.
1094         * value-prof.c (gimple_ic_transform): Likewise.
1095         (gimple_indirect_call_to_profile): Likewise.
1096         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1097         * lto-streamer-out.c (output_gimple_stmt): Likewise.
1098
1099 2011-04-19  Jan Hubicka  <jh@suse.cz>
1100
1101         * ipa-inline-transform.c (save_inline_function_body): Add comments.
1102         * ipa-inline.c (inline_small_functions): Compute summaries first,
1103         populate heap later.
1104
1105 2011-04-19  Jan Hubicka  <jh@suse.cz>
1106
1107         * cgraph.h (save_inline_function_body): Remove.
1108         * ipa-inline-transform.c: New file, broke out of...
1109         * ipa-inline.c: ... this one; Update toplevel comment.
1110         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
1111         make global.
1112         (update_noncloned_frequencies): Move to ipa-inline-transform.c
1113         (cgraph_mark_inline_edge): Rename to inline_call; move to
1114         ipa-inline-transform.c.
1115         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
1116         move to ipa-inline-transform.c
1117         (recursive_inlining, inline_small_functions, flatten_function,
1118         ipa_inline, inline_always_inline_functions,
1119         early_inline_small_functions): Update.
1120         (inline_transform): Move to ipa-inline-transform.c.
1121         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
1122         Declare.
1123         * Makefile.in (ipa-inline-transform.o): New file.
1124         * cgraphunit.c (save_inline_function_body): Move to
1125         ipa-inline-transform.c
1126
1127 2011-04-19  DJ Delorie  <dj@redhat.com>
1128
1129         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
1130         registers if we already know there aren't any.
1131         (m32c_emit_epilogue): Don't emit a barrier here.
1132         (m32c_emit_eh_epilogue): Likewise.
1133         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
1134         operands at expand time.
1135         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
1136         int" wchar type.
1137         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
1138         duplicates.  Provide aliases instead.
1139         * config/m32c/prologue.md (eh_return): Emit a barrier here.
1140         (eh_epilogue): Add a "(return)" here as a hint to other parts of
1141         the compiler.
1142
1143 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
1144
1145         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
1146         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
1147         (general_or_i64_p, sparc_register_move_cost): New function.
1148
1149 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1150
1151         * doc/install.texi (Configuration, --enable-threads): Remove mach.
1152         Add lynx, mipssde.  Sort table.
1153
1154 2011-04-19  Xinliang David Li  <davidxl@google.com>
1155
1156         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
1157         not negative.
1158
1159 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
1160
1161         PR target/48678
1162         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
1163         is a SUBREG with non-MODE_INT mode inside of it.
1164
1165 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1166
1167         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
1168         also according to actual contants.
1169         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
1170         (gimple_fold_call): Use it.
1171         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
1172
1173 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1174
1175         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
1176         non-pointer assignments.
1177
1178 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1179
1180         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
1181         account anc_offset and otr_type from the indirect edge info.
1182         * ipa-prop.c (get_ancestor_addr_info): New function.
1183         (compute_complex_ancestor_jump_func): Assignment analysis moved to
1184         get_ancestor_addr_info, call it.
1185         (ipa_note_param_call): Do not initialize information about polymorphic
1186         calls, return the indirect call graph edge.  Remove the last
1187         parameter, adjust all callers.
1188         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
1189         parameters.  Initialize polymorphic information in the indirect edge.
1190
1191 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1192
1193         PR lto/48148
1194         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
1195         the types if they have different enumeration identifiers.
1196
1197 2011-04-19  Jan Hubicka  <jh@suse.cz>
1198
1199         * cgraph.h (cgraph_optimize_for_size_p): Declare.
1200         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
1201         * predict.c (cgraph_optimize_for_size_p): Break out from ...
1202         (optimize_function_for_size_p) ... here.
1203
1204 2011-04-19  Richard Guenther  <rguenther@suse.de>
1205
1206         PR lto/48207
1207         * tree.c (free_lang_data): Do not reset the decl-assembler-name
1208         langhook.
1209
1210 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1211
1212         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
1213         if DECL_NO_INLINE_WARNING_P is set on the function.
1214
1215 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
1216
1217         PR fortran/47976
1218         * reload1.c (inc_for_reload): Return void. All callers changed.
1219         (emit_input_reload_insns): Don't try to delete previous output
1220         reloads to a register, or record spill_reg_store for autoincs.
1221
1222 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
1223
1224         * gengtype.h: Updated copyright year.
1225         (struct input_file_st): Add inpisplugin field.
1226         (type_fileloc): New function.
1227         * gengtype.c
1228         (write_typed_struct_alloc_def): Add gcc_assert.
1229         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
1230         (write_typed_alloc_defns): Don't output for plugin files.
1231         (input_file_by_name): Clear inpisplugin field.
1232         (main): Set inpisplugin field for plugin files.
1233
1234 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
1235
1236         * gengtype-state.c (string_eq): New.
1237         (read_state): Use string_eq instead of strcmp when creating the
1238         state_ident_tab.
1239
1240 2011-04-19  Wei Guozhi  <carrot@google.com>
1241
1242         PR target/47855
1243         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
1244         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
1245         linkage.
1246         * config/arm/constraints.md (Uu): New constraint.
1247         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
1248
1249 2011-04-19  Tristan Gingold  <gingold@adacore.com>
1250
1251         * config.gcc (-*-*-*vms): Added.
1252         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
1253         definitions moved.
1254         * config/vms/vms-ld.c: New file.
1255         * config/vms/vms-ar.c: New file.
1256         * config/vms/t-vmsnative: New file.
1257
1258 2011-04-18  Xinliang David Li  <davidxl@google.com>
1259
1260         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
1261
1262 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1263
1264         PR middle-end/48661
1265         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
1266         if TREE_TYPE (v) is non-NULL.
1267
1268         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
1269         gimple_get_virt_mehtod_for_binfo.
1270         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
1271         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
1272         callers.
1273         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1274
1275 2011-04-18  Michael Matz  <matz@suse.de>
1276             Steve Ellcey  <sje@cup.hp.com>
1277
1278         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
1279         use its mode as source mode if it isn't VOIDmode.
1280
1281 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
1282
1283         * doc/passes.texi: Fill crossref nodes.
1284
1285 2011-04-18  Jim Meyering  <meyering@redhat.com>
1286
1287         Fix doubled-word typos in comments and strings
1288         * config/alpha/vms-unwind.h: s/for for/for/
1289         * config/arm/unwind-arm.h: Likewise.
1290         * config/microblaze/microblaze.c: Likewise.
1291         * config/sh/constraints.md: s/in in/in/
1292         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1293
1294 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
1295
1296         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1297         (AVX_FLOAT_MODE_P): Ditto.
1298         (AVX128_VEC_FLOAT_MODE_P): Ditto.
1299         (AVX256_VEC_FLOAT_MODE_P): Ditto.
1300         (AVX_VEC_FLOAT_MODE_P): Ditto.
1301         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1302         (UNSPEC_MASKSTORE): Ditto.
1303         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1304         Merge from <sse>_movmsk<ssemodesuffix> and
1305         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
1306         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
1307         iterator.
1308         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1309         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1310         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1311
1312 2011-04-18  Jan Hubicka  <jh@suse.cz>
1313
1314         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1315
1316         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1317         (want_inline_function_called_once_p): Break out the logic from
1318         ipa_inline.
1319         (edge_badness): Ensure that profile is not misupdated.
1320         (lookup_recursive_calls): Prioritize by call frequencies.
1321         (inline_small_functions): Move program size estimates here;
1322         actually process whole queue even when unit growth has been
1323         met. (to properly compute inline_failed reasons and for the
1324         case unit size decrease.) Revisit comments on recursive inlining.
1325         (ipa_inline): Remove unit summary code; first inline hot calls
1326         of functions called once, cold calls next.
1327         (order, nnodes): Remove unused variables.
1328         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1329         (GTFILES): Remove ipa-inline.c
1330         * sel-sched.c (fill_insns): Silence uninitialized var warning.
1331
1332 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1333
1334         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1335
1336 2011-04-18  Jie Zhang  <jie@codesourcery.com>
1337             Richard Earnshaw  <rearnsha@arm.com>
1338
1339         * arm.c (neon_builtin_type_bits): Remove.
1340         (typedef enum neon_builtin_mode): New.
1341         (T_MAX): Don't define.
1342         (typedef enum neon_builtin_datum): Remove bits, codes[],
1343         num_vars and base_fcode.  Add mode, code and fcode.
1344         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1345         VAR10): Change accordingly.
1346         (neon_builtin_data[]): Change accordingly
1347         (arm_init_neon_builtins): Change accordingly.
1348         (neon_builtin_compare): Remove.
1349         (locate_neon_builtin_icode): Remove.
1350         (arm_expand_neon_builtin): Change accordingly.
1351
1352         * arm.h (enum arm_builtins): Move to ...
1353         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1354
1355         * arm.c (arm_builtin_decl): Declare.
1356         (TARGET_BUILTIN_DECL): Define.
1357         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1358         (arm_builtin_decls[]): New.
1359         (arm_init_neon_builtins): Store builtin declarations in
1360         arm_builtin_decls[].
1361         (arm_init_tls_builtins): Likewise.
1362         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
1363         (arm_builtin_decl): New.
1364
1365 2011-04-18  Richard Guenther  <rguenther@suse.de>
1366
1367         * tree.c (upper_bound_in_type): Build properly canonicalized
1368         INTEGER_CSTs.
1369         (lower_bound_in_type): Likewise.
1370
1371 2011-04-18  Richard Guenther  <rguenther@suse.de>
1372
1373         * gimple.h (gimple_call_addr_fndecl): New function.
1374         (gimple_call_fndecl): Use it.
1375         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1376         for direct calls.
1377         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1378         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1379
1380 2011-04-18  Richard Guenther  <rguenther@suse.de>
1381
1382         PR middle-end/48650
1383         * tree.c (build_string): STRING_CST is now derived from tree_typed.
1384
1385 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1386
1387         PR lto/48492
1388         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1389         DECL_IN_CONSTANT_POOL without RTL.
1390
1391 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
1392             Ira Rosen  <ira.rosen@linaro.org>
1393
1394         PR target/48252
1395         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
1396         to match neon_vzip/vuzp/vtrn_internal.
1397         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
1398         outputs explicitly dependent on both inputs.
1399         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
1400
1401 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1402
1403         PR tree-optimization/48616
1404         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
1405         whether the shift is by scalar or vector based on whether all SLP
1406         scalar stmts have the same rhs.
1407
1408 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
1409
1410         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
1411         memory operands.
1412
1413 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
1414
1415         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
1416         registers.
1417
1418 2011-04-17  Jan Hubicka  <jh@suse.cz>
1419
1420         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1421         * cgrpahunit.c (cgraph_finalize_function): Do not set
1422         finalized_by_frontend.
1423         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1424         finalized_by_frontend.
1425
1426 2011-04-17  Jan Hubicka  <jh@suse.cz>
1427
1428         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
1429         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
1430         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1431         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
1432         method.
1433         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
1434         gimple-fold.c
1435         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
1436
1437 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1438
1439         PR lto/48538
1440         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
1441         is non-null before accessing it.
1442         (input_cgraph): Remove trailing spaces.
1443
1444 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1445
1446         * params.def (sms-min-sc): New param flag.
1447         * modulo-sched.c (sms_schedule): Use it.
1448         * doc/invoke.texi (sms-min-sc): Document it.
1449
1450 2011-04-17  Jan Hubicka  <jh@suse.cz>
1451
1452         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
1453         present, also set gimple_call_set_cannot_inline.
1454         * ipa-inline.c: Update toplevel comment.
1455         (MAX_TIME): Remove.
1456         (cgraph_clone_inlined_nodes): Fix linebreaks.
1457         (cgraph_check_inline_limits): Restructure to ...
1458         (caller_growth_limits): ... this one; be more tolerant
1459         on growth in nested inline chains; add explanatory comment;
1460         fix stack accounting thinko introduced by previous patch.
1461         (cgraph_default_inline_p): Remove.
1462         (report_inline_failed_reason): New function.
1463         (can_inline_edge_p): New function.
1464         (can_early_inline_edge_p): New function.
1465         (leaf_node_p): Move upwards in file.
1466         (want_early_inline_function_p): New function.
1467         (want_inline_small_function_p): New function.
1468         (want_inline_self_recursive_call_p): New function.
1469         (cgraph_edge_badness): Rename to ...
1470         (edge_badness) ... this one; fix linebreaks.
1471         (update_edge_key): Update call of edge_baddness; add
1472         detailed dump about queue updates.
1473         (update_caller_keys): Use can_inline_edge_p and
1474         want_inline_small_function_p.
1475         (cgraph_decide_recursive_inlining): Rename to...
1476         (recursive_inlining): Use can_inline_edge_p and
1477         want_inline_self_recursive_call_p; simplify and remove no longer
1478         valid FIXME.
1479         (cgraph_set_inline_failed): Remove.
1480         (add_new_edges_to_heap): Use can_inline_edge_p and
1481         want_inline_small_function_p.
1482         (cgraph_decide_inlining_of_small_functions): Rename to ...
1483         (inline_small_functions): ... this one; cleanup; use
1484         can/want predicates; cleanup debug ouput; work edges till fibheap
1485         is exhausted and do not stop once unit growth is reached; remove
1486         later loop processing remaining edges.
1487         (cgraph_flatten): Rename to ...
1488         (flatten_function): ... this one; use can_inline_edge_p
1489         and can_early_inline_edge_p predicates.
1490         (cgraph_decide_inlining): Rename to ...
1491         (ipa_inline): ... this one; remove unreachable nodes before
1492         inlining functions called once; simplify the pass.
1493         (cgraph_perform_always_inlining): Rename to ...
1494         (inline_always_inline_functions): ... this one; use
1495         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
1496         (cgraph_decide_inlining_incrementally): Rename to ...
1497         (early_inline_small_functions): ... this one; simplify
1498         using new predicates; cleanup; make dumps prettier.
1499         (cgraph_early_inlining): Rename to ...
1500         (early_inliner): newer inline regular functions into always-inlines;
1501         fix updating of call stmt summaries.
1502         (pass_early_inline): Update for new names.
1503         (inline_transform): Fix formating.
1504         (gate_cgraph_decide_inlining): Rename to ...
1505         (pass_ipa_inline): ... this one.
1506         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
1507         * ipa-inline-analysis.c (dump_inline_summary): Update.
1508         (compute_inline_parameters): Do not compute disregard_inline_limits;
1509         look for mismatching arguments.
1510         (estimate_growth): Fix handlig of non-trivial self recursion.
1511         (inline_read_summary): Do not read info->disregard_inline_limits.
1512         (inline_write_summary): Do not write info->disregard_inline_limits.
1513         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
1514         and move all checks into can_inline_edge_p predicate; re-enable code
1515         comparing optimization levels.
1516         (expand_call_inline): Do not test inline_forbidden_into_p.
1517         * Makefile.in (ipa-inline.o): Update arguments.
1518
1519 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1520
1521         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
1522
1523 2011-04-17  Revital Eres  <revital.eres@linaro.org>
1524
1525         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
1526
1527 2011-04-17  Michael Matz  <matz@suse.de>
1528
1529         PR tree-optimization/48622
1530         PR lto/48645
1531         * ipa-inline-analysis.c (inline_read_summary): Read size/time
1532         in same order as they're written.
1533
1534 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1535
1536         * config/pa/predicates.md: Reorganize and simplify predicates.
1537         Eliminate duplicate code checks.
1538         (arith_operand): Rename to arith14_operand
1539         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
1540         * config/pa/pa.md: Use renamed operands.
1541         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
1542         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
1543         arith11_operand, adddi3_operand, indexed_memory_operand,
1544         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
1545         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
1546         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
1547         move_dest_operand, move_src_operand, prefetch_cc_operand,
1548         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
1549         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
1550         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
1551         div_operand, int5_operand, movb_comparison_operator,
1552         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
1553         arith_double_operand, ireg_operand, lhs_lshift_operand,
1554         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
1555         integer_store_memory_operand): Likewise.
1556         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
1557         (integer_store_memory_operand, read_only_operand,
1558         function_label_operand, borx_reg_operand,
1559         non_hard_reg_operand): Likewise.
1560         (eq_neq_comparison_operator): Delete unused operator.
1561         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
1562         function_label_operand.
1563         (emit_move_sequence): Likewise.
1564
1565 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1566
1567         * config/i386/sse.md (sseunpackmode): New mode attribute.
1568         (ssepackmode): Ditto.
1569         (vec_pack_trunc_<mode>): Macroize expander from
1570         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
1571         (vec_unpacks_lo_<mode>): Macroize expander from
1572         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1573         (vec_unpacks_hi_<mode>): Macroize expander from
1574         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1575         (vec_unpacku_lo_<mode>): Macroize expander from
1576         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1577         (vec_unpacku_hi_<mode>): Macroize expander from
1578         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
1579         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
1580         ix86_expand_sse4_unpack.
1581         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
1582
1583 2011-04-16  Jan Hubicka  <jh@suse.cz>
1584
1585         * cgraphbuild.c: Include ipa-inline.h.
1586         (reset_inline_failed): Use initialize_inline_failed.
1587         * cgraph.c: Include ipa-inline.h.
1588         (cgraph_create_node_1): Do not initialize estimated_growth.
1589         (initialize_inline_failed): More to ipa-inline-analysis.c
1590         (dump_cgraph_node): Do not dump inline flags.
1591         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
1592         and disregard_inline_limits flags.
1593         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
1594         time, size, estimated_growth.
1595         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
1596         Update.
1597         * cgraphunit.c (cgraph_decide_is_function_needed): Use
1598         DECL_DISREGARD_INLINE_LIMITS.
1599         (cgraph_analyze_function): Do not initialize
1600         node->local.disregard_inline_limits.
1601         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
1602         inlinable, versionable and disregard_inline_limits.
1603         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1604         cgraph_check_inline_limits, cgraph_default_inline_p,
1605         cgraph_edge_badness, update_caller_keys, update_callee_keys,
1606         add_new_edges_to_heap): Update.
1607         (cgraph_decide_inlining_of_small_function): Update; set
1608         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
1609         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
1610         cgraph_decide_inlining_incrementally): Update.
1611         * ipa-inline.h (inline_summary): Add inlinable, versionable,
1612         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
1613         time, size and estimated_growth parameters.
1614         (estimate_edge_growth): Update.
1615         (initialize_inline_failed): Declare.
1616         * ipa-split.c: Include ipa-inline.h
1617         (execute_split_functions): Update.
1618         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
1619         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
1620         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
1621         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
1622         estimated_growth to INT_MIN.
1623         (inline_node_duplication_hook): Likewise.
1624         (dump_inline_summary): Dump new fields.
1625         (compute_inline_parameters): Update.
1626         (estimate_edge_time, estimate_time_after_inlining,
1627         estimate_size_after_inlining, estimate_growth, inline_read_summary,
1628         inline_write_summary):
1629         (initialize_inline_failed): Move here from cgraph.c.
1630         * tree-sra.c: Include ipa-inline.h.
1631         (ipa_sra_preliminary_function_checks): Update.
1632         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
1633         ipa-inline.h.
1634
1635 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
1636
1637         * config/i386/sse.md (V16): New mode iterator.
1638         (VI1, VI8): Ditto.
1639         (AVXMODEQI, AVXMODEDI): Remove.
1640         (sse2, sse3): New mode attribute.
1641         (mov<mode>): Use V16 mode iterator.
1642         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
1643         (push<mode>1): Use V16 mode iterator.
1644         (movmisalign<mode>): Ditto.
1645         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1646         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
1647         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
1648         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
1649         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
1650         avx_movdqu<avxmodesuffix>.
1651         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
1652         *avx_movdqu<avxmodesuffix>.
1653         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
1654         avx_lddqu<avxmodesuffix>.
1655         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
1656         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
1657         avx_movnt<AVXMODEDI:mode>.
1658         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
1659         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
1660
1661 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1662
1663         PR target/48629
1664         * haifa-sched.c (prune_ready_list, schedule_block): Use
1665         sched_pressure_p rather than flag_sched_pressure.
1666
1667 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
1668
1669         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1670         cgraph_get_node instead of cgraph_get_create_node.
1671
1672 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
1673
1674         * cfgexpand.c (expand_debug_expr): Use
1675         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
1676
1677 2011-04-15  Michael Matz  <matz@suse.de>
1678
1679         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
1680         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
1681         * function.c (gimplify_parameters): Ditto.
1682         * gimplify.c (gimplify_vla_decl): Ditto.
1683
1684         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
1685         (gimple_call_set_alloca_for_var): New inline function.
1686         (gimple_call_alloca_for_var_p): Ditto.
1687         * gimple.c (gimple_build_call_from_tree): Remember
1688         CALL_ALLOCA_FOR_VAR_P state.
1689         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
1690
1691         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
1692         calls if they were for VLA objects.
1693
1694 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1695
1696         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
1697         of ADR_EXPRs.
1698
1699 2011-04-15  Martin Jambor  <mjambor@suse.cz>
1700
1701         PR middle-end/48601
1702         * tree-emutls.c (lower_emutls_function_body): Call
1703         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
1704         result is non-NULL.
1705
1706 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1707
1708         * c-decl.c (detect_field_duplicates): Call
1709         objc_detect_field_duplicates instead of objc_get_interface_ivars.
1710
1711 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
1712
1713         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
1714         * gimple.c (gimple_asm_clobbers_memory_p): Define.
1715         * ipa-pure-const.c (check_stmt): Call it.
1716         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
1717
1718 2011-04-15  Richard Guenther  <rguenther@suse.de>
1719
1720         PR tree-optimization/48290
1721         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
1722         Properly decide inhibiting propagation based on the valueized
1723         operand.  Do loop-closed SSA form preserving here ...
1724         (init_copy_prop): ... not here.
1725
1726 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1727
1728         PR target/48612
1729         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
1730         (*ieee_smax<mode>3): Likewise.
1731
1732 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1733
1734         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
1735         Replace match_operand with match_dup for the third operand in
1736         these expanders.
1737
1738 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1739
1740         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
1741         to track processing of conditionals.  Update all callers.
1742         (try_combine, simplify_if_then_else): Update.
1743
1744 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1745
1746         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
1747         -fsched-pressure.
1748
1749 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
1750
1751         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
1752         instead of match_operand for operand 3.
1753
1754 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
1755
1756         * recog.h (insn_operand_data): Add an "allows_mem" field.
1757         * genoutput.c (output_operand_data): Initialize it.
1758         * optabs.c (maybe_legitimize_operand_same_code): New function.
1759         (maybe_legitimize_operand): Use it when matching the original
1760         op->value.
1761
1762 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1763
1764         * gimplify.c: Fix issues in comments throughout.
1765         (voidify_wrapper_expr): Fix long line.
1766         (build_stack_save_restore): Likewise.
1767         (gimplify_loop_expr): Likewise.
1768         (gimplify_compound_lval): Likewise.
1769         (gimplify_init_ctor_eval): Likewise.
1770         (gimplify_modify_expr_rhs): Likewise.
1771         (omp_notice_threadprivate_variable): Likewise.
1772
1773 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
1774
1775         * cfgexpand.c (expand_call_stmt): Convert the function type to the
1776         original one if this is not a builtin function.
1777
1778 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
1779
1780         PR target/48605
1781         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
1782         offset it as needed based on top 2 bits in operands[3], change
1783         MEM mode to SFmode and mask those 2 bits away from operands[3].
1784
1785 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1786
1787         * c-parser.c (c_parser_objc_protocol_definition): Updated for
1788         change from objc_declare_protocols() to objc_declare_protocol().
1789
1790 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
1791
1792         * config/i386/sse.md (sse4_1): New mode attribute.
1793         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
1794         avx_blend<ssemodesuffix><avxmodesuffix> and
1795         sse4_1_blend<ssemodesuffix> using VF mode iterator.
1796         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
1797         avx_blendv<ssemodesuffix><avxmodesuffix> and
1798         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
1799         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
1800         avx_dp<ssemodesuffix><avxmodesuffix> and
1801         sse4_1_dp<ssemodesuffix> using VF mode iterator.
1802         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
1803         (sse4_1_packusdw): Merge with *avx_packusdw.
1804         (sse4_1_pblendvb): Merge with *avx_pblendvb.
1805         (sse4_1_pblendw): Merge with *avx_pblendw.
1806         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
1807         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
1808         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
1809         VF mode iterator.
1810         (sse4_1_round<ssescalarmodesuffix>): Merge with
1811         *avx_round<ssescalarmodesuffix>.
1812         (aesenc): Merge with *avx_aesenc.
1813         (aesenclast): Merge with *avx_aesenclast.
1814         (aesdec): Merge with *avx_aesdec.
1815         (aesdeclast): Merge with *avx_aesdeclast.
1816         (pclmulqdq): Merge with *pclmulqdq.
1817         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
1818         New predicate.
1819         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
1820
1821 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
1822
1823         PR middle-end/48608
1824         * cfgexpand.c (get_decl_align_unit): Renamed to ...
1825         (align_local_variable): This.  Update DECL_ALIGN.
1826         (add_stack_var): Updated.
1827         (expand_one_stack_var): Likewise.
1828
1829 2011-04-14  Richard Guenther  <rguenther@suse.de>
1830
1831         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
1832         Remove.
1833         (dse_initialize_block_local_data, dse_leave_block,
1834         record_voperand_set, get_stmt_uid): Likewise.
1835         (dse_possible_dead_store_p): Allow any kind of killing stmt.
1836         (dse_optimize_stmt): Remove voperand set handling code.
1837         Simplify and improve to handle any kind of killing stmt.
1838         (dse_record_phi): Remove.
1839         (dse_enter_block): Simplify.
1840         (tree_ssa_dse): Likewise.
1841         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
1842
1843 2011-04-14  Jan Hubicka  <jh@suse.cz>
1844
1845         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
1846         * cgraph.h (struct inline_summary): Move to ipa-inline.h
1847         (cgraph_local_info): Remove inline_summary.
1848         * ipa-cp.c: Include ipa-inline.h.
1849         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
1850         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
1851         accesor.
1852         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
1853         (input_overwrite_node): Do not set inline summary.
1854         (input_node): Do not stream inline summary.
1855         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
1856         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
1857         growth; we do not have inline parameters computed for that anyway.
1858         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
1859         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
1860         (inline_summary_t): New type and VECtor.
1861         (debug_inline_summary, dump_inline_summaries): Declare.
1862         (inline_summary): Use VOCtor.
1863         (estimate_edge_growth): Kill hack computing call stmt size directly.
1864         * lto-section-in.c (lto_section_name): Add inline section.
1865         * ipa-inline-analysis.c: Include lto-streamer.h
1866         (node_removal_hook_holder, node_duplication_hook_holder): New holders
1867         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
1868         (inline_summary_vec): Define.
1869         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
1870         dump_inline_summaries): New functions.
1871         (estimate_function_body_sizes): Properly compute size/time of outgoing
1872         calls.
1873         (compute_inline_parameters): Alloc inline_summary; do not compute
1874         size/time of incomming calls.
1875         (estimate_edge_time): Avoid missing time summary hack.
1876         (inline_read_summary): Read inline summary info.
1877         (inline_write_summary): Write inline summary info.
1878         (inline_free_summary): Free all hooks and inline summary vector.
1879         * lto-streamer.h: Add LTO_section_inline_summary section.
1880         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
1881         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
1882
1883 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1884
1885         * tree-vectorizer.h (vect_strided_store_supported): Add a
1886         HOST_WIDE_INT argument.
1887         (vect_strided_load_supported): Likewise.
1888         (vect_permute_store_chain): Return void.
1889         (vect_transform_strided_load): Likewise.
1890         (vect_permute_load_chain): Delete.
1891         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
1892         count argument.  Check that the count is a power of two.
1893         (vect_strided_load_supported): Likewise.
1894         (vect_permute_store_chain): Return void.  Update after above changes.
1895         Assert that the access is supported.
1896         (vect_permute_load_chain): Likewise.
1897         (vect_transform_strided_load): Return void.
1898         * tree-vect-stmts.c (vectorizable_store): Update calls after
1899         above interface changes.
1900         (vectorizable_load): Likewise.
1901         (vect_analyze_stmt): Don't check for strided powers of two here.
1902
1903 2011-04-14  Richard Guenther  <rguenther@suse.de>
1904
1905         PR tree-optimization/48590
1906         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1907         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1908         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
1909         BUILT_IN_STACK_SAVE.
1910         * tree-ssa-dce.c (propagate_necessity): Handle
1911         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
1912
1913 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1914
1915         * c-parser.c (c_parser_objc_class_declaration): Updated call to
1916         objc_declare_class.
1917
1918 2011-04-14  Richard Guenther  <rguenther@suse.de>
1919
1920         * tree.h (get_object_alignment_1): Declare.
1921         * builtins.c (get_object_alignment_1): Split out worker from ...
1922         (get_object_alignment): ... here.
1923         * fold-const.c (get_pointer_modulus_and_residue): Use
1924         get_object_alignment_1.
1925
1926 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1927
1928         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
1929         type parameter.
1930         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
1931         parameter.  Generalise code to handle arrays as well as vectors.
1932         (vect_setup_realignment): Update accordingly.
1933         * tree-vect-stmts.c (vectorizable_store): Likewise.
1934         (vectorizable_load): Likewise.
1935
1936 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1937
1938         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
1939         within the per-copy loop.
1940
1941 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1942
1943         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
1944         in the dump file.
1945
1946 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
1947
1948         * doc/options.texi (Negative): Explicitly mention that the
1949         Negative chain must be circular.
1950
1951 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1952
1953         * function.h (block_chainon): Declare.
1954         * function.c (block_chainon): Define.
1955
1956 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
1957             Eric Weddington  <eric.weddington@atmel.com>
1958             Georg-Johann Lay <avr@gjlay.de>
1959
1960         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
1961         New Includes
1962         (avr_init_builtins, avr_expand_builtin,
1963         avr_expand_delay_cycles, avr_expand_unop_builtin,
1964         avr_expand_binop_builtin ): New functions.
1965         (avr_builtin_id): New enum
1966         (struct avr_builtin_description): New struct
1967         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
1968         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1969
1970         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
1971         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
1972         UNSPECV_DELAY_CYCLES): new enumeration values
1973         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
1974         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
1975         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
1976         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
1977         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
1978         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
1979         "fmulsu"): New insns
1980
1981         * config/avr/avr-c.c: fix line endings
1982         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
1983         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
1984         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
1985         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
1986         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
1987
1988         * doc/extend.texi (AVR Built-in Functions): New node
1989         (Target Builtins): Add documentation of AVR
1990         built-in functions.
1991
1992 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
1993
1994         PR target/44643
1995         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
1996         alone. Error if non-const data has attribute progmem.
1997
1998 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
1999
2000         * tree.h (struct tree_constructor): Include tree_typed instead of
2001         tree_common.
2002         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
2003         TS_TYPED instead of TS_COMMON.
2004
2005 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
2006
2007         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
2008         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
2009         (sse2_psadbw): Merge with *avx_psadbw.
2010         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
2011         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
2012         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
2013         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
2014         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
2015         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
2016         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
2017         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
2018         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
2019         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
2020         (ssse3_palignrti): Merge with *avx_palignrti.
2021
2022 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2023
2024         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
2025         * tree-ssanames.c (fini_ssanames): VEC_free it.
2026         (make_ssa_name_fn): Update for VECness of free_ssanames.
2027         (release_ssa_name, release_dead_ssa_names): Likewise.
2028         * tree.h (struct tree_ssa_name): Include tree_typed instead of
2029         tree_common.
2030         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
2031         TS_TYPED instead of TS_COMMON.
2032
2033 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2034
2035         * postreload-gcse.c (gcse_after_reload_main): Add calls to
2036         statistics_counter_event.
2037         * tree-ssa-copyrename.c (stats): Define.
2038         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
2039         statistics_counter_event.
2040         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
2041         (bswap_stats, widen_mul_stats): Define.
2042         (insert_reciprocals): Increment rdivs_inserted.
2043         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
2044         rfuncs_inserted.  Add calls to statistics_counter_event.
2045         (execute_cse_sincos_1): Increment inserted.
2046         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
2047         statistics_counter_event.
2048         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
2049         of bswap_stats.  Add calls to statistics_counter_event.
2050         (convert_mult_to_widen): Increment widen_mults_inserted.
2051         (convert_plusminus_to_widen): Increment maccs_inserted.
2052         (convert_mult_to_fma): Increment fmas_inserted.
2053         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
2054         calls to statistics_counter_event.
2055
2056 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2057
2058         PR rtl-optimization/48455
2059         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
2060         `temp_costs->mem_cost'.
2061
2062 2011-04-13  Jan Hubicka  <jh@suse.cz>
2063
2064         * ipa-inline.h: New file.
2065         * ipa-inline-analysis.c: New file. Broken out of ...
2066         * ipa-inline.c: ... this file; update toplevel comment;
2067         include ipa-inline.h
2068         (inline_summary): Move to ipa-inline.h
2069         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
2070         ipa-inline-analysis.c.
2071         (cgraph_estimate_time_after_inlining): Rename to
2072         estiamte_time_after_inlining; move to ipa-inline-analysis.c
2073         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
2074         to estimate_edge_growth.
2075         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
2076         rename to estimate_size_after_inlining.
2077         (cgraph_mark_inline_edge): Update for new naming convention.
2078         (cgraph_check_inline_limits): Likewise.
2079         (cgraph_edge_badness): Likewise.
2080         (cgraph_decide_recursive_inlining): Likewise.
2081         (cgraph_decide_inlining_of_small_functions): Likewise.
2082         (cgraph_decide_inlining_incrementally): Likewise.
2083         (cgraph_estimate_growth): Rename to estimate_growth; move to
2084         ipa-inline-analysis.c.
2085         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
2086         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
2087         (compute_inline_parameters): Likewise.
2088         (compute_inline_parameters_for_current): Likewise.
2089         (pass_inline_parameters): Likewise.
2090         (inline_indirect_intraprocedural_analysis): Likewise.
2091         (analyze_function): Rename to inline_analyze_function; likewise.
2092         (add_new_function): Move to ipa-inline-analysis.c.
2093         (inline_generate_summary): Likewise.
2094         (inline_read_summary): Likewise.
2095         (inline_write_summary): Likewise.
2096         * Makefile.in (ipa-inline-analysis.c): New file.
2097
2098 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2099
2100         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
2101         * configure: Regenerate.
2102
2103 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
2104
2105         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
2106         instead of tree_common.
2107         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
2108         Likewise.
2109         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
2110         TS_TYPED rather than TS_COMMON.
2111         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
2112
2113 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
2114
2115         PR target/45263
2116         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
2117         r20 around calls of __tablejump_elpm__
2118
2119 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
2120
2121         PR middle-end/48591
2122         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
2123         NULL.
2124         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
2125
2126 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
2127
2128         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
2129         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
2130         (cfi_vec): New typedef.
2131         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
2132         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
2133         (cie_cfi_vec): New static variable.
2134         (cie_cfi_head): Delete.
2135         (add_cfi): Accept a cfi_vec * as first argument. All callers and
2136         declaration changed. Use vector rather than list operations.
2137         (new_cfi): Don't initialize the dw_cfi_next field.
2138         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
2139         rather than list operations.
2140         (lookup_cfa): Use vector rather than list operations.
2141         (output_cfis): New argument upto. Accept a cfi_vec rather than
2142         a dw_cfi_ref list head as argument. All callers changed.
2143         Iterate over the vector using upto as a maximum index.
2144         (output_all_cfis): New static function.
2145         (output_fde): Use vector rather than list operations. Use the
2146         new upto argument for output_cfis rather than manipulating a
2147         list.
2148         (dwarf2out_begin_prologue): Change initializations to match
2149         new struct members.
2150         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
2151         from the vector length rather than searching for the end of a list.
2152         Use output_all_cfis.
2153         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
2154
2155 2011-04-13  Nick Clifton  <nickc@redhat.com>
2156
2157         * config/rx/rx.md (movmemsi): Do not use this pattern when
2158         volatile pointers are involved.
2159
2160 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
2161
2162         * config/i386/sse.md (pinsrbits): Remove.
2163         (sse2_packsswb): Merge with *avx_packsswb.
2164         (sse2_packssdw): Merge with *avx_packssdw.
2165         (sse2_packuswb): Merge with *avx_packuswb.
2166         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
2167         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
2168         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
2169         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
2170         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
2171         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
2172         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
2173         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
2174         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
2175         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
2176         (sse2_loadld): Merge with *avx_loadld.
2177         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
2178         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
2179         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
2180         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
2181         (vec_concatv2di): Merge with *vec_concatv2di_avx.
2182
2183 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
2184
2185         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
2186         calling TREE_CHAIN.
2187         * print-tree.c (print_node): Likewise.
2188         * tree-inline.c (copy_tree_r): Likewise.
2189         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
2190         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
2191         instead of TS_COMMON.
2192         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
2193         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
2194         (copy_node_stat): Zero TREE_CHAIN only if necessary.
2195         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
2196         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
2197         ...and these...
2198         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
2199         * tree.h: ...here.
2200         (TREE_CHAIN): Check for a TS_COMMON structure.
2201         (TREE_TYPE): Check for a TS_TYPED structure.
2202
2203 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
2204
2205         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2206         cgraph_get_create_node instead of cgraph_node.
2207
2208 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
2209
2210         * c-parser.c (c_parser_initelt): Updated call to
2211         objc_build_message_expr.
2212         (c_parser_postfix_expression): Likewise.
2213
2214 2011-04-12  Kai Tietz  <ktietz@redhat.com>
2215
2216         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
2217         MASK_MS_BITFIELD_LAYOUT bit.
2218
2219 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2220
2221         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
2222         assert it is always true.
2223         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
2224         moves.
2225
2226 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
2227
2228         * c-parser.c (c_lex_one_token): Rewritten conditional used when
2229         compiling Objective-C to be more efficient.
2230
2231 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
2232
2233         * opts-common.c (decode_cmdline_options_to_array): Remove variable
2234         argv_copied.
2235
2236 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2237
2238         * recog.h, genoutput.c, optabs.c: Revert last patch.
2239
2240 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2241
2242         PR target/48090
2243         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
2244
2245 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2246
2247         * recog.h (insn_operand_data): Add an "allows_mem" field.
2248         * genoutput.c (output_operand_data): Initialize it.
2249         * optabs.c (maybe_legitimize_operand_same_code): New function.
2250         (maybe_legitimize_operand): Use it when matching the original
2251         op->value.
2252
2253 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2254
2255         * genpreds.c (process_define_predicate): Move most processing
2256         to gensupport.c.  Continue to validate the expression.
2257         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
2258         (process_define_predicate): Move processing to gensupport.c.
2259         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
2260         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
2261         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
2262         argument.
2263         (valid_predicate_name_p): New function, split out from old
2264         genpreds.c:process_define_predicate.
2265         (process_define_predicate): New function, combining code from
2266         old genpreds.c and genrecog.c functions.
2267         (process_rtx): Call it for DEFINE_PREDICATE and
2268         DEFINE_SPECIAL_PREDICATE.
2269
2270 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
2271
2272         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
2273         size of a '%A' memory reference.
2274         (T_DREG, T_QREG): New neon_builtin_type_bits.
2275         (arm_init_neon_builtins): Assert that the load and store operands
2276         are neon_struct_operands.
2277         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
2278         (NEON_ARG_MEMORY): New builtin_arg.
2279         (neon_dereference_pointer): New function.
2280         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
2281         Handle NEON_ARG_MEMORY.
2282         (arm_expand_neon_builtin): Update after above interface changes.
2283         Use NEON_ARG_MEMORY for loads and stores.
2284         * config/arm/predicates.md (neon_struct_operand): New predicate.
2285         * config/arm/iterators.md (V_two_elem): Tweak formatting.
2286         (V_three_elem): Use BLKmode for accesses that have no associated mode.
2287         (V_four_elem): Tweak formatting.
2288         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
2289         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2290         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2291         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2292         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2293         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2294         (neon_vst4<mode>): Replace pointer operand with a memory operand.
2295         Use %A in the output template.
2296         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2297         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2298         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2299         the width of the memory access.  Remove post-increment.
2300         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2301
2302 2011-04-12  Nick Clifton  <nickc@redhat.com>
2303
2304         * config/v850/v850.c (expand_prologue): Do not use the CALLT
2305         instruction for interrupt handlers if the target is the basic V850
2306         architecture.
2307         (expand_epilogue): Likewise.
2308
2309 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2310
2311         PR rtl-optimization/48549
2312         * combine.c (propagate_for_debug): Also stop after BB_END of
2313         this_basic_block.  Process LAST and just stop processing after it.
2314         (combine_instructions): If last_combined_insn has been deleted,
2315         set last_combined_insn to its PREV_INSN.
2316
2317 2011-04-12  Richard Guenther  <rguenther@suse.de>
2318
2319         PR tree-optimization/46076
2320         * gimple.h (struct gimple_statement_call): Add fntype field.
2321         (gimple_call_fntype): Adjust.
2322         (gimple_call_set_fntype): New function.
2323         * gimple.c (gimple_build_call_1): Set the call function type.
2324         * gimplify.c (gimplify_call_expr): Preserve the function
2325         type the frontend used for the call.
2326         (gimplify_modify_expr): Likewise.
2327         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2328         function type.
2329         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2330         function type.
2331         * tree-ssa.c (useless_type_conversion_p): Function pointer
2332         conversions are useless.
2333
2334 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2335
2336         * cgraph.h (cgraph_node): Remove function declaration.
2337         (cgraph_create_node): Declare.
2338         (cgraph_get_create_node): Likewise.
2339         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2340         Updated all callers.
2341         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2342         the decl does not already exist.  Call cgraph_get_create_node instead
2343         of cgraph_node.
2344         (cgraph_get_create_node): New function.
2345         (cgraph_same_body_alias): Update comment.
2346         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2347         assert it does not return NULL.
2348         (cgraph_update_edges_for_call_stmt): Likewise.
2349         (cgraph_clone_edge): Likewise.
2350         (cgraph_create_virtual_clone): Likewise.
2351         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2352         instead of cgraph_node.
2353         (cgraph_add_new_function): Call cgraph_create_node or
2354         cgraph_get_create_node instead of cgraph_node.
2355         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2356         instead of cgraph_node.
2357         (record_eh_tables): Likewise.
2358         (mark_address): Likewise.
2359         (mark_load): Likewise.
2360         (build_cgraph_edges): Call cgraph_get_create_node instead
2361         of cgraph_node.
2362         (rebuild_cgraph_edges): Likewise.
2363         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2364         instead of cgraph_node.
2365         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2366         cgraph_node.
2367         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2368         cgraph_create_node instead of cgraph_node.
2369         * c-decl.c (finish_function): Call cgraph_get_create_node instead
2370         of cgraph_node.
2371         * lto-cgraph.c (input_node): Likewise.
2372         * lto-streamer-in.c (input_function): Likewise.
2373         * varasm.c (mark_decl_referenced): Likewise.
2374         (assemble_alias): Likewise.
2375
2376 2011-04-12  Martin Jambor  <mjambor@suse.cz>
2377
2378         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2379         instead of cgraph_node and assert it does not return NULL.
2380         * lto-streamer-in.c (lto_read_body): Likewise.
2381         * omp-low.c (new_omp_context): Likewise.
2382         (create_task_copyfn): Likewise.
2383         * tree-emutls.c (lower_emutls_function_body): Likewise.
2384         * matrix-reorg.c (transform_allocation_sites): Likewise.
2385
2386 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR c/48552
2389         * c-typeck.c (build_asm_expr): Error out on attempts to use
2390         void type outputs or inputs for constraints that allow reg or
2391         don't allow memory.
2392
2393 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
2394             Richard Earnshaw  <rearnsha@arm.com>
2395
2396         PR target/48250
2397         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
2398         to use sign-magnitude offsets. Reject unsupported unaligned
2399         cases. Add detailed description in comments.
2400         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
2401         condition from TARGET_32BIT to TARGET_ARM.
2402
2403 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
2404
2405         * tree.h (struct typed_tree): New.
2406         (struct tree_common): Include it instead of tree_base.
2407         (TREE_TYPE): Update for new location of type field.
2408         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
2409         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
2410         (union tree_node): Add typed field.
2411         * treestruct.def (TS_TYPED): New.
2412         * lto-streamer.c (check_handled_ts_structures): Handle it.
2413         * tree.c (MARK_TS_TYPED): New macro.
2414         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
2415
2416 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
2417
2418         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
2419         (force_nonfallthru): Do not alter the loop nest if no basic block
2420         was created.
2421
2422 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2423
2424         * config/i386/sse.md (VI): New mode iterator.
2425         (SSEMODEI): Remove.
2426         (AVX256MODEI): Ditto.
2427         (AVXMODEF4P): Ditto.
2428         (avxvecpsmode): Ditto.
2429         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
2430         (sse2_andnot<mode>3): New expander.
2431         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
2432         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
2433         (<any_logic:code><mode>3): Use VI mode iterator.
2434         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
2435         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
2436         (*andnottf3): Handle AVX three-operand constraints.
2437         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
2438
2439 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2440             Robert Millan  <rmh@gnu.org>
2441
2442         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
2443         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
2444         GNU_USER_DYNAMIC_LINKER64): Define.
2445         (REG_NAME): Don't undefine.
2446         (MD_UNWIND_SUPPORT): Undefine.
2447         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
2448         (REG_NAME): Don't undefine.
2449         (MD_UNWIND_SUPPORT): Undefine.
2450         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
2451
2452 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2453
2454         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
2455         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
2456
2457 2011-04-11  Xinliang David Li  <davidxl@google.com>
2458
2459         * value-profile.c (check_ic_target): New function.
2460         (gimple_ic_transform): Sanity check indirect call target.
2461         * gimple-low.c (gimple_check_call_args): Interface change.
2462         (gimple_check_call_matching_types): New function.
2463         * tree-inline.c (tree_can_inline_p): Call new function.
2464
2465 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
2466
2467         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
2468         tree-pretty-print.h & realmpfr.h.
2469
2470 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
2471
2472         PR middle-end/48464
2473         * ira.c (setup_pressure_classes): Fix typo in loop condition.
2474         (setup_allocno_and_important_classes): Ditto.
2475
2476 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2477
2478         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
2479         GNU_USER_DYNAMIC_LINKER.
2480         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
2481         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2482         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
2483         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2484         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2485         GNU_USER_TARGET_OS_CPP_BUILTINS.
2486         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
2487         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2488         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2489         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2490         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
2491         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2492         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2493         GNU_USER_TARGET_OS_CPP_BUILTINS.
2494         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2495         GNU_USER_DYNAMIC_LINKER.
2496         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2497         GNU_USER_TARGET_OS_CPP_BUILTINS.
2498         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
2499         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2500         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
2501         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2502         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
2503         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
2504         GNU_USER_DYNAMIC_LINKER64): Remove.
2505         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
2506         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2507         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2508         GNU_USER_DYNAMIC_LINKER.
2509         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2510         GNU_USER_TARGET_OS_CPP_BUILTINS.
2511         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2512         GNU_USER_TARGET_OS_CPP_BUILTINS.
2513         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
2514         to GNU_USER_TARGET_OS_CPP_BUILTINS.
2515         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
2516         GNU_USER_TARGET_OS_CPP_BUILTINS.
2517         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
2518         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
2519         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2520         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
2521         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2522         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2523         GNU_USER_DYNAMIC_LINKER.
2524         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
2525         GNU_USER_TARGET_OS_CPP_BUILTINS.
2526         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
2527         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2528         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2529         GNU_USER_DYNAMIC_LINKER.
2530         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2531         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2532         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
2533         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2534         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2535         GNU_USER_DYNAMIC_LINKER.
2536         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
2537         GNU_USER_DYNAMIC_LINKERN32.
2538         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
2539         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
2540         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
2541         GNU_USER_DYNAMIC_LINKER32.
2542         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
2543         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2544         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2545         GNU_USER_DYNAMIC_LINKER.
2546         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
2547         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2548         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
2549         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2550         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2551         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
2552         GNU_USER_DYNAMIC_LINKER32.
2553         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
2554         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
2555         GNU_USER_DYNAMIC_LINKER.
2556         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
2557         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2558         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2559         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
2560         GNU_USER_DYNAMIC_LINKER64.
2561         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
2562         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2563         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2564         GNU_USER_DYNAMIC_LINKER.
2565         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
2566         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2567         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
2568         GNU_USER_DYNAMIC_LINKER.
2569         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
2570         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2571         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
2572         GNU_USER_DYNAMIC_LINKER32.
2573         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2574         GNU_USER_DYNAMIC_LINKER64.
2575         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
2576         GNU_USER_DYNAMIC_LINKER64.
2577         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
2578         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2579         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
2580         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
2581         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
2582
2583 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2584
2585         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
2586         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
2587         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
2588         GNU_USER_DYNAMIC_LINKER.
2589         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2590         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
2591         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
2592         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
2593         GNU_USER_DYNAMIC_LINKER64.
2594         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
2595         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
2596         GNU_USER_LINK_EMULATION.
2597         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
2598         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
2599         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
2600         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
2601         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
2602         CPP_SPEC, CC1_SPEC): Remove.
2603         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
2604         (GNU_USER_DYNAMIC_LINKER): Define.
2605         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
2606         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
2607         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
2608         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
2609         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
2610         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
2611         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2612         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
2613         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
2614         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
2615         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
2616         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
2617         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
2618         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
2619         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
2620         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
2621         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2622         GNU_USER_DYNAMIC_LINKER.
2623         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2624         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2625         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2626         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2627         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
2628         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
2629         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
2630         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
2631         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
2632         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
2633
2634 2011-04-11  Kai Tietz  <ktietz@redhat.com>
2635
2636         PR target/9601
2637         PR target/11772
2638         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
2639         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
2640         comment.
2641         (ix86_is_msabi_thiscall): Removed.
2642         (ix86_is_type_thiscall): Likewise.
2643         (ix86_get_callcvt): New function.
2644         (ix86_comp_type_attributes): Simplify check.
2645         (ix86_function_regparm): Use ix86_get_callcvt for calling
2646         convention attribute checks.
2647         (ix86_return_pops_args): Likewise.
2648         (ix86_static_chain): Likewise.
2649         (x86_this_parameter): Likewise.
2650         (x86_output_mi_thunk): Likewise.
2651         (ix86_function_type_abi): Optimize check for types without attributes.
2652         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
2653         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
2654         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
2655         by flag-values.
2656         (IX86_BASE_CALLCVT): Helper macro.
2657         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2658         Use ix86_get_callcvt for calling convention attribute checks and avoid
2659         symbol-decoration for stdcall in TARGET_RTD case.
2660         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
2661         Likewise.
2662         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
2663         for declaration.
2664
2665 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
2666
2667         * config/i386/sse.md (VI_128): New mode iterator.
2668         (VI12_128): Rename from SSEMODE12.
2669         (VI14_128): Rename from SSEMODE14.
2670         (VI124_128): New mode iterator.
2671         (VI24_128): Rename from SSEMODE248.
2672         (VI248_128): Rename from SSEMODE248.
2673         (SSEMODE124C8): Remove.
2674         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2675         (*sse2_<plusminus_insn><mode>3): Merge with
2676         *avx_<plusminus_insn><mode>3.
2677         (*mulv8hi3): Merge with *avx_mulv8hi3.
2678         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
2679         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
2680         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
2681         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
2682         (ashr<mode>3): Merge with *avx_ashr<mode>3.
2683         (lshr<mode>3): Merge with *avx_lshr<mode>3.
2684         (ashl<mode>3): Merge with *avx_ashl<mode>3.
2685         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
2686         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
2687         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2688         (*<smaxmin:code>v8hi3): Ditto.
2689         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
2690         (*<smaxmin:code>v16qi3): Ditto.
2691         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
2692         (*sse2_eq<mode>3): Ditto.
2693         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
2694         (*sse2_gt<mode>3): Ditto.
2695         (vcondv2di): Split out of vcond<mode>.
2696         (vconduv2di): Split out of vcondu<mode>.
2697
2698 2011-04-11  Richard Guenther  <rguenther@suse.de>
2699
2700         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
2701         before calling tree_low_cst.
2702
2703 2011-04-11  Richard Guenther  <rguenther@suse.de>
2704
2705         * stor-layout.c (layout_type): Compute all array index size operations
2706         in the original type.
2707         (initialize_sizetypes): Add comment.
2708         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
2709
2710 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
2711
2712         * common.opt (Tbss=, Tdata=, Ttext=): New options.
2713
2714 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2715
2716         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
2717         of cgraph_node, handle NULL return value.
2718         (cgraph_global_info): Likewise.
2719         (cgraph_rtl_info): Likewise.
2720         * tree-inline.c (estimate_num_insns): Likewise.
2721         * gimplify.c (unshare_body): Likewise.
2722         (unvisit_body): Likewise.
2723         (gimplify_body): Likewise.
2724         * predict.c (optimize_function_for_size_p): Likewise.
2725         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2726         (call_may_clobber_ref_p_1): Likewise.
2727         * varasm.c (function_section_1): Likewise.
2728         (assemble_start_function): Likewise.
2729
2730 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2731
2732         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
2733         of cgraph_node.
2734         * final.c (rest_of_clean_state): Likewise.
2735         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
2736         * passes.c (pass_init_dump_file): Likewise.
2737         (execute_all_ipa_transforms): Likewise.
2738         (function_called_by_processed_nodes_p): Likewise.
2739         * predict.c (maybe_hot_frequency_p): Likewise.
2740         (probably_never_executed_bb_p): Likewise.
2741         (compute_function_frequency): Likewise.
2742         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
2743         (unnest_nesting_tree_1): Likewise.
2744         (lower_nested_functions): Likewise.
2745         * tree-optimize.c (execute_fixup_cfg): Likewise.
2746         (tree_rest_of_compilation): Likewise.
2747         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
2748         * tree-sra.c (ipa_early_sra): Likewise.
2749         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2750         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
2751         * ipa.c (record_cdtor_fn): Likewise.
2752         * ipa-inline.c (cgraph_early_inlining): Likewise.
2753         (compute_inline_parameters_for_current): Likewise.
2754         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2755         * ipa-pure-const.c (local_pure_const): Likewise.
2756         * ipa-split.c (split_function): Likewise.
2757         (execute_split_functions): Likewise.
2758         * cgraphbuild.c (build_cgraph_edges): Likewise.
2759         (rebuild_cgraph_edges): Likewise.
2760         (cgraph_rebuild_references): Likewise.
2761         (remove_cgraph_callee_edges): Likewise.
2762         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
2763         (verify_cgraph_node): Likewise.
2764         (cgraph_analyze_functions): Likewise.
2765         (cgraph_preserve_function_body_p): Likewise.
2766         (save_inline_function_body): Likewise.
2767         (save_inline_function_body): Likewise.
2768         * tree-inline.c (copy_bb): Likewise.
2769         (optimize_inline_calls): Likewise.
2770
2771 2011-04-11  Martin Jambor  <mjambor@suse.cz>
2772
2773         PR tree-optimization/48195
2774         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
2775         ipa_check_create_edge_args.
2776         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
2777         ipa_check_create_edge_args.
2778         * ipa-inline.c (inline_generate_summary): Do not call
2779         ipa_check_create_node_params and ipa_check_create_edge_args.
2780         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
2781         ipa_check_create_edge_args.
2782
2783 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
2784
2785         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
2786         instead of loop.
2787         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2788         * function.c (record_hard_reg_sets): Likewise.
2789         * ira.c (compute_regs_asm_clobbered): Likewise.
2790         * sched-deps.c (sched_analyze_1): Likewise.
2791         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
2792
2793 2011-04-09  Xinliang David Li  <davidxl@google.com>
2794
2795         PR tree-optimization/PR48484
2796         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
2797         has_valid_pred lazily
2798
2799 2011-04-09  Duncan Sands  <baldrick@free.fr>
2800
2801         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
2802
2803 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2804
2805         * combine.c (combine_validate_cost): Adjust comments.  Set registered
2806         cost of I0 to zero at the end, if any.
2807
2808 2011-04-08  Xinliang David Li  <davidxl@google.com>
2809
2810         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
2811         to insane profile data.
2812
2813 2011-04-08  Xinliang David Li  <davidxl@google.com>
2814
2815         * ipa-cp.c (ipcp_update_profiling): Correct
2816          negative scale factor due to insane profile data.
2817
2818 2011-04-08  Xinliang David Li  <davidxl@google.com>
2819
2820         * final.c (dump_basic_block_info): New function.
2821         (final): Dump basic block.
2822         (final_scan_insn): Remove old dump.
2823
2824 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2825
2826         PR target/47829
2827         * config.gcc (i386-*-freebsd): Disable unwind table generation for
2828         crtbegin/crtend.
2829
2830 2011-04-08  Michael Matz  <matz@suse.de>
2831
2832         PR middle-end/48389
2833         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
2834         functions.
2835         (rebuild_jump_labels): Call rebuild_jump_labels_1.
2836         * rtl.h (rebuild_jump_labels_chain): Declare.
2837         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
2838         insns inserted on edges.
2839
2840 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
2841
2842         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
2843         * config/arm/arm-arches.def: New.
2844         * config/arm/arm-opts.h: New.
2845         * config/arm/genopt.sh: New.
2846         * config/arm/arm-tables.opt: New (generated).
2847         * config/arm/arm.c (arm_handle_option, arm_target_help,
2848         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
2849         (all_architectures): Get most table contents from arm-arches.def.
2850         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
2851         arm_selected_tune here.
2852         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
2853         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
2854         (march=, mcpu=, mtune=): Use Enum and Var.
2855         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
2856         (arm.o): Update dependencies.
2857
2858 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
2859
2860         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
2861         of header_file.
2862         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
2863         (write_typed_alloc_defns): Likewise.
2864         (main): Calls write_typed_alloc_defns with output_header.
2865
2866 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
2867
2868         PR inline-asm/48435
2869         * ira-color.c (setup_profitable_hard_regs): Add comments.
2870         Don't take prohibited hard regs into account.
2871         (setup_conflict_profitable_regs): Rename to
2872         get_conflict_profitable_regs.
2873         (check_hard_reg_p): Check prohibited hard regs.
2874
2875 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
2876
2877         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
2878         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
2879         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
2880
2881 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2882
2883         PR target/48366
2884         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
2885         move from floating point to shift amount register.
2886         (emit_move_sequence): Remove secondary reload support for floating
2887         point to shift amount amount register copies.
2888         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
2889         amount register copies.
2890         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
2891         register, return false if mode isn't a scalar integer mode.
2892         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
2893
2894 2011-04-08  Richard Guenther  <rguenther@suse.de>
2895
2896         * gimple.c (gimple_call_flags): Remove kludge.
2897
2898 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2899
2900         * sel-sched.c (sel_region_init): Move call to
2901         sel_setup_region_sched_flags after setup_current_loop_nest.
2902
2903 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
2904
2905         PR rtl-optimization/48272
2906         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
2907         init_insn_reg_pressure_info.  Adjust a caller.
2908         * sched-int.h (init_insn_reg_pressure_info): Declare.
2909         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
2910         when sched-pressure is enabled.
2911
2912 2011-04-08  Richard Guenther  <rguenther@suse.de>
2913
2914         * gimple.c (gimple_set_modified): Do not queue calls to
2915         MODIFIED_NORETURN_CALLS here ...
2916         * tree-ssa-operands.c (update_stmt_operands): ... but here.
2917
2918 2011-04-08  Richard Guenther  <rguenther@suse.de>
2919
2920         PR lto/48467
2921         * toplev.c (lang_dependent_init): Do not open asm_out_file
2922         in WPA mode, nor perform debug machinery initialization.
2923         (finalize): Do not unlink asm_out_file in WPA mode.
2924
2925 2011-04-08  Richard Guenther  <rguenther@suse.de>
2926
2927         * gimple.h (gimple_call_fntype): New function.
2928         (gimple_call_return_type): Use it.
2929         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
2930         * gimple-low.c (gimple_check_call_args): Likewise.
2931         * gimple.c (gimple_call_flags): Likewise.
2932         (gimple_call_arg_flags): Likewise.
2933         (gimple_call_return_flags): Likewise.
2934         * tree-cfg.c (verify_gimple_call): Likewise.
2935         (do_warn_unused_result): Likewise.
2936         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
2937         * value-prof.c (gimple_ic_transform): Fix fndecl check.
2938
2939 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
2940
2941         PR rtl-optimization/48235
2942         * sel-sched.c (code_motion_process_successors): Recompute the last
2943         insn in basic block if control flow changed.
2944         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
2945         Update condition for ilist_remove.
2946
2947 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2948
2949         PR rtl-optimization/48302
2950         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
2951         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
2952         it to record added preheader blocks.
2953         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
2954         on to sel_add_loop_preheaders.
2955         (sel_region_init): Move call to setup_current_loop_nest after
2956         sel_init_bbs.
2957
2958 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2959
2960         PR target/48273
2961         * cfgloop.h (loop_has_exit_edges): New helper.
2962         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
2963         non-clonable.
2964         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
2965         that have no exit edges.
2966
2967 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
2968
2969         PR rtl-optimization/48442
2970         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
2971         all callers.  Adjust assert.
2972
2973 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
2974
2975         PR tree-optimization/48377
2976         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
2977         is_packed to true even for types with smaller TYPE_ALIGN than
2978         TYPE_SIZE.
2979
2980 2011-04-08  Richard Guenther  <rguenther@suse.de>
2981
2982         PR bootstrap/48513
2983         * doc/tm.texi: Re-generate.
2984
2985 2011-04-08  Wei Guozhi  <carrot@google.com>
2986
2987         PR target/47855
2988         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
2989         * config/arm/arm.c (arm_attr_length_push_multi): New function.
2990         * config/arm/arm.md (*push_multi): Change the length computation to
2991         call a C function.
2992
2993 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
2994
2995         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
2996         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
2997         * doc/tm.texi: Regenerate.
2998         * system.h (ASM_OUTPUT_BSS): Poison.
2999         * varasm.c (asm_output_bss): Remove function.
3000         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
3001
3002         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
3003         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
3004         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
3005         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3006         Likewise.
3007         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3008         Likewise.
3009         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3010         Likewise.
3011         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3012
3013 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3014
3015         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
3016         EnumValue lines.
3017
3018 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
3019
3020         * config/m68k/m68k.c (m68k_handle_option): Don't handle
3021         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
3022         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
3023         OPT_mcpu32.
3024         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3025         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
3026         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
3027         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
3028         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
3029         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
3030         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3031         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
3032         options.  Don't map other m68k options manually.  Don't handle
3033         old-style options as canonical.
3034         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3035         * doc/install.texi (m68k-*-*): Document binutils version requirement.
3036
3037 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3038
3039         * basic-block.h (force_nonfallthru): Move to...
3040         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
3041         (force_nonfallthru): ...here.
3042         * cfghooks.c (force_nonfallthru): New function.
3043         * cfgrtl.c (force_nonfallthru): Rename into...
3044         (rtl_force_nonfallthru): ...this.
3045         (commit_one_edge_insertion): Do not set AUX field.
3046         (commit_edge_insertions): Do not discover new basic blocks.
3047         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
3048         (cfg_layout_rtl_cfg_hooks): Likewise.
3049         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
3050         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
3051         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
3052
3053 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
3054
3055         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3056         Remove macros.
3057
3058 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
3059
3060         * config/i386/sse.md: Update copyright year.
3061         (avxcvtvecmode): Remove.
3062         (sse_movhlps): Merge with *avx_movhlps.
3063         (sse_movlhps): Merge with *avx_movlhps.
3064         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
3065         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
3066         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
3067         (sse_loadhps): Merge with *avx_loadhps.
3068         (sse_storelps): Merge with *avx_storelps.
3069         (sse_loadlps): Merge with *avx_loadlps.
3070         (sse_movss): Merge with *avx_movss.
3071         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
3072         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
3073         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
3074         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
3075         (vec_set<mode>_0): Ditto.
3076         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
3077         (sse4_1_insertps): Merge with *avx_insertps.
3078         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
3079         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
3080         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
3081         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
3082         (sse2_storehpd): Merge with *avx_storehpd.
3083         (sse2_loadhpd): Merge with *avx_loadhpd.
3084         (sse2_loadlpd): Merge with *avx_loadlpd.
3085         (sse2_movsd): Merge with *avx_movsd.
3086         (*vec_concatv2df): Merge with *vec_concatv2df.
3087
3088 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
3089
3090         PR debug/48343
3091         * combine.c (combine_instructions): Add last_combined_insn,
3092         update it if insn is after it, pass it to all try_combine calls.
3093         (try_combine): Add last_combined_insn parameter, pass it instead of
3094         i3 to propagate_for_debug.
3095
3096 2011-04-07  Nick Clifton  <nickc@redhat.com>
3097
3098         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
3099         to handle MDR <-> data register transfers.
3100         (movhi_internal): Likewise.
3101
3102 2011-04-07  Alan Modra  <amodra@gmail.com>
3103
3104         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
3105         previous stack info.
3106
3107 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3108
3109         PR target/43920
3110         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
3111         flow_find_cross_jump.  Swap variables to implement backward replacement.
3112         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
3113
3114 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3115
3116         PR target/43920
3117         * cfgcleanup.c (walk_to_nondebug_insn): New function.
3118         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
3119         and bb2.
3120         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
3121         src1 or src2.  Redirect edges to the last basic block.  Update
3122         frequency and count on multiple basic blocks in case of fallthru.
3123
3124 2011-04-07  Tom de Vries  <tom@codesourcery.com>
3125
3126         PR target/43920
3127         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
3128         function.
3129         (old_insns_match_p): Change return type.  Replace return false/true
3130         with return dir_none/dir_both.  Use can_replace_by.
3131         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
3132         direction from dir_p.  Register replacement direction in dir, last_dir
3133         and afterlast_dir.  Handle new return type of old_insns_match_p using
3134         merge_dir.  Return replacement direction in dir_p.
3135         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
3136         return type of old_insns_match_p.
3137         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
3138         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
3139         flow_find_cross_jump.
3140         * basic-block.h (enum replace_direction): New type.
3141         (flow_find_cross_jump): Add parameter to declaration.
3142
3143 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
3144
3145         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
3146         (AVXMODEDCVTPS2DQ): Ditto.
3147         (VEC_FLOAT_MODE): Ditto.
3148         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
3149         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3150         (<any_logic:code><mode>3): Use VF mode iterator.
3151         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
3152         Use VF mode iterator.
3153         (copysign<mode>3): Use VF mode iterator.
3154         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
3155         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3156         (*<any_logic:code><MODEF:mode>3): Merge with
3157         *avx_<any_logic:code><MODEF:mode>3.
3158         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
3159         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
3160         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
3161         (avx_cvtdq2ps<avxmodesuffix>): Remove.
3162         (sse2_cvtdq2ps): Use %v modifier.
3163         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
3164         (avx_cvtps2dq<avxmodesuffix>): Remove.
3165         (sse2_cvtps2dq): Use %v modifier.
3166         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
3167         (avx_cvttps2dq<avxmodesuffix>): Remove.
3168         (sse2_cvttps2dq): Use %v modifier.
3169         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
3170         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
3171         (sse2_cvtsd2siq): Fix insn template.
3172         (sse2_cvtsd2siq_2): Ditto.
3173         (sse2_cvttsd2siq): Ditto.
3174         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
3175         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
3176
3177 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
3178
3179         * gcov-io.c: Use GCC Runtime Library Exception.
3180
3181 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
3182
3183         PR debug/48466
3184         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
3185         as base_reg whatever register reg has been eliminated to, instead
3186         of hardcoding STACK_POINTER_REGNUM.
3187
3188 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
3189
3190         * doc/tm.texi.in: Document C target hooks as separate from general
3191         target hooks.
3192         * doc/tm.texi: Regenerate.
3193         * genhooks.c (struct hook_desc): Add docname field.
3194         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
3195         docname field.
3196         (hook_array): Include c-target.def.
3197         (emit_documentation): Use docname field in output.
3198         (emit_init_macros): Take docname argument.  Only emit definitions
3199         for hooks matching docname.
3200         (main): Expect additional arguments in all cases.  Pass argument
3201         to emit_init_macros.
3202         * target.def: Move initial macro definitions and comments to
3203         target-hooks-macros.h.
3204         (gcc_targetcm): Move to c-family/c-target.def.
3205         * target.h (targetcm): Move declaration to c-family/c-target.h.
3206         * targhooks.c (default_handle_c_option): Move to
3207         c-family/c-opts.c.
3208         * targhooks.h (default_handle_c_option): Move declaration to
3209         c-family/c-common.h.
3210         * target-hooks-macros.h: New file.
3211         * config.gcc (target_has_targetcm): Define and use to add to
3212         c_target_objs and cxx_target_objs.
3213         * config/default-c.c: New file.
3214         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
3215         of target.h and target-def.h.
3216         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
3217         (darwin_objc_construct_string, darwin_cfstring_ref_p,
3218         darwin_check_cfstring_format_arg): Make static.
3219         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3220         TARGET_STRING_OBJECT_REF_TYPE_P,
3221         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
3222         * config/darwin-protos.h (darwin_objc_construct_string,
3223         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
3224         declare.
3225         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3226         TARGET_STRING_OBJECT_REF_TYPE_P,
3227         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
3228         * config/t-darwin (darwin-c.o): Update dependencies.
3229         * system.h (TARGET_HAS_TARGETCM): Poison.
3230         * Makefile.in (TARGET_H): Update.
3231         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
3232         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
3233         (default-c.o): New target.
3234         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
3235         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
3236         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
3237         c-target.def.
3238         (build/genhooks.o): Update dependencies.
3239
3240 2011-04-06  Richard Guenther  <rguenther@suse.de>
3241
3242         * ipa-inline.c (enum inlining_mode): Remove.
3243         (cgraph_flatten): Use some other token.
3244         (cgraph_edge_early_inlinable_p): New function, split out from ...
3245         (cgraph_perform_always_inlining): New function, split out from ...
3246         (cgraph_decide_inlining_incrementally): ... here.
3247         (cgraph_mark_inline_edge): Adjust.
3248         (cgraph_early_inlining): Re-structure.
3249         (pass_early_inline): Require SSA form.
3250
3251 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
3252             Julian Brown  <julian@codesourcery.com>
3253             Mark Shinwell  <shinwell@codesourcery.com>
3254
3255         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
3256         LO_REGS only for Thumb-1.
3257         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
3258         be used in short instructions when optimising for size on Thumb-2.
3259
3260 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3261
3262         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
3263         associated with user returns to be preserved.
3264
3265 2011-04-06  Tristan Gingold  <gingold@adacore.com>
3266
3267         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
3268         symbol_queue_size, DBXOUT_DECR_NESTING,
3269         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
3270         if XCOFF_DEBUGGING_INFO.
3271
3272 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         * config/i386/i386.md (attribute isa): New.
3275         (attribute enabled): New.
3276         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
3277         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
3278         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
3279         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
3280         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
3281         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3282         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
3283         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
3284
3285         * config/i386/sse.md (VF): New mode iterator.
3286         (VF1): Ditto.
3287         (VF2): Ditto.
3288         (VF_128): Ditto.
3289         (SSEMODEF4): Remove.
3290         (attribute sse): Handle V8SF and V4DF modes.
3291         (<absneg:code><mode>2): Use VF mode iterator.
3292         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
3293         mode iterator.
3294         (<plusminus_insn><mode>3): Use VF mode iterator.
3295         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3296         Use VF mode iterator.
3297         (<sse>_vm<plusminus_insn><mode>3): Merge with
3298         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
3299         (mul<mode>3): Use VF mode iterator.
3300         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
3301         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
3302         mode iterator.
3303         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
3304         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
3305         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
3306         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
3307         mode iterator.
3308         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
3309         Use VF1 mode iterator.
3310         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
3311         (sqrt<VF2:mode>2): New expander.
3312         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
3313         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
3314         and sqrtv2df2.  Use VF mode iterator.
3315         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
3316         mode iterator.
3317         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
3318         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
3319         Use VF1 mode iterator.
3320         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
3321         (<smaxmin:code><mode>3): Use VF mode iterator.
3322         (*<smaxmin:code><mode>3_finite): Merge with
3323         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
3324         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3325         (<sse>_vm<smaxmin:code><mode>2): Merge with
3326         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
3327         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
3328         mode iterator.
3329         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
3330         mode iterator.
3331         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
3332         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
3333         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
3334         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
3335         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
3336         VF mode iterator.
3337         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
3338         Use VF_128 mode iterator.
3339         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
3340         mode iterator.
3341         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
3342         VF_128 mode iterator.
3343         (vcond<mode>): Use VF mode iterator.
3344         * config/i386/predicates.md (sse_comparison_operator): Merge with
3345         avx_comparison_float_operator.  Do not declare as special_predicate.
3346         * config/i386/i386.c (struct builtin_description): Update for renamed
3347         compare patterns.
3348         (ix86_expand_args_builtin): Ditto.
3349         (ix86_expand_sse_compare_mask): Ditto.
3350
3351 2011-04-06  Richard Guenther  <rguenther@suse.de>
3352
3353         * tree-inline.c (estimate_num_insns): For calls simply account
3354         for all passed arguments and a used return value.
3355
3356 2011-04-06  Richard Guenther  <rguenther@suse.de>
3357
3358         PR tree-optimization/47663
3359         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
3360         call_stmt_time fields.
3361         (cgraph_edge_inlinable_p): Declare.
3362         (cgraph_edge_recursive_p): New inline function.
3363         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
3364         (cgraph_clone_edge): Copy it.
3365         * ipa-inline.c (cgraph_estimate_edge_time): New function.
3366         Account for call stmt time.
3367         (cgraph_estimate_time_after_inlining): Take edge argument.
3368         (cgraph_estimate_edge_growth): Account call stmt size.
3369         (cgraph_estimate_size_after_inlining): Take edge argument.
3370         (cgraph_mark_inline_edge): Adjust.
3371         (cgraph_check_inline_limits): Likewise.
3372         (cgraph_recursive_inlining_p): Remove.
3373         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
3374         (cgraph_decide_recursive_inlining): Take edge argument and
3375         adjust.
3376         (cgraph_decide_inlining_of_small_functions): Do not avoid
3377         diags for recursive inlining here.
3378         (cgraph_flatten): Adjust.
3379         (cgraph_decide_inlining_incrementally): Likewise.
3380         (estimate_function_body_sizes): Remove call cost handling.
3381         (compute_inline_parameters): Initialize caller edge call costs.
3382         (cgraph_estimate_edge_growth): New function.
3383         (cgraph_estimate_growth): Use it.
3384         (cgraph_edge_badness): Likewise.
3385         (cgraph_check_inline_limits): Take an edge argument.
3386         (cgraph_decide_inlining_of_small_functions): Adjust.
3387         (cgraph_decide_inlining): Likewise.
3388         * tree-inline.c (estimate_num_insns): Only account for call
3389         return value if it is used.
3390         (expand_call_inline): Avoid diagnostics on recursive inline
3391         functions here.
3392         * lto-cgraph.c (lto_output_edge): Output edge call costs.
3393         (input_edge): Input edge call costs.
3394
3395 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3396
3397         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
3398
3399 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
3400
3401         * doc/invoke.texi (Spec Files): Fix typo.
3402
3403 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3404
3405         * profile.c (branch_prob): Move declaration of local variable.  Remove
3406         obsolete ??? comment.  Expand the location explicitly instead of using
3407         the LOCATION_FILE and LOCATION_LINE macros.
3408
3409 2011-04-06  Wei Guozhi  <carrot@google.com>
3410
3411         PR target/47855
3412         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
3413         (arm_cond_branch): Likewise.
3414         (arm_cond_branch_reversed): Likewise.
3415         (arm_jump): Likewise.
3416         (push_multi): Likewise.
3417         * config/arm/constraints.md (Py): New constraint.
3418
3419 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3420
3421         PR bootstrap/48471
3422         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
3423         Move these...
3424         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
3425         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
3426         #ifdef DBX_DEBUGGING_INFO.
3427
3428 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
3429
3430         PR bootstrap/48403
3431         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
3432         if old and new states differ.
3433
3434 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3435
3436         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
3437         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
3438         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3439         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
3440         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
3441         mcfv4e): Use Alias.
3442         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
3443         ColdFire options to -mcpu= options.
3444
3445 2011-04-05  Jeff Law  <law@redhat.com>
3446
3447         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
3448         check if BB is a successor of LOOP->header and return
3449         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
3450
3451 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3452
3453         * cprop.c (struct reg_use): Remove.
3454         (reg_use_table): Make an array of RTX.
3455         (find_used_regs, constprop_register, local_cprop_pass,
3456         bypass_block): Simplify users of reg_use_table.
3457         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
3458         on one of the uses found by find_used_regs.
3459
3460 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3461
3462         PR bootstrap/48469
3463         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
3464         declaration.
3465
3466 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3467
3468         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
3469         as an rtx.
3470         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
3471
3472 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
3473
3474         PR middle-end/48441
3475         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
3476
3477 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3478
3479         * combine.c: Include obstack.h.
3480         (struct insn_link): Define.
3481         (uid_log_links): Adjust type.
3482         (FOR_EACH_LOG_LINK): New macro.
3483         (insn_link_obstack): Declare.
3484         (alloc_insn_link): Define.
3485         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
3486         type of link variables.
3487         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
3488         (try_combine, record_promoted_values, distribute_notes): Likewise.
3489         (distribute_links): Likewise.  Tweak prototype.
3490         (clear_log_links): Delete.
3491         (adjust_for_new_dest): Call alloc_insn_link.
3492         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
3493
3494 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3495
3496         * gcse.c (modify_mem_list): Convert to an array of VECs.
3497         (canon_modify_mem_list, compute_transp): Tweak formatting.
3498         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
3499         (load_killed_in_block_p): Likewise.
3500         (record_last_mem_set_info): Likewise.
3501         (clear_modify_mem_tables): Likewise.
3502
3503 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3504
3505         PR middle-end/48461
3506         * function.c (emit_use_return_register_into_block): Only define if
3507         HAVE_return.
3508
3509 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
3510
3511         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
3512
3513 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
3514
3515         * config/rx/rx-opts.h: New.
3516         * config/rx/rx.c (rx_cpu_type): Remove.
3517         (rx_handle_option): Don't assert that global structures are in
3518         use.  Access variables via opts pointer.  Defer most handling of
3519         OPT_mint_register_.  Use error_at.
3520         (rx_option_override): Handle deferred OPT_mint_register_ here.
3521         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
3522         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
3523         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
3524         (rx_cpu_types): New Enum and EnumValue entries.
3525         (mint-register=): Use Defer and use Var accordingly.
3526
3527 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3528
3529         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
3530         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
3531         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
3532         Move these...
3533         (debug_free_queue, debug_nesting, symbol_queue_index):
3534         ...and these...
3535         * dbxout.c: ...to here.  Make static.
3536
3537 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3538
3539         * gcse.c (modify_pair): Define.  Define a VEC of it.
3540         (canon_modify_mem_list): Convert to an array of VECs.
3541         (free_insn_expr_list_list): Delete.
3542         (clear_modify_mem_tables): Call VEC_free instead.
3543         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
3544         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
3545         (canon_list_insert, compute_transp): Likewise.
3546
3547 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3548
3549         PR target/43920
3550         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
3551         for size.
3552
3553 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3554
3555         PR target/43920
3556         * function.c (emit_use_return_register_into_block): New function.
3557         (thread_prologue_and_epilogue_insns): Use
3558         emit_use_return_register_into_block.
3559
3560 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3561
3562         PR target/43920
3563         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
3564         insn.
3565
3566 2011-04-05  Tom de Vries  <tom@codesourcery.com>
3567
3568         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
3569
3570 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
3571
3572         * config/arm/arm.md (define_constants for unspec): Replace with
3573         define_c_enum.
3574         (define_constants for unspecv): Replace with define_c_enum.
3575         * config/arm/neon.md (define_constants for unspec): Replace with
3576         define_c_enum.
3577
3578 2011-04-04  Richard Henderson  <rth@redhat.com>
3579
3580         PR bootstrap/48400
3581         * dwarf2out.c (output_line_info): Always emit line info from
3582         at least one section.
3583         (dwarf2out_init): Create text_section_line_info here ...
3584         (set_cur_line_info_table): ... not here.
3585
3586 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
3587
3588         PR target/48380
3589         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
3590         not called.
3591
3592         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
3593
3594 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
3595
3596         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
3597         (expr_equiv_p): Remove.
3598         (insert_set_in_table): Look at <dest, src> pair instead of expr.
3599         (hash_scan_set): Update call to insert_set_in_table.
3600         (dump_hash_table): Dump <dest, src> pair.
3601         (lookup_set): Simplify.  Lookup <dest, src> pair.
3602         (compute_transp): Remove, fold heavily simplified code into...
3603         (compute_local_properties): ...here.  Expect COMP and TRANSP
3604         unconditionally.
3605         (find_avail_set): Take set directly from struct expr.
3606         (find_bypass-set): Likewise.
3607         (bypass_block): Likewise.
3608         (cprop_insn): Likewise.  Remove redundant INSN_P test.
3609
3610         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
3611         checks on form of COND from find_implicit_sets to here.
3612         (find_implicit_sets): Cleanup control flow. Split critical edges
3613         if it exposes implicit sets.  Allocate/resize implicit_sets as
3614         necessary.
3615         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
3616         changed something.  Run df_analyze after find_implicit_sets if any
3617         edges were split.  Do not allocate implicit_sets here.
3618
3619         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
3620         (gcse_obstack): Renamed to cprop_obstack.
3621         (GNEW, GNEWVEC, GNEWVAR): Remove.
3622         (gmalloc): Remove.
3623         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
3624         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
3625         (gcse_alloc): Likewise, and rename to cprop_alloc.
3626         (alloc_gcse_men, free_gcse_mem): Remove.
3627         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
3628         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
3629         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
3630
3631         * cprop.c (oprs_not_set_p): Remove.
3632         (mark_set, mark_clobber): Remove.
3633         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
3634         (reg_not_set_p): New function.
3635         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
3636         (cprop_insn): Likewise.
3637         (cprop_jump): Use FOR_EACH_EDGE.
3638
3639 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
3640
3641         PR bootstrap/48403
3642         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
3643         (rank_for_schedule): Use scheduled_insns vector instead of
3644         last_scheduled_insn.
3645         (ok_for_early_queue_removal): Likewise.
3646         (queue_to_ready): Search forward in nonscheduled_insns_begin if
3647         we have a dbg_cnt.
3648         (choose_ready): Likewise.
3649         (commit_schedule): Use VEC_iterate.
3650         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
3651         a dbg_cnt, use it and ensure the first insn is in the ready list.
3652         (haifa_sched_init): Allocate scheduled_insns.
3653         (sched_extend_ready_list): Don't allocate it; reserve space.
3654         (haifa_sched_finish): Free it.
3655
3656 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3657
3658         * optc-gen.awk: Always remove type from Variable entry before
3659         recording in var_seen.
3660
3661 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
3662
3663         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
3664         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
3665         call to tidy_fallthru_edges.
3666
3667 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
3668
3669         * doc/options.texi (ToLower): Document.
3670         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
3671         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
3672         * opts.h (cl_option): Add cl_tolower field.
3673         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
3674         arguments with lowercase strings.
3675         * config/rx/rx.opt (mcpu=): Add ToLower.
3676         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
3677         argument.
3678
3679 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
3680
3681         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
3682
3683 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
3684
3685         * config/vax/vax.c: Include reload.h.
3686
3687 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
3688
3689         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
3690         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
3691         (sparc_preferred_reload_class): New function.
3692
3693 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
3694
3695         PR debug/48401
3696         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
3697         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
3698
3699 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
3700
3701         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
3702         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
3703
3704 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
3705
3706         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
3707         (ASM_OUTPUT_ALIGNED_BSS): Define.
3708
3709 2011-04-03  Michael Matz  <matz@suse.de>
3710
3711         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
3712         and next_slot members.
3713         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
3714         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
3715         (lto_streamer_cache_append): Declare.
3716         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
3717         unsigned index, remove offset parameter, ensure that we append
3718         or update existing entries.
3719         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
3720         parameter, update next_slot for append.
3721         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
3722         parameter.
3723         (lto_streamer_cache_insert_at): Likewise.
3724         (lto_streamer_cache_append): New function.
3725         (lto_streamer_cache_lookup): Use unsigned index.
3726         (lto_streamer_cache_get): Likewise.
3727         (lto_record_common_node): Don't test tree_node_can_be_shared.
3728         (preload_common_node): Adjust call to lto_streamer_cache_insert.
3729         (lto_streamer_cache_delete): Don't free offsets member.
3730         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
3731         (lto_output_string_with_length): Use lto_output_data_stream.
3732         (lto_output_tree_header): Remove ix parameter, don't write it.
3733         (lto_output_builtin_tree): Likewise.
3734         (lto_write_tree): Adjust callers to above, don't track and write
3735         offset, write unsigned index.
3736         (output_unreferenced_globals): Don't emit all global vars.
3737         (write_global_references): Use unsigned indices.
3738         (lto_output_decl_state_refs): Likewise.
3739         (write_symbol): Likewise.
3740         * lto-streamer-in.c (lto_input_chain): Move earlier.
3741         (input_function): Use unsigned index.
3742         (input_alias_pairs): Don't read and then ignore all global vars.
3743         (lto_materialize_tree): Remove ix_p parameter, don't read index,
3744         don't pass it back, use lto_streamer_cache_append.
3745         (lto_register_var_decl_in_symtab): Use unsigned index.
3746         (lto_register_function_decl_in_symtab): Likewise.
3747         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
3748         index.
3749         (lto_get_builtin_tree): Don't read index, use
3750         lto_streamer_cache_append.
3751         (lto_read_tree): Adjust call to lto_materialize_tree.
3752
3753         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
3754         don't use function calls in arguments to MIN.
3755
3756         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
3757         twice.
3758
3759         * gimple.c (gimple_type_leader_entry): Mark deletable.
3760
3761 2011-04-03  Alan Modra  <amodra@gmail.com>
3762
3763         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
3764
3765 2011-04-03  Michael Matz  <matz@suse.de>
3766
3767         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
3768         an integer.
3769         * tree.h (tree_decl_non_common.vindex): Adjust comment.
3770
3771 2011-04-03  Michael Matz  <matz@suse.de>
3772
3773         * cgraphbuild.c (record_reference): Canonicalize constructor values.
3774         * gimple-fold.c (canonicalize_constructor_val): Accept being called
3775         without function context.
3776         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
3777         current_function_decl and cfun.
3778
3779 2011-04-03  Michael Matz  <matz@suse.de>
3780
3781         * tree.c (decl_init_priority_insert): Don't create entry for
3782         default priority.
3783         (decl_fini_priority_insert): Ditto.
3784         (fields_compatible_p, find_compatible_field): Remove.
3785         * tree.h (fields_compatible_p, find_compatible_field): Remove.
3786         * gimple.c (gimple_compare_field_offset): Adjust block comment.
3787
3788 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
3789
3790         * combine.c (try_combine): Remove useless local variable.
3791
3792 2011-04-03  Richard Guenther  <rguenther@suse.de>
3793             Ira Rosen  <ira.rosen@linaro.org>
3794
3795         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
3796         non-variable offsets and compare the remaining bases of the two
3797         accesses instead of looking for exact same data-ref.
3798
3799 2011-04-02  Kai Tietz  <ktietz@redhat.com>
3800
3801         PR target/48416
3802         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
3803
3804         * i386.c (ix86_is_msabi_thiscall): New helper function.
3805         (ix86_is_type_thiscall): New helper function.
3806         (ix86_comp_type_attributes): Handle thiscall for method-functions
3807         special.
3808         (init_cumulative_args): Likewise.
3809         (find_drap_reg): Likewise.
3810         (ix86_static_chain): Likewise.
3811         (x86_this_parameter): Likewise.
3812         (x86_output_mi_thunk): Likewise.
3813
3814 2011-04-01  Olivier Hainque  <hainque@adacore.com>
3815             Nicolas Setton  <setton@adacore.com>
3816             Eric Botcazou  <ebotcazou@adacore.com>
3817
3818         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
3819         (add_gnat_descriptive_type_attribute): New function.
3820         (gen_array_type_die): Call it.
3821         (gen_enumeration_type_die): Likewise.
3822         (gen_struct_or_union_type_die): Likewise.
3823         (modified_type_die): Likewise.
3824         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
3825         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
3826         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
3827
3828 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
3829
3830         PR bootstrap/48148
3831         * dwarf2out.c (resolve_addr): Don't call force_decl_die
3832         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
3833
3834         Revert:
3835         2011-03-17  Richard Guenther  <rguenther@suse.de>
3836
3837         PR bootstrap/48148
3838         * lto-cgraph.c (input_overwrite_node): Clear the abstract
3839         origin for decls in other ltrans units.
3840         (input_varpool_node): Likewise.
3841
3842 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
3843
3844         PR middle-end/48335
3845         * expr.c (expand_assignment): Handle all possibilities
3846         if TO_RTX is CONCAT.
3847         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
3848         (store_split_bit_field): If SUBREG_REG (op0) or
3849         op0 itself has smaller mode than word, return it
3850         for offset 0 and const0_rtx for out-of-bounds stores.
3851         If word is const0_rtx, skip it.
3852
3853 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
3854
3855         * config/h8300/h8300.c (print_operand_address): Rename to...
3856         (h8300_print_operand_address): ...this. Make static. Adjust comments.
3857         Call h8300_print_operand and h8300_print_operand_address instead of
3858         print_operand and print_operand_address. Declare.
3859         (print_operand): Renake to...
3860         (h8300_print_operand): ...this. Make static. Adjust comments.
3861         Call h8300_print_operand instead of print_operand. Declare.
3862         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
3863         (h8300_register_move_cost): Likewise.
3864         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
3865         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
3866         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
3867         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
3868         * config/h8300/h8300-protos.h (print_operand): Delete.
3869         (print_operand_address): Delete.
3870
3871 2011-04-01  Richard Henderson  <rth@redhat.com>
3872
3873         PR 48400
3874         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
3875         in strict mode before dwarf4.  Re-order tests to early out
3876         before switching sections.
3877
3878 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
3879
3880         * config/h8300/constraints.md: New file.
3881         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
3882         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
3883         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
3884         * config/h8300/predicates.md (bit_operand): Likewise.
3885         (incdec_operand): Use satisfies_constraint_M and
3886         satisfies_constraint_O.  Don't use C code block.
3887         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
3888         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
3889         (compute_mov_length): Use satisfies_constraint_G.
3890         (fix_bit_operand): Use satisfies_constraint_U.
3891         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
3892         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
3893         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
3894         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
3895         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
3896         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
3897         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
3898         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
3899         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
3900         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
3901         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
3902         (EXTRA_MEMORY_CONSTRAINT): Delete.
3903
3904 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
3905             Michael Meissner  <meissner@linux.vnet.ibm.com>
3906
3907         PR target/48262
3908         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
3909         operands, as per the specifications.
3910
3911         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
3912         (vec_extract_evenv4sf): Ditto.
3913         (vec_extract_evenv8hi): Ditto.
3914         (vec_extract_evenv16qi): Ditto.
3915         (vec_extract_oddv4si): Ditto.
3916
3917 2011-03-31  Mark Wielaard  <mjw@redhat.com>
3918
3919         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
3920         high_pc attribute if the CU has no associated code. Only output
3921         DW_AT_entry_pc for CU if not generating strict dwarf and
3922         dwarf_version < 4.
3923
3924 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
3925
3926         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
3927         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
3928         out of ...
3929         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
3930         * final.c (final_start_function): Call the new function rather
3931         than using a NULL argument for dwarf2out_frame_debug.
3932
3933         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
3934         that contains the prologue.
3935
3936         * haifa-sched.c (queue_insn): New arg REASON.  All callers
3937         changed.  Print it in debugging output.
3938
3939         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
3940
3941         * sched-ebb.c (begin_schedule_ready): Remove second argument.
3942         Split most of the code into...
3943         (begin_move_insn): ... here.  New function.
3944         (ebb_sched_info): Add a pointer to it.
3945         * haifa-sched.c (scheduled_insns): New static variable.
3946         (sched_extend_ready_list): Allocate it.
3947         (schedule_block): Use it to record the order of scheduled insns.
3948         Perform RTL changes to move insns only after all scheduling
3949         decisions have been made.
3950         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
3951         begin_move_insn field.
3952         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3953         * sched-int.h (struct haifa_sched_info): Remove second argument
3954         from begin_schedule_ready hook.  Add new member begin_move_insn.
3955         * sched-rgn.c (begin_schedule_ready): Remove second argument.
3956         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
3957
3958         * haifa-sched.c (prune_ready_list): New function, broken out of
3959         schedule_block.
3960         (schedule_block): Use it.
3961
3962 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3963
3964         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
3965
3966 2011-04-01  Kai Tietz  <ktietz@redhat.com>
3967
3968         * config.gcc (*-*-mingw*): Allow as option the
3969         posix threading model.
3970         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
3971         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
3972         definition.
3973         (CPP_SPEC): Add pthread/no-pthread handling.
3974         (LIB_SPEC): Likewise.
3975         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
3976         (LIB_SPEC): Likewise.
3977         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
3978         flag to pass -pthread option for shared libgcc build.
3979         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
3980         for shared libgcc build.
3981         * config/i386/t-mingw-pthread: New file.
3982         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
3983         New define to enable use of library pthread by default.
3984         * config/i386/mingw.opt (pthread): New driver option.
3985         (no-pthread): New driver option.
3986         * config/i386/cygming.opt: Make sure trailing empty line is retained.
3987         * config/i386/mingw-w64.opt: Likewise.
3988
3989 2011-04-01  Gary Funck <gary@intrepid.com>
3990
3991         * c-decl.c (grokdeclarator): Fix formatting.
3992
3993 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
3994
3995         * expr.c (emit_block_move_via_movmem): Use n_generator_args
3996         instead of n_operands.
3997         (set_storage_via_setmem): Likewise.
3998         * optabs.c (maybe_gen_insn): Likewise.
3999         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
4000         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
4001         (mips_expand_builtin_direct): Likewise.
4002         * config/spu/spu.c (expand_builtin_args): Likewise.
4003
4004 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
4005
4006         * recog.h (insn_data_d): Add n_generator_args.
4007         * genoutput.c (data): Likewise.
4008         (output_insn_data): Print it.
4009         (max_opno, num_dups): Delete.
4010         (scan_operands): Just fill in "d->operand[...]".
4011         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
4012
4013 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
4014
4015         * gensupport.h (pattern_stats): New structure.
4016         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
4017         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
4018         (max_operand_1, max_operand_vec): Delete.
4019         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
4020
4021 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
4022
4023         * emit-rtl.c (emit_pattern_after_setloc): New function.
4024         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
4025         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
4026         (emit_pattern_after): New function.
4027         (emit_insn_after, emit_jump_insn_after): Call it.
4028         (emit_call_insn_after, emit_debug_insn_after): Likewise.
4029         (emit_pattern_before_setloc): New function.
4030         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
4031         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
4032         Likewise.
4033         (emit_pattern_before): New function.
4034         (emit_insn_before, emit_jump_insn_before): Call it.
4035         (emit_call_insn_before, emit_debug_insn_before): Likewise.
4036
4037 2011-03-31  Richard Henderson  <rth@redhat.com>
4038
4039         * dwarf2out.c (dw_separate_line_info_ref): Remove.
4040         (dw_separate_line_info_entry): Remove.
4041         (enum dw_line_info_opcode): New.
4042         (dw_line_info_entry): Use it.
4043         (dw_line_info_table, dw_line_info_table_p): New.
4044         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
4045         (line_info_table, line_info_label_num): Remove.
4046         (line_info_table_in_use): Remove.
4047         (separate_line_info_table): Remove.
4048         (separate_line_info_table_allocated): Remove.
4049         (separate_line_info_table_in_use): Remove.
4050         (LINE_INFO_TABLE_INCREMENT): Remove.
4051         (line_info_label_num): New.
4052         (cur_line_info_table): New.
4053         (text_section_line_info, cold_text_section_line_info): New.
4054         (separate_line_info): New.
4055         (SEPARATE_LINE_CODE_LABEL): Remove.
4056         (print_dwarf_line_table): Remove.
4057         (debug_dwarf): Don't dump it.
4058         (output_one_line_info_table): New.
4059         (output_line_info): Use it.
4060         (new_line_info_table): New.
4061         (set_cur_line_info_table): New.
4062         (dwarf2out_switch_text_section): Use it.
4063         (dwarf2out_begin_function): Likewise.
4064         (push_dw_line_info_entry): New.
4065         (dwarf2out_source_line): Rewrite for new line info tables.
4066         (dwarf2out_init): Remove dead initailizations.
4067
4068 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
4069
4070         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
4071         various flags.
4072         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
4073         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
4074         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
4075         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
4076         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
4077         * opt-functions.awk (flag_init, switch_bit_fields): New.
4078         (switch_flags): Don't handle flags moved to bit-fields.  Don't
4079         generate CL_MISSING_OK or CL_SAVE.
4080         * optc-gen.awk: Update to generate bit-field output as well as
4081         flags field.
4082         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
4083         bit-field instead of CL_REJECT_DRIVER flag.
4084         * opts-common.c (generate_canonical_option,
4085         decode_cmdline_option): Use bit-fields instead of CL_* flags.
4086         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
4087         instead of CL_REJECT_NEGATIVE flag.
4088         * toplev.c (print_switch_values): Use cl_report bit-field instead
4089         of CL_REPORT flag.
4090
4091 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4092
4093         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
4094         a zero minimum index only if it is redundant.
4095
4096 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
4097
4098         PR rtl-optimization/48381
4099         * ira-color.c (assign_hard_reg): Use hard reg set intersection
4100         instead of ira_class_hard_reg_index for calculating conflicting
4101         hard registers.
4102
4103 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
4104
4105         * cprop.c: Clean up hash table building.
4106         (reg_avail_info): Remove.
4107         (oprs_available_p): Remove.
4108         (record_last_reg_set_info): Remove.
4109         (record_last_set_info): Remove.
4110         (reg_available_p): New function.
4111         (gcse_constant_p): Do not treat unfolded conditions as constants.
4112         (make_set_regs_unavailable): New function.
4113         (hash_scan_set): Simplify with new reg_available_p.
4114         (compute_hash_table_work): Traverse insns stream only once.
4115         Do not compute reg_avail_info. Traverse insns in reverse order.
4116         Record implicit sets after recording explicit sets from the block.
4117
4118 2011-03-31  Michael Matz  <matz@suse.de>
4119
4120         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
4121
4122 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
4123
4124         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
4125         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
4126         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4127         (h8300_mode_dependent_address_p): New function.
4128         (h8300_get_index): Make static.
4129
4130 2011-03-31  Jeff Law  <law@redhat.com>
4131
4132         * reload1.c (elimination_effects): Fix typo in recent change.
4133
4134         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
4135         typo potentially leading to null pointer dereference.
4136
4137         * caller-save.c (new_saved_hard_reg): Eliminate return value.
4138         (setup_save_areas): Corresponding changes to avoid useless
4139         assignments.
4140
4141         * jump.c (reversed_comparison_code_parts): Avoid successive return
4142         statements when REVERSE_CONDITION is defined.
4143
4144         * expr.c (expand_assignment): Avoid useless assignments.
4145         (expand_expr_real_1): Likewise.
4146         (expand_expr_real_2): Avoid useless statements.
4147
4148         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
4149
4150         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4151
4152         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
4153         statements.
4154
4155         * stmt.c (expand_expr_stmt): Avoid useless assignment.
4156
4157 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
4158
4159         PR target/47109
4160         * doc/tm.texi.in (TARGET_VERSION): Remove.
4161         * doc/tm.texi: Regenerate.
4162         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
4163         * collect2.c (main): Don't use TARGET_VERSION.
4164         * mips-tdump.c (main): Don't use TARGET_VERSION.
4165         * mips-tfile.c (main): Don't use TARGET_VERSION.
4166         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
4167         * config/rs6000/vxworksae.h: Remove.
4168         * config/alpha/alpha.h (TARGET_VERSION): Remove.
4169         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
4170         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
4171         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
4172         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4173         * config/arm/arm.h (TARGET_VERSION): Remove.
4174         * config/arm/coff.h (TARGET_VERSION): Remove.
4175         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
4176         * config/arm/elf.h (TARGET_VERSION): Remove.
4177         * config/arm/freebsd.h (TARGET_VERSION): Remove.
4178         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
4179         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
4180         * config/arm/pe.h (TARGET_VERSION): Remove.
4181         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
4182         * config/arm/semi.h (TARGET_VERSION): Remove.
4183         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
4184         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
4185         * config/arm/vxworks.h (TARGET_VERSION): Remove.
4186         * config/avr/avr.h (TARGET_VERSION): Remove.
4187         * config/bfin/bfin.h (TARGET_VERSION): Remove.
4188         * config/fr30/fr30.h (TARGET_VERSION): Remove.
4189         * config/frv/frv.h (TARGET_VERSION): Remove.
4190         * config/h8300/h8300.h (TARGET_VERSION): Remove.
4191         * config/i386/cygwin.h (TARGET_VERSION): Remove.
4192         * config/i386/darwin.h (TARGET_VERSION): Remove.
4193         * config/i386/darwin64.h (TARGET_VERSION): Remove.
4194         * config/i386/djgpp.h (TARGET_VERSION): Remove.
4195         * config/i386/freebsd.h (TARGET_VERSION): Remove.
4196         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
4197         * config/i386/gnu.h (TARGET_VERSION): Remove.
4198         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
4199         * config/i386/i386elf.h (TARGET_VERSION): Remove.
4200         * config/i386/linux.h (TARGET_VERSION): Remove.
4201         * config/i386/linux64.h (TARGET_VERSION): Remove.
4202         * config/i386/lynx.h (TARGET_VERSION): Remove.
4203         * config/i386/mingw32.h (TARGET_VERSION): Remove.
4204         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
4205         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
4206         * config/i386/netware.h (TARGET_VERSION): Remove.
4207         * config/i386/nto.h (TARGET_VERSION): Remove.
4208         * config/i386/openbsd.h (TARGET_VERSION): Remove.
4209         * config/i386/vxworks.h (TARGET_VERSION): Remove.
4210         * config/ia64/elf.h (TARGET_VERSION): Remove.
4211         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
4212         * config/ia64/hpux.h (TARGET_VERSION): Remove.
4213         * config/ia64/linux.h (TARGET_VERSION): Remove.
4214         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4215         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
4216         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4217         * config/lm32/lm32.h (TARGET_VERSION): Remove.
4218         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
4219         * config/m32c/m32c.h (TARGET_VERSION): Remove.
4220         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
4221         * config/m32r/m32r.h (TARGET_VERSION): Remove.
4222         * config/m68k/linux.h (TARGET_VERSION): Remove.
4223         * config/m68k/m68k.h (TARGET_VERSION): Remove.
4224         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
4225         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
4226         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
4227         * config/mep/mep.h (TARGET_VERSION): Remove.
4228         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
4229         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4230         * config/mips/iris6.h (MACHINE_TYPE): Remove.
4231         * config/mips/linux.h (TARGET_VERSION): Remove.
4232         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
4233         * config/mips/vxworks.h (TARGET_VERSION): Remove.
4234         * config/mmix/mmix.h (TARGET_VERSION): Remove.
4235         * config/mn10300/linux.h (TARGET_VERSION): Remove.
4236         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
4237         * config/pa/pa.h (TARGET_VERSION): Remove.
4238         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
4239         * config/picochip/picochip.h (TARGET_VERSION): Remove.
4240         * config/rs6000/aix.h (TARGET_VERSION): Remove.
4241         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
4242         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
4243         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
4244         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
4245         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
4246         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
4247         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
4248         * config/rs6000/linux.h (TARGET_VERSION): Remove.
4249         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
4250         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
4251         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
4252         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
4253         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
4254         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
4255         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
4256         * config/s390/linux.h (TARGET_VERSION): Remove.
4257         * config/s390/s390.h (TARGET_VERSION): Remove.
4258         * config/s390/tpf.h (TARGET_VERSION): Remove.
4259         * config/score/score.h (TARGET_VERSION): Remove.
4260         * config/sh/linux.h (TARGET_VERSION): Remove.
4261         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
4262         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
4263         * config/sh/sh.h (TARGET_VERSION): Remove.
4264         * config/sh/sh64.h (TARGET_VERSION): Remove.
4265         * config/sh/superh.h (TARGET_VERSION): Remove.
4266         * config/sh/vxworks.h (TARGET_VERSION): Remove.
4267         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
4268         * config/sparc/linux.h (TARGET_VERSION): Remove.
4269         * config/sparc/linux64.h (TARGET_VERSION): Remove.
4270         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
4271         TARGET_NAME32, TARGET_NAME): Remove.
4272         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
4273         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
4274         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
4275         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
4276         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
4277         * config/spu/spu.h (TARGET_VERSION): Remove.
4278         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
4279         * config/v850/v850.h (TARGET_VERSION): Remove.
4280         * config/vax/linux.h (TARGET_VERSION): Remove.
4281         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
4282         * config/xtensa/elf.h (TARGET_VERSION): Remove.
4283         * config/xtensa/linux.h (TARGET_VERSION): Remove.
4284
4285 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
4286
4287         PR target/48142
4288         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
4289         frame-related from frame-unrelated adjustments to the stack pointer.
4290
4291 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
4292
4293         * common.opt (fdebug-types-section): Move earlier.
4294         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
4295
4296 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
4297
4298         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
4299         var.
4300
4301 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
4302
4303         * tree.h (CASE_CHAIN): Define.
4304         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
4305         (gimple_redirect_edge_and_branch): Likewise.
4306
4307 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4308
4309         PR middle-end/48367
4310         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
4311         calculation.
4312
4313 2011-03-30  Jeff Law  <law@redhat.com>
4314
4315         * PR bootstrap/48371
4316         * reload1.c (reload): Fix botch in last change.
4317
4318         * reload.h (struct reload): Fix typo introduced in last change.
4319
4320 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4321
4322         * config/arm/arm.opt (mhard-float, msoft-float): Mark
4323         Undocumented.  Remove help text.
4324         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
4325         -mhard-float.
4326
4327 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4328
4329         * doc/options.texi (NegativeAlias): Document.
4330         (Alias): Mention NegativeAlias.
4331         * opt-functions.awk: Handle NegativeAlias.
4332         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
4333         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
4334         * opts.h (CL_NEGATIVE_ALIAS): Define.
4335         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
4336         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
4337         OPT_mspe_.
4338         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
4339         Alias entries.
4340         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4341         mno-spe and mno-isel instead of mspe=no and -misel=no.
4342
4343 2011-03-29  Mark Wielaard  <mjw@redhat.com>
4344
4345         * common.opt (fdebug-types-section): New flag.
4346         * doc/invoke.texi: Document new -fno-debug-types-section flag.
4347         * dwarf2out.c (use_debug_types): New define.
4348         (struct die_struct): Mark die_id with GTY desc use_debug_types.
4349         (print_die): Guard output of type unit signatures using
4350         use_debug_types.
4351         (build_abbrev_table): Replace assert of dwarf_version >= 4
4352         with assert on use_debug_types.
4353         (size_of_die): Likewise.
4354         (unmark_dies): Likewise.
4355         (value_format): Decide AT_ref_external form on use_debug_types.
4356         (output_die): Replace dwarf_version version check guard with
4357         use_debug_types where appropriate.
4358         (modified_type_die): Likewise.
4359         (gen_reference_type_die): Likewise.
4360         (dwarf2out_start_source_file): Likewise.
4361         (dwarf2out_end_source_file): Likewise.
4362         (prune_unused_types_walk_attribs): Likewise.
4363         (dwarf2out_finish): Likewise.
4364
4365 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4366
4367         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
4368
4369 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4370
4371         PR rtl-optimization/48332
4372         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
4373         mode of input operand N and modeN to its actual mode.
4374
4375 2011-03-30  Jeff Law  <law@redhat.com>
4376
4377         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
4378         define accessor macro.
4379         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
4380         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
4381         (reg_equiv_init): Likewise.
4382         (reg_equivs_size): New variable.
4383         (reg_equiv_init_size): Remove.
4384         (allocate_initial_values): Move prototype to here from....
4385         * integrate.h (allocate_initial_values): Remove prototype.
4386         * integrate.c: Include reload.h.
4387         (allocate_initial_values): Corresponding changes.
4388         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
4389         (fix_reg_equiv_init, no_equiv): Corresponding changes.
4390         (update_equiv_regs): Corresponding changes.
4391         (ira): Corresponding changes.
4392         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
4393         (push_secondary_reload): Corresponding changes.
4394         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
4395         (make_memloc, find_reloads_address): Corresponding changes.
4396         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
4397         (find_reloads_address_1): Corresponding changes.
4398         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
4399         (refers_to_regno_for_reload_p): Corresponding changes.
4400         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
4401         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
4402         * reload1.c: Include ggc.h.
4403         (grow_reg_equivs): New function.
4404         (replace_pseudos_in, reload): Corresponding changes.
4405         (calculate_needs_all_insns, alter_regs): Corresponding changes.
4406         (eliminate_regs_1, elimination_effects): Corresponding changes.
4407         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
4408         (delete_output_reload): Likewise.
4409         * caller-save.c (mark_referenced_regs): Corresponding changes.
4410         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
4411         * frv/predicates.md (frv_load_operand): Corresponding changes.
4412         * microblaze/microblaze.c (double_memory_operand): Corresponding
4413         changes.
4414         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
4415         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
4416         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
4417         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
4418         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
4419         changes.
4420         * pa/pa.c (emit_move_sequence): Corresponding changes.
4421         * vax/vax.c (nonindexed_address_p): Corresponding changes.
4422
4423 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4424
4425         PR target/47551
4426         * config/arm/arm.c (coproc_secondary_reload_class): Handle
4427         structure modes.  Don't check neon_vector_mem_operand for
4428         vector or structure modes.
4429
4430 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
4431             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4432
4433         PR target/43590
4434         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
4435         operand 1 and reshuffle the operands to match.
4436         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
4437
4438 2011-03-30  Christian Schüler  <cschueler@gmx.de>
4439
4440         PR driver/48208
4441         * config/c.opt (F): Added 'Driver' to -F option.
4442
4443         PR driver/48260
4444         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
4445           handler function.
4446         * config/darwin.opt: Added '-arch' option.
4447
4448 2011-03-30  Nick Clifton  <nickc@redhat.com>
4449
4450         * config/rx/rx.md: Add peepholes and patterns to combine
4451         extending loads and simple arithmetic instructions.
4452         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
4453         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
4454         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
4455         modes to use pre-decrement and post-increment addressing.
4456         (rx_is_restricted_memory_address): Add range checking of REG+INT
4457         addresses.
4458         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
4459         (rx_memory_move_cost): Adjust cost of stores.
4460         (rx_adjust_insn_length): New function.
4461
4462 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
4463
4464         PR c/48305
4465         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
4466         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
4467         matching arg00/arg01 types.
4468
4469 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
4470
4471         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
4472         last_location to UNKNOWN_LOCATION.
4473
4474 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4475
4476         PR target/48349
4477         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
4478         FLOAT_SSE_REGS.
4479
4480 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
4481             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4482
4483         PR bootstrap/48337
4484         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
4485         Init(PROCESSOR_V7).
4486         (sparc_cpu): Likewise.
4487         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
4488         PROCESSOR_V7.
4489
4490 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4491
4492         PR target/48336
4493         PR middle-end/48342
4494         PR rtl-optimization/48345
4495         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
4496         hard regs for given mode from profitable regs when doing secondary
4497         allocation.
4498
4499 2011-03-29  Jeff Law  <law@redhat.com>
4500
4501         PR bootstrap/48327
4502         * tree-ssa-threadupdate.c (struct redirection_data): Remove
4503         do_not_duplicate field.
4504         (lookup_redirection_data): Corresponding changes.
4505         (create_duplicates): Always create a template block.
4506         (redirect_edges): Remove code which reused the original block
4507         when it was going to become unreachable code.
4508         (thread_block): Don't set do_not_duplicate field.
4509
4510 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
4511
4512         * lto-opts.c (register_user_option_p, lto_register_user_option):
4513         Make type argument unsigned.
4514         * lto-streamer.h (lto_register_user_option): Make type argument
4515         unsigned.
4516         * opth-gen.awk: Make CL_* macros unsigned.
4517         * opts-common.c (find_opt): Make lang_mask argument unsigned.
4518         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
4519         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
4520         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
4521         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
4522         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
4523         (find_opt): Make lang_mask argument unsigned.
4524
4525 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4526
4527         PR rtl-optimization/48331
4528         PR rtl-optimization/48334
4529         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
4530         for any used algorithm.
4531
4532 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
4533
4534         * ira-conflicts.c (build_object_conflicts): Add unused attribute
4535         to parent_max.
4536
4537 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
4538
4539         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
4540         (alpha_option_override): Don't set alpha_sr_alias_set.
4541         (emit_frame_store_1): Use gen_frame_mem rather than calling
4542         set_mem_alias_set.
4543         (alpha_expand_epilogue): Ditto.
4544
4545 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
4546
4547         PR tree-optimization/48290
4548         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
4549         vectorization, check that relevant phis in the basic block after
4550         the inner loop are really inner loop's exit phis.
4551
4552 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
4553
4554         PR debug/48190
4555         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
4556         (cached_dw_loc_list_def): New structure.
4557         (cached_dw_loc_list): New typedef.
4558         (cached_dw_loc_list_table): New variable.
4559         (cached_dw_loc_list_table_hash): New function.
4560         (cached_dw_loc_list_table_eq): Likewise.
4561         (add_location_or_const_value_attribute): Take a bool cache_p.
4562         Cache the list when the parameter is true.
4563         (gen_formal_parameter_die): Update caller.
4564         (gen_variable_die): Likewise.
4565         (dwarf2out_finish): Likewise.
4566         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
4567         while generating debug info for the decl.
4568         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
4569         (dwarf2out_init): Initialize cached_dw_loc_list_table.
4570         (resolve_addr): Cache the result of resolving a chain of
4571         location lists.
4572
4573 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
4574
4575         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
4576         conflict object hard regset nodes have intersecting hard reg sets.
4577
4578         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
4579         after regstat_init_n_sets_and_refs.
4580
4581         * ira.c: Add more comments at the top.
4582         (setup_stack_reg_pressure_class, setup_pressure_classes):
4583         Add comments how we compute the register pressure classes.
4584         (setup_allocno_and_important_classes): Add more comments.
4585         (setup_class_translate_array, reorder_important_classes)
4586         (setup_reg_class_relations): Add comments.
4587
4588         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
4589         start of the file.
4590
4591         * ira-color.c: Add 2011 to the Copyright line.
4592         (assign_hard_reg):  Add more comments.
4593         (improve_allocation): Ditto.
4594
4595         * ira-costs.c: Add 2011 to the Copyright line.
4596         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
4597         comments.
4598         (setup_regno_cost_classes_by_mode): Ditto.
4599
4600         Initial patches from ira-improv branch:
4601
4602         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
4603
4604         * ira-build.c (ira_create_object): Remove initialization of
4605         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
4606         (ira_create_allocno): Remove initialization of
4607         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
4608         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
4609         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4610         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
4611         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
4612         Initialize ALLOCNO_ADD_DATA.
4613         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
4614         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
4615         ALLOCNO_REG.
4616         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
4617         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
4618
4619         * ira.c (ira_reallocate): Remove.
4620         (setup_pressure_classes): Call
4621         ira_init_register_move_cost_if_necessary.  Use
4622         ira_register_move_cost instead of ira_get_register_move_cost.
4623         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
4624         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
4625
4626         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
4627         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
4628         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
4629         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
4630         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
4631         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
4632         Fix formatting.
4633         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
4634         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4635         (struct allocno_color_data): New.
4636         (allocno_color_data_t): New typedef.
4637         (allocno_color_data): New definition.
4638         (ALLOCNO_COLOR_DATA): New macro.
4639         (struct object_color_data): New.
4640         (object_color_data_t): New typedef.
4641         (object_color_data): New definition.
4642         (OBJECT_COLOR_DATA): New macro.
4643         (update_copy_costs, calculate_allocno_spill_cost): Call
4644         ira_init_register_move_cost_if_necessary.  Use
4645         ira_register_move_cost instead of ira_get_register_move_cost.
4646         (move_spill_restore, update_curr_costs): Ditto.
4647         (allocno_spill_priority): Make it inline.
4648         (color_pass): Allocate and free allocno_color_dat and object_color_data.
4649         (struct coalesce_data, coalesce_data_t): New.
4650         (allocno_coalesce_data): New definition.
4651         (ALLOCNO_COALESCE_DATA): New macro.
4652         (merge_allocnos, coalesced_allocno_conflict_p): Use
4653         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
4654         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
4655         (coalesce_allocnos): Ditto.
4656         (setup_coalesced_allocno_costs_and_nums): Ditto.
4657         (collect_spilled_coalesced_allocnos): Ditto.
4658         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
4659         (setup_slot_coalesced_allocno_live_ranges): Ditto.
4660         (coalesce_spill_slots): Ditto.
4661         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
4662         free allocno_coalesce_data.
4663
4664         * ira-conflicts.c: Fix formatting.
4665         (process_regs_for_copy): Call
4666         ira_init_register_move_cost_if_necessary.  Use
4667         ira_register_move_cost instead of ira_get_register_move_cost.
4668         (build_object_conflicts): Optimize.
4669
4670         * ira-costs.c (record_reg_classes): Optimize.  Call
4671         ira_init_register_move_cost_if_necessary.  Use
4672         ira_register_move_cost, ira_may_move_in_cost, and
4673         ira_may_move_out_cost instead of ira_get_register_move_cost and
4674         ira_get_may_move_cost.
4675         (record_address_regs): Ditto.
4676         (scan_one_insn): Optimize.
4677         (find_costs_and_classes): Optimize.
4678         (process_bb_node_for_hard_reg_moves): Call
4679         ira_init_register_move_cost_if_necessary.  Use
4680         ira_register_move_cost instead of ira_get_register_move_cost.
4681
4682         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
4683         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
4684         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
4685         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
4686         definitions.
4687         (ira_initiate_emit_data, ira_finish_emit_data)
4688         (create_new_allocno): New functions.
4689         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
4690         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
4691         Use ira_register_move_cost instead of ira_get_register_move_cost.
4692
4693         * ira-int.h: Fix some comments.
4694         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
4695         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
4696         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
4697         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
4698         add_data.
4699         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
4700         bitfield after mode.  Make hard_regno a short int.  Make
4701         hard_regno short.  Remove first_coalesced_allocno and
4702         next_coalesced_allocno.  Move mem_optimized_dest_p,
4703         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
4704         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
4705         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
4706         temp, colorable_p.  Add new member add_data.
4707         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
4708         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
4709         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
4710         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
4711         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
4712         (ALLOCNO_ADD_DATA): New macro.
4713         (ira_emit_data_t): New typedef.
4714         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
4715         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
4716         from struct ira_allocno.
4717         (ALLOCNO_EMIT_DATA): New macro.
4718         (ira_allocno_emit_data, allocno_emit_reg): New.
4719         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
4720         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
4721         (OBJECT_ADD_DATA): New macro.
4722         (ira_reallocate): Remove.
4723         (ira_initiate_emit_data, ira_finish_emit_data): New.
4724         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
4725         (ira_init_register_move_cost_if_necessary): New.
4726         (ira_object_conflict_iter_next): Merge into
4727         ira_object_conflict_iter_cond.
4728         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
4729
4730         * ira-live.c (process_single_reg_class_operands): Call
4731         ira_init_register_move_cost_if_necessary.  Use
4732         ira_register_move_cost instead of ira_get_register_move_cost.
4733
4734         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
4735
4736         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
4737
4738         * ira-costs.c: Fix formatting.
4739         (cost_classes, cost_classes_num): Remove.
4740         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
4741         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
4742         (cost_classes_del, cost_classes_htab): New.
4743         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
4744         (initiate_regno_cost_classes, setup_cost_classes): New.
4745         (setup_regno_cost_classes_by_aclass): New.
4746         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
4747         (record_reg_classes): Use regno_cost_classes instead of
4748         cost_classes.  Move checking opposite operand up.
4749         (record_address_regs): Use regno_cost_classes
4750         instead of cost_classes.
4751         (scan_one_insn): Ditto.  Use always general register.
4752         (print_allocno_costs): Use regno_cost_classes instead of
4753         cost_classes.
4754         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
4755         (find_costs_and_classes): Set up cost classes for each registers.
4756         Use also their mode for this.  Use regno_cost_classes instead of
4757         cost_classes.
4758         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
4759         cost_classes.
4760         (free_ira_costs, ira_init_costs): Don't use cost_classes.
4761         (ira_costs, ira_set_pseudo_classes): Call
4762         initiate_regno_cost_classes and finish_regno_cost_classes.
4763
4764         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
4765
4766         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
4767
4768         * target.def (ira_cover_classes): Remove.
4769
4770         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
4771
4772         * doc/tm.texi.in: Ditto.
4773
4774         * ira-conflicts.c: Remove mentioning cover classes from the file.
4775         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
4776         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
4777
4778         * targhooks.c (default_ira_cover_classes): Remove.
4779
4780         * targhooks.h (default_ira_cover_classes): Ditto.
4781
4782         * haifa-sched.c: Remove mentioning cover classes from the file.
4783         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
4784         ira_pressure_classes and ira_pressure_classes_num instead of
4785         ira_reg_class_cover_size and ira_reg_class_cover.  Use
4786         sched_regno_pressure_class instead of sched_regno_cover_class.
4787         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
4788         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4789
4790         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
4791         classes from the file.
4792         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
4793         (struct object_hard_regs, struct object_hard_regs_node): New.
4794         (struct ira_object): New members profitable_hard_regs,
4795         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
4796         (struct ira_allocno): Rename cover_class to aclass.  Rename
4797         cover_class_cost and updated_cover_class_cost to class_cost and
4798         updated_class_cost.  Remove splay_removed_p and
4799         left_conflict_size.  Add new members colorable_p.
4800         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
4801         (ALLOCNO_COLORABLE_P): New macro.
4802         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
4803         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
4804         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
4805         (OBJECT_...): Rename parameter C to O.
4806         (OBJECT_PROFITABLE_HARD_REGS): New macro.
4807         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
4808         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
4809         (struct target_ira_int): New members x_ira_max_memory_move_cost,
4810         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
4811         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
4812         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
4813         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
4814         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
4815         x_ira_reg_class_subunion.
4816         (ira_max_memory_move_cost, ira_max_register_move_cost)
4817         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
4818         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
4819         (ira_important_class_nums, ira_reg_class_superunion): New macros.
4820         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
4821         (ira_reg_class_union): Rename to ira_reg_class_subunion.
4822         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4823         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4824         (ira_tune_allocno_costs_and_cover_classes): Rename to
4825         ira_tune_allocno_costs.
4826         (ira_debug_hard_regs_forest): New.
4827         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
4828         (ira_object_conflict_iter_next): Fix comments.
4829         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
4830         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
4831         cover_class to aclass.
4832         (ira_allocate_and_accumulate_costs): Ditto.
4833         (ira_allocate_and_set_or_copy_costs): Ditto.
4834
4835         * opts.c (decode_options): Remove ira_cover_class check.
4836
4837         * ira-color.c: Remove mentioning cover classes from the file.  Use
4838         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
4839         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
4840         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
4841         (splay-tree.h): Remove include.
4842         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
4843         before copy_freq_compare_func.
4844         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
4845         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
4846         New definitions.
4847         (hard_regs_roots, hard_regs_node_vec): Ditto.
4848         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
4849         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
4850         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
4851         (create_new_object_hard_regs_node): Ditto.
4852         (add_new_object_hard_regs_node_to_forest): Ditto.
4853         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
4854         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
4855         Ditto.
4856         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
4857         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
4858         (remove_unused_object_hard_regs_nodes): Ditto.
4859         (enumerate_object_hard_regs_nodes): Ditto.
4860         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
4861         (object_hard_regs_subnode_t): Ditto.
4862         (struct object_hard_regs_subnode): Ditto.
4863         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
4864         (setup_object_hard_regs_subnode_index): Ditto.
4865         (get_object_hard_regs_subnodes_num): Ditto.
4866         (form_object_hard_regs_nodes_forest): Ditto.
4867         (finish_object_hard_regs_nodes_tree): Ditto.
4868         (finish_object_hard_regs_nodes_forest): Ditto.
4869         (allocnos_have_intersected_live_ranges_p): Rename to
4870         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
4871         (pseudos_have_intersected_live_ranges_p): Rename to
4872         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
4873         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
4874         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
4875         (update_copy_costs): Remove assert.  Skip cost update if the hard
4876         reg does not belong the class.
4877         (assign_hard_reg): Process only profitable hard regs.
4878         (uncolorable_allocnos_num): Make it scalar.
4879         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
4880         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
4881         and ira_reg_class_max_nregs.
4882         (bucket_allocno_compare_func): Check frequency first.
4883         (sort_bucket): Add compare function as a parameter.
4884         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
4885         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
4886         (push_allocno_to_stack): Rewrite for checking new allocno
4887         colorability.
4888         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
4889         (push_only_colorable): Pass new parameter to sort_bucket.
4890         (push_allocno_to_spill): Remove.
4891         (allocno_spill_priority_compare): Make it inline and rewrite.
4892         (splay_tree_allocate, splay_tree_free): Remove.
4893         (allocno_spill_sort_compare): New function.
4894         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
4895         build and use splay tree.  Choose first allocno in uncolorable
4896         allocno bucket to spill.  Remove setting spill cost.
4897         (all_conflicting_hard_regs): Remove.
4898         (setup_allocno_available_regs_num): Check only profitable hard
4899         regs.  Print info about hard regs nodes.
4900         (setup_allocno_left_conflicts_size): Remove.
4901         (put_allocno_into_bucket): Don't call
4902         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
4903         (improve_allocation): New.
4904         (color_allocnos): Call setup_profitable_hard_regs,
4905         form_object_hard_regs_nodes_forest, improve_allocation,
4906         finish_object_hard_regs_nodes_forest.  Setup spill cost.
4907         (print_loop_title): Use pressure classes.
4908         (color_allocnso): Ditto.
4909         (do_coloring): Remove allocation and freeing splay_tree_node_pool
4910         and allocnos_for_spilling.
4911         (ira_sort_regnos_for_alter_reg): Don't setup members
4912         {first,next}_coalesced_allocno.
4913         (color): Remove allocating and freeing removed_splay_allocno_vec.
4914         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
4915         prohibited_class_mode_regs.
4916
4917         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
4918         formatting.
4919         (update_allocno_pressure_excess_length): Use pressure classes.
4920         (inc_register_pressure, dec_register_pressure): Check for pressure
4921         class.
4922         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
4923         pressure class.  Use ira_reg_class_nregs instead of
4924         ira_reg_class_max_nregs.
4925         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
4926         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
4927         (single_reg_class): Use ira_reg_class_nregs instead of
4928         ira_reg_class_max_nregs.
4929         (process_bb_node_lives): Use pressure classes.
4930
4931         * ira-emit.c: Remove mentioning cover classes from the file.  Use
4932         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
4933         (change_loop): Use pressure classes.
4934         (modify_move_list): Call ira_set_allocno_class instead of
4935         ira_set_allocno_cover_class.
4936
4937         * ira-build.c: Remove mentioning cover classes from the file.  Use
4938         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
4939         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
4940         ALLOCNO_UPDATED_CLASS_COST instead of
4941         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
4942         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
4943         (ira_create_allocno): Remove initialization of
4944         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
4945         ALLOCNO_COLORABLE_P.
4946         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
4947         Update conflict regs for the objects.
4948         (create_cap_allocno): Remove assert.  Don't propagate
4949         ALLOCNO_AVAILABLE_REGS_NUM.
4950         (ira_free_allocno_costs): New function.
4951         (finish_allocno): Change a part of code into call of
4952         ira_free_allocno_costs.
4953         (low_pressure_loop_node_p): Use pressure classes.
4954         (object_range_compare_func): Don't compare classes.
4955         (setup_min_max_conflict_allocno_ids): Ditto.
4956
4957         * loop-invariant.c: Remove mentioning cover classes from the file.
4958         Use ira_pressure_classes and ira_pressure_classes_num instead of
4959         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
4960         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
4961         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
4962         Use reg_allocno_class instead of reg_cover_class.
4963         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
4964         STACK_REG_COVER_CLASS.
4965         (get_regno_cover_class): Rename to get_regno_pressure_class.
4966         (move_loop_invariants): Initialize and finalize regstat.
4967
4968         * ira.c: Remove mentioning cover classes from the file.  Add
4969         comments about coloring without cover classes.  Use ALLOCNO_CLASS
4970         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
4971         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
4972         setup_class_subset_and_memory_move_costs.
4973         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
4974         (setup_cover_and_important_classes): Rename to
4975         setup_allocno_and_important_classes.
4976         (setup_class_translate_array): New.
4977         (setup_class_translate): Call it for allocno and pressure classes.
4978         (cover_class_order): Rename to allocno_class_order.
4979         (comp_reg_classes_func): Use ira_allocno_class_translate instead
4980         of ira_class_translate.
4981         (reorder_important_classes): Set up ira_important_class_nums.
4982         (setup_reg_class_relations): Set up ira_reg_class_superunion.
4983         (print_class_cover): Rename to print_classes.  Add parameter.
4984         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
4985         Print pressure classes too.
4986         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
4987         setup_reg_subclasses.
4988         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
4989         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
4990         (setup_prohibited_class_mode_regs): Use
4991         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
4992         (clarify_prohibited_class_mode_regs): New function.
4993         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
4994         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
4995         (ira_init_once): Initialize them.
4996         (free_register_move_costs): Process them.
4997         (ira_init): Move calls of find_reg_classes and
4998         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
4999         Call clarify_prohibited_class_mode_regs.
5000         (ira_no_alloc_reg): Remove.
5001         (too_high_register_pressure_p): Use pressure classes.
5002
5003         * sched-deps.c: Remove mentioning cover classes from the file.
5004         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
5005         ira_pressure_classes and ira_pressure_classes_num instead of
5006         ira_reg_class_cover_size and ira_reg_class_cover.
5007         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
5008         sched_regno_pressure_class instead of sched_regno_cover_class.
5009         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
5010         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5011
5012         * ira.h: Add 2010 to Copyright.
5013         (ira_no_alloc_reg): Remove external.
5014         (struct target_ira): Rename x_ira_hard_regno_cover_class,
5015         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
5016         x_ira_class_translate to x_ira_hard_regno_allocno_class,
5017         x_ira_allocno_classes_num, x_ira_allocno_classes, and
5018         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
5019         x_ira_pressure_classes, x_ira_pressure_class_translate, and
5020         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
5021         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
5022         x_ira_no_alloc_regs.
5023         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
5024         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
5025         ira_allocno_classes_num and ira_allocno_classes.
5026         (ira_class_translate): Rename to ira_allocno_class_translate.
5027         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
5028         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
5029         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5030         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
5031         (ira_no_alloc_regs): New.
5032
5033         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
5034         classes from the file.  Use ALLOCNO_CLASS instead of
5035         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
5036         ALLOCNO_COVER_CLASS_COST.
5037         (regno_cover_class): Rename to regno_aclass.
5038         (record_reg_classes): Use ira_reg_class_subunion instead of
5039         ira_reg_class_union.
5040         (record_address_regs): Check overflow.
5041         (scan_one_insn): Ditto.
5042         (print_allocno_costs): Print total mem cost fore regional allocation.
5043         (print_pseudo_costs): Use REG_N_REFS.
5044         (find_costs_and_classes): Use classes intersected with them on the
5045         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
5046         ira_reg_class_union.  Use ira_allocno_class_translate and
5047         regno_aclass instead of ira_class_translate and regno_cover_class.
5048         Modify code for finding regno_aclass.  Setup preferred classes for
5049         the next pass.
5050         (setup_allocno_cover_class_and_costs): Rename to
5051         setup_allocno_class_and_costs.  Use regno_aclass instead of
5052         regno_cover_class.  Use ira_set_allocno_class instead of
5053         ira_set_allocno_cover_class.
5054         (init_costs, finish_costs): Use regno_aclass instead of
5055         regno_cover_class.
5056         (ira_costs): Use setup_allocno_class_and_costs instead of
5057         setup_allocno_cover_class_and_costs.
5058         (ira_tune_allocno_costs_and_cover_classes): Rename to
5059         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
5060         by processing objects.  Use ira_reg_class_max_nregs instead of
5061         ira_reg_class_nregs.
5062
5063         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
5064
5065         * sched-int.h: Remove mentioning cover classes from the file.
5066         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
5067
5068         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
5069         classes from the file.
5070         (struct reg_pref): Rename coverclass into allocnoclass.
5071         (reg_cover_class): Rename to reg_allocno_class.
5072
5073         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
5074
5075         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
5076
5077         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
5078
5079         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
5080
5081         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
5082
5083         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
5084
5085         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
5086
5087         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
5088
5089         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
5090
5091         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
5092
5093         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
5094         (i386_ira_cover_classes): Ditto.
5095
5096         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
5097
5098         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
5099
5100         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
5101
5102         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
5103
5104         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
5105
5106         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
5107
5108         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
5109         (mips_ira_cover_classes): Ditto.
5110
5111         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
5112
5113         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
5114
5115         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
5116
5117         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
5118
5119         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
5120
5121         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
5122         (IRA_COVER_CLASSES_VSX): Ditto.
5123
5124         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
5125         (rs6000_ira_cover_classes): Ditto.
5126
5127         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
5128
5129         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
5130
5131         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
5132
5133         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
5134
5135         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
5136
5137         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
5138
5139         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
5140
5141         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
5142
5143         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
5144
5145         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
5146
5147 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
5148
5149         PR debug/48253
5150         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
5151         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
5152         dw_fde_unlikely_section_end_label, cold_in_std_section,
5153         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
5154         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
5155         fields.
5156         (output_fde): Use dw_fde_second_{begin,end} if second is
5157         true, otherwise dw_fde_{begin,end}.
5158         (output_call_frame_info): Test dw_fde_second_begin != NULL
5159         instead of dw_fde_switched_sections.
5160         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
5161         fields, initialize new fields.  Initialize in_std_section
5162         unconditionally from the first partition.
5163         (dwarf2out_end_epilogue): Don't override dw_fde_end when
5164         dw_fde_second_begin is non-NULL.
5165         (dwarf2out_switch_text_section): Stop initializing removed
5166         dw_fde_struct fields, initialize new fields, initialize
5167         also dw_fde_end here.  Set dw_fde_switch_cfi even when
5168         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
5169         (struct var_loc_list_def): Add last_before_switch field.
5170         (arange_table, arange_table_allocated, arange_table_in_use,
5171         ARANGE_TABLE_INCREMENT, add_arange): Removed.
5172         (size_of_aranges): Count !in_std_section and !second_in_std_section
5173         hunks in fdes, instead of looking at arange_table_in_use.
5174         (output_aranges): Add aranges_length argument, don't call
5175         size_of_aranges here.  Instead of using aranges_table*
5176         emit ranges for fdes when !in_std_section resp.
5177         !second_in_std_section.
5178         (dw_loc_list): Break ranges crossing section switch.
5179         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
5180         use dw_fde_second_end instead of dw_fde_end as end of last range.
5181         (gen_subprogram_die): Don't call add_arange.  Use
5182         dw_fde_{begin,end} for first partition and if switched
5183         section dw_fde_second_{begin,end} for the second.
5184         (var_location_switch_text_section_1,
5185         var_location_switch_text_section): New functions.
5186         (dwarf2out_begin_function): Initialize cold_text_section even
5187         when function_section () isn't text_section.
5188         (prune_unused_types): Don't walk arange_table.
5189         (dwarf2out_finish): Don't needlessly test
5190         flag_reorder_blocks_and_partition when testing cold_text_section_used.
5191         If info_section_emitted, call size_of_aranges and if it indicates
5192         non-empty .debug_aranges, call output_aranges with the computed
5193         size.  Stop using removed dw_fde_struct fields, use
5194         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
5195         for second.
5196
5197         PR debug/48203
5198         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
5199         create ENTRY_VALUE if incoming or address of incoming's MEM
5200         is a hard REG.
5201         * dwarf2out.c (mem_loc_descriptor): Don't emit
5202         DW_OP_GNU_entry_value of DW_OP_fbreg.
5203         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
5204         on ENTRY_VALUE is able to find the canonical parameter VALUE.
5205         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
5206         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
5207         ENTRY_VALUE_EXPs.
5208         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
5209         is a REG_P or MEM_P with REG_P address, compute hash directly
5210         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
5211         (preserve_only_constants): Don't clear VALUES forwaring
5212         ENTRY_VALUE to some other VALUE.
5213
5214 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
5215
5216         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
5217         instead of GEN_INT.
5218
5219 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
5220
5221         * cfgexpand.c (expand_gimple_cond): Always set the source location and
5222         block before expanding the statement.
5223         (expand_gimple_stmt_1): Likewise.  Set them here...
5224         (expand_gimple_stmt): ...and not here.  Tidy.
5225         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
5226         unknown.
5227
5228 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
5229
5230         * Makefile.in: New rule for cprop.o.
5231         * gcse.c: Move constant/copy propagation to cprop.c.
5232         (compute_local_properties): Only handle expression tables.
5233         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
5234         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
5235         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
5236         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
5237         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
5238         compute_cprop_data, find_used_regs, try_replace_reg,
5239         find_avail_set, cprop_jump, constprop_register, cprop_insn,
5240         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
5241         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
5242         find_bypass_set, reg_killed_on_edge, bypass_block,
5243         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
5244         execute_rtl_cprop, pass_rtl_cprop): Move to...
5245         * cprop.c: ...here.  New file, constant/copy propagation for RTL
5246         moved from gcse.c to here with minor cleanups in duplicated code.
5247
5248 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5249
5250         * config/i386/i386.c (flag_opts): Fix a typo in
5251         -mavx256-split-unaligned-store.
5252
5253 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
5254
5255         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5256         LIBCALL_VALUE): Remove macros.
5257         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5258         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5259         (h8300_function_value, h8300_libcall_value,
5260         h8300_function_value_regno_p): New functions.
5261
5262 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
5263
5264         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
5265
5266 2011-03-28  Jeff Law  <law@redhat.com>
5267
5268         * tree-ssa-threadupdate.c (redirect_edges): Call
5269         create_edge_and_update_destination_phis as needed.
5270         (create_edge_and_update_destination_phis): Accept new BB argument.
5271         All callers updated.
5272         (thread_block): Do not update the profile when threading around
5273         intermediate blocks.
5274         (thread_single_edge): Likewise.
5275         (determine_bb_domination_status): If BB is not a successor of the
5276         loop header, return NONDOMINATING.
5277         (register_jump_thread): Note when we register a jump thread around
5278         an intermediate block.
5279         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
5280         (thread_across_edge): Use it.
5281
5282 2011-03-28  Tristan Gingold  <gingold@adacore.com>
5283
5284         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
5285         when for_return is 2.
5286
5287 2011-03-28  Jeff Law  <law@redhat.com>
5288
5289         * var-tracking.c (canonicalize_values_mark): Delete unused
5290         lhs assignment.
5291         (canonicalize_values_star, set_variable_part): Likewise.
5292         (clobber_variable_part, delete_variable_part): Likewise.
5293
5294 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
5295
5296         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
5297
5298 2011-03-28  Martin Jambor  <mjambor@suse.cz>
5299
5300         * tree-inline.c (expand_call_inline): Do not check that destination
5301         node is analyzed.
5302         (optimize_inline_calls): Assert that destination node is analyzed.
5303         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
5304         not call tree_lowering_passes.
5305         * cgraph.h (cgraph_analyze_function): Declare.
5306         * cgraphunit.c (cgraph_analyze_function): Make public.
5307
5308 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
5309
5310         * config/sparc/sparc-opts.h: New.
5311         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
5312         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
5313         (sparc_option_override): Store processor_type enumeration rather
5314         than string in cpu_default.  Remove name and enumeration from
5315         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
5316         without using sparc_select.  Use target_flags_explicit instead of
5317         fpu_option_set.
5318         * config/sparc/sparc.h (enum processor_type): Move to
5319         sparc-opts.h.
5320         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
5321         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
5322         HeaderInclude entry.
5323         (mcpu=, mtune=): Use Var and Enum.
5324         (sparc_processor_type): New Enum and EnumValue entries.
5325
5326 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5327             Iain Sandoe  <iains@gcc.gnu.org>
5328
5329         PR target/48245
5330         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
5331
5332 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
5333
5334         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
5335         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
5336         Insert new statements at it in lieu of STMT.
5337         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
5338         * tree-vect-stmts.c (vectorizable_store): Likewise.
5339         (vectorizable_load): Likewise.
5340
5341 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
5342
5343         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
5344         (divtf3): Ditto.
5345         (multf3): Ditto.
5346         (subtf3): Ditto.
5347
5348 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5349
5350         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
5351         unaligned 256bit load/store.
5352         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
5353         (*avx_movdqu<avxmodesuffix>): Likewise.
5354
5355 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5356
5357         PR target/48288
5358         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
5359         * config/pa/pa.md (iordi3): Use new predicate in expander.
5360         (iorsi3): Likewise.
5361
5362 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
5363
5364         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
5365         FUNCTION_VALUE_REGNO_P): Remove macros.
5366         * config/mips/mips-protos.h (mips_function_value): Remove.
5367         * config/mips/mips.c (mips_function_value): Rename to...
5368         (mips_function_value_1): ... this. Make static.  Handle receiving
5369         the function type in 'fn_decl_or_type' argument.
5370         (mips_function_value, mips_libcall_value,
5371         mips_function_value_regno_p): New function.
5372         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5373         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5374
5375 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5376
5377         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
5378         and -mavx256-split-unaligned-store.
5379         (ix86_option_override_internal): Split 32-byte AVX unaligned
5380         load/store by default.
5381         (ix86_avx256_split_vector_move_misalign): New.
5382         (ix86_expand_vector_move_misalign): Use it.
5383
5384         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
5385         -mavx256-split-unaligned-store.
5386
5387         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
5388         256bit load/store.  Generate unaligned store on misaligned memory
5389         operand.
5390         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
5391         256bit load/store.
5392         (*avx_movdqu<avxmodesuffix>): Likewise.
5393
5394         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
5395         -mavx256-split-unaligned-store.
5396
5397 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
5398
5399         PR target/38598
5400         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
5401         Update commentary.
5402
5403 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
5404
5405         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
5406         opno arguments with an expand_operand.  Use create_input_operand.
5407         (mips_prepare_builtin_target): Delete.
5408         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
5409         functions.
5410         (mips_expand_builtin_direct): Use create_output_operand and
5411         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
5412         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
5413         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
5414
5415 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
5416
5417         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
5418         function.
5419         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5420
5421 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5422
5423         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
5424         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
5425         basic blocks and call commit_edge_insertions directly.
5426         (fixup_abnormal_edges): Move from here to...
5427         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
5428         on the edges and return whether some have actually been inserted.
5429         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
5430         compensation code.
5431
5432 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
5433
5434         PR rtl-optimization/48144
5435         * sel-sched-ir.c (merge_history_vect): Factor out from ...
5436         (merge_expr_data): ... here.
5437         (av_set_intersect): Rename to av_set_code_motion_filter.
5438         Update all callers.  Call merge_history_vect when an expression
5439         is found in both sets.
5440         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
5441
5442 2011-03-26  Alan Modra  <amodra@gmail.com>
5443
5444         * config/rs6000/predicates.md (word_offset_memref_op): Handle
5445         cmodel medium addresses.
5446         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
5447         64-bit gpr loads and stores.
5448         (rs6000_secondary_reload_ppc64): New function.
5449         * config/rs6000/rs6000-protos.h: Declare it.
5450         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
5451
5452 2011-03-26  Alan Modra  <amodra@gmail.com>
5453
5454         PR target/47487
5455         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
5456         GNU Go in traceback table.
5457
5458 2011-03-25  Richard Henderson  <rth@redhat.com>
5459
5460         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
5461         if there are exactly 6 operands.
5462         (set_storage_via_setmem): Similarly.
5463
5464 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5465
5466         * collect2.c (write_c_file_stat): Handle backslash
5467         as right-hand directory separator.
5468         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
5469         checking just for slash.
5470         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
5471         instead of checking for trailing slash.
5472         * gcc.c (record_temp_file): Use filename_cmp instead
5473         of strcmp.
5474         (do_spec_1): Likewise.
5475         (replace_outfile_spec_function): Likewise.
5476         (is_directory): Use filename_ncmp instead of strncmp.
5477         (print_multilib_info): Likewise.
5478         * gcov.c (find_source): Use filename_cmp instead
5479         instead of strcmp.
5480         (make_gcov_file_name): Fix order of slash/backslash
5481         checks.
5482         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
5483         (add_standard_paths): Likewise.
5484         * mips-tfile.c (saber_stop): Handle backslash.
5485         * prefix.c (update_path): Use filename_ncmp instead of
5486         strncmp.
5487         * profile.c (output_location): Use filename_cmp instead
5488         of strcmp.
5489         * read-md.c (handle_toplevel_file): Handle backslash.
5490         * tlink.c (frob_extension):  Likewise.
5491         * tree-cfg.c (same_line_p): Use filename_cmp instead of
5492         strcmp.
5493         * tree-dump.c (dequeue_and_dump): Handle backslash.
5494         * tree.c (get_file_function_name): Likewise.
5495         * gengtype.c (read_input_list): Likewise.
5496         (get_file_realbasename): Likewise.
5497         (get_output_file_with_visibility): Use filename_cmp
5498         instead of strcmp.
5499
5500 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
5501
5502         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
5503         case to VFPv1.
5504
5505 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
5506
5507         * fold-const.c (expr_location_or): New function.
5508         (fold_truth_not_expr): Call it.
5509
5510 2011-03-25  Jeff Law  <law@redhat.com>
5511
5512         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
5513         va_end.
5514         * c-family/c-common.c (def_fn_type): Likewise.
5515         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
5516         * emit-rtl.c (gen_rtvec): Likewise.
5517         * lto/lto-lang.c (def_fn_type): Likewise.
5518
5519 2011-03-25  Richard Guenther  <rguenther@suse.de>
5520
5521         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
5522         also generate copies.
5523         (fini_copy_prop): Handle constant values properly.
5524
5525 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
5526
5527         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
5528         mode size instead of bitsize with DWARF2_ADDR_SIZE.
5529         (hash_loc_operands, compare_loc_operands): Handle
5530         DW_OP_GNU_entry_value.
5531
5532 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5533
5534         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
5535         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
5536         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
5537         comment and use macro TARGET_64BIT_MS_ABI instead.
5538         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
5539         and change default behavior for 32-bit MS_ABI.
5540         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
5541         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
5542         32-bit, too.
5543         (ix86_cfun_abi): Likewise.
5544         (ix86_maybe_switch_abi): Adjust comment.
5545         (init_cumulative_args): Check for bit-ness in MS_ABI case.
5546         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
5547         instead of checking for SYSV_ABI.
5548         (ix86_nsaved_sseregs): Likewise.
5549         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
5550         to 16 bytes.
5551         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
5552         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
5553         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
5554         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
5555         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
5556
5557 2011-03-25  Richard Guenther  <rguenther@suse.de>
5558
5559         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
5560         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5561         (verify_gimple): Remove.
5562         * tree-cfg.c (verify_gimple_call): Merge verification
5563         from verify_stmts.
5564         (verify_gimple_phi): Merge verification from verify_stmts.
5565         (verify_gimple_label): New function.
5566         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
5567         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
5568         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
5569         (verify_stmts): Rename to verify_gimple_in_cfg.
5570         (verify_gimple_in_cfg): New function.
5571         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
5572         * tree-ssa.c (verify_ssa): Likewise.
5573         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
5574
5575 2011-03-25  Richard Guenther  <rguenther@suse.de>
5576
5577         * passes.c (init_optimization_passes): Add FRE pass after
5578         early SRA.
5579
5580 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
5581             Andrew Stubbs  <ams@codesourcery.com>
5582
5583         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
5584         for Cortex-A8.
5585         (arm_movdi_vfp_cortexa8): New pattern.
5586         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
5587         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
5588         instructions when tuning for Cortex-A8.  Set attribute "arch".
5589         * config/arm/arm.md: Move include arm-tune.md up a bit.
5590         (define_attr "arch"): Add "onlya8" and "nota8" values.
5591         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
5592
5593 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
5594
5595         PR bootstrap/48282
5596         Revert:
5597         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5598
5599         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5600         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
5601         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5602         * passes.c (init_optimization_passes): Move
5603         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5604
5605 2011-03-25  Kai Tietz  <ktietz@redhat.com>
5606
5607         * c-typeck.c (comptypes_internal): Replace target
5608         hook call of comp_type_attributes by version in tree.c file.
5609         * gimple.c (gimple_types_compatible_p_1): Likewise.
5610         * tree-ssa.c (useless_type_conversion_p): Likewise.
5611         * tree.c (build_type_attribute_qual_variant): Likewise.
5612         (attribute_value_equal): New static helper function.
5613         (comp_type_attributes): New function.
5614         (merge_attributes): Use attribute_value_equal for comparison.
5615         (attribute_list_contained): Likewise.
5616         * tree.h (comp_type_attributes): New prototype.
5617
5618 2011-03-25  Richard Guenther  <rguenther@suse.de>
5619
5620         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
5621         of complex types at -O0.
5622         (verify_gimple_assign_binary): Likewise.
5623         (verify_gimple_assign_ternary): Likewise.
5624
5625 2011-03-24  Mark Wielaard  <mjw@redhat.com>
5626
5627         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
5628         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
5629
5630 2011-03-24  Mark Wielaard  <mjw@redhat.com>
5631
5632         PR debug/48041
5633         * dwarf2out.c (output_abbrev_section): Only write table when
5634         abbrev_die_table_in_use > 1.
5635
5636 2011-02-24  Richard Henderson  <rth@redhat.com>
5637
5638         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
5639         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
5640         (alpha_expand_unaligned_load_words): Use extql.
5641         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
5642         (emit_insxl): Handle all modes for consistency.
5643
5644 2011-02-24  Richard Henderson  <rth@redhat.com>
5645
5646         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
5647         (alpha_expand_unaligned_load): Likewise.
5648         (alpha_expand_unaligned_store): Likewise.
5649         (alpha_expand_unaligned_load_words): Likewise.
5650         (alpha_expand_unaligned_store_words): Likewise.
5651         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
5652         (alpha_split_lock_test_and_set_12): Likewise.
5653         (print_operand, alpha_fold_builtin_extxx): Likewise.
5654         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
5655         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
5656         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
5657         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
5658         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
5659         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
5660         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
5661         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
5662         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
5663         (extwl, extll, extql): Similarly.
5664         (inswh, inslh, insqh): Similarly.
5665         (mskbl, mskwl, mskll, mskql): Similarly.
5666         (mskwh, msklh, mskqh): Similarly.
5667
5668 2011-02-24  Richard Henderson  <rth@redhat.com>
5669
5670         * config/alpha/alpha.md (attribute isa): Add er, ner.
5671         (attribute enabled): Handle them.
5672         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
5673
5674 2011-02-24  Richard Henderson  <rth@redhat.com>
5675
5676         * config/alpha/alpha.md (attribute isa): Add vms.
5677         (attribute enabled): Handle it.
5678         (*movsf): Merge *movsf_{nofix,fix,nofp}.
5679         (*movdf): Merge *movdf_{nofix,fix,nofp}.
5680         (*movtf): Rename from *movtf_internal for consistency.
5681         (*movsi): Merge with *movsi_nt_vms.
5682         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
5683         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
5684         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
5685         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
5686
5687 2011-02-24  Richard Henderson  <rth@redhat.com>
5688
5689         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
5690         (extendqisi2, extendhisi2): Likewise.
5691         (extendqidi2): Simplify BWX/non-BWX expansions.
5692         (extendhidi2): Similarly.
5693
5694 2011-02-24  Richard Henderson  <rth@redhat.com>
5695
5696         * config/alpha/alpha.md (attribute isa): New.
5697         (attribute enabled): New.
5698         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
5699         (zero_extendqisi2, zero_extendqidi2): Similarly.
5700         (zero_extendhisi2, zero_extendhidi2): Similarly.
5701         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
5702
5703 2011-02-24  Richard Henderson  <rth@redhat.com>
5704
5705         * config/alpha/predicates.md (input_operand): Revert last change;
5706         update comment to mention 32-bit VMS rather than Windows.
5707
5708 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5709
5710         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
5711         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
5712         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
5713         * passes.c (init_optimization_passes): Move
5714         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
5715
5716 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5717
5718         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
5719
5720 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
5721
5722         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
5723         correctly.
5724
5725 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
5726
5727         PR debug/48204
5728         * simplify-rtx.c (simplify_const_unary_operation): Call
5729         real_convert when changing mode class with FLOAT_EXTEND.
5730
5731 2011-03-24  Nick Clifton  <nickc@redhat.com>
5732
5733         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
5734         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
5735         * config/rx/rx.c (rx_option_override): Set align_jumps,
5736         align_loops and align_labels if not set by the user.
5737         (rx_align_for_label): New function.
5738         (rx_max_skip_for_label): New function.
5739         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
5740         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
5741         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
5742         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
5743         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
5744
5745 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5746
5747         PR rtl-optimization/48263
5748         * optabs.c (expand_binop_directly): Reinstate convert_modes code
5749         and original commutative_p handling.  Use maybe_gen_insn.
5750
5751 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5752
5753         * reload.c (find_reloads_subreg_address): Add address_reloaded
5754         parameter and return true there if the full address has been
5755         reloaded.
5756         (find_reloads_toplev): Pass address_reloaded flag.
5757         (find_reloads_address_1): Don't use address_reloaded parameter.
5758
5759 2011-03-24  Jeff Law  <law@redhat.com>
5760
5761         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
5762         unused variable "ann".
5763         (remove_unused_locals): Likewise.
5764
5765         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
5766         statement.
5767
5768         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
5769         after it is freed.
5770
5771 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5772
5773         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
5774         for invalid symbolic addresses.
5775         (s390_secondary_reload): Don't use s390_check_symref_alignment for
5776         larl operands.
5777
5778 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5779
5780         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
5781         the argument in calls to fold_truth_not_expr.
5782
5783 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5784
5785         * tree.c (record_node_allocation_statistics): New function.
5786         (make_node_stat, copy_node_stat, build_string): Call it.
5787         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
5788         (build1_stat, build_omp_clause): Likewise.
5789
5790 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5791
5792         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
5793         last commit.
5794
5795 2011-03-24  Richard Guenther  <rguenther@suse.de>
5796
5797         PR tree-optimization/48271
5798         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
5799         blocks that still exist.
5800
5801 2011-03-24  Richard Guenther  <rguenther@suse.de>
5802
5803         PR tree-optimization/48270
5804         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
5805         not free datarefs before ddrs.
5806
5807 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
5808
5809         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
5810         from the address built for a reference with variable offset.
5811
5812 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
5813
5814         PR target/48237
5815         * config/i386/i386.md (*movdf_internal_rex64): Do not split
5816         alternatives that can be handled with movq or movabsq insn.
5817         (*movdf_internal): Disable for !TARGET_64BIT.
5818         (*movdf_internal_nointeger): Ditto.
5819         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
5820
5821 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
5822
5823         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
5824         (FUNCTION_ARG_ADVANCE): Likewise.
5825         * tm.texi.in: Change references to them to hook references.
5826         * tm.texi: Regenerate.
5827         * targhooks.c (default_function_arg): Eliminate check for target macro.
5828         (default_function_incoming_arg): Likewise.
5829         (default_function_arg_advance): Likewise.
5830         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
5831         (function_arg_advance): Likewise.
5832         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
5833
5834 2011-03-24  Richard Guenther  <rguenther@suse.de>
5835
5836         PR middle-end/48269
5837         * tree-object-size.c (addr_object_size): Do not double-account
5838         for MEM_REF offsets.
5839
5840 2011-03-24  Diego Novillo  <dnovillo@google.com>
5841
5842         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
5843         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
5844         (lto_input_data_block): Move from lto-opts.c.  Make extern.
5845         Update all users.
5846         (lto_input_string): Rename from input_string.  Make extern.
5847         Update all users.
5848         * lto-streamer-out.c (lto_output_string_with_length): Rename from
5849         output_string_with_length.
5850         Output 0 to indicate a non-NULL string.  Update all callers to
5851         not emit 0.
5852         (lto_output_string): Rename from output_string.  Make extern.
5853         Update all users.
5854         (lto_output_decl_state_streams): Make extern.
5855         (lto_output_decl_state_refs): Make extern.
5856         * lto-streamer.h (lto_input_string): Declare.
5857         (lto_input_data_block): Declare.
5858         (lto_output_string): Declare.
5859         (lto_output_string_with_length): Declare.
5860         (lto_output_decl_state_streams): Declare.
5861         (lto_output_decl_state_refs): Declare.
5862
5863 2011-03-24  Richard Guenther  <rguenther@suse.de>
5864
5865         PR tree-optimization/46562
5866         * tree.c (build_invariant_address): New function.
5867         * tree.h (build_invariant_address): Declare.
5868         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
5869         a renamed function moved ...
5870         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
5871         Take valueization callback parameter.
5872         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
5873         * gimple-fold.h: New file.
5874         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
5875         (ccp_fold, fold_const_aggregate_ref,
5876         fold_ctor_reference, fold_nonarray_ctor_reference,
5877         fold_array_ctor_reference, fold_string_cst_ctor_reference,
5878         get_base_constructor): Move ...
5879         * gimple-fold.c: ... here.
5880         (gimple_fold_stmt_to_constant_1): New function
5881         split out from ccp_fold.  Take a valueization callback parameter.
5882         Valueize all operands.
5883         (gimple_fold_stmt_to_constant): New wrapper function.
5884         (fold_const_aggregate_ref_1): New function split out from
5885         fold_const_aggregate_ref.  Take a valueization callback parameter.
5886         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
5887         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
5888         invariant POINTER_PLUS_EXPRs to invariant form.
5889         (vn_valueize): New function.
5890         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
5891         * tree-vrp.c (vrp_valueize): New function.
5892         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
5893         to fold statements to constants.
5894         * tree-ssa-pre.c (eliminate): Properly guard propagation of
5895         function declarations.
5896         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
5897         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
5898
5899 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
5900
5901         * config/h8300/predicates.md (jump_address_operand): Fix register
5902         mode check.
5903
5904 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
5905
5906         * doc/invoke.texi (max-stores-to-sink): Document.
5907         * params.h (MAX_STORES_TO_SINK): Define.
5908         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
5909         if either vectorization or if-conversion is disabled.
5910         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
5911         tree-vect-data-refs.c vect_equal_offsets.
5912         (dr_equal_offsets_p): New function.
5913         (find_data_references_in_bb): Remove static.
5914         * tree-data-ref.h (find_data_references_in_bb): Declare.
5915         (dr_equal_offsets_p): Likewise.
5916         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
5917         (vect_drs_dependent_in_basic_block): Update calls to
5918         vect_equal_offsets.
5919         (vect_check_interleaving): Likewise.
5920         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
5921         (cond_if_else_store_replacement): Rename to...
5922         (cond_if_else_store_replacement_1): ... this.  Change arguments and
5923         documentation.
5924         (cond_if_else_store_replacement): New function.
5925         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
5926         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
5927
5928 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
5929
5930         PR target/46934
5931         * config/arm/arm.md (casesi): Use the gen_int_mode() function
5932         to subtract lower bound instead of GEN_INT().
5933
5934 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
5935
5936         PR other/48179
5937         PR other/48221
5938         PR other/48234
5939         * doc/extend.texi (Alignment): Move section to match order in TOC.
5940         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
5941         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
5942
5943 2011-03-23  Jeff Law  <law@redhat.com>
5944
5945         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
5946         before removing the edge.
5947
5948         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
5949         it may have been freed by redirect_branch_edge or
5950         redirect_edge_succ_nodup.
5951
5952 2011-03-23  Richard Guenther  <rguenther@suse.de>
5953
5954         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
5955         (check_va_list_escapes): Likewise.
5956         (check_all_va_list_escapes): Likewise.
5957
5958 2011-03-23  Richard Guenther  <rguenther@suse.de>
5959
5960         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
5961         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
5962         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
5963         (alias.o): Likewise.
5964         (ipa-type-escape.o): Remove.
5965         (ipa-struct-reorg.o): Likewise.
5966         (GTFILES): Remove ipa-struct-reorg.c.
5967         * alias.c: Do not include ipa-type-escape.h.
5968         * tree-ssa-alias.c: Likewise.
5969         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
5970         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
5971         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
5972         and ipa-type-escape passes.
5973         * tree-pass.h (pass_ipa_type_escape): Remove.
5974         (pass_ipa_struct_reorg): Likewise.
5975         * ipa-struct-reorg.h: Remove.
5976         * ipa-struct-reorg.c: Likewise.
5977         * ipa-type-escape.h: Likewise.
5978         * ipa-type-escape.c: Likewise.
5979         * doc/invoke.texi (-fipa-struct-reorg): Remove.
5980         (--param struct-reorg-cold-struct-ratio): Likewise.
5981         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5982         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
5983         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
5984
5985 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5986
5987         * config/s390/2084.md: Enable all insn reservations also for z9_ec
5988         cpu attribute value.
5989         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
5990         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
5991         * config/s390/s390.c (processor_flags_table): New constant array.
5992         (s390_handle_arch_option): Remove.
5993         (s390_handle_option): Remove s390_handle_arch_option invocations
5994         and OPT_mwarn_framesize_ handling.
5995         (s390_option_override): Remove s390_handle_arch_option invocation.
5996         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
5997         warnings.
5998         * config/s390/s390.md (cpu attribute): Add z9_ec value.
5999         * config/s390/s390.opt (s390_tune, s390_arch)
6000         (march=): Replace s390_arch_option enum and values with
6001         processor_type.  Set variable name to s390_arch.  Set
6002         initialization value.
6003         (mtune=): Replace s390_arch_option with processor_type.  Set
6004         variable name to s390_tune.  Set initialization value.
6005
6006 2011-03-23  Julian Brown  <julian@codesourcery.com>
6007
6008         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
6009         accesses which are not naturally aligned.
6010
6011 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
6012
6013         PR target/47553
6014         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
6015
6016 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
6017
6018         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
6019         parameter from "int" to "enum insn_code".
6020         (expand_operand_type): New enum.
6021         (expand_operand): New structure.
6022         (create_expand_operand): New function.
6023         (create_fixed_operand, create_output_operand): Likewise
6024         (create_input_operand, create_convert_operand_to): Likewise.
6025         (create_convert_operand_from, create_address_operand): Likewise.
6026         (create_integer_operand): Likewise.
6027         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
6028         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6029         (expand_insn, expand_jump_insn): Likewise.
6030         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
6031         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
6032         (expand_movstr, expand_builtin___clear_cache): Likewise.
6033         (expand_builtin_lock_release): Likewise.
6034         * explow.c (allocate_dynamic_stack_space): Likewise.
6035         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
6036         and use the default handling in that case.
6037         * expmed.c (check_predicate_volatile_ok): Delete.
6038         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
6039         (emit_cstore): Likewise.
6040         * expr.c (emit_block_move_via_movmem): Likewise.
6041         (set_storage_via_setmem, expand_assignment): Likewise.
6042         (emit_storent_insn, try_casesi): Likewise.
6043         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
6044         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
6045         (expand_vec_shift_expr, expand_binop_directly): Likewise.
6046         (expand_twoval_unop, expand_twoval_binop): Likewise.
6047         (expand_unop_direct, emit_indirect_jump): Likewise.
6048         (emit_conditional_move, vector_compare_rtx): Likewise.
6049         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
6050         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
6051         (expand_sync_lock_test_and_set): Likewise.
6052         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
6053         (emit_unop_insn): Likewise.
6054         (expand_copysign_absneg): Change icode to an insn_code.
6055         (create_convert_operand_from_type): New function.
6056         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
6057         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6058         (expand_insn, expand_jump_insn): Likewise.
6059         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
6060         than const_int_operand for operand 2.
6061
6062 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6063
6064         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
6065         if possible.
6066
6067 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6068
6069         * emit-rtl.c (emit_pattern_before_noloc): New function.
6070         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
6071         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
6072         (emit_pattern_after_noloc): New function.
6073         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
6074         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
6075
6076 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6077
6078         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
6079         (__ffsDI2): Likewise.
6080
6081 2011-03-22  Richard Henderson  <rth@redhat.com>
6082
6083         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
6084         of !TARGET_ABI_OPEN_VMS.
6085         (alpha_trampoline_init, alpha_start_function): Likewise.
6086         (alpha_expand_epilogue, alpha_file_start): Likewise.
6087         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
6088         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
6089         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
6090         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
6091         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
6092
6093 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6094
6095         * config/s390/s390-opts.h: New.
6096         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
6097         s390_arch_flags, s390_warn_framesize, s390_stack_size,
6098         s390_stack_guard): Remove.
6099         (s390_handle_arch_option): Return void.  Take enum
6100         s390_arch_option value instead of string and searching array.
6101         (s390_handle_option): Don't assert that global structures are in
6102         use.  Access variables via opts pointer.  Use error_at.  Don't use
6103         sscanf for -mstack-guard= or -mstack-size=.  Update call to
6104         s390_handle_arch_option.
6105         (s390_option_override): Update call to s390_handle_arch_option.
6106         (s390_emit_prologue): Use %d format for s390_stack_size in
6107         diagnostic.  Use %wd for HOST_WIDE_INT.
6108         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
6109         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
6110         * config/s390/s390.opt (config/s390/s390-opts.h): New
6111         HeaderInclude entry.
6112         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
6113         s390_arch_flags, s390_warn_framesize): New Variable entries.
6114         (s390_arch_option): New Enum and EnumValue entries.
6115         (march=): Use Enum instead of Var.
6116         (mstack-guard=, mstack-size=): Use UInteger and Var.
6117         (mtune=): Use Enum.
6118
6119 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6120
6121         * config/score/score.c (score_handle_option): Don't assert that
6122         global structures are in use.  Access target_flags via opts
6123         pointer.  Use value of -march= option to determine target_flags
6124         settings.
6125         * config/score/score.opt (march=): Use Enum.
6126         (score_arch): New Enum and EnumValue entries.
6127
6128 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6129
6130         * config/mep/mep.c (option_mtiny_specified): Remove.
6131         (mep_option_override): Move register handling for -mivc2 from
6132         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
6133         instead of option_mtiny_specified.
6134         (mep_handle_option): Access target_flags via opts pointer.  Don't
6135         assert that global structures are in use.  Defer part of -mivc2
6136         handling and move it to mep_option_override.
6137         * config/mep/mep.opt (IVC2): New Mask entry.
6138         (mivc2): Use Var and Defer instead of Mask.
6139
6140 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6141
6142         * config/v850/v850-opts.h: New.
6143         * config/v850/v850.c (small_memory): Replace with
6144         small_memory_physical_max array.  Make that array static const.
6145         (v850_handle_memory_option): Take integer value of argument.  Take
6146         gcc_options pointer, option text and location.  Return void.
6147         Update for changes to small memory structures.
6148         (v850_handle_option): Access target_flags via opts pointer.  Don't
6149         assert that global structures are in use.  Update calls to
6150         v850_handle_memory_option.
6151         (v850_encode_data_area): Update references to small memory settings.
6152         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
6153         (enum small_memory_type): Move to v850-opts.h.
6154         * config/v850/v850.opt (config/v850/v850-opts.h): New
6155         HeaderInclude entry.
6156         (small_memory_max): New Variable entry.
6157         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
6158         (mtda, mzda): Likewise.
6159
6160 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6161
6162         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
6163         pointer.  Don't assert that global structures are in use.
6164
6165 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6166
6167         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
6168         via opts pointer.  Don't assert that global structures are in use.
6169
6170 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6171
6172         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
6173         (munix=93): Use Var.
6174         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
6175         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
6176         * config/pa/pa-opts.h: New.
6177         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
6178         (pa_handle_option): Don't assert that global structures are in
6179         use.  Access target_flags via opts pointer.  Don't handle
6180         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
6181         OPT_munix_98 here.
6182         (pa_option_override): Handle deferred OPT_mfixed_range_.
6183
6184 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6185
6186         * config/mn10300/mn10300-opts.h: New.
6187         * config/mn10300/mn10300.c (mn10300_processor,
6188         mn10300_tune_string): Remove.
6189         (mn10300_handle_option): Don't assert that global structures are
6190         in use.  Access mn10300_processor via opts pointer.  Don't handle
6191         OPT_mtune_ here.
6192         * config/mn10300/mn10300.h (enum processor_type): Move to
6193         mn10300-opts.h.
6194         (mn10300_processor): Remove.
6195         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
6196         HeaderInclude entry.
6197         (mn10300_processor): New Variable entry.
6198         (mtune=): Use Var.
6199
6200 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6201
6202         * config/microblaze/microblaze.c: Don't include opts.h.
6203         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
6204         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
6205         (mno-clearbss): Use Var and Warn.
6206
6207 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6208
6209         * config/m32r/m32r-opts.h: New.
6210         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
6211         (m32r_handle_option): Don't assert that global structures are in
6212         use.  Access target_flags and m32r_cache_flush_func via opts
6213         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
6214         OPT_mno_flush_trap here.
6215         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
6216         include of m32r-opts.h.
6217         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
6218         HeaderInclude entry.
6219         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
6220         (mmodel=): Use Enum and Var.
6221         (m32r_model): New Enum and EnumValue entries.
6222         (mno-flush-trap): Use Var.
6223         (msdata=): Use Enum and Var.
6224         (m32r_sdata): New Enum and EnumValue entries.
6225
6226 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6227
6228         * config/m32c/m32c.c: Don't include opts.h.
6229         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
6230         m32c_handle_option): Remove.
6231         (m32c_option_override): Check global_options_set.x_target_memregs
6232         instead of target_memregs_set.
6233         * config/m32c/m32c.h (target_memregs): Remove.
6234         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
6235         variable.
6236
6237 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6238
6239         * config/iq2000/iq2000-opts.h: New.
6240         * config/iq2000/iq2000.c: Don't include opts.h.
6241         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
6242         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
6243         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
6244         HeaderInclude entry.
6245         (iq2000_tune): New Variable entry.
6246         (march=): Add comment.  Use Enum.
6247         (iq2000_arch): New Enum and EnumValue entries.
6248         (mcpu=): Use Enum and Var.
6249         (iq2000_tune): New Enum and EnumValue entries.
6250
6251 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6252
6253         * config/ia64/ia64-opts.h: New.
6254         * config/ia64/ia64.c (ia64_tune): Remove.
6255         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
6256         here.  Use error_at.
6257         (ia64_option_override): Handle deferred OPT_mfixed_range_.
6258         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
6259         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
6260         HeaderInclude entry.
6261         (ia64_tune): New Variable entry.
6262         (mfixed-range=): Use Defer and Var.
6263         (mtune=): Use Enum and Var.
6264         (ia64_tune): New Enum and EnumValue entries.
6265
6266 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6267
6268         * config/frv/frv-opts.h: New.
6269         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
6270         frv-opts.h.
6271         (frv_cpu_type): Remove.
6272         * config/frv/frv.c: Don't include opts.h.
6273         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
6274         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
6275         (frv_cpu_type): New Variable entry.
6276         (frv_cpu): New Enum and EnumValue entries.
6277
6278 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6279
6280         * config/cris/cris.c (cris_handle_option): Access target_flags via
6281         opts pointer.  Don't assert that global structures are in use.
6282         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
6283         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
6284
6285 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6286
6287         * config/bfin/bfin-opts.h: New.
6288         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
6289         bfin_si_revision, bfin_workarounds): Remove.
6290         (bfin_cpus): Make static const.
6291         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
6292         not bfin_lib_id_given.
6293         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
6294         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
6295         pointer. Use error_at.  Don't assert that global structures are in use.
6296         * config/bfin/bfin.h: Include bfin-opts.h.
6297         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
6298         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
6299         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
6300         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
6301         entries.
6302
6303 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6304
6305         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
6306         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
6307         or -msoft-float here.
6308         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
6309         -msoft-float and -mhard-float.
6310         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
6311         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6312         msoft-float.
6313         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
6314         -msoft-float.
6315         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
6316         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
6317         not mhard-float.
6318         (LIBGCC_SPEC): Don't handle -msoft-float.
6319         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
6320         -mhard-float.
6321         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6322         msoft-float.
6323         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
6324         -mfloat-abi=*, not -msoft-float and -mhard-float.
6325         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
6326         -msoft-float.
6327         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
6328         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
6329         mhard-float and msoft-float.
6330         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
6331         mfloat-abi=soft in comments, not mhard-float and msoft-float.
6332         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6333         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
6334         mhard-float.
6335         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
6336         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
6337         msoft-float.
6338         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
6339         not mhard-float.
6340         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
6341         not msoft-float.
6342
6343 2011-03-22  Richard Henderson  <rth@redhat.com>
6344
6345         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
6346         TARGET_ABI_WINDOWS_NT.
6347         (alpha_output_function_end_prologue): Likewise.
6348         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
6349         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6350         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
6351         (trap, *movsi_nt_vms): Likewise.
6352         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
6353         (*tablejump_osf_nt_internal): Remove.
6354         * config/alpha/predicates.md (input_operand): Only test Pmode.
6355
6356 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6357
6358         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
6359         via opts pointer.  Use error_at.  Don't assert that global
6360         structures are in use.
6361
6362 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6363
6364         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
6365         (ix86_handle_option): Access ix86_isa_flags and
6366         ix86_isa_flags_explicit via opts pointer.  Don't assert that
6367         global structures are in use.
6368         (ix86_function_specific_save, ix86_function_specific_restore):
6369         Update ix86_isa_flags_explicit field name.
6370         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
6371         (ix86_isa_flags_explicit): Rename TargetSave entry to
6372         x_ix86_isa_flags_explicit.
6373
6374 2011-03-22  Richard Henderson  <rth@redhat.com>
6375
6376         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
6377         (alpha_option_override, direct_return): Likewise.
6378         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
6379         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
6380         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
6381         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
6382         (alpha_expand_epilogue, alpha_end_function): Likewise.
6383         (alpha_init_libfuncs): Likewise.
6384         (struct machine_function): Remove unicosmk members.
6385         (print_operand) ['t']: Remove.
6386         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
6387         unicosmk_output_module_name, unicosmk_output_common,
6388         current_section_align, unicosmk_output_text_section_asm_op,
6389         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
6390         unicosmk_section_type_flags, unicosmk_unique_section,
6391         unicosmk_asm_named_section, unicosmk_insert_attributes,
6392         unicosmk_output_align, unicosmk_defer_case_vector,
6393         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
6394         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
6395         unicosmk_output_ssib, unicosmk_add_call_info_word,
6396         unicosmk_extern_head, unicosmk_output_default_externs,
6397         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
6398         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
6399         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
6400         * config/alpha/alpha-protos.h: Update.
6401         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
6402         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
6403         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
6404         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
6405         (*mulsi_se, mulvsi3): Likewise.
6406         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
6407         (*divmodsi_internal, call, call_value, realign): Likewise.
6408         (moddi3, umoddi3): Likewise; remove duplicate expander.
6409         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
6410         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
6411         (*movdi_nofix): Remove r/U alternative.
6412         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
6413         * config/alpha/constraints.md ("U"): Remove.
6414         * config/alpha/predicates.md (call_operand"): Don't test
6415         TARGET_ABI_UNICOSMK.
6416
6417 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6418
6419         * target.def (handle_option): Take gcc_options and
6420         cl_decoded_option pointers and location_t.
6421         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
6422         * doc/tm.texi: Regenerate.
6423         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
6424         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
6425         * lto-opts.c (lto_reissue_options): Generate option structure for
6426         targetm.handle_option call.
6427         * opts.c (target_handle_option): Update call to
6428         targetm.handle_option.  Remove assertions about values now passed
6429         down to hook.
6430         * targhooks.c (default_target_handle_option): New.
6431         * targhooks.h (default_target_handle_option): Declare.
6432         * config/alpha/alpha.c: Include opts.h.
6433         (alpha_handle_option): Update to new hook interface.
6434         * config/arm/arm.c: Include opts.h.
6435         (arm_handle_option): Update to new hook interface.
6436         * config/arm/t-arm (arm.o): Update dependencies.
6437         * config/bfin/bfin.c: Include opts.h.
6438         (bfin_handle_option): Update to new hook interface.
6439         * config/cris/cris.c: Include opts.h.
6440         (cris_handle_option): Update to new hook interface.
6441         * config/frv/frv.c: Include opts.h.
6442         (frv_handle_option): Update to new hook interface.
6443         * config/i386/i386.c: Include opts.h.
6444         (ix86_handle_option): Update to new hook interface.
6445         (ix86_valid_target_attribute_inner_p): Generate option structure
6446         for call to ix86_handle_option.
6447         * config/i386/t-i386 (i386.o): Update dependencies.
6448         * config/ia64/ia64.c: Include opts.h.
6449         (ia64_handle_option): Update to new hook interface.
6450         * config/ia64/t-ia64 (ia64.o): Update dependencies.
6451         * config/iq2000/iq2000.c: Include opts.h.
6452         (iq2000_handle_option): Update to new hook interface.
6453         * config/m32c/m32c.c: Include opts.h.
6454         (m32c_handle_option): Update to new hook interface.
6455         * config/m32r/m32r.c: Include opts.h.
6456         (m32r_handle_option): Update to new hook interface.
6457         * config/m68k/m68k.c: Include opts.h.
6458         (m68k_handle_option): Update to new hook interface.
6459         * config/mep/mep.c: Include opts.h.
6460         (mep_handle_option): Update to new hook interface.
6461         * config/microblaze/microblaze.c: Include opts.h.
6462         (microblaze_handle_option): Update to new hook interface.
6463         * config/mips/mips.c: Include opts.h.
6464         (mips_handle_option): Update to new hook interface.
6465         * config/mn10300/mn10300.c: Include opts.h.
6466         (mn10300_handle_option): Update to new hook interface.
6467         * config/pa/pa.c: Include opts.h.
6468         (pa_handle_option): Update to new hook interface.
6469         * config/pdp11/pdp11.c: Include opts.h.
6470         (pdp11_handle_option): Update to new hook interface.
6471         * config/rs6000/rs6000.c: Include opts.h.
6472         (rs6000_handle_option): Update to new hook interface.
6473         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
6474         * config/rx/rx.c: Include opts.h.
6475         (rx_handle_option): Update to new hook interface.
6476         * config/s390/s390.c: Include opts.h.
6477         (s390_handle_option): Update to new hook interface.
6478         * config/score/score.c: Include opts.h.
6479         (score_handle_option): Update to new hook interface.
6480         * config/sh/sh.c: Include opts.h.
6481         (sh_handle_option): Update to new hook interface.
6482         * config/sparc/sparc.c: Include opts.h.
6483         (sparc_handle_option): Update to new hook interface.
6484         * config/v850/v850.c: Include opts.h.
6485         (v850_handle_option): Update to new hook interface.
6486
6487 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6488
6489         * gcc.c (driver_unknown_option_callback): Only permit and save
6490         unknown -Wno- options.
6491         (driver_wrong_lang_callback): Save options directly instead of via
6492         driver_unknown_option_callback.
6493
6494 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
6495
6496         * combine.c (simplify_set): Try harder to find the best CC mode when
6497         simplifying a nested COMPARE on the RHS.
6498
6499 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
6500
6501         * config/alpha/gnu.h: Remove.
6502         * config/arc: Remove directory.
6503         * config/arm/netbsd.h: Remove.
6504         * config/arm/t-pe: Remove.
6505         * config/crx: Remove directory.
6506         * config/i386/netbsd.h: Remove.
6507         * config/m68hc11: Remove directory.
6508         * config/m68k/uclinux-oldabi.h: Remove.
6509         * config/mcore/mcore-pe.h: Remove.
6510         * config/mcore/t-mcore-pe: Remove.
6511         * config/netbsd-aout.h: Remove.
6512         * config/rs6000/gnu.h: Remove.
6513         * config/sh/sh-symbian.h: Remove.
6514         * config/sh/symbian-base.c: Remove.
6515         * config/sh/symbian-c.c: Remove.
6516         * config/sh/symbian-cxx.c: Remove.
6517         * config/sh/symbian-post.h: Remove.
6518         * config/sh/symbian-pre.h: Remove.
6519         * config/sh/t-symbian: Remove.
6520         * config/svr3.h: Remove.
6521         * config/vax/netbsd.h: Remove.
6522         * config.build: Don't handle i[34567]86-*-pe.
6523         * config.gcc: Remove handling of deprecations for most deprecated
6524         targets.
6525         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
6526         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
6527         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
6528         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
6529         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
6530         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
6531         Remove cases.
6532         * config.host: Don't handle i[34567]86-*-pe.
6533         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
6534         (ASM_SPEC32): Don't handle -mcall-gnu.
6535         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
6536         -mcall-gnu.
6537         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
6538         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
6539         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
6540         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
6541         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
6542         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
6543         conditional on SYMBIAN.
6544         * configure.ac: Don't handle powerpc*-*-gnu*.
6545         * configure: Regenerate.
6546         * doc/extend.texi (interrupt attribute): Don't mention CRX.
6547         * doc/install-old.texi (m6811, m6812): Don't mention.
6548         * doc/install.texi (arc-*-elf*): Don't document multilib option.
6549         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
6550         (m68k-uclinuxoldabi): Don't mention.
6551         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
6552         Remove.
6553         (-mcall-gnu): Remove.
6554         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
6555         families): Remove constraint documentation.
6556
6557 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
6558
6559         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
6560         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
6561         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
6562
6563 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
6564
6565         * config/avr/avr-protos.h (expand_epilogue): Change prototype
6566         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
6567         * config/avr/avr.c (init_cumulative_args)
6568         (avr_function_arg_advance): Use it.
6569         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
6570         sibcall epilogues.
6571         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
6572         (avr_function_ok_for_sibcall): ...this new function.
6573         (avr_lookup_function_attribute1): New static Function.
6574         (avr_naked_function_p, interrupt_function_p)
6575         (signal_function_p, avr_OS_task_function_p)
6576         (avr_OS_main_function_p): Use it.
6577         * config/avr/avr.md ("sibcall", "sibcall_value")
6578         ("sibcall_epilogue"): New expander.
6579         ("*call_insn", "*call_value_insn"): New insn.
6580         ("call_insn", "call_value_insn"): Remove
6581         ("call", "call_value", "epilogue"): Change expander to handle
6582         sibling calls.
6583
6584 2011-03-21  Nick Clifton  <nickc@redhat.com>
6585
6586         * doc/invoke.texi (Overall Options): Move closing brace to end of
6587         options list.
6588         (Optimization Options): Add missing @gol.
6589         (Directory Options): Likewise.
6590         (i386 and x86-64 Options): Likewise.
6591         (RS6000 and PowerPC Options): Likewise.
6592         (i386 and x86-64 Windows Options): Likewise.
6593         (V850 Options): Add text missing from descriptions.
6594
6595 2011-03-22  Richard Henderson  <rth@redhat.com>
6596
6597         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
6598         (avr_incoming_return_addr_rtx): New.
6599         (emit_push_byte): New.
6600         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
6601         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
6602         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
6603         (emit_pop_byte): New.
6604         (expand_epilogue): Use it.  Pop frame pointer by bytes.
6605         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
6606         (INCOMING_RETURN_ADDR_RTX): New.
6607         (INCOMING_FRAME_SP_OFFSET): New.
6608         (ARG_POINTER_CFA_OFFSET): New.
6609         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
6610         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
6611         (pophi): Remove.
6612
6613         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
6614
6615 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6616
6617         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6618         (FUNCTION_ARG_ADVANCE): Likewise.
6619         * tm.texi.in: Change references to them to hook references.
6620         * tm.texi: Regenerate.
6621         * targhooks.c (default_function_arg): Eliminate check for target
6622         macro.
6623         (default_function_incoming_arg): Likewise.
6624         (default_function_arg_advance): Likewise.
6625         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
6626         (function_arg_advance): Likewise.
6627         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6628
6629 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
6630
6631         * tree.c (build_call_1): New function.
6632         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
6633
6634 2011-03-22  Richard Guenther  <rguenther@suse.de>
6635
6636         PR tree-optimization/48228
6637         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
6638         for single-arg PHIs.
6639
6640 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
6641
6642         PR rtl-optimization/48143
6643         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
6644         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
6645         sse2_cvtps2pd): Likewise.
6646
6647 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6648
6649         * recog.c (canonicalize_change_group): Use validate_unshare_change.
6650
6651 2011-03-22  Richard Guenther  <rguenther@suse.de>
6652
6653         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
6654         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
6655         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
6656         and REALIGN_LOAD_EXPR.
6657         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
6658         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
6659         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
6660         DOT_PROD_EXPR case ...
6661         (expand_expr_real_2): ... here.
6662         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
6663         and REALIGN_LOAD_EXPR.
6664         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
6665         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
6666         (vect_create_epilog_for_reduction): Likewise.
6667         (vectorizable_reduction): Likewise.
6668         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
6669         * tree-vect-stmts.c (vectorizable_load): Likewise.
6670
6671 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
6672
6673         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
6674
6675 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6676
6677         * config/s390/s390.c (s390_delegitimize_address): Fix offset
6678         handling for PLTOFF/GOTOFF.
6679
6680 2011-03-22  Nick Clifton  <nickc@redhat.com>
6681
6682         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
6683         trailing backslash from the end of the macro definition.
6684
6685 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6686
6687         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
6688         and PLT unspecs.
6689
6690 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
6691
6692         * expr.h (prepare_operand): Move to...
6693         * optabs.h (prepare_operand): ...here and change the insn code
6694         parameter from "int" to "enum insn_code".
6695         (insn_operand_matches): Declare.
6696         * expr.c (init_expr_target): Use insn_operand_matches.
6697         (compress_float_constant): Likewise.
6698         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
6699         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
6700         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
6701         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
6702         Likewise.
6703         (gen_cond_trap): Likewise.
6704         (prepare_operand): Likewise.  Change icode to an insn_code.
6705         (insn_operand_matches): New function.
6706         * reload.c (find_reloads_address_1): Use insn_operand_matches.
6707         * reload1.c (gen_reload): Likewise.
6708         * targhooks.c (default_secondary_reload): Likewise.
6709
6710 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
6711
6712         * config/alpha/alpha.md (unspec): New define_c_enum.
6713         (unspecv): Ditto.
6714
6715 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
6716
6717         PR debug/48214
6718         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
6719         between a call and its CALL_ARG_LOCATION note.
6720
6721 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
6722
6723         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
6724
6725 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
6726
6727         PR c/42544
6728         PR c/48197
6729         * c-common.c (shorten_compare): If primopN is first sign-extended
6730         to opN and then zero-extended to result type, set primopN to opN.
6731
6732 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
6733
6734         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
6735         for barrier handlers.
6736
6737 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6738
6739         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
6740         UNSPEC constants to be in the unspec enumeration, and redefine
6741         all UNSPECV constants to be in the unspecv enumeration, so that
6742         dumps print which unspec/unspec_volatile this is.
6743         * config/rs6000/vector.md (UNSPEC_*): Ditto.
6744         * config/rs6000/paired.md (UNSPEC_*): Ditto.
6745         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
6746         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
6747         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
6748
6749         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
6750         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
6751         UNSPECV_LWSYNC, since these are used as unspec_volatile.
6752         * config/rs6000/sync.md (isync, lwsync): Ditto.
6753
6754 2011-03-21  Richard Guenther  <rguenther@suse.de>
6755
6756         * params.def (lto-min-partition): Fix typo.
6757
6758 2011-03-21  Richard Guenther  <rguenther@suse.de>
6759
6760         PR c/47939
6761         * c-decl.c (grokdeclarator): Drop to the main variant only
6762         for array types.  Drop flag_gen_aux_info check.
6763
6764 2011-03-21  Richard Guenther  <rguenther@suse.de>
6765
6766         PR translation/47911
6767         * params.def (lto-partitions): Fix typo.
6768         (lto-min-partition): Fix wording.
6769
6770 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
6771
6772         * config/rs6000/t-freebsd: Remove duplication from file.
6773
6774 2011-03-21  Richard Guenther  <rguenther@suse.de>
6775
6776         PR middle-end/47661
6777         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
6778
6779 2011-03-21  Richard Guenther  <rguenther@suse.de>
6780
6781         PR lto/48210
6782         * params.def (lto-partitions): Require at least 1 partition.
6783
6784 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6785
6786         * gthr-solaris.h: Remove.
6787         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
6788         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
6789         (LIB_SPEC): Likewise.
6790         * config/sol2.opt (threads): Remove.
6791         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
6792         (sparc*-*-solaris2*): Likewise.
6793         * configure.ac (enable_threads): Enable solaris support.
6794         * configure: Regenerate.
6795         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
6796         * doc/install.texi (Configuration, --enable-threads=lib): Remove
6797         solaris.
6798
6799 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6800
6801         * config.gcc: Obsolete *-*-solaris2.8*.
6802         * doc/install.texi (Specific, *-*-solaris2*): Document it.
6803
6804 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6805
6806         PR bootstrap/48135
6807         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
6808         reference.  Solaris 8 perl works.
6809
6810 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6811
6812         PR bootstrap/48135
6813         * doc/install.texi (Prerequisites): Move jar etc. up.
6814         Explain support library version requirements.
6815
6816 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6817
6818         PR bootstrap/48135
6819         * doc/install.texi (Prerequisites): Move Perl to build
6820         requirements.  Always necessary on Solaris 2 with Sun ld.
6821
6822 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6823
6824         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
6825         binutils 2.21.
6826         (Specific, i?86-*-solaris2.[89]): Likewise.
6827         (Specific, i?86-*-solaris2.10): Likewise.
6828         (Specific, mips-sgi-irix6): Likewise.
6829         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
6830         Update for binutils 2.21.
6831
6832 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6833
6834         * configure.ac (gcc_cv_lto_plugin): Fix typo.
6835         Allow -fuse-linker-plugin for non-default plugin linker.
6836         * configure: Regenerate.
6837
6838 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6839
6840         PR bootstrap/48167
6841         * gengtype.c (files_rules): Added rule for cp/parser.h.
6842
6843 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
6844
6845         PR target/48213
6846         * config/s390/s390.c (s390_delegitimize_address): Don't call
6847         lowpart_subreg if orig_x has BLKmode.
6848
6849 2011-03-21  Kai Tietz  <ktietz@redhat.com>
6850
6851         PR target/12171
6852         * doc/plugins.texi: Adjust documentation for plugin register_callback.
6853         * tree.h (attribute_spec): Add new member affects_type_identity.
6854         * attribs.c (empty_attribute_table): Adjust attribute_spec
6855         initializers.
6856         * config/alpha/alpha.c: Likewise.
6857         * config/arc/arc.c: Likewise.
6858         * config/arm/arm.c: Likewise.
6859         * config/avr/avr.c: Likewise.
6860         * config/bfin/bfin.c: Likewise.
6861         * config/crx/crx.c: Likewise.
6862         * config/darwin.h: Likewise.
6863         * config/h8300/h8300.c: Likewise.
6864         * config/i386/cygming.h: Likewise.
6865         * config/i386/i386.c: Likewise.
6866         * config/ia64/ia64.c: Likewise.
6867         * config/m32c/m32c.c: Likewise.
6868         * config/m32r/m32r.c: Likewise.
6869         * config/m68hc11/m68hc11.c: Likewise.
6870         * config/m68k/m68k.c: Likewise.
6871         * config/mcore/mcore.c: Likewise.
6872         * config/mep/mep.c: Likewise.
6873         * config/microblaze/microblaze.c: Likewise.
6874         * config/mips/mips.c: Likewise.
6875         * config/rs6000/rs6000.c: Likewise.
6876         * config/rx/rx.c: Likewise.
6877         * config/sh/sh.c: Likewise.
6878         * config/sol2.h: Likewise.
6879         * config/sparc/sparc.c: Likewise.
6880         * config/spu/spu.c: Likewise.
6881         * config/stormy16/stormy16.c: Likewise.
6882         * config/v850/v850.c: Likewise.
6883
6884 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
6885
6886         * simplify-rtx.c (simplify_binary_operation_1): Handle
6887         (xor (and A B) C) case when B and C are both constants.
6888
6889 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
6890
6891         * tree-dfa.c (add_referenced_var): Fix typo in comment.
6892
6893 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
6894
6895         PR bootstrap/48168
6896         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
6897
6898 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
6899
6900         PR rtl-optimization/48156
6901         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
6902         assume df and df_lr are not NULL.
6903
6904 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6905
6906         PR debug/48023
6907         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
6908         between a call and its CALL_ARG_LOCATION note.
6909
6910 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
6911
6912         PR debug/48178
6913         * config/sh/sh.c (find_barrier): Don't emit a constant pool
6914         between a call and its corresponding CALL_ARG_LOCATION note.
6915
6916 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
6917
6918         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
6919         instead of loop. Use HARD_REGISTER_NUM_P predicate.
6920         * haifa-sched.c (setup_ref_regs): Ditto.
6921         * caller-save.c (add_used_regs_1): Ditto.
6922         * dse.c (look_for_hardregs): Ditto.
6923         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
6924         * sched-rgn.c (check_live_1): Ditto.
6925
6926 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
6927
6928         * c-decl.c (diagnose_mismatched_decls): Give an error for
6929         redefining a typedef with variably modified type.
6930
6931 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
6932
6933         * c-decl.c (grokfield): Don't allow typedefs for structures or
6934         unions with no tag by default.
6935         * doc/extend.texi (Unnamed Fields): Update.
6936
6937 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
6938
6939         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6940         Rewrite using indirect functions.
6941         (lwp_slwpcb): Ditto.
6942         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
6943         (avx_vinsertf128<mode>): Ditto.
6944
6945 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6946
6947         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
6948         unspecs.
6949
6950 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6951
6952         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
6953         splitting between a call and its corresponding CALL_ARG_LOCATION note.
6954
6955 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
6956
6957         PR rtl-optimization/48170
6958         * gcse.c (hoist_code): Remove bogus asserts.
6959
6960 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
6961
6962         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
6963         computation for prologue/epilogue.
6964
6965 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6966
6967         * Makefile.in (check-consistency): Remove.
6968
6969 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
6970
6971         PR debug/48176
6972         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
6973         arange_table_in_use is 0, but either text_section_used or
6974         cold_text_section_used is true.  Don't call it if
6975         !info_section_emitted.
6976
6977 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
6978
6979         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
6980         FUNCTION_VALUE_REGNO_P): Remove.
6981         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
6982         Remove.
6983         * config/avr/avr.c (avr_ret_register): Make static inline.
6984         (avr_function_value_regno_p): New function.
6985         (avr_libcall_value): Make static. Add 'func' argument.
6986         (avr_function_value): Make static. Rename 'func' argument to
6987         'fn_decl_or_type', forward it to avr_libcall_value. Call
6988         avr_ret_register function instead of RET_REGISTER macro.
6989         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
6990
6991 2011-03-18  Jason Merrill  <jason@redhat.com>
6992
6993         PR c++/23372
6994         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
6995
6996 2011-03-18  Richard Guenther  <rguenther@suse.de>
6997
6998         * doc/install.texi (--enable-gold): Remove.
6999         (--with-plugin-ld): Document.
7000         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
7001
7002 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
7003
7004         PR middle-end/47790
7005         * expr.c (optimize_bitfield_assignment_op): Revamp to work
7006         again after expansion changes.
7007
7008 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
7009
7010         * combine.c (try_combine): Do simplification only call of
7011         subst() on i2 even when i1 is present. Update comments.
7012
7013 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7014
7015         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
7016         and UNSPEC_PCREL_SYMOFF.
7017
7018 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7019
7020         * config/s390/s390.md: Use define_c_enum for the unspec constant
7021         definitions.
7022
7023 2011-03-18  Richard Henderson  <rth@redhat.com>
7024             Jakub Jelinek  <jakub@redhat.com>
7025
7026         PR bootstrap/48161
7027         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
7028         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
7029
7030 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7031
7032         PR middle-end/47725
7033         * combine.c (cant_combine_insn_p): Don't check zero/sign
7034         extended hard registers.
7035
7036 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7037
7038         PR middle-end/47725
7039         * combine.c (cant_combine_insn_p): Check zero/sign extended
7040         hard registers.
7041
7042 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
7043
7044         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7045         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
7046         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
7047         Change return type to bool.
7048         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7049
7050 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
7051
7052         PR debug/48163
7053         * var-tracking.c (prepare_call_arguments): If CALL target
7054         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
7055         pc instead of looking it up using cselib_lookup and use
7056         Pmode for it if x has VOIDmode.
7057         * dwarf2out.c (gen_subprogram_die): If also both first and
7058         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
7059
7060         PR debug/48163
7061         * function.c (assign_parms): For data.passed_pointer parms
7062         use MEM of data.entry_parm instead of data.entry_parm itself
7063         as DECL_INCOMING_RTL.
7064         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
7065         also when passed and declared mode is the same, DECL_RTL
7066         is a MEM with pseudo as address and DECL_INCOMING_RTL is
7067         a MEM too.
7068
7069 2011-03-16  Jeff Law  <law@redhat.com>
7070
7071         PR rtl-optimization/37273
7072         * ira-costs.c (scan_one_insn): Detect constants living in memory and
7073         handle them like argument loads from stack slots.  Do not double
7074         count memory for memory constants and argument loads from stack slots.
7075
7076 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7077
7078         PR debug/48160
7079         * var-tracking.c (prepare_call_arguments): Check SUBREG.
7080
7081 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7082
7083         PR target/48171
7084         * config/i386/i386.opt: Add Save to -mavx and -mfma.
7085
7086 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
7087
7088         PR bootstrap/48153
7089         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
7090         if dwarf_strict.
7091         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
7092         Clear call_arg_locations and call_arg_loc_last always.
7093
7094         PR middle-end/48152
7095         * var-tracking.c (prepare_call_arguments): If argument needs to be
7096         passed by reference, adjust argtype and mode.
7097
7098 2011-03-17  Richard Guenther  <rguenther@suse.de>
7099
7100         PR middle-end/48134
7101         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
7102         a value make sure to fold the statement.
7103
7104 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
7105
7106         PR target/43872
7107         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
7108         return condition with !cfun->calls_alloca.
7109
7110 2011-03-17  Richard Guenther  <rguenther@suse.de>
7111
7112         PR bootstrap/48148
7113         * lto-cgraph.c (input_overwrite_node): Clear the abstract
7114         origin for decls in other ltrans units.
7115         (input_varpool_node): Likewise.
7116
7117 2011-03-17  Richard Guenther  <rguenther@suse.de>
7118
7119         PR middle-end/48165
7120         * tree-object-size.c (compute_object_offset): Properly return
7121         the offset operand of MEM_REFs as sizetype.
7122
7123 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
7124
7125         PR rtl-optimization/48141
7126         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
7127         * dse.c: Include params.h.
7128         (active_local_stores_len): New variable.
7129         (add_wild_read, dse_step1): Clear it when setting active_local_stores
7130         to NULL.
7131         (record_store, check_mem_read_rtx): Decrease it when removing
7132         from the chain.
7133         (scan_insn): Likewise.  Increase it when adding to chain, if it
7134         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
7135         set active_local_stores to NULL before the addition.
7136         * Makefile.in (dse.o): Depend on $(PARAMS_H).
7137
7138         PR rtl-optimization/48141
7139         * dse.c (record_store): If no positions are needed in an insn
7140         that cannot be deleted, at least unchain it from active_local_stores.
7141
7142 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
7143
7144         PR debug/47510
7145         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
7146         (lookup_type_die_strip_naming_typedef): ... here.
7147         (get_context_die): Use it.
7148         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
7149         the anonymous struct named by the naming typedef.
7150
7151 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7152
7153         PR target/48154
7154         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
7155         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7156
7157 2011-03-16  Jeff Law  <law@redhat.com>
7158
7159         * tree-vrp.c (identify_jump_threads): Slightly simplify type
7160         check for operands of conditional.  Allow type to be a pointer.
7161
7162 2011-03-16  Richard Guenther  <rguenther@suse.de>
7163
7164         PR tree-optimization/48149
7165         * fold-const.c (fold_binary_loc): Fold
7166         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
7167
7168 2011-03-16  Richard Guenther  <rguenther@suse.de>
7169
7170         PR tree-optimization/26134
7171         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
7172         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
7173         (non_rewritable_mem_ref_base): Handle complex type component
7174         accesses, constrain offsets for vector and complex extracts
7175         more properly.
7176
7177 2011-03-16  Richard Guenther  <rguenther@suse.de>
7178
7179         PR tree-optimization/48146
7180         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
7181         operands avoiding the need for renaming.
7182
7183 2011-03-16  Richard Guenther  <rguenther@suse.de>
7184
7185         * gimple-fold.c (maybe_fold_reference): Open-code relevant
7186         constant folding.  Move MEM_REF canonicalization first.
7187         Rely on fold_const_aggregate_ref for initializer folding.
7188         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
7189
7190 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
7191
7192         PR middle-end/48136
7193         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7194         arg0/arg1 or their arguments are always fold converted to matching
7195         types.
7196
7197         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
7198         to nargs.
7199
7200 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7201
7202         PR lto/46944
7203         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
7204         Handle in-tree gold.
7205         (ld_vers): Extract binutils version for gold.
7206         (gcc_cv_ld_hidden): Handle gold here.
7207         (gcc_cv_lto_plugin): Determine level of linker plugin support.
7208         * configure: Regenerate.
7209         * config.in: Regenerate.
7210         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
7211         -fuse-linker-plugin otherwise.
7212         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
7213         (LINK_COMMAND_SPEC): Use it.
7214         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
7215
7216 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
7217
7218         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
7219         * calls.c: Remove debug.h include.
7220         (emit_call_1): Don't call virtual_call_token debug hook.
7221         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
7222         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
7223         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
7224         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
7225         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
7226         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
7227         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
7228         dwarf2out_virtual_call): Remove.
7229         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
7230         copy_call_info and virtual_call hooks.
7231         (dwarf2out_init): Don't initialize vcall_insn_table,
7232         debug_dcall_section and debug_vcall_section.
7233         (prune_unused_types): Don't mark nodes from dcall_table.
7234         (dwarf2out_finish): Don't output dcall or vcall tables.
7235         * final.c (final_scan_insn): Don't call direct_call or
7236         virtual_call debug hooks.
7237         * debug.h (struct gcc_debug_hooks): Remove direct_call,
7238         virtual_call_token, copy_call_info and virtual_call hooks.
7239         (debug_nothing_uid): Remove prototype.
7240         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
7241         copy_call_info and virtual_call hooks.
7242         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7243         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
7244         * debug.c (do_nothing_debug_hooks): Likewise.
7245         (debug_nothing_uid): Remove.
7246         * doc/invoke.texi (-fenable-icf-debug): Remove.
7247         * common.opt (-fenable-icf-debug): Likewise.
7248
7249         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
7250         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
7251         call's MEM.  Handle functions returning aggregate through a hidden
7252         first pointer.  For virtual calls add clobbered pc to call arguments
7253         chain.
7254         * dwarf2out.c (gen_subprogram_die): Emit
7255         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
7256         can't be emitted.
7257
7258         PR debug/45882
7259         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
7260         * rtl.h (ENTRY_VALUE_EXP): Define.
7261         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
7262         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
7263         * print-rtl.c (print_rtx): Likewise.
7264         * gengtype.c (adjust_field_rtx_def): Likewise.
7265         * var-tracking.c (vt_add_function_parameter): Adjust
7266         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
7267         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
7268         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
7269         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
7270         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
7271
7272         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
7273         Call var_location debug hook even on CALL_INSNs.
7274         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
7275         * rtl.def (ENTRY_VALUE): New.
7276         * dwarf2out.c: Include cfglayout.h.
7277         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7278         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
7279         (struct call_arg_loc_node): New type.
7280         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
7281         tail_call_site_count): New variables.
7282         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
7283         DW_TAG_GNU_call_site_parameter.
7284         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
7285         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
7286         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
7287         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
7288         and DW_AT_GNU_all_source_call_sites.
7289         (mem_loc_descriptor): Handle ENTRY_VALUE.
7290         (add_src_coords_attributes): Don't add enything if
7291         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
7292         (dwarf2out_abstract_function): Save and clear call_arg_location,
7293         call_site_count and tail_call_site_count around dwarf2out_decl call.
7294         (gen_call_site_die): New function.
7295         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
7296         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
7297         (dwarf2out_function_decl): Clear call_arg_locations,
7298         call_arg_loc_last, set call_site_count and tail_call_site_count
7299         to -1 and free block_map.
7300         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
7301         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
7302         followed by any real instructions.
7303         (dwarf2out_begin_function): Set call_site_count and
7304         tail_call_site_count to 0.
7305         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
7306         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
7307         attempt to force a DIE for it and worst case remove the attribute.
7308         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
7309         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
7310         the decl itself.
7311         * var-tracking.c: Include tm_p.h.
7312         (vt_stack_adjustments): For calls call note_register_arguments.
7313         (argument_reg_set): New variable.
7314         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
7315         ensure the VALUE is resolved.
7316         (call_arguments): New variable.
7317         (prepare_call_arguments): New function.
7318         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
7319         (struct expand_loc_callback_data): Add ignore_cur_loc field.
7320         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
7321         always use the best expression.
7322         (vt_expand_loc): Add ignore_cur_loc argument.
7323         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
7324         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
7325         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
7326         note for all calls.
7327         (vt_add_function_parameter): Use cselib_lookup_from_insn.
7328         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
7329         argument.  Don't call cselib_preserve_only_values and
7330         cselib_reset_table.
7331         (note_register_arguments): New function.
7332         (vt_initialize): Compute argument_reg_set.  Call
7333         vt_add_function_parameters before processing basic blocks instead of
7334         afterwards.  For calls call prepare_call_arguments before calling
7335         cselib_process_insn.
7336         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
7337         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
7338         (var-tracking.o): Depend on $(TM_P_H).
7339         * cfglayout.h (insn_scope): New prototype.
7340         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
7341         * cfglayout.c (insn_scope): No longer static.
7342         * insn-notes.def (CALL_ARG_LOCATION): New.
7343         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
7344         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
7345         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
7346         nothing for DECL_EXTERNAL BLOCK_VARS.
7347
7348 2011-03-16  Alan Modra  <amodra@gmail.com>
7349
7350         PR target/45844
7351         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7352         create invalid offset address for vsx splat insn.
7353         * config/rs6000/predicates.md (splat_input_operand): New.
7354         * config/rs6000/vsx.md (vsx_splat_*): Use it.
7355
7356 2011-03-15  Xinliang David Li  <davidxl@google.com>
7357
7358         PR c/47837
7359         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
7360         (normalize_preds): New function.
7361         (is_use_properly_guarded): Normalize def predicates.
7362
7363 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7364
7365         PR target/46788
7366         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
7367         in the output template.
7368
7369 2011-03-15  Richard Guenther  <rguenther@suse.de>
7370
7371         PR middle-end/47650
7372         * tree-pretty-print.c (dump_function_declaration): Properly
7373         dump unprototyped and varargs function types.
7374
7375 2011-03-15  Richard Guenther  <rguenther@suse.de>
7376
7377         PR tree-optimization/13954
7378         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
7379         and friends.
7380
7381 2011-03-15  Richard Guenther  <rguenther@suse.de>
7382
7383         PR tree-optimization/48037
7384         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
7385         selects into BIT_FIELD_REFs.
7386         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
7387         vector select.
7388
7389 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
7390
7391         PR tree-optimization/48129
7392         * builtins.c (fold_builtin_snprintf): Convert to type of
7393         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
7394         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
7395
7396 2011-03-15  Richard Guenther  <rguenther@suse.de>
7397
7398         PR tree-optimization/41490
7399         * tree-ssa-dce.c (propagate_necessity): Handle returns without
7400         value but with VUSE.
7401         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
7402         return statements.
7403         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
7404         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
7405         * tree-tailcall.c (find_tail_calls): Ignore returns.
7406
7407 2011-03-15  Richard Guenther  <rguenther@suse.de>
7408
7409         PR middle-end/48031
7410         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
7411         or variable-indexed array accesses when in gimple form.
7412
7413 2011-03-15  Richard Guenther  <rguenther@suse.de>
7414
7415         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
7416
7417 2011-03-15  Alan Modra  <amodra@gmail.com>
7418
7419         PR target/48032
7420         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
7421         presume symbol_refs without a symbol_ref_decl are suitably
7422         aligned, nor other trees we may see here.  Handle anchor symbols.
7423         (legitimate_constant_pool_address_p): Comment.  Add mode param.
7424         Check cmodel=medium addresses.  Adjust all calls.
7425         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
7426         creating cmodel=medium optimized access to locals.
7427         * config/rs6000/constraints.md (R): Pass QImode to
7428         legitimate_constant_pool_address_p.
7429         * config/rs6000/predicates.md (input_operand): Pass mode to
7430         legitimate_constant_pool_address_p.
7431         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
7432         Update prototype.
7433
7434 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7435
7436         PR target/48053
7437         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
7438         64-bit constants being loaded into registers other than GPRs such
7439         as loading 0 into a VSX register.
7440
7441 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7442
7443         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
7444
7445 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7446
7447         PR middle-end/47917
7448         * builtins.c (fold_builtin_snprintf): New function.
7449         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
7450         (fold_builtin_4): Likewise.
7451
7452         PR middle-end/38878
7453         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
7454         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
7455         and C - X == X also strip nops from +/-/p+ operand.
7456         When optimizing -X == C, fold C to arg0's type.
7457
7458         PR debug/47946
7459         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
7460         emit it as add_AT_int instead of add_AT_unsigned.
7461
7462 2011-03-14  Tom Tromey  <tromey@redhat.com>
7463
7464         * unwind-dw2.c: Include sys/sdt.h if it exists.
7465         (_Unwind_DebugHook): Use STAP_PROBE2.
7466         * config.in, configure: Rebuild.
7467         * configure.ac: Check for sys/sdt.h.
7468
7469 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
7470
7471         * config/i386/i386.md (ROUND_FLOOR): New constant.
7472         (ROUND_CEIL): Ditto.
7473         (ROUND_TRUNC): Ditto.
7474         (ROUND_MXCSR): Ditto.
7475         (ROUND_NO_EXC): Ditto.
7476         (rint<mode>2): Use new defines instead of numerical constants.
7477         (floor<mode>2): Ditto.
7478         (ceil<mode>2): Ditto.
7479         (btrunc<mode>2): Ditto.
7480         * config/i386/i386-builtin-types.def: Define ROUND function type
7481         aliases.
7482         * config/i386/i386.c (enum ix86_builtins): Add
7483         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
7484         (struct builtin_description): Add
7485         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
7486         (ix86_expand_sse_round): New static function.
7487         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
7488         function types.
7489         (ix86_builtin_vectorized_function): Handle
7490         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7491
7492 2011-03-14  Tom Tromey  <tromey@redhat.com>
7493
7494         * c-parser.c (c_parser_asm_string_literal): Clear
7495         warn_overlength_strings.
7496
7497 2011-03-14  Tom Tromey  <tromey@redhat.com>
7498
7499         * c-parser.c (disable_extension_diagnostics): Save
7500         warn_overlength_strings.
7501         (restore_extension_diagnostics): Restore warn_overlength_strings.
7502
7503 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7504
7505         * BASE-VER: Change to 4.7.0.
7506
7507 2011-03-14  Richard Guenther  <rguenther@suse.de>
7508
7509         PR middle-end/48098
7510         * tree.c (build_vector_from_val): Adjust assert to requirements
7511         and reality.
7512
7513 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
7514
7515         PR bootstrap/48102
7516         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
7517
7518 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
7519
7520         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
7521         terms of target_flags_explicit. Adjust copyright year.
7522
7523         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
7524         * config/rs6000/t-freebsd: New file. Add override for
7525         LIB2FUNCS_EXTRA.
7526
7527 2011-03-13  Chris Demetriou  <cgd@google.com>
7528
7529         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
7530         (-fno-diagnostics-show-option): this, to reflect current default.
7531         (-Werror=): Update text about -fno-diagnostics-show-option.
7532
7533 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
7534
7535         PR target/48053
7536         * config/rs6000/predicates.md (easy_vector_constant_add_self,
7537         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
7538         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
7539         mode is not V2DImode or V2DFmode.
7540         (vspltis_constant): Do not handle V2DImode and V2DFmode.
7541         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
7542         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
7543         registers to 0.
7544         (movdi_internal64): Likewise.
7545
7546 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
7547
7548         PR tree-optimization/47127
7549         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
7550         parameter.
7551         (set_cloog_options): Same.
7552         (scop_to_clast): Same.
7553         (print_clast_stmt): Do not call cloog_state_malloc and
7554         cloog_state_free.
7555         (print_generated_program): Same.
7556         (gloog): Same.
7557         * graphite-clast-to-gimple.h (cloog_state): Declared.
7558         (scop_to_clast): Adjust declaration.
7559         * graphite.c (cloog_state): Defined here.
7560         (graphite_initialize): Call cloog_state_malloc.
7561         (graphite_finalize): Call cloog_state_free.
7562
7563 2011-03-11  Jason Merrill  <jason@redhat.com>
7564
7565         * attribs.c (lookup_attribute_spec): Take const_tree.
7566         * tree.h: Adjust.
7567
7568 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
7569
7570         * config/sparc/sparc.c (sparc_option_override): Use
7571         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
7572
7573 2011-03-11  Richard Guenther  <rguenther@suse.de>
7574
7575         PR tree-optimization/48067
7576         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
7577         multiplication result will be only used once on the target
7578         stmt.
7579
7580 2011-03-11  Richard Guenther  <rguenther@suse.de>
7581
7582         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
7583
7584 2011-03-11  Richard Guenther  <rguenther@suse.de>
7585
7586         PR lto/48073
7587         * tree.c (find_decls_types_r): Do not walk types only reachable
7588         from IDENTIFIER_NODEs.
7589
7590 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
7591
7592         PR middle-end/48044
7593         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
7594         all vnode->force_output nodes as needed.
7595
7596 2011-03-11  Jason Merrill  <jason@redhat.com>
7597
7598         PR c++/48069
7599         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
7600         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
7601
7602 2011-03-11  Martin Jambor  <mjambor@suse.cz>
7603
7604         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
7605         cgraph_node.
7606
7607 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
7608
7609         PR tree-optimization/48063
7610         * ipa-inline.c (cgraph_decide_inlining): Don't try to
7611         inline functions called once if !tree_can_inline_p (node->callers).
7612
7613 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
7614
7615         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
7616         extra_objs.
7617         * config/score/score3.c: Delete.
7618         * config/score/score3.h: Delete.
7619         * config/score/mul-div.S: Delete.
7620         * config/score/sfp-machine.h: Add new file.
7621         * config/score/constraints.md: Add new file.
7622         * config/score/t-score-softfp: Add new file.
7623         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
7624         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
7625         (score7_extra_constraint): Delete.
7626         (score7_option_override): Remove unused code.
7627         * config/score/score.c: Remove score3 and score5 define and code.
7628         * config/score/score.h: Remove score3 and score5 define and code.
7629         * config/score/score.md: Remove score3 template and unusual insn.
7630         * config/score/score.opt: Remove score3 and score5 options.
7631
7632 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7633
7634         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
7635         when _HPUX_SOURCE is defined.
7636         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
7637
7638 2011-03-10  Jason Merrill  <jason@redhat.com>
7639
7640         PR c++/48029
7641         * stor-layout.c (layout_type): Don't set structural equality
7642         on arrays of incomplete type.
7643         * tree.c (type_hash_eq): Handle comparing them properly.
7644
7645 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
7646
7647         PR debug/48043
7648         * config/s390/s390.c (s390_delegitimize_address): Make sure the
7649         result mode matches original rtl mode.
7650
7651 2011-03-10  Nick Clifton  <nickc@redhat.com>
7652
7653         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
7654         (andsi3, andsi3_flags): Fix timings for three operand alternative.
7655
7656 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
7657
7658         PR rtl-optimization/47866
7659         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
7660         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
7661         if target wasn't scalar.
7662         * function.c (assign_stack_temp_for_type): Assert that neither
7663         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
7664         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
7665         macro.
7666         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
7667
7668 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7669
7670         * config/s390/s390-protos.h (s390_label_align): New prototype.
7671         * config/s390/s390.c (s390_label_align): New function.
7672         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
7673
7674 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
7675
7676         PR target/47755
7677         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
7678         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
7679         (output_vec_const_move): Ditto.
7680
7681 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
7682
7683         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
7684         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
7685         * config/mips/mips.c (mips_preferred_reload_class): Make static.
7686         Change 'rclass' argument and result type to reg_class_t.
7687         (TARGET_PREFERRED_RELOAD_CLASS): Define.
7688
7689 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
7690
7691         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7692         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
7693         (TARGET_MEMORY_MOVE_COST): Define.
7694         (avr_register_move_cost, avr_memory_move_cost): New Functions.
7695
7696 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
7697
7698         PR debug/47881
7699         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
7700         removed anything.
7701
7702         PR tree-optimization/48022
7703         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
7704         for EQ/NE_EXPR.
7705
7706 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
7707
7708         PR debug/47991
7709         * var-tracking.c (find_use_val): Return NULL for
7710         cui->sets && cui->store_p BLKmode MEMs.
7711
7712 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
7713
7714         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
7715         Remove.
7716         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
7717         xstormy16_print_operand_address): Remove.
7718         * config/stormy16/stormy16.c (xstormy16_print_operand,
7719         xstormy16_print_operand_address): Make static.
7720         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7721
7722 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
7723
7724         PR target/47862
7725         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
7726         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
7727         before definition.
7728
7729 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
7730
7731         PR bootstrap/48000
7732         * cfgloopmanip.c (fix_bb_placements): Return immediately
7733         if FROM is BASE_LOOP's header.
7734
7735 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
7736
7737         * gimplify.c (gimplify_function_tree): Fix building calls
7738         to __builtin_return_address.
7739
7740 2011-03-07  Alan Modra  <amodra@gmail.com>
7741
7742         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
7743         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
7744         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
7745         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
7746         return_mode args.
7747         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
7748         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
7749         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
7750         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
7751         * config/rs6000/rs6000.c
7752         (rs6000_elf_end_indicate_exec_stack): Rename to..
7753         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
7754         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
7755         (rs6000_file_start): ..here.
7756         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
7757         file scope variables.
7758         (call_ABI_of_interest): New function.
7759         (init_cumulative_args): Set above vars when function return value
7760         is a float, vector, or small struct.
7761         (rs6000_function_arg_advance_1): Likewise for function args.
7762         (rs6000_va_start): Set rs6000_passes_float if variable arg function
7763         references float args.
7764
7765 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
7766
7767         * doc/cfg.texi: Remove "See" before @ref.
7768         * doc/invoke.texi: Likewise.
7769
7770 2011-03-05  Jason Merrill  <jason@redhat.com>
7771
7772         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
7773
7774 2011-03-05  Anthony Green  <green@moxielogic.com>
7775
7776         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
7777
7778 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
7779
7780         PR rtl-optimization/47899
7781         * cfgloopmanip.c (fix_bb_placements): Fix first argument
7782         to flow_loop_nested_p when moving the loop upward.
7783
7784 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
7785
7786         PR target/47719
7787         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
7788
7789 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
7790
7791         PR tree-optimization/47967
7792         * ipa-cp.c (build_const_val): Return NULL instead of creating
7793         VIEW_CONVERT_EXPR for mismatching sizes.
7794         (ipcp_create_replace_map): Return NULL if build_const_val failed.
7795         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
7796         give up on versioning.
7797
7798 2011-03-05  Alan Modra  <amodra@gmail.com>
7799
7800         PR target/47986
7801         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7802         full cmodel medium/large lo_sum + high addresses.
7803
7804 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7805
7806         * config/s390/s390.c (s390_decompose_address): Reject non-literal
7807         pool references in UNSPEC_LTREL_OFFSET.
7808
7809 2011-03-04  Jan Hubicka  <jh@suse.cz>
7810
7811         PR lto/47497
7812         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
7813         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
7814         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
7815         Add node pointers.
7816         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
7817         cgraph_add_thunk): Add node pointers.
7818         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
7819         associated to right node.
7820         (input_node): Update use of cgraph_same_body_alias
7821         and cgraph_add_thunk.
7822
7823 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
7824
7825         * config/i386/i386.opt (mprefer-avx128): New flag.
7826         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
7827         modes when the flag -mprefer-avx128 is on.
7828
7829 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
7830
7831         * dwarf2out.c (compare_loc_operands): Fix address handling.
7832
7833 2011-03-04  Alan Modra  <amodra@gmail.com>
7834
7835         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
7836
7837 2011-03-04  Richard Guenther  <rguenther@suse.de>
7838
7839         PR middle-end/47968
7840         * expmed.c (extract_bit_field_1): Prefer vector modes that
7841         vec_extract patterns can handle.
7842
7843 2011-03-04  Richard Guenther  <rguenther@suse.de>
7844
7845         PR middle-end/47975
7846         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
7847
7848 2011-03-04  Richard Henderson  <rth@redhat.com>
7849
7850         * explow.c (emit_stack_save): Remove 'after' parameter.
7851         (emit_stack_restore): Likewise.
7852         * expr.h: Update to match.
7853         * builtins.c, calls.c, stmt.c: Likewise.
7854         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
7855         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
7856         * function.c (expand_function_end): Insert the emit_stack_save
7857         sequence before parm_birth_insn instead of after.
7858
7859 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
7860
7861         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
7862         (ssse3_pmaddubsw128): Ditto.
7863         (ssse3_pmaddubsw): Ditto.
7864
7865 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
7866
7867         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
7868
7869 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
7870
7871         PR c/47963
7872         * gimplify.c (omp_add_variable): Only call omp_notice_variable
7873         on TYPE_SIZE_UNIT if it is a DECL.
7874
7875         PR debug/47283
7876         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
7877         first operand is not is_gimple_mem_ref_addr, try to fold it.
7878         If the operand still isn't is_gimple_mem_ref_addr, clear
7879         MEM_EXPR on op0.
7880
7881 2011-03-03  Richard Guenther  <rguenther@suse.de>
7882
7883         PR middle-end/47283
7884         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
7885         match comment.
7886         (refs_may_alias_p_1): For release branches return true if
7887         we are confused by our input.
7888
7889 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7890
7891         * config/s390/s390.c (s390_function_value): Rename to ...
7892         (s390_function_and_libcall_value): ... this.
7893         (s390_function_value): New function.
7894         (s390_libcall_value): New function.
7895         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
7896         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
7897         target macro definitions.
7898         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
7899
7900 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
7901
7902         * config/i386/freebsd64.h (CC1_SPEC): Define.
7903         * config/i386/linux64.h (CC1_SPEC): Define.
7904         * config/i386/x86-64.h (CC1_SPEC): Don't define.
7905
7906 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
7907
7908         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7909         Remove.
7910         * config/stormy16/stormy16.c: Include reload.h.
7911         (xstormy16_memory_move_cost): New function.
7912         (TARGET_MEMORY_MOVE_COST): Define.
7913
7914 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
7915
7916         PR rtl-optimization/47925
7917         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
7918         with side effects.  Remove the more-specific check for volatile asms.
7919
7920 2011-03-02  Alan Modra  <amodra@gmail.com>
7921
7922         PR target/47935
7923         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
7924         toc relative addresses for valid offsets.
7925
7926 2011-03-01  Richard Guenther  <rguenther@suse.de>
7927
7928         PR tree-optimization/47890
7929         * tree-vect-loop.c (get_initial_def_for_induction): Set
7930         related stmt properly.
7931
7932 2011-03-01  Richard Guenther  <rguenther@suse.de>
7933
7934         PR lto/47924
7935         * lto-streamer.c (lto_record_common_node): Also register
7936         the canonical type.
7937
7938 2011-03-01  Richard Guenther  <rguenther@suse.de>
7939
7940         PR lto/46911
7941         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
7942         Do not stream DECL_ABSTRACT_ORIGIN.
7943         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7944         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7945         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7946         Do not stream DECL_ABSTRACT_ORIGIN.
7947         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
7948         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
7949
7950 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
7951
7952         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
7953         FUNCTION_VALUE_REGNO_P): Remove.
7954         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
7955         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
7956         Add 'outgoing' argument.
7957         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
7958         function.
7959         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7960         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7961
7962 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
7963
7964         PR debug/28047
7965         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
7966         (lookup_filename): Likewise.
7967         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
7968
7969 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
7970             Jakub Jelinek  <jakub@redhat.com>
7971
7972         PR middle-end/47893
7973         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
7974         (assign_stack_local_1): Change last argument type to int.
7975         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
7976         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
7977         don't record padding space into frame_space_list nor use those areas.
7978         (assign_stack_local): Adjust caller.
7979         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
7980         of assign_stack_local, pass 0 as last argument.
7981         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
7982         callers.
7983
7984 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
7985
7986         PR debug/47283
7987         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
7988         Use target address_mode and pointer_mode hooks instead of hardcoded
7989         Pmode and ptr_mode.  Handle some simple cases of extending if
7990         POINTERS_EXTEND_UNSIGNED < 0.
7991         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
7992         Call convert_debug_memory_address.
7993         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
7994         convert_debug_memory_address.
7995
7996         PR middle-end/46790
7997         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
7998         * configure: Regenerated.
7999         * config.in: Regenerated.
8000         * varasm.c (default_function_section): Return NULL
8001         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
8002
8003 2011-02-28  Martin Jambor  <mjambor@suse.cz>
8004
8005         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
8006         the description to match the printed values.
8007
8008 2011-02-28  Richard Guenther  <rguenther@suse.de>
8009
8010         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
8011         of the copied scope tree.
8012
8013 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8014
8015         * doc/extend.texi (Function Attributes): Avoid deeply (and
8016         wrongly) nested tables.
8017
8018 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
8019
8020         PR middle-end/47903
8021         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
8022         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
8023         r isn't op0 nor op1.
8024
8025 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
8026
8027         * config/avr/avr.md: Remove magic comment for emacs.
8028
8029 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
8030
8031         PR target/45261
8032         * config/avr/avr.c (avr_option_override): Use error on bad options.
8033         (avr_help): New function.
8034         (TARGET_HELP): Define.
8035
8036 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
8037
8038         PR target/42240
8039         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
8040         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
8041
8042 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
8043
8044         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
8045         (ARM Options): Ditto.
8046         (i386 and x86-64 Options): Ditto.
8047         (RX Options): Ditto.
8048         (SPARC Options): Ditto.
8049
8050 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
8051
8052         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
8053         FreeBSD 6 and later.  Generally use cpu generic.
8054
8055 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8056
8057         * doc/cpp.texi: Update copyright years.
8058
8059 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
8060
8061         PR target/46898
8062         * config/lm32/lm32.md (ashrsi3): Added needed variable.
8063
8064 2011-02-25  Jon Beniston  <jon@beniston.com>
8065
8066         PR target/46898
8067         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
8068         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
8069         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
8070         (lm32_block_move_inline): Add type cast to remove warning.
8071         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
8072         (gen_int_relational): Move declarations to start of function.
8073
8074 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8075
8076         PR tree-optimization/45470
8077         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
8078         can throw internally only.
8079         * tree-vect-stmts.c (vectorizable_call): Likewise.
8080
8081 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
8082
8083         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
8084         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8085         * config/stormy16/stormy16-protos.h
8086         (xstormy16_preferred_reload_class): Remove.
8087         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
8088         static. Change 'rclass' argument and return type to reg_class_t.
8089         (TARGET_PREFERRED_RELOAD_CLASS,
8090         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8091
8092 2011-02-24  Richard Guenther  <rguenther@suse.de>
8093
8094         * lto-streamer-in.c (input_bb): Do not find referenced vars
8095         in debug statements.
8096
8097 2011-02-23  Jason Merrill  <jason@redhat.com>
8098
8099         * common.opt (fabi-version): Document v5 and v6.
8100
8101 2011-02-23  Richard Guenther  <rguenther@suse.de>
8102
8103         PR tree-optimization/47849
8104         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
8105
8106 2011-02-23  Jie Zhang  <jie@codesourcery.com>
8107
8108         * opts-common.c (decode_cmdline_option): Print empty string
8109         argument as "" in decoded->orig_option_with_args_text.
8110         * gcc.c (execute): Print empty string argument as ""
8111         in the verbose output.
8112         (do_spec_1): Keep empty string argument.
8113
8114 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
8115
8116         * config.gcc: Declare score-* and crx-* obsolete.
8117
8118 2011-02-23  Jie Zhang  <jie@codesourcery.com>
8119
8120         PR rtl-optimization/47763
8121         * web.c (web_main): Ignore naked clobber when replacing register.
8122
8123 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
8124
8125         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
8126         Remove.
8127
8128 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8129
8130         PR doc/47848
8131         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
8132
8133 2011-02-22  Mike Stump  <mikestump@comcast.net>
8134
8135         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
8136         assembler.
8137         * configure: Regenerate.
8138
8139 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
8140
8141         PR rtl-optimization/46002
8142         * ira-color.c (update_copy_costs): Change class intersection
8143         test to reg_class_contents[] test of 'hard_regno'.
8144
8145 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
8146
8147         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
8148         than Driver option.
8149         * config/hpux11.opt (mt): Likewise.
8150         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
8151         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
8152         * config/vax/elf.opt (mno-asm-pic): Likewise.
8153         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
8154
8155 2011-02-21  Mike Stump  <mikestump@comcast.net>
8156
8157         PR target/47822
8158         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
8159         tree so we can get save the type.
8160         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
8161         for CFString instead of trying to use past the end of the builtins.
8162         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
8163         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
8164         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
8165         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
8166         Rename to darwin_builtin_cfstring.
8167         (darwin_init_cfstring_builtins): Return the built type.
8168
8169 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
8170
8171         PR target/47840
8172         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
8173         (_mm256_insert_epi64): Use _mm_insert_epi64.
8174
8175 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
8176
8177         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8178         * config/stormy16/stormy16-protos.h
8179         (xstormy16_mode_dependent_address_p): Remove.
8180         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
8181         Make static. Change return type to bool. Change argument type to
8182         const_rtx. Remove dead code.
8183         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8184
8185 2011-02-21  Richard Guenther  <rguenther@suse.de>
8186
8187         PR lto/47820
8188         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8189         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8190         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
8191         TUs context.
8192         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8193         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8194
8195 2011-02-20  Richard Guenther  <rguenther@suse.de>
8196
8197         PR lto/47822
8198         * tree.c (free_lang_data_in_decl): Clean builtins from
8199         the TU decl BLOCK_VARS.
8200
8201 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
8202
8203         PR debug/47620
8204         PR debug/47630
8205         * haifa-sched.c (fix_tick_ready): Skip tick computation
8206         for debug insns.
8207
8208 2011-02-19  Richard Guenther  <rguenther@suse.de>
8209
8210         PR lto/47647
8211         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8212         Remove lazy BLOCK_VARS streaming.
8213         (lto_input_ts_block_tree_pointers): Likewise.
8214         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8215
8216 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
8217
8218         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
8219
8220 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
8221
8222         * config/i386/biarch32.h, config/i386/mach.h,
8223         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
8224
8225 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
8226
8227         PR target/47800
8228         * config/i386/i386.md (peephole2 for shift and plus): Use
8229         operands[1] original mode in the first insn.
8230
8231 2011-02-18  Mike Stump  <mikestump@comcast.net>
8232
8233         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8234
8235 2011-02-18  Jan Hubicka  <jh@suse.cz>
8236
8237         PR middle-end/47788
8238         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
8239         to zero when the function is not inlinable at all.
8240
8241 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8242
8243         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
8244         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8245         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
8246         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
8247         * config/pa/t-pa64: Likewise.
8248         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
8249
8250 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
8251
8252         PR driver/47787
8253         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
8254
8255 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8256
8257         PR target/47792
8258         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
8259
8260 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
8261
8262         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
8263         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
8264         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
8265         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
8266         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
8267         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
8268         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
8269         m32r_load_postinc_p, m32r_store_preinc_predec_p,
8270         m32r_legitimate_address_p): New functions.
8271         * config/m32r/constraints.md (constraint "S"): Don't use
8272         STORE_PREINC_PREDEC_P.
8273         (constraint "U"): Don't use LOAD_POSTINC_P.
8274
8275 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
8276
8277         PR rtl-optimization/46178
8278         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
8279         compute ira_hard_regno_cover_class[].
8280
8281 2011-02-18  Richard Guenther  <rguenther@suse.de>
8282
8283         PR lto/47798
8284         * lto-streamer.h (lto_global_var_decls): Declare.
8285         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
8286         statics for global var processing.
8287
8288 2011-02-18  Richard Guenther  <rguenther@suse.de>
8289
8290         PR tree-optimization/47737
8291         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
8292         edge dominance check.
8293
8294 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
8295
8296         PR debug/47780
8297         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
8298         avoid invalid rtx sharing.
8299
8300 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
8301
8302         * doc/cpp.texi (Obsolete Features): Add background on the
8303         origin of assertions.
8304
8305 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
8306
8307         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
8308         objc_abi == 2.
8309         * config/darwin.c (output_objc_section_asm_op): Added support for
8310         ABI v1 and v2.
8311         (is_objc_metadata): New.
8312         (darwin_objc2_section): New.
8313         (darwin_objc1_section): New.
8314         (machopic_select_section): Added support for ABI v1 and v2.
8315         (darwin_emit_objc_zeroed): New.
8316         (darwin_output_aligned_bss): Detect objc metadata and treat it
8317         appropriately.
8318         (darwin_asm_output_aligned_decl_common): Same.
8319         (darwin_asm_output_aligned_decl_local): Same.
8320         * config/darwin-sections.def: Updated for ABI v1 and v2.
8321         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
8322         compiling Objective-C code for the NeXT runtime, default to using
8323         ABI version 0 for 32-bit, and version 2 for 64-bit.
8324
8325 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8326
8327         * common.opt (optimize_fast): New Variable.
8328         * opts.c (default_options_optimization): Use opts->x_optimize_fast
8329         instead of local variable ofast.
8330
8331 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
8332
8333         * doc/invoke.texi (fobjc-abi-version): Documented.
8334         (fobjc-nilcheck): Documented.
8335         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
8336         version.
8337
8338 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8339
8340         PR driver/47390
8341         * common.opt (export-dynamic): New Driver option.
8342         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
8343
8344 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8345
8346         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
8347
8348 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
8349             Jan Hubicka  <jh@suse.cz>
8350
8351         PR debug/47106
8352         PR debug/47402
8353         * cfgexpand.c (account_used_vars_for_block): Remove.
8354         (estimated_stack_frame_size): Use referenced vars.
8355         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
8356         that were referenced in the original function.  Test src_fn
8357         rather than cfun.  Drop redundant get_var_ann.
8358         (setup_one_parameter): Drop redundant get_var_ann.
8359         (declare_return_variable): Likewise.
8360         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
8361         (copy_arguments_for_versioning): Drop redundant get_var_ann.
8362         * ipa-inline.c (compute_inline_parameters): Do not compute
8363         disregard_inline_limits here.
8364         (compute_inlinable_for_current, pass_inlinable): New.
8365         (pass_inline_parameters): Require PROP_referenced_vars.
8366         * cgraphunit.c (cgraph_process_new_functions): Don't run
8367         compute_inline_parameters explicitly unless function is in SSA form.
8368         (cgraph_analyze_function): Set .disregard_inline_limits.
8369         * tree-sra.c (convert_callers): Compute inliner parameters
8370         only for functions already in SSA form.
8371
8372 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8373
8374         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
8375         -mlittle-endian-data.
8376
8377 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
8378
8379         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
8380         -mno-fpu, not -fpu and -no-fpu.
8381         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
8382         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
8383
8384 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
8385
8386         PR target/43653
8387         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
8388         input reload with PLUS RTX.
8389
8390 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8391
8392         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
8393         of InverseVar(MDMX).
8394
8395 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8396
8397         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
8398         --m4-340.
8399
8400 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8401
8402         * config/mn10300/mn10300.opt (mno-crt0): New.
8403
8404 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8405
8406         * config/m68k/uclinux.opt (static-libc): New Driver option.
8407
8408 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8409
8410         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
8411
8412 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
8413
8414         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
8415         %{muser-extend-enabled}.
8416
8417 2011-02-16  Richard Guenther  <rguenther@suse.de>
8418
8419         PR tree-optimization/47738
8420         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
8421         the TODO from tree_predictive_commoning.
8422
8423 2011-02-15  Jeff Law  <law@redhat.com>
8424
8425         Revert
8426         2011-01-25  Jeff Law  <law@redhat.com>
8427
8428         PR rtl-optimization/37273
8429         * ira-costs.c (scan_one_insn): Detect constants living in memory and
8430         handle them like argument loads from stack slots.  Do not double
8431         count memory for memory constants and argument loads from stack slots.
8432
8433 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8434
8435         PR middle-end/47725
8436         * combine.c (cant_combine_insn_p): Revert the last change.
8437
8438 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
8439
8440         PR target/47755
8441         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
8442         mode for vector constants.  Remove code that checks for TImode.
8443
8444 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8445
8446         PR debug/47106
8447         PR debug/47402
8448         * cgraph.h (compute_inline_parameters): Return void.
8449         * ipa-inline.c (compute_inline_parameters): Adjust.
8450
8451 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8452
8453         PR debug/47106
8454         PR debug/47402
8455         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
8456         rather than decl.
8457         * cfgexpand.c (estimated_stack_frame_size): Likewise.
8458         * ipa-inline.c (compute_inline_parameters): Adjust.
8459
8460 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8461
8462         PR debug/47106
8463         PR debug/47402
8464         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
8465         Adjust all users.  Pass FN to...
8466         * tree-flow-inline.h (first_referenced_var): ... this.  Add
8467         fn argument.
8468         * ipa-struct-reorg.c: Adjust.
8469         * tree-dfa.c: Adjust.
8470         * tree-into-ssa.c: Adjust.
8471         * tree-sra.c: Adjust.
8472         * tree-ssa-alias.c: Adjust.
8473         * tree-ssa-live.c: Adjust.
8474         * tree-ssa.c: Adjust.
8475         * tree-ssanames.c: Adjust.
8476         * tree-tailcall.c: Adjust.
8477
8478 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
8479
8480         PR debug/47106
8481         PR debug/47402
8482         * tree-flow.h (referenced_var_lookup): Add fn parameter.
8483         Adjust all callers.
8484         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
8485         * tree-flow-inline.h: Adjust.
8486         * gimple-pretty-print.c: Adjust.
8487         * tree-into-ssa.c: Adjust.
8488         * tree-ssa.c: Adjust.
8489         * cfgexpand.c: Adjust.
8490
8491 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8492
8493         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
8494         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8495         (EXTRA_CONSTRAINT): Delete.
8496         * config/iq2000/constraints.md: New file.
8497         * config/iq2000/iq2000.md: Include it.
8498         (define_insn ""): Delete.
8499         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
8500         unsupported constraint letters from patterns.
8501         (call_value, call_value_internal1): Likewise.
8502         (call_value_multiple_internal1): Likewise.
8503
8504 2011-02-15  Nick Clifton  <nickc@redhat.com>
8505
8506         * config/mn10300/mn10300.c: Include tm-constrs.h.
8507         (struct liw_data): New data structure describing an LIW candidate
8508         instruction.
8509         (extract_bundle): Use struct liw_data.  Allow small integer
8510         operands for some instructions.
8511         (check_liw_constraints): Use struct liw_data.  Remove swapped
8512         parameter.  Add comments describing the checks.  Fix bug when
8513         assigning the source of liw1 to the source of liw2.
8514         (liw_candidate): Delete.  Code moved into extract_bundle.
8515         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
8516         before swapping.
8517         * config/mn10300/predicates.md (liw_operand): New predicate.
8518         Allows registers and small integer constants.
8519         * config/mn10300/constraints.md (O): New constraint.  Accetps
8520         integers in the range -8 to +7 inclusive.
8521         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
8522         for moving a small integer into a register.  Give this alternative
8523         LIW attributes.
8524         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
8525         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
8526         using the J,K,L and M constraints,
8527         (liw): Remove SI mode on second operands to allow for HI and QI
8528         mode values.
8529         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
8530         instruction.
8531
8532 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8533
8534         PR middle-end/47725
8535         * combine.c (cant_combine_insn_p): Check zero/sign extended
8536         hard registers.
8537
8538 2011-02-15  Richard Guenther  <rguenther@suse.de>
8539
8540         PR tree-optimization/47743
8541         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
8542         for a non-type-compatible VN lookup bail out.
8543
8544 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8545
8546         * config/fr30/constraints.md: New file.
8547         * config/fr30/fr30.md: Include it.
8548         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
8549         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8550         (EXTRA_CONSTRAINT): Delete.
8551
8552 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
8553
8554         * config/frv/constraints.md: New file.
8555         * config/frv/predicates.md: Include it.
8556         * config/frv/frv.c (reg_class_from_letter): Delete.
8557         (frv_option_override): Don't initialize it.
8558         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
8559         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
8560         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
8561         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8562         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
8563         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8564         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
8565         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
8566         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
8567         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
8568         (REG_CLASS_FROM_CONSTRAINT): Delete.
8569
8570 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
8571
8572         PR middle-end/47581
8573         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
8574         if frame size is 0 in a leaf function.
8575
8576 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8577
8578         PR pch/14940
8579         * config/alpha/host-osf.c: New file.
8580         * config/alpha/x-osf: New file.
8581         * config.host (alpha*-dec-osf*): Use it.
8582
8583 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
8584
8585         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8586         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
8587         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
8588         (rx_mode_dependent_address_p): ...this. Make static. Change argument
8589         type to const_rtx.
8590         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8591
8592 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8593
8594         * config/stormy16/constraints.md: New file.
8595         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
8596         Use satisfies_constraint_Q and satisfies_constraint_R.
8597         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
8598         Delete.
8599         (xstormy16_legitiamte_address_p): Declare.
8600         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
8601         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8602         (EXTRA_CONSTRAINT): Delete.
8603         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
8604         Un-staticize.
8605         (xstormy16_extra_constraint_p): Delete.
8606
8607 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8608
8609         PR tree-optimization/46494
8610         * loop-unroll.c (split_edge_and_insert): Adjust comment.
8611         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
8612         (pass_rtl_loop_done): Add TODO_verify_flow.
8613         * fwprop.c (pass_rtl_fwprop): Likewise.
8614         * modulo-sched.c (pass_sms): Likewise.
8615         * tree-ssa-dom.c (pass_dominator): Likewise.
8616         * tree-ssa-loop-ch.c (pass_ch): Likewise.
8617         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
8618         (pass_tree_loop_done): Likewise.
8619         * tree-ssa-pre.c (execute_pre): Likewise.
8620         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
8621         * tree-ssa-sink.c (pass_sink_code): Likewise.
8622         * tree-vrp.c (pass_vrp): Likewise.
8623
8624 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8625
8626         * config/v850/constraints.md: New file.
8627         * config/v850/v850.md: Include it.
8628         * config/v850/predicates.md (reg_or_0_operand): Use
8629         satisfies_constraint_G.
8630         (special_symbolref_operand): Use satisfies_constraint_K.
8631         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
8632         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
8633         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
8634         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
8635         (EXTRA_CONSTRAINT): Delete.
8636         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
8637         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
8638         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
8639
8640 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
8641
8642         PR target/47696
8643         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
8644         description.
8645
8646 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
8647
8648         * config/mcore/constraints.md: New file.
8649         * config/mcore/mcore.md: Include it.
8650         * config/mcore/mcore.c (reg_class_from_letter): Delete.
8651         * config/mcore/mcore.h (reg_class_from_letter): Delete.
8652         (REG_CLASS_FROM_LETTER): Delete.
8653         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
8654         insn_const_int_ok_for_constraint.
8655         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
8656         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
8657         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
8658         (EXTRA_CONSTRAINT): Delete.
8659
8660 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8661
8662         PR ada/41929
8663         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
8664         (IS_SIGHANDLER): Define.
8665         (sparc64_is_sighandler): New function, split off from
8666         sparc64_fallback_frame_state.
8667         (sparc_is_sighandler): New function, split off from
8668         sparc_fallback_frame_state.
8669         (sparc64_fallback_frame_state): Merge with ...
8670         (sparc_fallback_frame_state): ... this into ...
8671         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
8672         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
8673         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
8674         stack instead of hardcoded offsets.
8675
8676 2011-02-14  Andriy Gapon  <avg@freebsd.org>
8677
8678         PR target/45808
8679         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
8680
8681 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8682
8683         * configure: Regenerate.
8684
8685 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
8686
8687         PR driver/45731
8688         * gcc.c (asm_options): Correct spec matching --target-help.
8689
8690 2011-02-12  Martin Jambor  <mjambor@suse.cz>
8691
8692         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
8693         to gimple call error.
8694
8695 2011-02-12  Mike Stump  <mikestump@comcast.net>
8696
8697         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
8698         comments in backslash regions.
8699
8700 2011-02-12  Mike Stump  <mikestump@comcast.net>
8701             Jakub Jelinek  <jakub@redhat.com>
8702             Iain Sandoe  <iains@gcc.gnu.org>
8703
8704         PR target/47324
8705         * dwarf2out.c (output_cfa_loc): When required, apply the
8706         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
8707         (output_loc_sequence): Likewise.
8708         (output_loc_operands_raw): Likewise.
8709         (output_loc_sequence_raw): Likewise.
8710         (output_cfa_loc): Likewise.
8711         (output_loc_list): Suppress register number adjustment when
8712         calling output_loc_sequence()
8713         (output_die): Likewise.
8714
8715 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
8716
8717         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8718         Remove macros.
8719         * config/xtensa/xtensa.c (xtensa_register_move_cost,
8720         xtensa_memory_move_cost): New functions.
8721         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
8722
8723 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
8724
8725         PR lto/47225
8726         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
8727         in the current directory.
8728         * configure: Rebuilt.
8729
8730 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
8731
8732         * config/darwin.c (darwin_override_options): Add a hunk missed
8733         from the commit of r168571.  Trim comment line lengths and
8734         correct indents of the preceding block.
8735
8736 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
8737
8738         * gcc.c (driver_handle_option): Concatenate the argument to -F with
8739         the switch.
8740
8741 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
8742
8743         * common.opt (nostartfiles): New Driver option.
8744
8745 2011-02-11  Xinliang David Li  <davidxl@google.com>
8746
8747         PR tree-optimization/47707
8748         * tree-chrec.c (convert_affine_scev): Keep type precision.
8749
8750 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
8751
8752         PR tree-optimization/47420
8753         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
8754
8755 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
8756
8757         PR rtl-optimization/47614
8758         * rtl.h (check_for_inc_dec): Declare.
8759         * dse.c (check_for_inc_dec): Externalize...
8760         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
8761         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
8762
8763 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
8764
8765         PR driver/47678
8766         * gcc.c (main): Do not compile inputs if there were errors in
8767         option handling.
8768         * opts-common.c (read_cmdline_option): Check for wrong language
8769         after other error checks.
8770
8771 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
8772
8773         * cgraph.c: Fix comment typos.
8774         * cgraph.h: Likewise.
8775         * cgraphunit.c: Likewise.
8776         * ipa-cp.c: Likewise.
8777         * ipa-inline.c: Likewise.
8778         * ipa-prop.c: Likewise.
8779         * ipa-pure-const.c: Likewise.
8780         * ipa-ref.c: Likewise.
8781         * ipa-reference.c: Likewise.
8782
8783 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
8784
8785         PR debug/47684
8786         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
8787
8788 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8789
8790         PR testsuite/47400
8791         * doc/sourcebuild.texi (Require Support): Document
8792         dg-require-ascii-locale.
8793
8794 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
8795
8796         * doc/lto.texi (Write summary): Fix missing parentheses.
8797
8798 2011-02-10  DJ Delorie  <dj@redhat.com>
8799
8800         * config/m32c/m32c.c (m32c_option_override): Disable
8801         -fcombine-stack-adjustments until flag value tracking and compare
8802         optimization can be rewritten.
8803
8804 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
8805
8806         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
8807         PROCESSOR_POWER7.
8808         (PROCESSOR_DEFAULT64): Likewise.
8809
8810 2011-02-10  Richard Henderson  <rth@redhat.com>
8811
8812         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
8813         change from 2011-02-03.
8814         * config/rx/rx.c (flags_from_code): Likewise.
8815         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
8816         is valid, n/pz otherwise.
8817         (rx_select_cc_mode): Return CCmode if Y is not zero.
8818
8819 2011-02-10  Richard Guenther  <rguenther@suse.de>
8820
8821         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
8822
8823 2011-02-10  Richard Guenther  <rguenther@suse.de>
8824
8825         PR tree-optimization/47677
8826         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
8827
8828 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
8829
8830         PR target/47665
8831         * combine.c (make_compound_operation): Only change shifts into
8832         multiplication for SCALAR_INT_MODE_P.
8833
8834 2011-02-10  Jie Zhang  <jie@codesourcery.com>
8835
8836         PR testsuite/47622
8837         Revert
8838         2011-02-05  Jie Zhang  <jie@codesourcery.com>
8839         PR debug/42631
8840         * web.c (entry_register): Don't clobber the number of the
8841         first uninitialized reference in used[].
8842
8843 2011-02-09  Richard Guenther  <rguenther@suse.de>
8844
8845         PR tree-optimization/47664
8846         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
8847         all edges again.
8848
8849 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
8850
8851         PR target/46481
8852         PR target/47032
8853         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
8854         PROCESSOR_POWER7.
8855         (PROCESSOR_DEFAULT64): Same.
8856         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
8857
8858 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8859
8860         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
8861
8862 2011-02-09  Martin Jambor  <mjambor@suse.cz>
8863
8864         PR middle-end/45505
8865         * tree-sra.c (struct access): New flags grp_scalar_read and
8866         grp_scalar_write.  Changed description of assignment read and write
8867         flags.
8868         (dump_access): Dump new flags, reorder all of them.
8869         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
8870         to detect multiple scalar reads.
8871         (analyze_access_subtree): Use the new scalar read write flags instead
8872         of the old flags.  Adjusted comments.
8873
8874 2011-02-08  DJ Delorie  <dj@redhat.com>
8875
8876         PR target/47548
8877         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
8878         patterns.
8879
8880 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8881
8882         * config/m68k/uclinux.opt: New.
8883         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
8884
8885 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8886
8887         * config/cris/elf.opt (sim): New Driver option.
8888
8889 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8890
8891         * config/xtensa/elf.opt: New.
8892         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
8893
8894 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8895
8896         * config/vax/elf.opt: New.
8897         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
8898
8899 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8900
8901         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
8902
8903 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8904
8905         * config/gnu-user.opt: New.
8906         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
8907         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
8908         *-*-uclinux*): Use gnu-user.opt.
8909
8910 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
8911
8912         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
8913         * config/i386/gnu.h (CPP_SPEC): Likewise.
8914
8915 2011-02-08  Ian Lance Taylor  <iant@google.com>
8916
8917         * common.opt (fcx-limited-range): Add SetByCombined flag.
8918         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
8919         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
8920         (fassociative-math, freciprocal-math): Likewise.
8921         (funsafe-math-optimizations): Likewise.
8922         * opth-gen.awk: Handle SetByCombined.
8923         * optc-gen.awk: Likewise.
8924         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
8925         (set_unsafe_math_optimizations_flags): Likewise.
8926         * doc/options.texi (Option properties): Document SetByCombined.
8927
8928 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
8929
8930         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
8931         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
8932         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
8933         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
8934         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
8935
8936 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
8937
8938         PR tree-optimization/46834
8939         PR tree-optimization/46994
8940         PR tree-optimization/46995
8941         * graphite-sese-to-poly.c (used_outside_reduction): New.
8942         (detect_commutative_reduction): Call used_outside_reduction.
8943         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
8944         translate_scalar_reduction_to_array only when at least one
8945         loop-phi/close-phi tuple has been detected.
8946
8947 2011-02-08  Richard Guenther  <rguenther@suse.de>
8948
8949         PR middle-end/47639
8950         * tree-vect-generic.c (expand_vector_operations_1): Update
8951         stmts here ...
8952         (expand_vector_operations): ... not here.  Cleanup EH info
8953         and the CFG if required.
8954
8955 2011-02-08  Richard Guenther  <rguenther@suse.de>
8956
8957         PR tree-optimization/47641
8958         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
8959         require type compatibility.
8960
8961 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8962
8963         * gimple-low.c (lower_function_body): Don't remove the location of
8964         the return statement here.
8965         (lower_gimple_return): Do it here instead but only if the return
8966         statement is actually used twice.
8967
8968 2011-02-08  Richard Guenther  <rguenther@suse.de>
8969
8970         PR tree-optimization/47632
8971         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
8972         unused up_to_stmt parameter, return whether cfg-cleanup is
8973         necessary, remove EH info properly.
8974         (forward_propagate_into_gimple_cond): Adjust caller.
8975         (forward_propagate_into_cond): Likewise.
8976         (forward_propagate_comparison): Likewise.
8977         (tree_ssa_forward_propagate_single_use_vars): Make
8978         forward_propagate_comparison case similar to the two others.
8979
8980 2011-02-08  Nick Clifton  <nickc@redhat.com>
8981
8982         * config/mn10300/mn10300.opt (mliw): New command line option.
8983         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
8984         (liw_bundling): New automaton.
8985         (liw): New attribute.
8986         (liw_op): New attribute.
8987         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
8988         (movsi_internal): Add LIW attributes.
8989         (andsi3): Likewise.
8990         (iorsi3): Likewise.
8991         (xorsi3): Likewise.
8992         (addsi3): Separate register and immediate alternatives.
8993         Add LIW attributes.
8994         (subsi3): Likewise.
8995         (cmpsi): Likewise.
8996         (aslsi3): Likewise.
8997         (lshrsi3): Likewise.
8998         (ashrsi3): Likewise.
8999         (liw): New pattern.
9000         * config/mn10300/mn10300.c (liw_op_names): New
9001         (mn10300_print_operand): Handle 'W' operand descriptor.
9002         (extract_bundle): New function.
9003         (check_liw_constraints): New function.
9004         (liw_candidate): New function.
9005         (mn10300_bundle_liw): New function.
9006         (mn10300_reorg): New function.
9007         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9008         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
9009         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
9010         __LIW__ or __NO_LIW__.
9011         * doc/invoke.texi: Describe the -mliw command line option.
9012
9013 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9014
9015         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
9016         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9017         pthread_mutex_unlock): Remove.
9018         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
9019         * config/pa/t-pa64: Likewise.
9020         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
9021         shared libc if not linking against libpthread.
9022         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9023
9024 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
9025
9026         PR target/47558
9027         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
9028         on 10.6 and later to ensure that we always use the unwinder from
9029         the system.  Only add -no_compact_unwind when tarteting darwin
9030         10.6 or later.
9031
9032 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
9033
9034         PR target/46997
9035         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
9036         (vec_interleave_lowv2sf): Ditto.
9037         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
9038         (vec_extract_oddv2sf): Ditto.
9039
9040 2011-02-07  Mike Stump  <mikestump@comcast.net>
9041
9042         PR target/42333
9043         Add __ieee_divdc3 entry point.
9044         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
9045         entry point.
9046         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
9047         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
9048         * config/darwin.c (darwin_rename_builtins): Add.
9049         * config/darwin-protos.h (darwin_rename_builtins): Add.
9050
9051 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
9052
9053         PR target/47636
9054         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
9055         for the condition.
9056
9057 2011-02-07  Mike Stump  <mikestump@comcast.net>
9058
9059         * config/darwin.opt (mmacosx-version-min): Update default OS version.
9060
9061 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
9062
9063         PR target/47534
9064         * config/avr/libgcc.S (exit): Move .endfunc
9065
9066 2011-02-07  Richard Guenther  <rguenther@suse.de>
9067
9068         PR tree-optimization/47615
9069         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
9070         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
9071         (run_scc_vn): Initialize it.
9072         (visit_reference_op_load): Use it.
9073         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
9074
9075 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9076
9077         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
9078         DImode trapping arithmetic libfuncs.
9079
9080 2011-02-07  Richard Guenther  <rguenther@suse.de>
9081
9082         PR tree-optimization/47621
9083         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
9084         two duplicates ...
9085         (execute_update_addresses_taken): ... here.  Make it more
9086         conservative in what we accept.
9087
9088 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
9089
9090         * config/sparc/freebsd.h (ASM_SPEC): Define.
9091         * config/sparc/vxworks.h (ASM_SPEC): Define.
9092
9093 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
9094
9095         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9096
9097 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
9098
9099         * doc/invoke.texi: Remove reference to compiler internals from
9100         user documentation.
9101
9102         * reg-notes.def: Remove REG_VALUE_PROFILE.
9103         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
9104
9105 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
9106
9107         PR middle-end/47610
9108         * varasm.c (default_section_type_flags): If decl is NULL,
9109         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
9110
9111 2011-02-05  Jie Zhang  <jie@codesourcery.com>
9112
9113         PR debug/42631
9114         * web.c (entry_register): Don't clobber the number of the
9115         first uninitialized reference in used[].
9116
9117 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
9118
9119         PR tree-optimization/46194
9120         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
9121         (build_classic_dist_vector_1): Do not represent classic distance
9122         vectors when the access functions are variating in different loops.
9123
9124 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
9125
9126         * config/mips/iris6.opt: New.
9127         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
9128
9129 2011-02-04  Richard Henderson  <rth@redhat.com>
9130             Steve Ellcey  <sje@cup.hp.com>
9131
9132         PR target/46997
9133         * config/ia64/predicates.md (mux1_brcst_element): New.
9134         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
9135         * config/ia64/ia64.c (ia64_unpack_assemble): New.
9136         (ia64_unpack_sign): New.
9137         (ia64_expand_unpack): Rewrite using new routines.
9138         (ia64_expand_widen_sum): Ditto.
9139         (ia64_expand_dot_prod_v8qi): Ditto.
9140         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
9141         routines, add endian check.
9142         (pmpy2_even): Rename from pmpy2_r, add endian check.
9143         (pmpy2_odd): Rename from pmpy2_l, add endian check.
9144         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
9145         (vec_widen_smult_hi_v4hi): Ditto.
9146         (vec_widen_umult_lo_v4hi): Ditto.
9147         (vec_widen_umult_hi_v4hi): Ditto.
9148         (mulv2si3): Change endian checks.
9149         (sdot_prodv4hi): Rewrite with new calls.
9150         (udot_prodv4hi): New.
9151         (vec_pack_ssat_v4hi): Add endian check.
9152         (vec_pack_usat_v4hi): Ditto.
9153         (vec_pack_ssat_v2si): Ditto.
9154         (max1_even): Rename from max1_r, add endian check.
9155         (max1_odd): Rename from max1_l, add endian check.
9156         (*mux1_rev): Format change.
9157         (*mux1_mix): Ditto.
9158         (*mux1_shuf): Ditto.
9159         (*mux1_alt): Ditto.
9160         (*mux1_brcst_v8qi): Use new predicate.
9161         (vec_extract_evenv8qi): Remove endian check.
9162         (vec_extract_oddv8qi): Ditto.
9163         (vec_interleave_lowv4hi): Format change.
9164         (vec_interleave_highv4hi): Ditto.
9165         (mix2_even): Rename from mix2_r, add endian check.
9166         (mix2_odd): Rename from mux2_l, add endian check.
9167         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
9168         (vec_extract_evenodd_helper): Format change.
9169         (vec_extract_evenv4hi): Remove endian check.
9170         (vec_extract_oddv4hi): Remove endian check.
9171         (vec_interleave_lowv2si): Format change.
9172         (vec_interleave_highv2si): Format change.
9173         (vec_initv2si): Remove endian check.
9174         (vecinit_v2si): Add endian check.
9175         (reduc_splus_v2sf): Add endian check.
9176         (reduc_smax_v2sf): Ditto.
9177         (reduc_smin_v2sf): Ditto.
9178         (vec_initv2sf): Remove endian check.
9179         (fpack): Add endian check.
9180         (fswap): Add endian check.
9181         (vec_interleave_highv2sf): Add endian check.
9182         (vec_interleave_lowv2sf): Add endian check.
9183         (fmix_lr): Add endian check.
9184         (vec_setv2sf): Format change.
9185         (*vec_extractv2sf_0_be): Use shift to extract operand.
9186         (*vec_extractv2sf_1_be): New.
9187         (vec_pack_trunc_v4hi): Add endian check.
9188         (vec_pack_trunc_v2si): Format change.
9189
9190 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
9191
9192         PR inline-asm/23200
9193         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
9194         do bb, locus and block comparison and disallow loads if it is not set.
9195         (stmt_is_replaceable_p): New function.
9196         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
9197         callers.
9198         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
9199         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
9200         SSA_NAME_DEF_STMT.
9201         * tree-flow.h (stmt_is_replaceable_p): New prototype.
9202
9203 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
9204
9205         * config/rs6000/xilinx.opt: New.
9206         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
9207
9208 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
9209
9210         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
9211
9212 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
9213
9214         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
9215         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9216         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
9217         secondary_reload_info, xtensa_secondary_reload): Remove.
9218         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
9219         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9220         (xtensa_preferred_reload_class): Make static. Change return and
9221         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
9222         Use CONST_DOUBLE_P predicate.
9223         (xtensa_preferred_output_reload_class): New function.
9224         (xtensa_secondary_reload): Make static.
9225
9226 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
9227
9228         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
9229         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
9230         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
9231
9232 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
9233
9234         PR middle-end/31490
9235         * output.h (SECTION_RELRO): Define.
9236         (SECTION_MACH_DEP): Adjust.
9237         (get_variable_section): New prototype.
9238         * varpool.c (varpool_finalize_named_section_flags): New function.
9239         (varpool_assemble_pending_decls): Call it.
9240         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
9241         * cgraphunit.c (cgraph_output_in_order): Call
9242         varpool_finalize_named_section_flags.
9243         * varasm.c (get_section): Allow section flags conflicts between
9244         relro and read-only sections if the section hasn't been declared yet.
9245         Set SECTION_OVERRIDE after diagnosing section type conflict.
9246         (get_variable_section): No longer static.
9247         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
9248         readonly sections that need relocations.
9249         (decl_readonly_section_1): New function.
9250         (decl_readonly_section): Use it.
9251
9252         Revert:
9253         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
9254                     Steve Ellcey  <sje@cup.hp.com>
9255
9256         PR middle-end/31490
9257         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
9258         if section attribute used.
9259
9260 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
9261
9262         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
9263         * config/darwin.c (SECTION_NO_ANCHOR): Define.
9264         (darwin_init_sections): Remove assertion.
9265
9266 2011-02-03  Nick Clifton  <nickc@redhat.com>
9267
9268         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
9269         lt and ge.
9270         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
9271         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
9272         instead of "n" and "pz".
9273         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
9274         CC_FLAG_S.
9275
9276 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
9277
9278         PR target/47312
9279         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
9280         fma, expand FMA_EXPR as fma{,f,l} call.
9281
9282         PR lto/47274
9283         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
9284         copy them into a unsigned char variable and pass address of it to
9285         lto_output_data_stream.
9286
9287         PR target/47564
9288         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
9289         around backend_init_target and lang_dependent_init_target calls.
9290         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
9291         (verify_cgraph_node): Don't call set_cfun here.  Use
9292         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
9293         Set error_found for incorrectly represented calls to thunks.
9294
9295 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
9296
9297         PR debug/43092
9298         PR rtl-optimization/43494
9299         * rtl.h (for_each_inc_dec_fn): New type.
9300         (for_each_inc_dec): Declare.
9301         * rtlanal.c (struct for_each_inc_dec_ops): New type.
9302         (for_each_inc_dec_find_inc_dec): New fn.
9303         (for_each_inc_dec_find_mem): New fn.
9304         (for_each_inc_dec): New fn.
9305         * dse.c (struct insn_size): Remove.
9306         (replace_inc_dec, replace_inc_dec_mem): Remove.
9307         (emit_inc_dec_insn_before): New fn.
9308         (check_for_inc_dec): Use it, along with for_each_inc_dec.
9309         (canon_address): Pass mem modes to cselib_lookup.
9310         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
9311         (cselib_lookup_from_insn): Likewise.
9312         (cselib_subst_to_values): Likewise.
9313         * cselib.c (find_slot_memmode): New var.
9314         (cselib_find_slot): New fn.  Use it instead of
9315         htab_find_slot_with_hash everywhere.
9316         (entry_and_rtx_equal_p): Use find_slot_memmode.
9317         (autoinc_split): New fn.
9318         (rtx_equal_for_cselib_p): Rename and implement in terms of...
9319         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
9320         Deal with autoinc.  Special-case recursion into MEMs.
9321         (cselib_hash_rtx): Likewise.
9322         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
9323         address and MEM modes.
9324         (cselib_subst_to_values): Add memmode, pass it on.
9325         Deal with autoinc.
9326         (cselib_lookup): Add memmode argument, pass it on.
9327         (cselib_lookup_from_insn): Add memmode.
9328         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
9329         (struct cselib_record_autoinc_data): New.
9330         (cselib_record_autoinc_cb): New fn.
9331         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
9332         mode to cselib_lookup.  Reset autoinced REGs here instead of...
9333         (cselib_process_insn): ... here.
9334         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
9335         to cselib_lookup.
9336         (add_uses): Likewise, also to cselib_subst_to_values.
9337         (add_stores): Likewise.
9338         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
9339         cselib_subst_to_values.
9340         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
9341         * gcse.c (do_local_cprop): Adjusted.
9342         * postreload.c (reload_cse_simplify_set): Adjusted.
9343         (reload_cse_simplify_operands): Adjusted.
9344         * sel-sched-dump (debug_mem_addr_value): Pass mode.
9345
9346 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
9347
9348         PR tree-optimization/45122
9349         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
9350         unsafe assumptions when there's more than one loop exit.
9351
9352 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9353
9354         PR target/47272
9355         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9356         Document using vector double with the load/store builtins, and
9357         that the load/store builtins always use Altivec instructions.
9358
9359         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
9360         to use altivec memory instructions, even on VSX.
9361         (vector_altivec_store_<mode>): Ditto.
9362
9363         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
9364         function.
9365
9366         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9367         V2DF, V2DI support to load/store overloaded builtins.
9368
9369         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
9370         altivec load/store builtins for V2DF/V2DI types.
9371
9372         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9373         set avoid indexed addresses on power6 if -maltivec.
9374         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
9375         vector_altivec_load/vector_altivec_store builtins.
9376         (altivec_expand_st_builtin): Ditto.
9377         (altivec_expand_builtin): Add VSX memory builtins.
9378         (rs6000_init_builtins): Add V2DI types to internal types.
9379         (altivec_init_builtins): Add support for V2DF/V2DI altivec
9380         load/store builtins.
9381         (rs6000_address_for_altivec): Insure memory address is appropriate
9382         for Altivec.
9383
9384         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
9385         vec_vsx_ld and vec_vsx_st.
9386         (vsx_store_<mode>): Ditto.
9387
9388         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
9389         variables to hold long long types for VSX vector memory builtins.
9390         (RS6000_BTI_unsigned_long_long): Ditto.
9391         (long_long_integer_type_internal_node): Ditti.
9392         (long_long_unsigned_type_internal_node): Ditti.
9393
9394         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
9395         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
9396         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
9397
9398         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
9399         short cuts.
9400         (vec_vsx_st): Ditto.
9401
9402 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9403
9404         * config/pa/pa-hpux10.opt: New.
9405         * config/hpux11.opt (pthread): New Driver option.
9406         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
9407         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
9408
9409 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9410
9411         * config/ia64/vms.opt: New.
9412         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
9413
9414 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
9415
9416         PR target/47580
9417         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
9418         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
9419         generator functions.
9420         (vsx_floatuns<VSi><mode>2): Ditto.
9421         (vsx_fix_trunc<mode><VSi>2): Ditto.
9422         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
9423
9424 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
9425
9426         * config/i386/djgpp.opt (posix): New Driver option.
9427
9428 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9429
9430         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
9431         Move to the unsupported targets list.
9432
9433 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
9434
9435         PR rtl-optimization/47525
9436         * df-scan.c: Update copyright years.
9437         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
9438         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
9439
9440 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9441
9442         * config/i386/sysv4.h (TARGET_VERSION): Remove.
9443         (SUBTARGET_RETURN_IN_MEMORY): Remove.
9444         (ASM_OUTPUT_ASCII): Remove.
9445         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
9446
9447 2011-02-02  Jeff Law  <law@redhat.com>
9448
9449         PR middle-end/47543
9450         * reload.c (find_reloads_address): Handle reg+d address where both
9451         components are invalid by reloading the entire address.
9452
9453 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
9454             Richard Guenther  <rguenther@suse.de>
9455
9456         PR tree-optimization/40979
9457         PR bootstrap/47044
9458         * passes.c (init_optimization_passes): After LIM call copy_prop
9459         and DCE to clean up.
9460         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
9461
9462 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
9463
9464         PR tree-optimization/47576
9465         PR tree-optimization/47555
9466         * doc/invoke.texi (scev-max-expr-complexity): Documented.
9467         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9468         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
9469         * tree-scalar-evolution.c (follow_ssa_edge): Use
9470         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
9471
9472 2011-02-02  Richard Guenther  <rguenther@suse.de>
9473
9474         PR tree-optimization/47566
9475         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
9476
9477 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
9478
9479         PR debug/47106
9480         PR debug/47402
9481         * tree-inline.c (declare_return_variable): Remove unused caller
9482         variable.
9483
9484         PR debug/47106
9485         PR debug/47402
9486         * tree-flow-inline.h (clear_is_used, is_used_p): New.
9487         * cfgexpand.c (account_used_vars_for_block): Use them.
9488         * tree-nrv.c (tree_nrv): Likewise.
9489         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
9490         (dump_scope_block): Likewise.
9491         (remove_unused_locals): Likewise.
9492
9493         PR debug/47106
9494         PR debug/47402
9495         * tree-inline.c (declare_return_variable): Add result decl to
9496         local decls only once.
9497         * gimple-low.c (record_vars_into): Mark newly-created variables
9498         as referenced.
9499
9500 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
9501
9502         PR debug/47498
9503         PR debug/47501
9504         PR debug/45136
9505         PR debug/45130
9506         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9507         debug insns.
9508         (no_real_insns_p, schedule_block, set_priorities): Drop special
9509         treatment of boundary debug insns.
9510         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9511         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
9512         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9513         (BOUNDARY_DEBUG_INSN_P): Likewise.
9514         (SCHEDULE_DEBUG_INSN_P): Likewise.
9515         * sched-rgn.c (init_ready_list): Drop special treatment of
9516         boundary debug insns.
9517         * final.c (rest_of_clean_state): Clear notes' BB.
9518
9519 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9520
9521         * config/openbsd.opt (assert=): New Driver option.
9522
9523 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9524
9525         * config/i386/nto.opt: New.
9526         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
9527
9528 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9529
9530         * config/i386/netware.opt: New.
9531         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
9532
9533 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9534
9535         * config/interix.opt (posix): New Driver option.
9536
9537 2011-02-01  DJ Delorie  <dj@redhat.com>
9538
9539         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
9540
9541         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
9542         class for A0/A1.
9543
9544 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
9545
9546         PR tree-optimization/47561
9547         * toplev.c (process_options): Print the Graphite flags.  Add
9548         flag_loop_flatten to the list of options requiring Graphite.
9549
9550 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9551
9552         * config/i386/cygming.opt (posix): New Driver option.
9553
9554 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9555
9556         * config/arm/vxworks.opt: New.
9557         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
9558
9559 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
9560
9561         * config/alpha/elf.opt: New.
9562         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
9563         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
9564
9565 2011-02-01  Richard Guenther  <rguenther@suse.de>
9566
9567         PR tree-optimization/47559
9568         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
9569         store-motion on references that can throw.
9570
9571 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
9572
9573         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
9574         * tree-pass.h (TDF_CSELIB): New macro.
9575         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
9576         cselib_lookup): Check for it rather than for TDF_DETAILS.
9577
9578 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
9579
9580         PR driver/47547
9581         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
9582         is HOST_BIT_BUCKET.
9583
9584         * opts.c (finish_options): Don't add x_aux_base_name if it is
9585         HOST_BIT_BUCKET.
9586
9587 2011-02-01  Richard Guenther  <rguenther@suse.de>
9588
9589         PR tree-optimization/47555
9590         Revert
9591         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
9592
9593         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
9594
9595 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
9596
9597         PR gcc/46692
9598         * config/lm32/t-lm32: Add multilib for all CPU options.
9599
9600 2011-02-01  Richard Guenther  <rguenther@suse.de>
9601
9602         PR tree-optimization/47541
9603         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
9604         sure to have a field at offset zero.
9605
9606 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9607
9608         * config/arc/arc.opt (EB, EL): New Driver options.
9609
9610 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9611
9612         * config/alpha/osf5.opt: New.
9613         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
9614
9615 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
9616
9617         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
9618
9619 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
9620
9621         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
9622         -floop-interchange.
9623         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
9624         is an alias of -floop-interchange and that it requires the
9625         Graphite infrastructure.
9626         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
9627         flag_loop_interchange based on the value of flag_tree_loop_linear.
9628
9629 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
9630             Richard Guenther  <rguenther@suse.de>
9631
9632         PR tree-optimization/47538
9633         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
9634         type instead of r1type, except for comparisons.  For right
9635         shifts and comparisons punt if there are mismatches in
9636         sizetype vs. non-sizetype types.
9637
9638 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9639
9640         * doc/sourcebuild.texi (Effective-Target Keywords): Document
9641         avx_runtime.
9642
9643 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9644
9645         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
9646         version number.
9647         * configure: Regenerate.
9648
9649 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9650
9651         * configure.ac (gcc_cv_ld_static_option): Define.
9652         (gcc_cv_ld_dynamic_option): Define.
9653         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
9654         instead.
9655         (HAVE_LD_STATIC_DYNAMIC): Update message.
9656         (LD_STATIC_OPTION): Define.
9657         (LD_DYNAMIC_OPTION): Define.
9658         * configure: Regenerate.
9659         * config.in: Regenerate.
9660         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
9661         HAVE_LD_STATIC_DYNAMIC]: Use them.
9662
9663 2011-01-31  Nick Clifton  <nickc@redhat.com>
9664
9665         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
9666         registers inside interrupt handlers if the handler is not a leaf
9667         function.
9668
9669 2011-01-31  Nick Clifton  <nickc@redhat.com>
9670
9671         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
9672         reg_renumber returning an INVALID_REGNUM.
9673
9674 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
9675
9676         PR libgcj/44341
9677         * doc/install.texi: Document host options discarded when cross
9678         configuring target libraries.
9679
9680 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
9681
9682         Reverted:
9683         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
9684         PR debug/45136
9685         PR debug/45130
9686         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9687         debug insns.
9688         (no_real_insns_p, schedule_block, set_priorities): Drop special
9689         treatment of boundary debug insns.
9690         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9691         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9692         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9693         (BOUNDARY_DEBUG_INSN_P): Likewise.
9694         (SCHEDULE_DEBUG_INSN_P): Likewise.
9695         * sched-rgn.c (init_ready_list): Drop special treatment of
9696         boundary debug insns.
9697         * final.c (rest_of_clean-state): Clear notes' BB.
9698
9699 2011-01-31  Alan Modra  <amodra@gmail.com>
9700
9701         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
9702         toc relative expressions as we do in print_operand_address.
9703
9704 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
9705
9706         * doc/extend.texi: Follow spelling conventions.
9707         * doc/invoke.texi: Fix a typo.
9708
9709 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
9710
9711         * config/hpux11.opt: New.
9712         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
9713         ia64*-*-hpux*): Use hpux11.opt.
9714
9715 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
9716
9717         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
9718         to tmake_file.
9719
9720 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9721
9722         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
9723         support sites.
9724
9725 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9726
9727         * doc/install.texi (Binaries): Remove outdated reference for
9728         Motorola 68HC11/68HC12 downloads.
9729
9730 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
9731
9732         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
9733         Drepper's paper.
9734
9735 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
9736
9737         PR bootstrap/47147
9738         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
9739         used by NetBSD.
9740
9741 2011-01-28  Ahmad Sharif  <asharif@google.com>
9742
9743         * value-prof.c (check_counter): Corrected error message.
9744
9745 2011-01-29  Jie Zhang  <jie@codesourcery.com>
9746
9747         * config/arm/arm.c (arm_legitimize_reload_address): New.
9748         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9749         arm_legitimize_reload_address.
9750         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
9751
9752 2011-01-28  Ian Lance Taylor  <iant@google.com>
9753
9754         * godump.c (go_define): Ignore macros whose definitions include
9755         two adjacent operands.
9756
9757 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
9758
9759         PR target/42894
9760         * varasm.c (force_const_mem): Store copy of x in desc->constant
9761         instead of x itself.
9762         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
9763         itself into REG_EQUAL note.
9764
9765 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
9766
9767         * config/freebsd.opt (posix, rdynamic): New Driver options.
9768
9769 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9770
9771         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
9772         -Bstatic/-Bdynamic.
9773         * configure: Regenerate.
9774
9775 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
9776
9777         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
9778         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
9779
9780 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
9781
9782         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
9783         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
9784         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9785         (s390_preferred_reload_class): Make static. Change return and
9786         'rclass' argument type to reg_class_t.
9787
9788 2011-01-27  Jan Hubicka  <jh@suse.cz>
9789
9790         PR middle-end/46949
9791         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
9792         (process_function_and_variable_attributes): Check defined weakrefs.
9793
9794 2011-01-27  Martin Jambor  <mjambor@suse.cz>
9795
9796         PR tree-optimization/47228
9797         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
9798         build_ref_for_offset.
9799
9800 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9801
9802         * config/spu/spu-elf.h (ASM_SPEC): Remove.
9803
9804 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
9805
9806         PR rtl-optimization/46856
9807         * postreload.c (reload_combine_recognize_const_pattern): Do not
9808         separate cc0 setter and user on cc0 targets.
9809
9810 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
9811
9812         PR c/43082
9813         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
9814         passed a VOID_TYPE expression, immediately emit an error and
9815         return error_mark_node.
9816
9817 2011-01-26  Jeff Law  <law@redhat.com>
9818
9819         PR rtl-optimization/47464
9820         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
9821         rather than may_trap_p as needed.
9822
9823 2011-01-26  DJ Delorie  <dj@redhat.com>
9824
9825         PR rtl-optimization/46878
9826         * combine.c (insn_a_feeds_b): Check for the implicit cc0
9827         setter/user dependency as well.
9828
9829 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9830
9831         PR rtl-optimization/44469
9832         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
9833         after removing trivially dead basic blocks.
9834
9835 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9836
9837         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
9838         * config/frv/frv.h (LINK_SPEC): Likewise.
9839         * config/i386/netware.h (LINK_SPEC): Likewise.
9840         * config/m68k/linux.h (ASM_SPEC): Likewise.
9841         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
9842         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9843         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9844         * config/sparc/linux.h (ASM_SPEC): Likewise.
9845         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9846         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9847
9848 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9849
9850         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
9851         * config/frv/frv.h (ASM_SPEC): Likewise.
9852         * config/m68k/linux.h (ASM_SPEC): Likewise.
9853         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9854         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
9855         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9856         * config/sparc/linux.h (ASM_SPEC): Likewise.
9857         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9858         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9859
9860 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9861
9862         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
9863         * config/frv/frv.h (LINK_SPEC): Likewise.
9864         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
9865
9866 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
9867
9868         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
9869         * config/frv/frv.h (ASM_SPEC): Likewise.
9870         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
9871         * config/m68k/linux.h (ASM_SPEC): Likewise.
9872         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
9873         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
9874         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9875         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
9876         * config/sparc/linux.h (ASM_SPEC): Likewise.
9877         * config/sparc/linux64.h (ASM_SPEC): Likewise.
9878         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9879         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
9880
9881 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
9882
9883         PR target/46997
9884         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
9885         (*mux2): Ditto.
9886         (vec_extract_evenodd_help): Ditto.
9887         (vec_extract_evenv4hi): Ditto.
9888         (vec_extract_oddv4hi): Ditto.
9889         (vec_interleave_lowv2si): Ditto.
9890         (vec_interleave_highv2si): Ditto.
9891         (vec_extract_evenv2si): Ditto.
9892         (vec_extract_oddv2si: Ditto.
9893         (vec_pack_trunc_v2si): Ditto.
9894
9895 2011-01-22  Jan Hubicka  <jh@suse.cz>
9896
9897         PR target/47237
9898         * cgraph.h (cgraph_local_info): New field can_change_signature.
9899         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
9900         signature can change.
9901         (ipcp_estimate_growth): Call sequence simplify only if calle signature
9902         can change.
9903         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
9904         (cgraph_function_versioning): We can not change signature of functions
9905         that don't allow that.
9906         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
9907         (lto_input_node): Likewise.
9908         * ipa-inline.c (compute_inline_parameters): Compute
9909         local.can_change_signature.
9910         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
9911         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
9912         functions that can not change signature.
9913         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
9914         init_cumulative_args): Do not use local calling conventions
9915         for functions that can not change signature.
9916
9917 2011-01-22  Jan Hubicka  <jh@suse.cz>
9918
9919         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
9920
9921 2011-01-26  Richard Guenther  <rguenther@suse.de>
9922
9923         PR tree-optimization/47190
9924         * cgraphunit.c (process_common_attributes): New function.
9925         (process_function_and_variable_attributes): Use it.
9926
9927 2011-01-26  Richard Guenther  <rguenther@suse.de>
9928
9929         PR lto/47423
9930         * cgraphbuild.c (record_eh_tables): Record reference to personality
9931         function.
9932
9933 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
9934
9935         PR debug/45454
9936         * sel-sched.c (moveup_expr): Don't let debug insns prevent
9937         non-debug insns from moving up.
9938
9939 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
9940
9941         PR target/40125
9942         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
9943         t-dlldir{,-x} fragment for build and add it to tmake_file.
9944         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
9945         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
9946         * config/i386/t-dlldir: New file.
9947         (SHLIB_DLLDIR): Define.
9948         * config/i386/t-dlldir-x: New file.
9949         (SHLIB_DLLDIR): Define.
9950         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
9951         (SHLIB_INSTALL): Use it.
9952
9953 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
9954
9955         PR target/47246
9956         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
9957         lower bound of the allowed Thumb-2 coprocessor load/store
9958         index range to -256. Add explaining comment.
9959
9960 2011-01-25  Ian Lance Taylor  <iant@google.com>
9961
9962         * godump.c (go_define): Improve lexing of macro expansion to only
9963         accept expressions which match Go spec.
9964
9965 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
9966
9967         PR c++/43601
9968         * tree.c (handle_dll_attribute): Handle it.
9969         * doc/extend.texi (@item dllexport): Mention it.
9970         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
9971
9972 2011-01-25  Ian Lance Taylor  <iant@google.com>
9973
9974         PR tree-optimization/26854
9975         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
9976         (decl_jump_unsafe): Move higher in file, with no other change.
9977         (bind): Set has_jump_unsafe_decl if appropriate.
9978         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
9979         (check_earlier_gotos): Likewise.
9980         (c_check_switch_jump_warnings): Likewise.
9981
9982 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
9983
9984         * doc/invoke.texi (Warning Options): Add missing hyphen.
9985         (-fprofile-dir): Minor grammatical fixes.
9986         (-fbranch-probabilities): Likewise.
9987
9988 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
9989
9990         PR debug/45136
9991         PR debug/45130
9992         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
9993         debug insns.
9994         (no_real_insns_p, schedule_block, set_priorities): Drop special
9995         treatment of boundary debug insns.
9996         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9997         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
9998         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
9999         (BOUNDARY_DEBUG_INSN_P): Likewise.
10000         (SCHEDULE_DEBUG_INSN_P): Likewise.
10001         * sched-rgn.c (init_ready_list): Drop special treatment of
10002         boundary debug insns.
10003         * final.c (rest_of_clean-state): Clear notes' BB.
10004
10005 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10006
10007         * Makefile.in (LAMBDA_H): Removed.
10008         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
10009         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
10010         lambda-trans.o, and tree-loop-linear.o.
10011         (lto-symtab.o): Remove dependence on LAMBDA_H.
10012         (tree-loop-linear.o): Remove rule.
10013         (lambda-mat.o): Same.
10014         (lambda-trans.o): Same.
10015         (lambda-code.o): Same.
10016         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
10017         (tree-vect-slp.o): Same.
10018         * hwint.h (gcd): Moved here.
10019         (least_common_multiple): Same.
10020         * lambda-code.c: Removed.
10021         * lambda-mat.c: Removed.
10022         * lambda-trans.c: Removed.
10023         * lambda.h: Removed.
10024         * tree-loop-linear.c: Removed.
10025         * lto-symtab.c: Do not include lambda.h.
10026         * omega.c (gcd): Removed.
10027         * passes.c (init_optimization_passes): Remove pass_linear_transform.
10028         * tree-data-ref.c (print_lambda_vector): Moved here.
10029         (lambda_vector_copy): Same.
10030         (lambda_matrix_copy): Same.
10031         (lambda_matrix_id): Same.
10032         (lambda_vector_first_nz): Same.
10033         (lambda_matrix_row_add): Same.
10034         (lambda_matrix_row_exchange): Same.
10035         (lambda_vector_mult_const): Same.
10036         (lambda_vector_negate): Same.
10037         (lambda_matrix_row_negate): Same.
10038         (lambda_vector_equal): Same.
10039         (lambda_matrix_right_hermite): Same.
10040         * tree-data-ref.h: Do not include lambda.h.
10041         (lambda_vector): Moved here.
10042         (lambda_matrix): Same.
10043         (dependence_level): Same.
10044         (lambda_transform_legal_p): Removed declaration.
10045         (lambda_collect_parameters): Same.
10046         (lambda_compute_access_matrices): Same.
10047         (lambda_vector_gcd): Same.
10048         (lambda_vector_new): Same.
10049         (lambda_vector_clear): Same.
10050         (lambda_vector_lexico_pos): Same.
10051         (lambda_vector_zerop): Same.
10052         (lambda_matrix_new): Same.
10053         * tree-flow.h (least_common_multiple): Removed declaration.
10054         * tree-parloops.c (lambda_trans_matrix): Moved here.
10055         (LTM_MATRIX): Same.
10056         (LTM_ROWSIZE): Same.
10057         (LTM_COLSIZE): Same.
10058         (LTM_DENOMINATOR): Same.
10059         (lambda_trans_matrix_new): Same.
10060         (lambda_matrix_vector_mult): Same.
10061         (lambda_transform_legal_p): Same.
10062         * tree-pass.h (pass_linear_transform): Removed declaration.
10063         * tree-ssa-loop.c (tree_linear_transform): Removed.
10064         (gate_tree_linear_transform): Removed.
10065         (pass_linear_transform): Removed.
10066         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
10067         flag_loop_interchange.
10068
10069 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
10070
10071         PR tree-optimization/47265
10072         PR tree-optimization/47443
10073         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
10074         if name still has some uses.
10075
10076 2011-01-25  Martin Jambor  <mjambor@suse.cz>
10077
10078         PR tree-optimization/47382
10079         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
10080         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
10081
10082 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
10083
10084         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
10085         sjlj_except_unwind_info.
10086
10087 2011-01-25  Richard Guenther  <rguenther@suse.de>
10088
10089         PR tree-optimization/47426
10090         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
10091         visible functions results escape.
10092
10093 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
10094
10095         PR target/45701
10096         * config/arm/arm.c (any_sibcall_uses_r3): New function.
10097         (arm_get_frame_offsets): Use it.
10098
10099 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10100             Jakub Jelinek  <jakub@redhat.com>
10101
10102         PR tree-optimization/47271
10103         * tree-if-conv.c (bb_postdominates_preds): New.
10104         (if_convertible_bb_p): Call bb_postdominates_preds.
10105         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
10106         (predicate_scalar_phi): Call bb_postdominates_preds.
10107
10108 2011-01-25  Nick Clifton  <nickc@redhat.com>
10109
10110         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
10111         * config/rx/rx.c (rx_function_value): Likewise.
10112         (rx_promote_function_mode): Likewise.
10113         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
10114         in order to make it legitimate.
10115         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
10116         make sure that the first operand is the same as the result register.
10117         (addsi3_unspec): Delete.
10118         (subdi3): Do not accept immediate operands.
10119         (subdi3_internal): Likewise.
10120
10121 2011-01-25  Jeff Law  <law@redhat.com>
10122
10123         PR rtl-optimization/37273
10124         * ira-costs.c (scan_one_insn): Detect constants living in memory and
10125         handle them like argument loads from stack slots.  Do not double
10126         count memory for memory constants and argument loads from stack slots.
10127
10128 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
10129
10130         PR tree-optimization/47427
10131         PR tree-optimization/47428
10132         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10133         coalesce if the new root var would be TREE_READONLY.
10134
10135 2011-01-25  Richard Guenther  <rguenther@suse.de>
10136
10137         PR middle-end/47414
10138         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
10139         correct type for TBAA.
10140
10141 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10142
10143         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
10144         (close_phi_written_to_memory): Call for_each_index with
10145         dr_indices_valid_in_loop.
10146
10147 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10148
10149         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
10150         when it is initialized.
10151
10152 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10153
10154         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
10155         call to graphite_find_data_references_in_stmt.
10156         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
10157         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
10158         call to graphite_find_data_references_in_stmt.
10159         (analyze_drs_in_stmts): Same.
10160         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
10161         in which the scalar analysis of indices is performed.
10162         (create_data_ref): Same.  Update call to dr_analyze_indices.
10163         (find_data_references_in_stmt): Update call to create_data_ref.
10164         (graphite_find_data_references_in_stmt): Same.
10165         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
10166         declaration.
10167         (create_data_ref): Same.
10168         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
10169         call to create_data_ref.
10170
10171 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10172
10173         * graphite-sese-to-poly.c (build_poly_scop): Move
10174         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
10175
10176 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10177
10178         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
10179         VAR_DECL, PARM_DECL, and RESULT_DECL.
10180
10181 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10182
10183         * graphite-dependences.c (reduction_dr_1): Allow several reductions
10184         in a reduction PBB.
10185         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
10186         that have already been marked as PBB_IS_REDUCTION.
10187
10188 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10189
10190         * graphite-scop-detection.c (same_close_phi_node): New.
10191         (remove_duplicate_close_phi): New.
10192         (make_close_phi_nodes_unique): New.
10193         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
10194
10195 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10196
10197         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
10198         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
10199         of both data references to be the same.
10200
10201 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10202
10203         * graphite-dependences.c (build_lexicographical_constraint): Remove
10204         the gdim parameter.
10205         (build_lexicographical_constraint): Adjust call to
10206         ppl_powerset_is_empty.
10207         (dependence_polyhedron): Same.
10208         (graphite_legal_transform_dr): Same.
10209         (graphite_carried_dependence_level_k): Same.
10210         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
10211         parameter.
10212         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
10213
10214 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10215
10216         * graphite-sese-to-poly.c
10217         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
10218         (close_phi_written_to_memory): New.
10219         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
10220         and unshare_expr.
10221
10222 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10223
10224         * doc/install.texi: Update the expected version number of PPL to 0.11.
10225         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
10226         #if PPL_VERSION_MINOR < 11.
10227
10228 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10229
10230         * graphite-dependences.c: Include graphite-cloog-util.h.
10231         (new_poly_ddr): Inlined into dependence_polyhedron.
10232         (free_poly_ddr): Moved close by new_poly_ddr.
10233         (dependence_polyhedron_1): Renamed dependence_polyhedron.
10234         Early return NULL when ppl_powerset_is_empty returns true.
10235         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
10236         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
10237         (graphite_legal_transform_dr): Call new_poly_ddr.
10238         (graphite_carried_dependence_level_k): Same.
10239         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
10240         (dot_transformed_deps_stmt_1): Removed.
10241         (dot_deps_stmt_1): Call dot_deps_stmt_2.
10242         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
10243         (dot_deps_1): Call dot_deps_2.
10244         * Makefile.in (graphite-dependences.o): Add missing dependence on
10245         graphite-cloog-util.h.
10246
10247 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10248
10249         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
10250         (build_lexicographical_constraint): Same.
10251         (dependence_polyhedron_1): Same.
10252         (graphite_legal_transform_dr): Same.
10253         (graphite_carried_dependence_level_k): Same.
10254         * graphite-ppl.c (ppl_powerset_is_empty): New.
10255         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
10256         * tree-data-ref.c (dump_data_reference): Print the basic block index.
10257
10258 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10259
10260         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
10261         the "a followed by b" relation and document it.
10262
10263 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10264
10265         * graphite-dependences.c (build_lexicographical_constraint): Stop the
10266         iteration when the bag of constraints is empty.
10267
10268 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10269
10270         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
10271
10272 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10273
10274         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
10275         nest and two loop depths as parameters.
10276         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
10277         lst_perfect_nestify.
10278
10279 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10280
10281         * graphite-dependences.c (print_pddr): Call
10282         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
10283
10284 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
10285
10286         * graphite-ppl.c (debug_gmp_value): New.
10287         * graphite-ppl.h (debug_gmp_value): Declared.
10288
10289 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
10290
10291         * doc/install.texi: Document availability of cloog-0.16.
10292
10293 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
10294
10295         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
10296         invalid postdominance info.
10297
10298 2011-01-24  Jan Hubicka  <jh@suse.cz>
10299
10300         PR c/21659
10301         * doc/extend.texi (weak pragma): Drop claim that it must
10302         appear before definition.
10303         * varasm.c (merge_weak, declare_weak): Only sanity check
10304         that DECL is not output at a time it is declared weak.
10305
10306 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
10307
10308         * machmode.def: Fixed comments.
10309
10310 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
10311
10312         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
10313
10314 2011-01-24  Paul Koning  <ni1d@arrl.net>
10315
10316         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
10317         WORDS_BIG_ENDIAN.
10318
10319 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10320
10321         PR target/46519
10322         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
10323         (block_info): Add scanned and prev.
10324         (move_or_delete_vzeroupper_2): Return if the basic block
10325         has been scanned and the upper 128bit state is unchanged
10326         from the last scan.
10327         (move_or_delete_vzeroupper_1): Return true if the exit
10328         state is changed.
10329         (move_or_delete_vzeroupper): Visit basic blocks using the
10330         work-list based algorithm based on vt_find_locations in
10331         var-tracking.c.
10332
10333         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
10334
10335 2011-01-24  Nick Clifton  <nickc@redhat.com>
10336
10337         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
10338         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
10339         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
10340         then define __v850e1__.
10341         * doc/invoke.texi: Document -mv850es.
10342
10343 2011-01-24  Richard Henderson  <rth@redhat.com>
10344
10345         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
10346         compound unordered comparisons.
10347         * config/rx/rx.c (rx_split_fp_compare): Remove.
10348         * config/rx/rx-protos.h: Update.
10349         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
10350         (cbranchsf4): Don't call rx_split_fp_compare.
10351         (*cbranchsf4): Use rx_split_cbranch.
10352         (*cmpsf): Don't accept "i" constraint.
10353         (*conditional_branch): Only valid after reload.
10354         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
10355
10356 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10357
10358         PR target/47385
10359         * config/rs6000/altivec.md (vector constant splitters): Add
10360         support for creating vector single precision constants if -mvsx is
10361         used and we would create the constant using Altivec primitives.
10362
10363 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
10364             Richard Sandiford  <rdsandiford@googlemail.com>
10365
10366         PR rtl-optimization/47166
10367         * reload1.c (emit_reload_insns): Disable the spill_reg_store
10368         mechanism for PRE_MODIFY and POST_MODIFY.
10369         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
10370         reloadreg.
10371
10372 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
10373
10374         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
10375
10376 2011-01-22  Jan Hubicka  <jh@suse.cz>
10377
10378         PR lto/47333
10379         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
10380
10381 2011-01-22  Jan Hubicka  <jh@suse.cz>
10382
10383         PR tree-optimization/43884
10384         PR lto/44334
10385         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
10386         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
10387
10388 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
10389
10390         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10391         * config/s390/s390.c (s390_register_move_cost,
10392         s390_memory_move_cost): New.
10393         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
10394
10395 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10396
10397         PR middle-end/47401
10398         * except.c (sjlj_assign_call_site_values): Move setting the
10399         crtl->uses_eh_lsda flag to ...
10400         (sjlj_mark_call_sites): ... here.
10401         (sjlj_emit_function_enter): Support NULL dispatch label.
10402         (sjlj_build_landing_pads): In a function with no landing pads
10403         that still has must-not-throw regions, generate code to register
10404         a personality function with empty LSDA.
10405
10406 2011-01-21  Richard Henderson  <rth@redhat.com>
10407
10408         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
10409
10410         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
10411
10412         * compare-elim.c: New file.
10413         * Makefile.in (OBJS-common): Add it.
10414         (compare-elim.o): New.
10415         * common.opt (fcompare-elim): New.
10416         * opts.c (default_options_table): Add OPT_fcompare_elim.
10417         * tree-pass.h (pass_compare_elim_after_reload): New.
10418         * passes.c (init_optimization_passes): Add it.
10419         * recog.h: Protect against re-inclusion.
10420         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
10421         * doc/invoke.texi (-fcompare-elim): Document it.
10422         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
10423         * doc/tm.texi: Rebuild.
10424
10425 2011-01-22  Nick Clifton  <nickc@redhat.com>
10426
10427         * config/rx/rx.md (cstoresf4): Pass comparison operator to
10428         rx_split_fp_compare.
10429
10430 2011-01-22  Nick Clifton  <nickc@redhat.com>
10431
10432         * config/rx/rx.md (UNSPEC_CONST): New.
10433         (deallocate_and_return): Wrap the amount popped off the stack in
10434         an UNSPEC_CONST in order to stop it being rejected by
10435         -mmax-constant-size.
10436         (pop_and_return): Add a "(return)" rtx.
10437         (call): Drop the immediate operand.
10438         (call_internal): Likewise.
10439         (call_value): Likewise.
10440         (call_value_internal): Likewise.
10441         (sibcall_internal): Likewise.
10442         (sibcall_value_internal): Likewise.
10443         (sibcall): Likewise.  Generate an explicit call using
10444         sibcall_internal.
10445         (sibcall_value): Likewise.
10446         (mov<>): FAIL if a constant operand is not legitimate.
10447         (addsi3_unpsec): New pattern.
10448
10449         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
10450         (ok_for_max_constant): New function.
10451         (gen_safe_add): New function.
10452         (rx_expand_prologue): Use gen_safe_add.
10453         (rx_expand_epilogue): Likewise.
10454         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
10455         UNSPEC CONSTs.
10456
10457 2011-01-21  Jeff Law  <law@redhat.com>
10458
10459         PR tree-optimization/47053
10460         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
10461         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
10462         statements are deleted.
10463         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
10464         is nonempty, then purge dead edges and cleanup the CFG.
10465
10466 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10467
10468         PR debug/47402
10469         Temporarily revert:
10470         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10471         PR debug/47106
10472         * tree-dfa.c (create_var_ann): Mark variable as used.
10473
10474 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10475
10476         PR middle-end/45566
10477         * except.c (convert_to_eh_region_ranges): Emit queued no-region
10478         notes from other section in hot/cold partitioning even if
10479         last_action is -3.  Increment call_site_base.
10480
10481         PR rtl-optimization/47366
10482         * fwprop.c (forward_propagate_into): Return bool.  If
10483         any changes are made, -fnon-call-exceptions is used and
10484         REG_EH_REGION note is present, call purge_dead_edges
10485         and return true if it purged anything.
10486         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
10487         any EH edges were purged.
10488
10489 2011-01-21  Jeff Law  <law@redhat.com>
10490
10491         PR rtl-optimization/41619
10492         * caller-save.c (setup_save_areas): Break out code to determine
10493         which hard regs are live across calls by examining the reload chains
10494         so that it is always used.
10495         Eliminate code which checked REG_N_CALLS_CROSSED.
10496
10497 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10498
10499         PR tree-optimization/47355
10500         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
10501         NOP has non-debug uses beyond PHIs in new_bb.
10502
10503 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
10504
10505         PR debug/47106
10506         * cfgexpand.c (account_used_vars_for_block): Only account vars
10507         that are annotated as used.
10508         (estimated_stack_frame_size): Don't set TREE_USED.
10509         * tree-dfa.c (create_var_ann): Mark variable as used.
10510
10511 2011-01-21  Richard Guenther  <rguenther@suse.de>
10512
10513         PR middle-end/47395
10514         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
10515
10516 2011-01-21  Richard Guenther  <rguenther@suse.de>
10517
10518         PR tree-optimization/47365
10519         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
10520         (vn_reference_lookup_pieces): Adjust.
10521         (vn_reference_lookup): Likewise.
10522         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
10523         (vn_reference_lookup_3): Only look through kills if in
10524         VN_WALKREWRITE mode.
10525         (vn_reference_lookup_pieces): Adjust.
10526         (vn_reference_lookup): Likewise.
10527         (visit_reference_op_load): Likewise.
10528         (visit_reference_op_store): Likewise.
10529         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
10530         (compute_avail): Likewise.
10531         (eliminate): Likewise.
10532
10533 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
10534
10535         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
10536         DECL_IGNORED_P non-reg vars if they are used.
10537
10538         PR tree-optimization/47391
10539         * varpool.c (const_value_known_p): Return false if
10540         decl is volatile.
10541
10542 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
10543
10544         PR bootstrap/47215
10545         * config/i386/i386.c (ix86_local_alignment): Handle
10546         case for va_list_type_node is nil.
10547         (ix86_canonical_va_list_type): Likewise.
10548
10549 2011-01-21  Alan Modra  <amodra@gmail.com>
10550
10551         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
10552         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
10553
10554 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10555
10556         * config/arm/arm.md (define_attr type): Rename f_load
10557         and f_store to f_fpa_load and f_fpa_store. Update.
10558         (write_conflict): Deal with rename fallout.
10559         (*push_fp_multi): Likewise.
10560         * config/arm/fpa.md (f_load): Use f_fpa_load.
10561         (f_store): Use f_fpa_store.
10562         (*movsf_fpa): Likewise.
10563         (*movdf_fpa): Likewise.
10564         (*movxf_fpa): Likewise.
10565         (*thumb2_movsf_fpa): Likewise.
10566         (*thumb2_movdf_fpa): Likewise.
10567         (*thumb2_movxf_fpa): Likewise.
10568         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
10569         f_loadd and f_stored.
10570         (*thumb2_movdi_vfp): Likewise.
10571         (*thumb2_movsf_vfp): Fix attribute to f_loads.
10572         (*thumb2_movsi_vfp): Likewise.
10573         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
10574         Use f_loads instead of f_load.
10575         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
10576
10577 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
10578
10579         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10580         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
10581         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10582         (xtensa_mode_dependent_address_p): New function.
10583         (constantpool_address_p): Make static. Change return type to bool.
10584         Change argument type to const_rtx. Use CONST_INT_P predicate.
10585
10586 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
10587
10588         PR debug/46583
10589         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
10590
10591 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
10592
10593         PR debug/47283
10594         * cfgexpand.c (expand_debug_expr): Instead of generating
10595         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
10596         etc. handling.
10597
10598 2011-01-20  Richard Guenther  <rguenther@suse.de>
10599
10600         PR middle-end/47370
10601         * tree-inline.c (remap_gimple_op_r): Recurse manually for
10602         the pointer operand of MEM_REFs.
10603
10604 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
10605
10606         PR tree-optimization/46130
10607         * ipa-split.c (consider_split): If return_bb contains non-virtual
10608         PHIs other than for retval or if split_function would not adjust it,
10609         refuse to split.
10610
10611 2011-01-20  Richard Guenther  <rguenther@suse.de>
10612
10613         PR tree-optimization/47167
10614         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
10615         Revert previous change, only avoid enumeral type changes.
10616
10617 2011-01-19  Mike Stump  <mikestump@comcast.net>
10618
10619         * doc/tm.texi.in (BRANCH_COST): Englishify.
10620         * doc/tm.texi (BRANCH_COST): Likewise.
10621
10622 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
10623
10624         PR c++/47291
10625         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
10626         (gen_scheduled_generic_parms_dies): New functions.
10627         (gen_struct_or_union_type_die): Schedule template parameters DIEs
10628         generation for the end of CU compilation.
10629         (dwarf2out_finish): Generate template parameters DIEs here.
10630
10631 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10632
10633         PR debug/46240
10634         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
10635         debug bind stmt on merge edges.
10636
10637 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10638
10639         PR debug/47079
10640         PR debug/46724
10641         * function.c (instantiate_expr): Instantiate incoming rtl of
10642         implicit arguments, and recurse on VALUE_EXPRs.
10643         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
10644         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
10645
10646 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
10647
10648         * c-parser.c (c_parser_for_statement): Initialize
10649         collection_expression.
10650
10651 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10652
10653         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
10654
10655 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10656
10657         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
10658         (LINK_SHLIB_SPEC): Don't use %(link_path).
10659         (SUBTARGET_EXTRA_SPECS): Remove link_path.
10660
10661 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10662
10663         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
10664         (NO_SHARED_LIB_SUPPORT): Remove.
10665         (LINK_SHLIB_SPEC): Remove one conditional definition.
10666
10667 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
10668
10669         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
10670         %{call_shared}.
10671         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
10672         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
10673         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
10674         %{call_shared} and conditionals on these options not being passed.
10675         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
10676         %{call_shared}.
10677
10678 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
10679
10680         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
10681         simplify.
10682
10683         * ipa-split.c: Spelling fixes.
10684
10685 2011-01-19  Richard Henderson  <rth@redhat.com>
10686
10687         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
10688         (*mulsi3): Likewise.
10689
10690         * longlong.h [__mn10300__] (count_leading_zeros): New.
10691         [__mn10300__] (umul_ppmm, smul_ppmm): New.
10692         [__mn10300__] (add_ssaaaa, subddmmss): New.
10693         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
10694         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
10695
10696 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10697
10698         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
10699
10700 2011-01-19  Richard Henderson  <rth@redhat.com>
10701
10702         * config/mn10300/mn10300.md (addsi3_flags): New.
10703         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
10704         (subsi3_flags, subc_internal, subdi3): New.
10705         (subdi3_internal, *subdi3_degenerate): New.
10706         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
10707
10708         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
10709         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
10710         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
10711         * config/mn10300/mn10300-protos.h: Update.
10712         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
10713         (return_ret): Likewise.  Rename from return_internal_regs.
10714         (return_internal): Remove.
10715
10716         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
10717         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
10718         (mn10300_legitimate_constant_p): Likewise.
10719         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
10720         (mn10300_frame_size): New.
10721         (mn10300_expand_prologue): Use it.
10722         (mn10300_expand_epilogue): Likewise.
10723         (mn10300_initial_offset): Likewise.
10724         * config/mn10300/mn10300-protos.h: Update.
10725         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
10726         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
10727         (prologue, epilogue, return_internal): Tidy output code.
10728         (mn10300_store_multiple_operation, return): Likewise.
10729         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
10730         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
10731         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
10732         (load_pic, am33_load_pic): New.
10733         (mn10300_load_pic0, mn10300_load_pic1): New.
10734
10735         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
10736         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
10737         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
10738         (cc_flags_for_mode, cc_flags_for_code): New.
10739         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
10740         overflow flag is not valid.  Validate that the flags we need
10741         for the comparison are valid.
10742         (mn10300_output_cmp): Remove.
10743         (mn10300_output_add): New.
10744         (mn10300_select_cc_mode): Use cc_flags_for_code.
10745         (mn10300_split_cbranch): New.
10746         (mn10300_match_ccmode): New.
10747         (mn10300_split_and_operand_count): New.
10748         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
10749         to the function.
10750         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
10751         (addsi3): ... here.  Use mn10300_output_add.
10752         (*addsi3_flags): New.
10753         (*am33_subsi3, *mn10300_subsi3): Merge...
10754         (subsi3): ... here.  Use attribute isa.
10755         (*subsi3_flags): New.
10756         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
10757         when possible.
10758         (*am33_andsi3, *mn10300_andsi3): Merge...
10759         (andsi3): ... here.
10760         (*andsi3_flags): New.
10761         (andsi3 splitters): New.
10762         (*am33_iorsi3, *mn10300_iorsi3): Merge...
10763         (iorsi3): ... here.
10764         (*iorsi3_flags): New.
10765         (*am33_xorsi3, *mn10300_xorsi3): Merge...
10766         (xorsi3): ... here.
10767         (*xorsi3_flags): New.
10768         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
10769         (one_cmplsi2): ... here.
10770         (*one_cmplsi2_flags): New.
10771         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
10772         instead of "dax" in constraints.  Use mn10300_split_cbranch.
10773         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
10774         use matching constraints to eliminate a self-comparison.
10775         (*integer_conditional_branch): Rename from integer_conditional_branch.
10776         Use int_mode_flags to match CC_REG.
10777         (*cbranchsi4_btst, *btstsi): New.
10778         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
10779         mn10300_split_cbranch.
10780         (*am33_cmpsf): Rename from am33_cmpsf.
10781         (*float_conditional_branch): Rename from float_conditional_branch.
10782         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
10783         (zero_extendqisi2): ... here.
10784         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
10785         (zero_extendhisi2): ... here.
10786         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
10787         (extendqisi2): ... here.
10788         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
10789         (extendhisi2): ... here.
10790         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
10791         (ashlsi3): ... here.
10792         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
10793         (lshrsi3): ... here.
10794         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
10795         (ashrsi3): ... here.
10796         (consecutive add peephole): Remove.
10797         * config/mn10300/predicates.md (label_ref_operand): New.
10798         (int_mode_flags): New.
10799         (CCZN_comparison_operator): New.
10800
10801         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
10802         (throughput_42_latency_43): New reservation.
10803         (mulsidi3, umulsidi3): New expanders.
10804         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
10805         the MDR register to allocation; separately allocate the low and
10806         high parts of the DImode result.
10807         (umulsidi3_internal): Similarly.
10808         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
10809         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
10810         (udivsi3, umodsi3): Remove.
10811         (udivmodsi4, divmodsi4): New expanders.
10812         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
10813         (*divmodsi4): Simiarly.
10814         (ext_internal): New.
10815
10816         * config/mn10300/constraints.md ("z"): New constraint.
10817         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
10818         (FIXED_REGISTERS): Don't fix MDR.
10819         (CALL_USED_REGSITERS): Reformat nicely.
10820         (REG_ALLOC_ORDER): Add MDR.
10821         (enum regclass): Add MDR_REGS.
10822         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
10823         (IRA_COVER_CLASSES): Add MDR_REGS.
10824         (REGNO_REG_CLASS): Handle MDR_REG.
10825         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
10826         (mn10300_register_move_cost): Likewise.
10827         * config/mn10300/mn10300.md (MDR_REG): New.
10828         (*movsi_internal): Handle moves to/from MDR_REGS.
10829
10830         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
10831         POST_MODIFY.
10832         (mn10300_secondary_reload): Tidy combination reload classes.
10833         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
10834         addresses for AM33.  Allow symbolic offsets for reg+imm.
10835         (mn10300_regno_in_class_p): New.
10836         (mn10300_legitimize_reload_address): New.
10837         * config/mn10300/mn10300.h (enum reg_class): Remove
10838         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
10839         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
10840         SP_OR_GENERAL_REGS.
10841         (REG_CLASS_NAMES): Update to match.
10842         (REG_CLASS_CONTENTS): Likewise.
10843         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
10844         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
10845         (REGNO_IN_RANGE_P): Remove.
10846         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
10847         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
10848         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
10849         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
10850         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
10851         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
10852         (REGNO_GENERAL_P): New.
10853         (HAVE_POST_MODIFY_DISP): New.
10854         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
10855         (LEGITIMIZE_RELOAD_ADDRESS): New.
10856         * config/mn10300/mn10300-protos.h: Update.
10857
10858         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
10859         DATA_REGS for AM33 stack-pointer destination.
10860         (mn10300_preferred_output_reload_class): Likewise.
10861         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
10862         into a form appropriate for ...
10863         (TARGET_SECONDARY_RELOAD): New.
10864         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
10865         * config/mn10300/mn10300-protos.h: Update.
10866         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
10867         reload_insi; use the "A" constraint for the scratch; handle AM33
10868         moves of sp to non-address registers.
10869
10870         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
10871         (*movqi_internal): ... here.
10872         (*am33_movhi, *mn10300_movhi): Merge into...
10873         (*movhi_internal): ... here.
10874         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
10875         as the source/destination of moves from/to SP.
10876         (movsf): Only allow for AM33-2.
10877         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
10878         any integer constant constraint.  Only allow for AM33-2.  Tidy
10879         all of the alternative outputs.
10880         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
10881         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
10882         for MN103.
10883         (udivsi3, umodsi3): New patterns for MN103 only.
10884
10885 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
10886
10887         * doc/tm.texi.in: Spell out that a lack of register class unions
10888         can lead to ICEs.
10889         * doc/tm.texi: Regenerate.
10890
10891 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
10892
10893         PR rtl-optimization/47337
10894         * dce.c (check_argument_store): New function.
10895         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
10896
10897         PR tree-optimization/47290
10898         * tree-eh.c (infinite_empty_loop_p): New function.
10899         (cleanup_empty_eh): Use it.
10900
10901 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
10902
10903         PR target/46997
10904         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
10905         (a64_expand_widen_sum): Ditto.
10906         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
10907         (vec_extract_evenodd_help): Ditto.
10908         (vec_extract_evenv4hi): Ditto.
10909         (vec_extract_oddv4hi): Ditto.
10910         (vec_extract_evenv2si): Ditto.
10911         (vec_extract_oddv2si): Ditto.
10912         (vec_extract_evenv2sf): Ditto.
10913         (vec_extract_oddv2sf): Ditto.
10914         (vec_pack_trunc_v4hi: Ditto.
10915         (vec_pack_trunc_v2si): Ditto.
10916         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
10917         (vec_interleave_highv8qi): Ditto.
10918         (mix1_r): Ditto.
10919         (vec_extract_oddv8qi): Ditto.
10920         (vec_interleave_lowv4hi): Ditto.
10921         (vec_interleave_highv4hi): Ditto.
10922         (vec_interleave_lowv2si): Ditto.
10923         (vec_interleave_highv2si): Ditto.
10924
10925 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10926
10927         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
10928         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
10929         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
10930         (pa_c_mode_for_suffix): New.
10931         (TARGET_EXPAND_BUILTIN): Define.
10932         (TARGET_C_MODE_FOR_SUFFIX): Define.
10933         (pa_builtins): Define.
10934         (pa_init_builtins): Register __float128 type and init new support
10935         builtins.
10936         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
10937         * config/pa/quadlib.c (_U_Qfcopysign): New.
10938
10939 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
10940
10941         PR middle-end/46894
10942         * explow.c (allocate_dynamic_stack_space): Do not assume more than
10943         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
10944         are defined.
10945
10946 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10947
10948         PR tree-optimization/47179
10949         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
10950         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
10951
10952 2011-01-18  Richard Guenther  <rguenther@suse.de>
10953
10954         PR rtl-optimization/47216
10955         * emit-rtl.c: Include tree-flow.h.
10956         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
10957         of replicating it with different semantics.
10958         * Makefile.in (emit-rtl.o): Adjust.
10959
10960 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10961
10962         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
10963         (cortex_a9_dp): Handle neon types correctly.
10964
10965 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
10966
10967         PR rtl-optimization/47299
10968         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
10969         subtarget.  Use normal multiplication if both operands are constants.
10970         * expmed.c (expand_widening_mult): Don't try to optimize constant
10971         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
10972         before using it.
10973
10974 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10975
10976         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
10977         spacing after 'e.g.', typos, comma, hyphenation.
10978
10979 2011-01-17  Richard Henderson  <rth@redhat.com>
10980
10981         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
10982         (rx_restricted_mem_operand): New.
10983         (rx_shift_operand): Use register_operand.
10984         (rx_source_operand, rx_compare_operand): Likewise.
10985         * config/rx/rx.md (addsi3_flags): New expander.
10986         (adddi3): Rewrite as expander.
10987         (adc_internal, *adc_flags, adddi3_internal): New patterns.
10988         (subsi3_flags): New expander.
10989         (subdi3): Rewrite as expander.
10990         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
10991
10992         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
10993         (rx_init_builtins): Remove sat builtin.
10994         (rx_expand_builtin): Likewise.
10995         * config/rx/rx.md (ssaddsi3): New.
10996         (*sat): Rename from sat.  Represent the CC_REG input.
10997
10998         * config/rx/predicates.md (rshift_operator): New.
10999         * config/rx/rx.c (rx_expand_insv): Remove.
11000         * config/rx/rx-protos.h: Update.
11001         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
11002         operand to the canonical position.
11003         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
11004         (*bitclr, *bitclr_in_memory): Similarly.
11005         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
11006         (insv): Retain the zero_extract in the expansion.
11007
11008         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
11009         (bswaphi2, bitinvert, revw): Likewise.
11010
11011         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
11012         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
11013         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
11014         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
11015         (bitset, bitset_in_memory): Likewise.
11016         (bitinvert, bitinvert_in_memory): Likewise.
11017         (bitclr, bitclr_in_memory): Likewise.
11018         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
11019         (rx_strend, rx_cmpstrn): Likewise.
11020         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
11021         (bitop peep2 patterns): Remove.
11022
11023         * config/rx/rx.c (rx_match_ccmode): New.
11024         * config/rx/rx-protos.h: Update.
11025         * config/rx/rx.md (abssi2): Clobber, don't set flags.
11026         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
11027         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
11028         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
11029         (fix_truncsfsi2, floatsisf2): Likewise.
11030         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
11031         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
11032         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
11033         (*subsi3_flags, *xorsi3_flags): New.
11034
11035         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
11036
11037         * config/rx/rx.c (rx_print_operand): Remove workaround for
11038         unsplit comparison operations.
11039
11040         * config/rx/rx.md (movsicc): Split after reload.
11041         (*movsicc): Merge *movsieq and *movsine via match_operator.
11042         (*stcc): New pattern.
11043
11044         * config/rx/rx.c (rx_float_compare_mode): Remove.
11045         * config/rx/rx.h (rx_float_compare_mode): Remove.
11046         * config/rx/rx.md (cstoresi4): Split after reload.
11047         (*sccc): New pattern.
11048
11049         * config/rx/predicates.md (label_ref_operand): New.
11050         (rx_z_comparison_operator): New.
11051         (rx_zs_comparison_operator): New.
11052         (rx_fp_comparison_operator): New.
11053         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
11054         Validate that the flags are set properly for the comparison.
11055         (rx_gen_cond_branch_template): Remove.
11056         (rx_cc_modes_compatible): Remove.
11057         (mode_from_flags): New.
11058         (flags_from_code): Rename from flags_needed_for_conditional.
11059         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
11060         (rx_select_cc_mode): Likewise.
11061         (rx_split_fp_compare): New.
11062         (rx_split_cbranch): New.
11063         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
11064         (*cbranchsi4): Use match_operator and rx_split_cbranch.
11065         (*cbranchsf4): Similarly.
11066         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
11067         match_operator and rx_split_cbranch.
11068         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
11069         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
11070         (*cmpsi): Rename from cmpsi.
11071         (*tstsi): Rename from tstsi.
11072         (*cmpsf): Rename from cmpsf; use CC_Fmode.
11073         (*conditional_branch): Rename from conditional_branch.
11074         (*reveresed_conditional_branch): Remove.
11075         (b<code>): Remove expander.
11076         * config/rx/rx-protos.h: Update.
11077
11078         * config/rx/rx.c (rx_compare_redundant): Remove.
11079         * config/rx/rx.md (cmpsi): Don't use it.
11080         * config/rx/rx-protos.h: Update.
11081
11082         * config/rx/rx-modes.def (CC_F): New mode.
11083         * config/rx/rx.c (rx_select_cc_mode): New.
11084         * config/rx/rx.h (SELECT_CC_MODE): Use it.
11085         * config/rx/rx-protos.h: Update.
11086
11087 2011-01-17  Richard Henderson  <rth@redhat.com>
11088
11089         * except.c (dump_eh_tree): Fix stray ; after for statement.
11090
11091 2011-01-17  Richard Guenther  <rguenther@suse.de>
11092
11093         PR tree-optimization/47313
11094         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
11095         handling before copying the body.  Properly deal with
11096         by-reference result in SSA form.
11097
11098 2011-01-17  Ian Lance Taylor  <iant@google.com>
11099
11100         PR target/47219
11101         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
11102         (struct_value_alias_set): Don't define.
11103         (sparc_option_override): Don't set sparc_sr_alias_set and
11104         struct_value_alias_set.
11105         (save_or_restore_regs): Use gen_frame_mem rather than calling
11106         set_mem_alias_set.
11107         (sparc_struct_value_rtx): Likewise.
11108
11109 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
11110
11111         PR target/47318
11112         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
11113         (_mm_maskstore_pd): Likewise.
11114         (_mm_maskload_ps): Likewise.
11115         (_mm_maskstore_ps): Likewise.
11116         (_mm256_maskload_pd): Change mask to __m256i.
11117         (_mm256_maskstore_pd): Likewise.
11118         (_mm256_maskload_ps): Likewise.
11119         (_mm256_maskstore_ps): Likewise.
11120
11121         * config/i386/i386-builtin-types.def: Updated.
11122         (ix86_expand_special_args_builtin): Likewise.
11123
11124         * config/i386/i386.c (bdesc_special_args): Update
11125         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
11126         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
11127         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
11128         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
11129
11130         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
11131         Use <avxpermvecmode> on mask register.
11132         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
11133
11134 2011-01-17  Olivier Hainque  <hainque@adacore.com>
11135             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
11136             Eric Botcazou  <ebotcazou@adacore.com>
11137
11138         PR target/46655
11139         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
11140         if <= USHRT_MAX in 32-bit mode.
11141
11142 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11143
11144         * doc/install.texi (Configuration, Specific): Wrap long
11145         lines in examples.  Allow line wrapping in long options
11146         and URLs where beneficial for PDF output.
11147
11148 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
11149
11150         * config/mips/mips.c (mips_classify_symbol): Don't return
11151         SYMBOL_PC_RELATIVE for nonlocal labels.
11152
11153 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
11154
11155         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
11156
11157 2011-01-15  Jan Hubicka  <jh@suse.cz>
11158
11159         PR tree-optimization/47276
11160         * ipa.c (function_and_variable_visibility): Do not try to mark alias
11161         declarations as needed.
11162
11163 2011-01-15  Martin Jambor  <mjambor@suse.cz>
11164
11165         * common.opt (fdevirtualize): New flag.
11166         * doc/invoke.texi (Option Summary): Document it.
11167         * opts.c (default_options_table): Add devirtualize flag.
11168         * ipa-prop.c (detect_type_change): Return immediately if
11169         devirtualize flag is not set.
11170         (detect_type_change_ssa): Likewise.
11171         (compute_known_type_jump_func): Likewise.
11172         (ipa_analyze_virtual_call_uses): Likewise.
11173
11174 2011-01-14  Martin Jambor  <mjambor@suse.cz>
11175
11176         PR tree-optimization/45934
11177         PR tree-optimization/46302
11178         * ipa-prop.c (type_change_info): New type.
11179         (stmt_may_be_vtbl_ptr_store): New function.
11180         (check_stmt_for_type_change): Likewise.
11181         (detect_type_change): Likewise.
11182         (detect_type_change_ssa): Likewise.
11183         (compute_complex_assign_jump_func): Check for dynamic type change.
11184         (compute_complex_ancestor_jump_func): Likewise.
11185         (compute_known_type_jump_func): Likewise.
11186         (compute_scalar_jump_functions): Likewise.
11187         (ipa_analyze_virtual_call_uses): Likewise.
11188         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
11189
11190 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11191
11192         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
11193         * config/i386/i386.opt (msse5): New Alias.
11194
11195 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11196
11197         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11198         * config/sparc/linux64.h (CC1_SPEC): Likewise.
11199         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11200         * config/sparc/sparc.h (CC1_SPEC): Likewise.
11201
11202 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11203
11204         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
11205         -mcpu options.
11206         * config/sparc/linux64.h (CC1_SPEC): Likewise.
11207         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11208         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
11209         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
11210         Likewise.
11211         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
11212
11213 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11214
11215         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
11216
11217 2011-01-14  Mike Stump  <mikestump@comcast.net>
11218
11219         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
11220         * config/fr30/fr30.md: Likweise
11221         (movsi_push): Likewise.
11222         (movsi_pop): Likewise.
11223         (enter_func): Likewise.
11224         * config/moxie/moxie.md (movsi_push): Likewise.
11225         (movsi_pop): Likewise.
11226
11227 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11228
11229         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
11230         %{no_archive} %{exact_version}.
11231         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
11232         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
11233         %{no_archive} %{exact_version}.
11234         * config/mips/openbsd.h (LINK_SPEC): Likewise.
11235         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
11236         * config/mips/vxworks.h: Likewise.
11237
11238 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11239
11240         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
11241
11242 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11243
11244         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
11245         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
11246
11247 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11248
11249         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
11250         -nodefaultlib.
11251
11252 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11253
11254         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
11255         for mcpu not cpu.
11256         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
11257         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
11258         not cpu.
11259         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
11260         Don't handle -shlib.
11261
11262 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11263
11264         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
11265         (CC1_SPEC): Don't handle -profile.
11266
11267 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11268
11269         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
11270         * config/mips/mips.h (CC1_SPEC): Likewise.
11271
11272 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11273
11274         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
11275         * config/mips/mips.h (CC1_SPEC): Likewise.
11276
11277 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11278
11279         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
11280         * config/m32r/linux.h (LINK_SPEC): Likewise.
11281         * config/mips/linux.h (LINK_SPEC): Likewise.
11282         * config/mips/linux64.h (LINK_SPEC): Likewise.
11283         * config/sparc/linux.h (LINK_SPEC): Likewise.
11284         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
11285         LINK_SPEC): Likewise.
11286         * config/xtensa/linux.h (LINK_SPEC): Likewise.
11287
11288 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11289
11290         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
11291         %{version:-v}.
11292         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
11293
11294 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11295
11296         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
11297         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
11298
11299 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
11300
11301         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
11302
11303 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11304
11305         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
11306         supports -Bstatic/-Bdynamic.
11307         * configure: Regenerate.
11308
11309 2011-01-14  Jan Hubicka  <jh@suse.cz>
11310             Jack Howarth  <howarth@bromo.med.uc.edu>
11311
11312         PR target/46037
11313         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
11314         when checking debug_info_level. Test write_symbols instead of
11315         debug_hooks->var_location when setting flag_var_tracking_uninit.
11316
11317 2011-01-14  Richard Guenther  <rguenther@suse.de>
11318
11319         PR tree-optimization/47179
11320         * target.def (ref_may_alias_errno): New target hook.
11321         * targhooks.h (default_ref_may_alias_errno): Declare.
11322         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
11323         (default_ref_may_alias_errno): New function.
11324         * target.h (struct ao_ref_s): Declare.
11325         * tree-ssa-alias.c: Include target.h.
11326         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
11327         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
11328         (targhooks.o): Likewise.
11329         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
11330         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
11331
11332 2011-01-14  Richard Guenther  <rguenther@suse.de>
11333
11334         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
11335
11336 2011-01-14  Richard Guenther  <rguenther@suse.de>
11337
11338         PR tree-optimization/47280
11339         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
11340         return CFG changes.
11341         (tree_ssa_forward_propagate_single_use_vars): Deal with
11342         CFG changes from associate_plusminus.
11343
11344 2011-01-14  Richard Guenther  <rguenther@suse.de>
11345
11346         PR middle-end/47281
11347         Revert
11348         2011-01-11  Richard Guenther  <rguenther@suse.de>
11349
11350         PR tree-optimization/46076
11351         * tree-ssa.c (useless_type_conversion_p): Conversions from
11352         unprototyped to empty argument list function types are useless.
11353
11354 2011-01-14  Richard Guenther  <rguenther@suse.de>
11355
11356         PR tree-optimization/47286
11357         * tree-ssa-structalias.c (new_var_info): Register variables are global.
11358
11359 2011-01-14  Martin Jambor  <mjambor@suse.cz>
11360
11361         PR middle-end/46823
11362         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
11363
11364 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
11365
11366         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
11367         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11368         * config/xtensa/xtensa.c (xtensa_libcall_value,
11369         xtensa_function_value_regno_p): New functions.
11370         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11371
11372 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
11373
11374         PR c++/47213
11375         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
11376         PE specific hook.
11377         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
11378         New function prototype.
11379         * config/i386/winnt.c (i386_pe_assemble_visibility):
11380         Warn only if attribute was specified by user.
11381
11382 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11383
11384         PR target/47251
11385         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
11386         floating point.
11387         (floatunsdidf2_fcfidu): Ditto.
11388
11389 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11390
11391         * config/s390/s390.c (print_operand_address): Replace 'error' with
11392         'output_operand_lossage'.
11393         (print_operand): Likewise.
11394
11395 2011-01-13  Jeff Law  <law@redhat.com>
11396
11397         PR rtl-optimization/39077
11398         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
11399         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
11400         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
11401         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
11402         * gcse.c (prune_insertions_deletions): New function.
11403         (compute_pre_data): Use it.
11404
11405 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
11406
11407         PR debug/PR46973
11408         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
11409         static function.
11410         (prune_unused_types_mark): Use it.
11411
11412 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
11413
11414         PR rtl-optimization/45352
11415         * sel-sched.c: Update copyright years.
11416         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
11417         in the advancing loop when we have issued issue_rate insns.
11418
11419 2011-01-12  Richard Henderson  <rth@redhat.com>
11420
11421         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
11422         (TARGET_MD_ASM_CLOBBERS): New.
11423
11424         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
11425         (TARGET_DELEGITIMIZE_ADDRESS): New.
11426
11427         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
11428         (clzsi2, *bsch): New patterns.
11429
11430         * config/mn10300/mn10300.md (INT): New mode iterator.
11431         (*mov<INT>_clr): New pattern, and peep2 to generate it.
11432
11433         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
11434         flag_split_wide_types.
11435
11436         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
11437         (mn10300_trampoline_init): Rewrite without a template, an immediate
11438         load and a direct branch.
11439         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
11440
11441 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
11442
11443         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11444         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
11445         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
11446         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11447
11448 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
11449
11450         PR debug/47209
11451         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
11452         of type.
11453
11454 2011-01-12  Jan Hubicka  <jh@suse.cz>
11455
11456         PR driver/47244
11457         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
11458         (PLUGIN_COND_CLOSE): New macro.
11459         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
11460
11461 2011-01-12  Richard Guenther  <rguenther@suse.de>
11462
11463         PR lto/47259
11464         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
11465         register variables in a MEM_REF.
11466
11467 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
11468
11469         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
11470         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
11471         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
11472         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
11473         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
11474         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
11475         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
11476         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
11477         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
11478         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
11479         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
11480         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
11481         * config/gnu-user.h: New.  Copied from linux.h.
11482         (LINUX_TARGET_STARTFILE_SPEC): Rename to
11483         GNU_USER_TARGET_STARTFILE_SPEC.
11484         (LINUX_TARGET_ENDFILE_SPEC): Rename to
11485         GNU_USER_TARGET_ENDFILE_SPEC.
11486         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
11487         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
11488         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
11489         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
11490         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
11491         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
11492         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
11493         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
11494         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
11495         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
11496         * config/arm/linux-eabi.h (CC1_SPEC): Use
11497         GNU_USER_TARGET_CC1_SPEC.
11498         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
11499         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
11500         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
11501         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
11502         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
11503         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
11504         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
11505         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
11506
11507 2011-01-12  Richard Guenther  <rguenther@suse.de>
11508
11509         PR other/46946
11510         * doc/invoke.texi (ffast-math): Document it is turned on
11511         with -Ofast.
11512
11513 2011-01-12  Jan Hubicka  <jh@suse.cz>
11514
11515         PR tree-optimization/47233
11516         * opts.c (common_handle_option): Disable ipa-reference with profile
11517         feedback.
11518
11519 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11520
11521         * c-parser.c (c_parser_objc_at_property_declaration): Improved
11522         error message.
11523
11524 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11525
11526         * c-parser.c (c_lex_one_token): Updated and reindented some
11527         comments.  No changes in code.
11528
11529 2011-01-11  Ian Lance Taylor  <iant@google.com>
11530
11531         * godump.c (go_output_var): Don't output the variable if there is
11532         already a type with the same name.
11533
11534 2011-01-11  Ian Lance Taylor  <iant@google.com>
11535
11536         * godump.c (go_format_type): Don't generate float80.
11537
11538 2011-01-11  Richard Henderson  <rth@redhat.com>
11539
11540         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
11541         declaration.  Rewrite for both speed and size.
11542         (mn10300_address_cost_1): Remove.
11543         (mn10300_register_move_cost): New.
11544         (mn10300_memory_move_cost): New.
11545         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
11546         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
11547         extensions, shifts, BSWAP, CLZ.
11548         (mn10300_wide_const_load_uses_clr): Remove.
11549         (TARGET_REGISTER_MOVE_COST): New.
11550         (TARGET_MEMORY_MOVE_COST): New.
11551         * config/mn10300/mn10300-protos.h: Update.
11552         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
11553
11554         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
11555         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
11556         * config/mn10300/mn10300-protos.h: Update.
11557         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
11558         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
11559         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
11560         (*test_int_bitfield, *test_byte_bitfield): Remove.
11561         (*bit_test, *subreg_bit_test): Remove.
11562         * config/mn10300/predicates.md (const_8bit_operand): Remove.
11563
11564         * config/mn10300/constraints.md ("c"): Rename from "A".
11565         ("A", "D"): New constraint letters.
11566         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
11567         (fmssf4, fnmasf4, fnmssf4): Likewise.
11568
11569         * config/mn10300/mn10300.md (isa): New attribute.
11570         (enabled): New attribute.
11571
11572         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
11573         (abssf2, negsf2): Define only for hardware fp.
11574         (sqrtsf2): Reformat.
11575         (addsf3, subsf3, mulsf3): Merge expander and insn.
11576
11577         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
11578         (DEBUGGER_AUTO_OFFSET): Remove.
11579         (DEBUGGER_ARG_OFFSET): Remove.
11580
11581         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
11582         Emit register stores with the same offsets as the hardware.
11583         (mn10300_store_multiple_operation): Don't check that the register
11584         save offsets are monotonic.
11585         * config/mn10300/mn10300-protos.h: Update.
11586
11587         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
11588
11589         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
11590         in terms of the value on the stack, not the MDR register.
11591
11592 2011-01-11  Jan Hubicka  <jh@suse.cz>
11593
11594         PR lto/45721
11595         PR lto/45375
11596         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
11597         (symbol_alias_set_destroy, symbol_alias_set_contains,
11598         propagate_aliases_backward): Declare.
11599         * lto-streamer-out.c (struct sets): New sturcture.
11600         (trivally_defined_alias): New function.
11601         (output_alias_pair_p): Rewrite.
11602         (output_unreferenced_globals): Fix output of alias pairs.
11603         (produce_symtab): Likewise.
11604         * ipa.c (function_and_variable_visibility): Set weak alias destination
11605         as needed in lto.
11606         * varasm.c (symbol_alias_set_t): Remove.
11607         (symbol_alias_set_destroy): Export.
11608         (propagate_aliases_forward, propagate_aliases_backward): New functions
11609         based on ...
11610         (compute_visible_aliases): ... this one; remove.
11611         (trivially_visible_alias): New
11612         (trivially_defined_alias): New.
11613         (remove_unreachable_alias_pairs): Rewrite.
11614         (finish_aliases_1): Reorganize code checking if alias is defined.
11615         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
11616         in LTO mode.
11617
11618 2011-01-11  Richard Guenther  <rguenther@suse.de>
11619
11620         PR tree-optimization/46076
11621         * tree-ssa.c (useless_type_conversion_p): Conversions from
11622         unprototyped to empty argument list function types are useless.
11623
11624 2011-01-11  Richard Guenther  <rguenther@suse.de>
11625
11626         PR middle-end/45235
11627         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
11628         volatile MEMs as MEM_READONLY_P.
11629
11630 2011-01-11  Richard Guenther  <rguenther@suse.de>
11631
11632         PR tree-optimization/47239
11633         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
11634
11635 2011-01-11  Jeff Law  <law@redhat.com>
11636
11637         PR tree-optimization/47086
11638         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
11639         IVs from statements that might throw.
11640
11641 2011-01-10  Jan Hubicka  <jh@suse.cz>
11642
11643         PR lto/45375
11644         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
11645
11646 2011-01-10  Jan Hubicka  <jh@suse.cz>
11647
11648         PR lto/45375
11649         * profile.c (read_profile_edge_counts): Ignore profile inconistency
11650         when correcting profile.
11651
11652 2011-01-10  Jan Hubicka  <jh@suse.cz>
11653
11654         PR lto/46083
11655         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
11656         DECL_FINI_PRIORITY.
11657         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
11658         Restore DECL_FINI_PRIORITY.
11659
11660 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11661
11662         * doc/gimple.texi: Fix quoting of multi-word return values in
11663         @deftypefn statements.  Ensure presence of return value.  Wrap
11664         overlong @deftypefn lines.
11665         (is_gimple_operand, is_gimple_min_invariant_address): Remove
11666         descriptions of removed functions.
11667         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
11668         of multi-word return value in @deftypefn statement.
11669
11670 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11671
11672         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
11673         (Conditional Expressions, Logical Operators)
11674         (Statement and operand traversals): Do not indent smallexample
11675         code.  Fix duplicate function argument in example.
11676
11677 2011-01-10  Jeff Law  <law@redhat.com>
11678
11679         PR tree-optimization/47141
11680         * ipa-split.c (split_function): Handle case where we are
11681         returning a value and the return block has a virtual operand phi.
11682
11683 2011-01-10  Jan Hubicka  <jh@suse.cz>
11684
11685         PR tree-optimization/47234
11686         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
11687         (pass_feedback_split_functions): Declare.
11688         * passes.c (init_optimization_passes): Add ipa-split as subpass of
11689         tree-profile.
11690         * ipa-split.c (gate_split_functions): Update comments; disable
11691         split-functions for profile_arc_flag and branch_probabilities.
11692         (gate_feedback_split_functions): New function.
11693         (execute_feedback_split_functions): New function.
11694         (pass_feedback_split_functions): New global var.
11695
11696 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
11697
11698         PR lto/46760
11699         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
11700         calling gimple_call_set_cannot_inline.
11701
11702 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
11703
11704         * config/darwin-sections.def: Remove unused section.
11705
11706 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
11707
11708         PR c++/47218
11709         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
11710
11711 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
11712
11713         PR objc/47232
11714         * c-parser.c (c_parser_declaration_or_fndef): Improved
11715         error message.
11716
11717 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
11718
11719         * config/i386/winnt.c (i386_pe_start_function): Make sure
11720         to switch back to function's section.
11721
11722 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
11723
11724         PR gcc/46902
11725         PR testsuite/46912
11726         * plugin.c: Move include of dlfcn.h from here...
11727         * system.h: ... to here.
11728
11729 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11730
11731         * doc/cpp.texi (C++ Named Operators): Fix markup for header
11732         file name.
11733         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
11734         two extra empty pages in PDF output.
11735
11736 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
11737
11738         PR objc/47078
11739         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
11740         for error recovery purposes behave as if it was not specified so
11741         that the default type is usd.
11742
11743 2011-01-07  Jan Hubicka  <jh@suse.cz>
11744
11745         PR tree-optmization/46469
11746         * ipa.c (function_and_variable_visibility): Clear needed flags on
11747         nodes with external decls; handle weakrefs merging correctly.
11748
11749 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
11750
11751         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
11752         not false.
11753
11754 2011-01-07  Jan Hubicka  <jh@suse.cz>
11755
11756         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
11757         and no longer claim that gold is required for linker plugin.
11758         * configure: Regenerate.
11759         * gcc.c (PLUGIN_COND): New macro.
11760         (LINK_COMMAND_SPEC): Use it.
11761         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
11762         * config.in (HAVE_LTO_PLUGIN): New.
11763         * configure.ac (--with-lto-plugin): New parameter; autodetect
11764         HAVE_LTO_PLUGIN.
11765
11766 2011-01-07  Jan Hubicka  <jh@suse.cz>
11767
11768         PR tree-optimization/46367
11769         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
11770         when we can update original.
11771         (cgraph_mark_inline_edge): Sanity check.
11772         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
11773
11774 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11775
11776         * config/spu/spu.h (ASM_COMMENT_START): Define.
11777
11778 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11779
11780         PR driver/42445
11781         * gcc.c (%>S): New.
11782         (SWITCH_KEEP_FOR_GCC): Likewise.
11783         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
11784         (do_spec_1): Handle "%>".
11785
11786         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
11787
11788 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
11789
11790         PR target/47201
11791         * config/i386/i386.c (ix86_delegitimize_address): If
11792         simplify_gen_subreg fails, return orig_x.
11793
11794         PR bootstrap/47187
11795         * value-prof.c (gimple_stringop_fixed_value): Handle
11796         lhs of the call properly.
11797
11798 2011-01-07  Jan Hubicka  <jh@suse.cz>
11799
11800         PR lto/45375
11801         * lto-opt.c (lto_reissue_options): Set flag_shlib.
11802
11803 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
11804
11805         * target.def (function_switched_text_sections): New hook.
11806         * doc/tm.texi: Regenerated.
11807         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11808         * final.c (default_function_switched_text_sections): New.
11809         (final_scan_insn): Call function_switched_text_sections when a
11810         mid-function section change occurs.
11811         * output.h (default_function_switched_text_sections): Declare.
11812         * config/darwin-protos.h (darwin_function_switched_text_sections):
11813         Likewise.
11814         * config/darwin.c (darwin_function_switched_text_sections): New.
11815         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
11816
11817 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
11818
11819         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
11820         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
11821         the secondary code fragment when outputting for DWARF == 2.
11822
11823 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
11824
11825         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
11826         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
11827         Remove.
11828         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
11829         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
11830
11831 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
11832
11833         PR debug/46704
11834         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
11835         when it is not empty.
11836
11837 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
11838
11839         Bobcat Enablement
11840         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
11841         (case ${target}): Add btver1.
11842         * config/i386/driver-i386.c (host_detect_local_cpu): Let
11843         -march=native recognize btver1 processors.
11844         * config/i386/i386-c.c (ix86_target_macros_internal): Add
11845         btver1 def_and_undef
11846         * config/i386/i386.c (struct processor_costs btver1_cost): New
11847         btver1 cost table.
11848         (m_BTVER1): New definition.
11849         (m_AMD_MULTIPLE): Includes m_BTVER1.
11850         (initial_ix86_tune_features): Add btver1 tune.
11851         (processor_target_table): Add btver1 entry.
11852         (static const char *const cpu_names): Add btver1 entry.
11853         (software_prefetching_beneficial_p): Add btver1.
11854         (ix86_option_override_internal): Add btver1 instruction sets.
11855         (ix86_issue_rate): Add btver1.
11856         (ix86_adjust_cost): Add btver1.
11857         * config/i386/i386.h (TARGET_BTVER1): New definition.
11858         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
11859         (enum processor_type): Add PROCESSOR_BTVER1.
11860         * config/i386/i386.md (define_attr "cpu"): Add btver1.
11861
11862 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11863
11864         PR target/43309
11865         * config/i386/i386.c (legitimize_tls_address)
11866         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
11867         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
11868         (tls_initial_exec_64_sun): New pattern.
11869
11870 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11871
11872         * doc/invoke.texi (Overall Options): Improve wording and markup
11873         of the description of -wrapper.
11874
11875 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
11876
11877         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
11878         rdynamic, threads): New Driver options.
11879
11880 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11881
11882         PR target/38118
11883         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
11884         if coming from .tdata.
11885         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
11886
11887 2011-01-06  Jan Hubicka  <jh@suse.cz>
11888
11889         PR lto/47188
11890         * collect2.c (main): Do not enable LTOmode when plugin is active.
11891
11892 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11893
11894         PR other/45915
11895         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
11896         --version output if supported.
11897         * configure: Regenerate.
11898
11899 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
11900
11901         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
11902         Driver options.
11903
11904 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
11905
11906         PR c/47150
11907         * c-convert.c (convert): When converting a complex expression
11908         other than COMPLEX_EXPR to a different complex type, ensure
11909         c_save_expr is called instead of save_expr, unless in_late_binary_op.
11910         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
11911         when converting COMPLEX_TYPE.
11912
11913 2011-01-06  Ira Rosen  <irar@il.ibm.com>
11914
11915         PR tree-optimization/47139
11916         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
11917         only the last reduction value is used outside the loop.  Update
11918         documentation.
11919
11920 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
11921
11922         * config/rtems.opt: New.
11923         * config.gcc (*-*-rtems*): Use rtems.opt.
11924
11925 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
11926
11927         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
11928         processors do not support 3DNow instructions.
11929
11930 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11931
11932         * config/spu/spu.c (spu_option_override): Set parameter
11933         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
11934
11935 2011-01-05  Jan Hubicka  <jh@suse.cz>
11936
11937         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
11938         at the command line.
11939
11940 2011-01-05  Martin Jambor  <mjambor@suse.cz>
11941
11942         PR lto/47162
11943         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
11944         deltas on streamed outgoing edges.
11945         (output_node_opt_summary): Output info for outgoing edges only when
11946         the node is in new parameter set.
11947         (output_cgraph_opt_summary): New parameter set, passed to the two
11948         aforementioned functions.  Update its forward declaration and its
11949         callee too.
11950
11951 2011-01-05  Tom Tromey  <tromey@redhat.com>
11952
11953         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
11954         operator to c_finish_omp_atomic.
11955         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
11956         (build_unary_op): Update.
11957         (build_modify_expr): Update.
11958         (build_asm_expr): Update.
11959
11960 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11961
11962         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
11963         newly inserted insns.
11964         (pad_bb): Likewise.
11965         (spu_emit_branch_hint): Likewise.
11966         (insert_hbrp_for_ilb_runout): Likewise.
11967         (spu_machine_dependent_reorg): Call df_finish_pass after
11968         schedule_insns returns.
11969
11970 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11971
11972         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
11973
11974 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11975
11976         PR tree-optimization/47005
11977         * tree-sra.c (struct access): Add 'non_addressable' bit.
11978         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
11979         (decide_one_param_reduction): Return 0 if the parameter is passed by
11980         reference and one of the accesses in the group is non_addressable.
11981
11982 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11983
11984         PR tree-optimization/47056
11985         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
11986         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
11987         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
11988
11989 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11990
11991         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
11992         initializer.  Skip view conversions from aggregate types.
11993
11994 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
11995
11996         PR bootstrap/47055
11997         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
11998
11999 2011-01-04  Philipp Thomas  <pth@suse.de>
12000
12001         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
12002         obvious typo.
12003
12004 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12005
12006         * function.c (thread_prologue_and_epilogue_insns): Do not crash
12007         on empty epilogue sequences.
12008
12009 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
12010
12011         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
12012         non-static): New Driver options.
12013
12014 2011-01-04  Jie Zhang  <jie@codesourcery.com>
12015
12016         PR driver/47137
12017         * gcc.c (default_compilers[]): Set combinable field to 0
12018         for all assembly languages.
12019
12020 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
12021
12022         * config/mips/loongson3a.md: New file.
12023         * config/mips/mips.md: Include loongson3a.md.
12024         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
12025         TUNE_LOONGSON_3A.
12026
12027 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
12028
12029         PR middle-end/47017
12030         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
12031         instead of convert_memory_address_addr_space on the base expression.
12032
12033 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12034
12035         * config/spu/spu.c (spu_option_override): Update error text
12036         for bad -march= / -mtune= values.
12037
12038 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12039
12040         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
12041         if branch-hint optimization will be performed.
12042
12043 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
12044
12045         PR tree-optimization/47148
12046         * ipa-split.c (split_function): Convert arguments to
12047         DECL_ARG_TYPE if possible.
12048
12049         PR tree-optimization/47155
12050         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
12051         when computing uns.
12052
12053         PR rtl-optimization/47157
12054         * combine.c (try_combine): If undobuf.other_insn becomes
12055         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
12056         and set *new_direct_jump_p too.
12057
12058 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
12059
12060         PR tree-optimization/47021
12061         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
12062
12063 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
12064
12065         * gcc.c (process_command): Update copyright notice dates.
12066         * gcov.c (print_version): Likewise.
12067         * gcov-dump.c (print_version): Likewise.
12068         * mips-tfile.c (main): Likewise.
12069         * mips-tdump.c (main): Likewise.
12070
12071 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12072
12073         PR tree-optimization/46801
12074         * tree-sra.c (type_internals_preclude_sra_p): Check whether
12075         aggregate fields start at byte boundary instead of the bit-field flag.
12076
12077 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
12078
12079         PR driver/47137
12080         * gcc.c (main): Revert revision 168407.
12081
12082 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12083
12084         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
12085
12086 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12087
12088         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
12089         vector optab to expand vector/scalar shift, update gimple to vector.
12090
12091 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12092
12093         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
12094         a thunk.
12095
12096 2011-01-03  Martin Jambor  <mjambor@suse.cz>
12097
12098         PR tree-optimization/46984
12099         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
12100         HOST_WIDE_INT.
12101         (cgraph_create_indirect_edge): Fixed line length.
12102         (cgraph_indirect_call_info): Declare.
12103         (cgraph_make_edge_direct) Update declaration.
12104         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
12105         (cgraph_create_indirect_edge): Use it.
12106         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
12107         callees.
12108         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
12109         the new thunk_delta representation.
12110         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
12111         HOST_WIDE_INT.
12112         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
12113         (ipa_read_indirect_edge_info): Likewise.
12114         * lto-cgraph.c (output_edge_opt_summary): New function.
12115         (output_node_opt_summary): Call it on all outgoing edges.
12116         (input_edge_opt_summary): New function.
12117         (input_node_opt_summary): Call it on all outgoing edges.
12118
12119 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
12120
12121         PR driver/47137
12122         * gcc.c (main): Don't check have_o when settting combine_inputs.
12123
12124 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
12125
12126         * regrename.c: Add general comment describing the pass.
12127         (struct du_head): Remove 'length' field.
12128         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
12129         (regrename_optimize): Do not sort chains.  Rework comments, add others.
12130         Force renaming to the preferred class (if any) in the first pass and do
12131         not consider registers that belong to it in the second pass.
12132         (create_new_chain): Do not set 'length' field.
12133         (scan_rtx_reg): Likewise.
12134
12135 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
12136
12137         PR tree-optimization/47140
12138         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
12139         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
12140         to bit_value_binop.
12141
12142         PR rtl-optimization/47028
12143         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
12144         parm_birth_insn instead of at the beginning of first bb.
12145
12146 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
12147
12148         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
12149         Remove the word "see" before "@pxref".
12150         * doc/rtl.texi: Remove the word "see" before "@pxref".
12151
12152 2011-01-01  Jan Hubicka  <jh@suse.cz>
12153
12154         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
12155         memory.
12156
12157 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
12158
12159         PR target/38662
12160         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
12161
12162 \f
12163 Copyright (C) 2011 Free Software Foundation, Inc.
12164
12165 Copying and distribution of this file, with or without modification,
12166 are permitted in any medium without royalty provided the copyright
12167 notice and this notice are preserved.