OSDN Git Service

331c059eeac52f61274b0c81750d91690658720f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
2
3         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
4         (rs6000_split_compare_and_swapqhi): New.
5         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
6         (sync_compare_and_swapqhi_internal): New.
7         * config/rs6000/rs6000-protos.h: Declare.
8
9 2005-12-31  Andrew Pinski  <pinskia@physics.uc.edu>
10
11         PR tree-opt/25612
12         * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a
13         parameter and pretend that it is defined in the entry basic block.
14
15 2005-12-30  Kazu Hirata  <kazu@codesourcery.com>
16
17         * tree-outof-ssa.c (_elim_graph): Change the type of STACK to
18         VEC(int,heap).
19         (new_elim_graph, delete_elim_graph, elim_forward,
20         eliminate_phi): Use the VEC API on STACK.
21
22 2005-12-29  Daniel Berlin  <dberlin@dberlin.org>
23
24         * tree.h (VALUE_HANDLE_VUSES): New.
25         (struct tree_value_handle): Add vuses.
26
27         * tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses.
28         (vn_compute): Remove stmt argument.
29         Don't use vuses in hash value computation.
30         (val_expr_pair_eq): Compare vuse lists.
31         (copy_vuses_from_stmt): New function.
32         (shared_vuses_from_stmt): Ditto.
33         (vn_add): Rewrite in terms of vn_add_with_vuses.
34         (vn_add_with_vuses): New function.
35         (vn_lookup): Rewrite in terms of vn_lookup_with_vuses.
36         (vn_lookup_with_vuses): New function.
37         (vuses_compare): New function.
38         (print_creation_to_file): Ditto.
39         (vn_lookup_or_add): Rewrite to handle vuses.
40         (sort_vuses): New function.
41         (vn_lookup_or_add_with_vuses): Ditto.
42         (vn_init): Initialize shared_lookup_vuses.
43         (vn_delete): Free shared_lookup_vuses.
44
45         * tree-ssa-pre.c: Update todo list.
46         (bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and
47         rvuse_kill.
48         (RVUSE_IN): New macro.
49         (RVUSE_GEN): Ditto.
50         (RVUSE_KILL): Ditto.
51         (RVUSE_OUT): Ditto.
52         (modify_expr_node_pool): New function.
53         (pretemp): New.
54         (storetemp): Ditto.
55         (mergephitemp): Ditto.
56         (prephitemp): Ditto.
57         (struct expr_pred_trans_d): Add vuses member.
58         (expr_pred_trans_eq): Compare vuses.
59         (phi_trans_lookup): Add vuses argument.
60         (phi_trans_add): Ditto.
61         (translate_vuses_through_block): New function.
62         (phi_translate): Use vuses to ask about those expressions that can
63         have vuses.
64         Properly translate virtual uses through phis, and use
65         vn_lookup_or_add_with vuses.  Handle tcc_reference.
66         (phi_translate_set): Don't add pointless translations to the
67         cache.
68         (get_representative): New function.
69         (vuses_dies_in_block_x): Ditto.
70         (valid_in_set): Add block argument.  Check virtual use validity.
71         (clean): Add block argument. Update call to valid_in_set
72         (compute_antic_aux): Update call to clean.
73         (dump_bitmap_of_names): New function.
74         (compute_vuse_representatives): Ditto.
75         (compute_rvuse): Ditto.
76         (can_value_number_call): Modified to accept calls with vuses.
77         (can_value_number_operation): New function.
78         (can_PRE_operation): Ditto.
79         (need_creation): New vector of stores that may need creation.
80         (find_or_generate_expression): use can_PRE_operation.
81         (create_expression_by_pieces): Handle INDIRECT_REF.
82         Only create one temp until we have to change types.
83         Mark new vars for renaming.
84         (insert_into_preds_of_block): Ignore loopiness of loads.
85         Use can_PRE_operation.
86         Only create one temp until we have to chnge types.
87         (insert_aux): Use can_PRE_operation.
88         Don't pass name to insert_into_preds_of_block.
89         (insert_extra_phis): Only use one temp until we have to change
90         types.
91         (poolify_tree): New function.
92         (modify_expr_template): New var.
93         (poolify_modify_expr): New function.
94         (insert_fake_stores): Ditto.
95         (realify_fake_stores): Ditto.
96         (compute_avail): Use can_value_number_operation.
97         (mark_operand_necessary): Return NULL for non-SSA names.
98         (remove_dead_inserted_code): Update comment.
99         (init_pre): Initialize pretemp, need_creation, storetemp,
100         mergephitemp, prephitemp.
101         Create modify_expr_node_pool.
102         (fini_pre): Free modify_expr_node_pool and need_creation array.
103         (execute_pre): Call insert_fake_stores, compute_rvuse, and
104         realify_fake_stores. 
105         * tree-flow.h (vn_compute): Fix prototype.
106         (vn_add): Ditto.
107         (vn_lookup): Ditto.
108         (sort_vuses): New.
109         (vn_lookup_or_add_with_vuses): Ditto.
110         (vn_add_with_vuses): Ditto.
111         (vn_lookup_with_vuses): Ditto.
112         * passes.c (pass_may_alias): Add.
113
114 2005-12-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
115
116         * c-pretty-print.h (struct c_pretty_print_info): Add new member
117         "constant". 
118         (pp_constant): New macro.
119         * c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant.
120
121 2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
122
123         PR fortran/25586
124         * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
125         store patterns.
126
127 2005-12-29  Mike Stump  <mrs@apple.com>
128
129         * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options
130         -fobjc-exceptions): Don't imply this doesn't work with the GNU
131         runtime.
132
133 2005-12-29  Nathan Sidwell  <nathan@codesourcery.com>
134
135         * varasm.c (get_section): Use gcc_assert.
136
137 2005-12-29  Paul Brook  <paul@codesourcery.com>
138
139         * config/m68k/m68k.h (RETURN_ADDR_RTX): Define.
140         * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME.
141         Include offset due to FIRST_PARM_OFFSET.
142
143 2005-12-29  Paul Brook  <paul@codesourcery.com>
144
145         * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask.
146         Create wrapper and rename body...
147         (__cmpdf2_internal): ... to this.  Return correct value for unordered
148         result.
149         (__cmpsf2): Create wrapper and rename body...
150         (__cmpsf2_internal): ... to this.  Return corerct value for unordered
151         result.
152         (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use
153         __cmpdf2_internal.
154         (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use
155         __cmpsf2_internal.
156
157 2005-12-29  Paul Brook  <paul@codesourcery.com>
158
159         * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero.
160         (__truncdfsf2): Ditto.
161         (__extenddfxf2): Ditto.
162         (__truncxfdf2): Ditto.
163         * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0.
164         (__adddf3): Ditto.
165
166 2005-12-29  Daniel Jacobowitz  <dan@codesourcery.com>
167         Paul Brook  <paul@codesourcery.com>
168
169         * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for
170         !TARGET_68020.
171         * config/m68k/t-m68kelf (EXTRA_PARTS): Remove.
172         (EXTRA_MULTILIB_PARTS): Set.
173         * config/m68k/t-uclinux (EXTRA_PARTS): Remove.
174         (EXTRA_MULTILIB_PARTS): Set.
175
176 2005-12-29  Alan Modra  <amodra@bigpond.net.au>
177
178         PR target/25572
179         * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
180
181 2005-12-28  Nathan Sidwell  <nathan@codesourcery.com>
182
183         * config.gcc (mt-*-*): Add --with-arch support.
184         (--with): Print accepted options on error.
185         * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define.
186
187         * config/mt/mt.c (DEF_VEC_P(basic_block),
188         DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here.
189
190 2005-12-28  Daniel Berlin  <dberlin@dberlin.org>
191
192         Fix PR tree-optimization/25394
193         * fold-const.c (fold_checksum_tree): Guard 
194         portions of checksumming with correct structure checks.
195
196 2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
197
198         * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and
199         DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ...
200         * basic-block.h: ... here.
201
202 2005-12-27  Roger Sayle  <roger@eyesopen.com>
203
204         * fold-const.c (int_const_binop): Return NULL_TREE when an expression
205         can't be evaluated at compile-time (instead of calling abort).
206         Return NULL_TREE for division (and modulus) by zero.
207         (const_binop):  Return NULL_TREE for floating point operators that
208         aren't handled by real_arithmetic.
209         (fold_binary):  Eliminate "wins" variable, and "binary" label, by
210         folding operators with constant operands early.  Assert that
211         operands are non-NULL.
212
213 2005-12-27  Kazu Hirata  <kazu@codesourcery.com>
214
215         * tree-vrp.c (extract_range_from_binary_expr): Use
216         build_int_cst instead of fold_convert.
217
218 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
219
220         PR c++/23171, c++/23172, c++/25417.
221         * c-decl.c (compound_literal_number): Remove.
222         (build_compound_literal): Use set_compound_literal_name.
223         * c-common.c (compound_literal_number): New variable.
224         (set_compound_literal_name): New function.
225         * c-common.h (set_compound_literal_name): Declare.
226         
227 2005-12-26  Kazu Hirata  <kazu@codesourcery.com>
228
229         PR tree-optimization/25125
230         * convert.c (convert_to_integer): Don't narrow the type of a
231         PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type
232         is signed.
233
234 2005-12-26  Graham Stott  <graham.stott@btinternet.com>
235
236         PR middle-end/25568
237         * combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking
238         rtl bootstrap failure.
239
240 2005-12-25  Kazu Hirata  <kazu@codesourcery.com>
241
242         * final.c (compute_alignments): Make it static.
243         * gcse.c (gcse_main, bypass_jumps): Likewise.
244         * web.c (web_main): Likewise.
245         * output.h: Remove the prototype for compute_alignments.
246         * rtl.h: Remove the prototypes for web_main, gcse_main, and
247         bypass_jumps.
248
249 2005-12-24  Roger Sayle  <roger@eyesopen.com>
250
251         * expr.c (force_operand): Use expand_fix and expand_float to
252         implement integer <-> FP conversions instead of convert_to_mode.
253
254 2005-12-24  Mark Mitchell  <mark@codesourcery.com>
255
256         PR c++/23171
257         * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a
258         CONSTRUCTOR is invalid.
259
260 2005-12-23  Daniel Berlin  <dberlin@dberlin.org>
261
262         * tree-pass.h (pass_eliminate_useless_stores): Remove.
263         * tree-ssa-pre.c (is_copy_stmt): Ditto.
264         (follow_copies_till_vuse): Ditto.
265         (do_eustore): Ditto.
266         (gate_eustores): Ditto.
267         (pass_eliminate_useless_stores): Ditto.
268         * passes.c (init_optimization_passes): Ditto.
269
270 2005-12-23  Paolo Bonzini  <bonzini@gnu.org>
271
272         * combine.c (simplify_shift_const): Fix typo.  Use, whenever
273         applicable, simplify_const_binary_operation.
274
275         (simplify_shift_const): Leave only the fallback
276         case when no simplification is possible.  Extract to...
277         (simplify_shift_const_1): ... here.  Always create a new
278         RTX instead of substituting.  Remove the signed_count variable.
279         Return NULL_RTX if no substitution is possible.
280
281         (simplify_and_const_int): Leave only the fallback
282         case when no simplification is possible.  Extract to...
283         (simplify_and_const_int_1): ... here.  Always create a new
284         RTX instead of substituting.  Return NULL_RTX if no substitution
285         is possible.
286
287         (force_to_mode, simplify_comparison): Don't pass a non-NULL first
288         parameter to simplify_and_const_int and simplify_shift_const,
289         unless it is equal to the expected non-simplified result.
290
291 2005-12-23  Jakub Jelinek  <jakub@redhat.com>
292
293         PR target/25005
294         * regrename.c (replace_oldest_value_reg): Use validate_change with
295         IN_GROUP set to 1 instead of doing direct modifications.
296         (copyprop_hardreg_forward_1): Likewise.  If any replace_oldest_*
297         replacements have been performed on an instruction, use
298         apply_change_group ().
299
300 2005-12-23  Hans-Peter Nilsson  <hp@axis.com>
301
302         * config/cris/arit.c (do_31div): Clarify what "31" refers to.
303         [L_divsi3] (__Udiv): Don't use as inline function.
304         [L_modsi3] (__Umod): Ditto.
305         (__Div): Rearrange to call do_31div directly instead of __Udiv.
306         (__Mod): Similarly regarding __Umod.
307
308         PR target/24342
309         * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for
310         emitted insns with post-increments.
311         (cris_expand_epilogue): Ditto.
312
313 2005-12-22  Jakub Jelinek  <jakub@redhat.com>
314             Richard Henderson  <rth@redhat.com>
315
316         Merge from gomp-branch.
317         * builtins.def: Move all DEF_SYNC_BUILTIN to ...
318         * sync-builtins.def: ... new file.
319         (BUILT_IN_FETCH_AND_ADD_16,
320         BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
321         BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
322         BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
323         BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
324         BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
325         BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
326         BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
327         BUILT_IN_LOCK_RELEASE_16): New builtins.
328         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
329         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
330         * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
331         * c-common.c (enum c_builtin_type): Move to top-level from
332         c_common_nodes_and_builtins enum builtin_type.
333         (builtin_types): Move from c_common_nodes_and_builtins.
334         (def_fn_type): New.
335         (c_common_nodes_and_builtins): Use it.
336         (def_builtin_1): Check for error_mark_node.
337         (sync_resolve_size): Handle also 128 bit sync builtins.
338         * Makefile.in (BUILTINS_DEF): New.  Use it instead of builtins.def.
339
340         * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
341         (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
342         * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
343         * config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
344         (doublemodesuffix, DCASHMODE): New mode attrs.
345         (sync_compare_and_swap<mode>): Change into expand, use CASMODE
346         instead of IMODE, if mode is wider than a word, expand into
347         sync_double_compare_and_swap*.
348         (*sync_compare_and_swap<mode>): New insn.
349         (sync_double_compare_and_swap<mode>): Likewise.
350         (*sync_double_compare_and_swapdi_pic): Likewise.
351         (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
352         mode is wider than a word, expand into
353         sync_double_compare_and_swap_cc*.
354         (sync_double_compare_and_swap_cc<mode>): New insn.
355         (*sync_double_compare_and_swap_ccdi_pic): Likewise.
356
357 2005-12-22  Richard Henderson  <rth@redhat.com>
358
359         * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2.
360         (_mm_sub_si64): Likewise.
361         * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise.
362
363 2005-12-23  Alan Modra  <amodra@bigpond.net.au>
364
365         PR rtl-optimization/25432
366         * reload1.c (eliminate_regs_in_insn): Update insn code on
367         successfully re-recognizing modified insn.
368
369 2005-12-22  Richard Guenther  <rguenther@suse.de>
370
371         * tree.c (tree_fold_gcd): Use build_int_cst where appropriate.
372         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
373         * varasm.c (array_size_for_constructor): Likewise.
374         * fold-const.c (size_diffop, invert_truthvalue,
375         optimize_bit_field_compare, make_range, build_range_check,
376         fold_cond_expr_with_comparison, fold_truthop,
377         fold_single_bit_test_into_sign_test, fold_binary): Likewise.
378
379 2005-12-22  Dale Johannesen  <dalej@apple.com>
380
381         * config/i386/sse.md (sse_movhlps):  Reverse operands for
382         2nd and 3rd alternatives.
383
384 2005-12-22  Andrew Pinski <pinskia@physics.uc.edu>
385
386         PR tree-opt/25513
387         * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex
388         variables.
389
390 2005-12-22  Zdenek Dvorak <dvorakz@suse.cz>
391             Steven Bosscher <stevenb@suse.de>
392
393         * df.c (df_bitmaps_free): Only work for bbs for that structures are
394         allocated.
395         (df_bb_modify): Realloc tables to the new index.
396         (df_find_use): New function.
397         (df_find_def, df_reg_used): Handle subregs.
398         * df.h (df_find_use): Declare.
399
400         * loop-invariant.c: Include hashtab.h.
401         (struct invariant): Remove processed field, add eqto and reg fields.
402         (struct invariant_expr_entry): New.
403         (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
404         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
405         find_identical_invariants, merge_identical_invariants): New functions.
406         (create_new_invariant): Return the new invariant.  Initialize new
407         fields.
408         (find_invariants): Call merge_identical_invariants.
409         (get_inv_cost, best_gain_for_invariant, set_move_mark,
410         move_invariant_reg): Handle equivalent invariants.
411         * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
412
413 2005-12-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
414
415         PR c++/23333
416         * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if
417         number is a single digit '0'.
418
419 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
420
421         PR tree-optimization/23518
422         * fold-const.c (make_range): Don't move a constant to the
423         other side of the comparison if the type is signed and -fwrapv
424         is given.
425
426 2005-12-22  Kazu Hirata  <kazu@codesourcery.com>
427
428         * tree-vrp.c (extract_range_from_binary_expr): Clean up uses
429         of vr0.type.
430
431 2005-12-21  Joseph S. Myers  <joseph@codesourcery.com>
432
433         PR middle-end/24998
434         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and
435         _floatundisf.
436
437 2005-12-21  Andrew Haley  <aph@redhat.com>
438
439         PR middle-end/25121
440         * recog.c (peephole2_optimize): Don't peephole any
441         RTX_FRAME_RELATED_P insns.
442
443 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
444
445         * tree-data-ref.c (estimate_niter_from_size_of_data): Replace
446         fold_build2 with fold_binary.
447         * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition):
448         Replace fold_build1 with fold_unary.
449         * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2
450         with fold_binary.
451
452 2005-12-21  Steven Bosscher  <stevenb@suse.de>
453
454         PR rtl-optimization/25196
455         * postreload-gcse.c (record_last_set_info): Notice stack pointer
456         changes in push insns without REG_INC notes.
457
458 2005-12-21  Kazu Hirata  <kazu@codesourcery.com>
459
460         PR tree-optimization/25382.
461         * tree-vrp.c (extract_range_from_binary_expr): Extract a range
462         from BIT_AND_EXPR.
463
464 2005-12-21  Janis Johnson  <janis187@us.ibm.com>
465             Ben Elliston  <bje@au.ibm.com>
466
467         * configure.ac: Enable C extension for decimal float if invoked
468         with --enable-decimal-float.
469         * doc/install.texi (Configuration): Document it.
470         * configure, config.in: Regenerate.
471
472 2005-12-20  Mike Stump  <mrs@apple.com>
473
474         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the
475         ambiguity between -seg_addr_table and -seg_addr_table_filename.
476         (WORD_SWITCH_TAKES_ARG): Likewise.
477         (LINK_SPEC): Likewise.
478
479 2005-12-20  Kenneth Zadeck <zadeck@naturalbridge.com>
480
481         * cfganal.c (flow_reverse_top_sort_order_compute):
482         Renamed to post_order_compute and additional parameter added which
483         allows the inclusion of entry and exit blocks into list.
484         (mark_dfs_back_edges): Fixed comment.
485         (flow_depth_first_order_compute): Renamed to
486         pre_and_rev_post_order_compute additional parameter added which
487         allows the inclusion of entry and exit blocks into list.
488         * global.c (set_up_bb_rts_numbers): Call to
489         flow_reverse_top_sort_order_compute renamed to
490         post_order_compute.
491         * var-tracking.c (vt_stack_adjustments): Fixed comment.
492         (vt_find_locations): Call to
493         flow_depth_first_order_compute renamed to
494         pre_and_rev_post_order_compute.
495         * cfgloop.c (flow_find_loops): Ditto.
496         * tree-ssa-reassoc.c (init_reassoc): Ditto.
497         * df.c (df_analyze_1, df_analyze_subcfg): Calls to
498         flow_reverse_top_sort_order_compute renamed to post_order_compute
499         and calls to flow_reverse_top_sort_order_compute renamed to
500         post_order_compute.
501         * basic_block.h: Ditto.
502
503
504 2005-12-20  Roger Sayle  <roger@eyesopen.com>
505             Paolo Bonzini  <bonzini@gnu.org>
506
507         PR rtl-optimization/25115
508         * gcse.c (pre_insert_copy_insn): Fall back to the sole
509         SET in the insn if there is no SET for an
510         expression that is equivalent to EXPR.
511
512 2005-12-20  Richard Guenther  <rguenther@suse.de>
513
514         PR middle-end/24306
515         * builtins.c (std_gimplify_va_arg_expr): Do not align
516         va frame for zero sized types.
517         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
518
519 2005-12-20  Kazu Hirata  <kazu@codesourcery.com>
520
521         PR tree-optimization/25501
522         * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is
523         used in the PHI argument corresponding to the edge from BB to
524         DEST.
525
526 2005-12-20  Richard Guenther  <rguenther@suse.de>
527
528         Revert
529         2005-12-02  Richard Guenther  <rguenther@suse.de>
530
531         * tree-cfg.c (mark_used_vars): New function.
532         (dump_function_to_file): Dump only used VAR_DECLs.
533
534 2005-12-19  Roger Sayle  <roger@eyesopen.com>
535
536         * combine.c (try_combine): Improve splitting of binary operators
537         by taking advantage of reassociative transformations.
538
539 2005-12-19  Jeff Law  <law@redhat.com>
540
541         * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.
542         Strip away all type conversions after simplifying the
543         condition.
544
545         * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some
546         cases the forwarder block dominates the destination.
547
548 2005-12-19  DJ Delorie  <dj@redhat.com>
549
550         * reload1.c (spill_failure): Dump reload data to dump file.
551         (find_reload_regs): Likewise.
552
553 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
554
555         PR tree-optimization/24793
556         * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the
557         original reference if there are subvars.
558         * tree-ssa-operands.c (get_tmr_operands): Handle subvars.
559
560 2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>
561
562         * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow):
563         Corrected basic block number calculations for changes in entry and
564         exit numbering.
565         
566 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
567
568         * tree-flow.h (struct var_ann_d): Change type of
569         may_aliases field to VEC(tree, gc) *.
570         (may_aliases): Declaration changed.
571         * tree-ssa-alias.c (group_aliases, add_may_alias,
572         replace_may_alias, dump_may_aliases_for,
573         is_aliased_with, add_type_alias, new_type_alias):
574         Work with VEC(tree, gc) * instead of varray.
575         * tree-flow-inline.h (may_aliases): Ditto.
576         * tree-ssa.c (verify_flow_insensitive_alias_info,
577         verify_name_tags): Ditto.
578         * tree-ssa-operands.c (add_stmt_operand): Ditto.
579
580 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
581
582         * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd
583         comes back.
584
585 2005-12-19  J"orn Rennecke <joern.rennecke@st.com>
586
587         * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p
588         check.
589
590 2005-12-19  Ben Elliston  <bje@au.ibm.com>
591
592         * doc/install.texi (Configuration): Typo in Fortran subheading.
593
594 2005-12-19  Nathan Sidwell  <nathan@codesourcery.com>
595
596         * config/mt/mt.md (decrement_and_branch_until_zero): Add another
597         scratch.  Correct its reload split. Adjust its peephole.
598         (doloop_end): Add additional scratch.
599         (nop): Use 'nop'.
600         * config/mt/mt.c (MT_INT_ARG_FIRST): Remove.
601         (mt_asm_output_opcode, mt_print_operand): Use 'nop'.
602         (mt_function_arg_slotno): Use FIRST_ARG_REGNUM.
603         (mt_builtin_saveregs): Replace with ...
604         (mt_setup_incoming_varargs): ... here.  Save just the varadic
605         args.
606         (mt_va_start): Remove.
607         (mt_reorg_hazard): Ignore USE insns.  Don't call set_noop_p.
608         (mt_machine_reorg): Split all insns here.
609         (TARGET_SETUP_INCOMING_VARARGS): Override.
610         * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only.
611         Set to CPU type.
612         (EXPAND_BUILTIN_VA_START): Remove.
613
614 2005-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>
615
616         * flow.c (update_life_info, count_or_remove_death_notes): Fixed
617         latent bug that could happen if update_life_info was called with a
618         blocks parameter and the call to cleanup_cfg actually deleted one
619         of those blocks. 
620
621 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
622
623         * tree-ssa-structalias.c (update_alias_info): Remove handling
624         of may_be_aliased (SSA_NAME_VAR (op)) case.
625
626 2005-12-19  Zdenek Dvorak <dvorakz@suse.cz>
627
628         * tree-flow.h (struct stmt_ann_d): Remove
629         makes_aliased_loads and makes_aliased_stores fields.
630         * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores
631         and makes_aliased_loads fields.
632         * tree-ssa-dom.c (eliminate_redundant_computations): Do not
633         use makes_aliased_stores.
634         * tree-ssa-operands.c (clobbered_aliased_loads,
635         clobbered_aliased_stores, ro_call_aliased_loads): Removed.
636         (build_ssa_operands, add_stmt_operand, add_call_clobber_ops,
637         add_call_read_ops): Do not set makes_aliased_stores and
638         makes_aliased_loads fields.
639         * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores
640         field.
641
642 2005-12-18  Geoffrey Keating  <geoffk@apple.com>
643
644         * config/darwin.h: Don't include darwin-sections.def to declare
645         global variables; instead create darwin_section_enum.
646         (darwin_section_enum): New.
647         (darwin_sections): New.
648         * config/darwin.c: Don't include darwin-sections.def to define
649         global variables.
650         (darwin_sections): New.
651         (output_objc_section_asm_op): Rewrite to take advantage of
652         darwin_sections.
653         (darwin_init_sections): Rewrite to use darwin_sections.
654         (machopic_output_indirection): Update for darwin_sections array.
655         (machopic_select_section): Likewise.
656         (machopic_select_rtx_section): Likewise.
657         (machopic_asm_out_constructor): Likewise.
658         (machopic_asm_out_destructor): Likewise.
659         (darwin_file_end): Likewise.
660         * config/rs6000/rs6000.c (machopic_output_stub): Likewise.
661         * config/i386/i386.c (machopic_output_stub): Likewise.
662
663 2005-12-18  Richard Guenther  <rguenther@suse.de>
664
665         PR tree-optimization/25481
666         * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we
667         don't have a varinfo for.
668
669 2005-12-18  Jon Grimm  <jgrimm2@us.ibm.com>
670             Janis Johnson  <janis187@us.ibm.com>
671             Ben Elliston  <bje@au.ibm.com>
672
673         * optabs.c (init_floating_libfuncs): Handle decimal float modes.
674         (init_optabs): Handle libfuncs for decimal float.
675         * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT.
676         * stor-layout.c (int_mode_for_mode): Likewise.
677         * simplify-rtx.c (simplify_immed_subreg): Likewise.
678         (simplify_unary_operation_1): Skip optimisations for decimal float
679         modes.
680         * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT.
681         * emit-rtl.c (gen_const_vector): Add assertion check.
682         (init_emit_once): Populate const_tiny_rtx with constants in each
683         decimal float mode.
684         * expmed.c (extract_high_half, expand_mult_highpart_optab,
685         expand_mult_highpart): Assert that mode is not a scalar float
686         mode.
687         * expr.c (convert_move): Handle conversion between decimal and
688         binary floats of the same size.
689         * convert.c (convert_to_real): Consider decimal float types when
690         folding.
691         * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to
692         describe decimal floating point types.
693         
694 2005-12-18  Ulrich Weigand  <uweigand@de.ibm.com>
695
696         PR rtl-optimization/21041
697         * reload.c (find_reloads_subreg_address): Replace paradoxical
698         subreg of MEM by widened access only if the resulting memory
699         is properly aligned, even on !STRICT_ALIGNMENT targets.
700
701 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
702
703         * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks.
704
705 2005-12-18  Steven Bosscher  <stevenb@suse.de>
706
707         * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from
708         the 2005-12-17 patch to renumber the entry and exit blocks.
709
710 2005-12-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
711
712         * doc/objc.texi (Type encoding): Fix typo.
713
714 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
715
716         * tree-tailcall.c (find_tail_calls): Use XNEW.
717         * tree-ssa-dom.c (allocate_edge_info): Use XCNEW.
718         (free_all_edge_infos): Use explicit cast to convert from void *.
719         (vrp_free): Likewise.
720         (dom_opt_finalize_block): Likewise.
721         (record_equivalences_from_incoming_edge): Likewise.
722         (thread_across_edge): Likewise.  Use XCNEWVEC.
723         (record_cond): Use XCNEW.
724         (record_conditions): Use XNEWVEC.
725         (record_edge_info): Use XCNEWVEC.
726         (lookup_avail_expr): Use XNEW.
727         (record_range): Likewise.  Use GGC_NEW.
728         * tree-nested.c (var_map_hash): Use explicit cast to convert from
729         void *.
730         (var_map_eq): Likewise.
731         (lookup_field_for_decl): Likewise.
732         (convert_nonlocal_reference): Likewise.
733         (convert_local_reference): Likewise.
734         (convert_nl_goto_reference): Likewise.
735         (convert_nl_goto_receiver): Likewise.
736         (convert_call_expr): Likewise.
737         (convert_tramp_reference): Likewise.
738         (lookup_tramp_for_decl): Likewise.Use GGC_NEW.
739         (convert_nl_goto_reference): Likewise.
740         (lookup_field_for_decl): Use GGC_NEW.
741         (create_nesting_tree): Use GGC_CNEW.
742         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC.
743         * tree-ssa-alias.c (init_alias_info): Use XCNEW.
744         (create_alias_map_for): Likewise.
745         (setup_pointers_and_addressables): Use XCNEWVEC.
746         (get_ptr_info): Use GGC_NEW.
747         (used_part_map_eq): Use explicit cast to convert from void *.
748         (up_lookup): Likewise.
749         (up_insert): Use XNEW.
750         (get_or_create_used_part_for): Use XCNEW.
751         (get_tmt_for): Likewise.
752         * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW.
753         * tree-ssa-pre.c (phi_trans_add): Use XNEW.
754         (bitmap_set_new): Use explicit cast to convert from void *.
755         (set_new): Likewise.
756         (insert_into_set): Likewise.
757         (pool_copy_list): Likewise.
758         (phi_translate): Likewise.
759         (create_value_expr_from): Likewise.
760         (insert_aux): Use XCNEWVEC.
761         (compute_avail): Use XNEWVEC.
762         * tree-ssa-live.c (calculate_live_on_entry): Likewise.
763         (sort_coalesce_list): Likewise.
764         (build_tree_conflict_graph): Use XCNEWVEC.
765         * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC.
766         * tree-ssa-copy.c (init_copy_prop): Likewise.
767         (fini_copy_prop): Likewise.
768         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW
769         and XCNEWVEC.
770         (record_equiv): Use XNEW.
771         (uncprop_into_successor_phis): Use explicit cast to convert from
772         void *.
773         (uncprop_initialize_block): Likewise.
774
775 2005-12-18  Dorit Nuzman  <dorit@il.ibm.com>
776
777         PR tree-optimization/24378      
778         * tree-vect-transform.c (vect_transform_loop): Create single-predecessor
779         basic-block after loop-versioning. 
780
781 2005-12-18  Jeff Law  <law@redhat.com>
782
783         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code
784         to simplify SWITCH_EXPR_CODE moved from here to ...
785         * tree-ssa-forwprop.c (simplify_switch_expr): Here.
786         (tree-ssa-forward_propagate_single_use_vars): Call
787         simplify_switch_expr when appropriate.
788
789 2005-12-17  Andrew Pinski  <pinskia@physics.uc.edu>
790
791         * doc/objc.texi (Type encoding): Add documentation about encoding
792         complex types and _Bool.
793
794 2005-12-17  Paul Brook  <paul@codesourcery.com>
795
796         * config/m68k/m68k.md (m68k_output_function_prologue): Always call
797         dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset
798         when frame_pointer_needed. 
799
800 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
801
802         * tree-vn.c (vn_add): Use XNEW.
803         * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC.
804         (ccp_fold): Likewise.
805         (fold_stmt_r): Use explicit cast to convert from void *.
806         * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC.
807         (new_temp_expr_table): Likewise.
808         * gimplify.c (lookup_tmp_var): Use XNEW.
809         (gimplify_asm_expr): Use explcit cast to convert from void *.
810         * tree-into-ssa.c (get_ssa_name_ann): Likewise.
811         (get_def_blocks_for): Use XNEW.
812         (add_to_repl_tbl): Likewise.
813         (mark_def_sites): Use explicit cast to convert from void *.
814         (def_blocks_free): Likewise.
815         (mark_def_sites_initialize_block): Likewise.
816         (update_ssa): Use XNEWVEC.
817         * tree-dfa.c (create_var_ann): Use GGC_NEW.
818         (create_stmt_ann): Likewise.
819         (create_tree_ann): Likewise.
820         (referenced_var_insert): Likewise.
821         (set_default_def): Likewise.
822         (referenced_var_lookup_if_exists): Use explicit cast to convert
823         from void *.
824         (referenced_var_lookup): Likewise.
825         (default_def): Likewise.
826         (set_default_def): Likewise.
827         * tree-cfg.c (create_bb): Likewise.
828         (edge_to_cases_cleanup): Likewise.
829         (verify_node_sharing): Likewise.
830         (record_switch_edge): Use XNEW.
831         (cleanup_dead_labels): Use XCNEWVEC.
832         (tree_duplicate_sese_region): Use XNEWVEC.
833         * tree-scalar-evolution.c (get_instantiated_value): Likewise.
834         * tree-ssa.c (verify_ssa): Use XCNEWVEC.
835         (int_tree_map_eq): Use explicit cast to convert from void *.
836         * libgcov.c (gcov_exit): Use explicit cast to convert from void *.
837         (__gcov_execl): Likewise.
838         (__gcov_execlp): Likewise.
839         (__gcov_execle): Likewise.
840         * tree-eh.c (struct_ptr_eq): Likewise.
841         (struct_ptr_hash): Likewise.
842         (lookup_stmt_eh_region_fn): Likewise.
843         (outside_finally_tree): Likewise.
844         (find_goto_replacement): Likewise.
845         (make_eh_edge): Likewise.
846         (mark_eh_edge): Likewise.
847         (add_stmt_to_eh_region_fn): Use GGC_NEW.
848         (record_in_finally_tree): Use XNEW.
849         (maybe_record_in_goto_queue): Use XRESIZEVEC.
850         (lower_try_finally_copy): Use XCNEWVEC.
851
852 2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
853
854         * tree-inline.c (copy_body_r): Use explicit cast when converting
855         from void *.
856         (copy_bb): Likewise.
857         (copy_edges_for_bb): Likewise.
858         (remap_decl_1): Likewise.
859         (estimate_num_insns_1): Likewise.
860         * cgraph.c (hash_node): Use explicit cast when converting from
861         void *.
862         (eq_node): Likewise.
863         (cgraph_create_node): Use GGC_CNEW.
864         (cgraph_create_edge): Use GGC_NEW.
865         (cgraph_remove_node): Use explicit cast when converting from void *.
866         (hash_varpool_node): Likewise.
867         (eq_varpool_node): Likewise.
868         (cgraph_varpool_node): Use GGC_CNEW.
869         * lambda.h (lambda_vector_new): Use GGC_CNEWVEC.
870         * tree-scalar-evolution.c (new_scev_info_str): Use XNEW.
871         (eq_scev_info): Use explicit cast when converting from void *.
872         (find_var_scev_info): Likewise.
873         (set_instantiated_value): Likewise.
874         (gather_stats_on_scev_database_1): Likewise.
875         * cfgloop.h (simple_loop_desc): Use explicit cast when converting
876         from void *.
877         * c-pch.c (c_common_write_pch): Use XNEWVEC.
878         (c_common_read_pch): Likewise.
879         * prefix.c (save_string): Use XNEWVEC.
880         (translate_name): Use explicit cast when converting from void *.
881         * c-ppoutput.c (print_line): Use explicit cast when converting
882         from void *.
883         (pp_dir_change): Likewise.
884         * c-cppbuiltin.c (builtin_define_std): Likewise.
885         (builtin_define_with_value): Likewise.
886         (builtin_define_with_value_n): Likewise.
887         (builtin_define_with_int_value): Likewise.
888         (builtin_define_type_max): Likewise.
889         * c-incpath.c (add_env_var_paths): Use XNEWVEC.
890         (add_path): Use XNEW.
891         * c-format.c (check_format_info_main): Use GGC_NEW.
892         (format_type_warning): Use explicit cast when converting from void *.
893         * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of
894         xmalloc. 
895         (start_init): Likewise.
896         * tree-flow-inline.h (first_referenced_var): Use explicit cast
897         when converting from void *.
898         (next_referenced_var): Likewise.
899         * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc.
900         * gensupport.c (lookup_predicate): Use explicit cast to convert
901         from void *.
902         (init_predicate_table): Use XCNEW instead of xcalloc.
903         * genpreds.c (process_define_predicate): Likewise.
904
905 2005-12-17  Danny Berlin <dberlin@dberlin.org>
906             Kenneth Zadeck <zadeck@naturalbridge.com>
907
908         * basic-block.h: Changed basic block numbering so that the entry
909         block is 0 and the exit block is 1.  Changed insn iterators so
910         that they are tolerant of blocks with no insns.
911         * regrename.c (copyprop_hardreg_forward): Changed basic block
912         numbering so that the entry block is 0 and the exit block is 1.
913         * sched-ebb.c (sehedule_ebbs): Ditto.
914         * tracer.c (branch_ratio_cutoff): Ditto.
915         * cfgloopmanip.c (fix_loop_structure): Ditto.
916         * cfghooks.c (verify_flow_info): Ditto.
917         * cfg.c (compact_blocks): Ditto.
918         * reorg.c (dbr_schedule): Ditto.
919         * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
920         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
921         calculate_dominance_info): Ditto.
922         * cfganal.c (create_edge_list, print_edge_list,
923         flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
924         flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
925         dfs_enumerate_from): Ditto.
926         * global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
927         * ifcvt.c (find_if_case_2): Ditto.
928         * cfgbuild.c (control_flow_insn_p, count_basic_blocks,
929         find_basic_blocks): Ditto.
930         * predict.c (predict_loops, tree_bb_level_predictions,
931         predict_paths_leading_to, propagate_freq): Ditto.
932         * lcm.c (compute_antinout_edge, compute_laterin,
933         compute_available): Ditto.
934         * function.c (thread_prologue_and_epilogue_insns): Ditto.
935         * gcse.c (gcse_main, bypass_jumps): Ditto.
936         * profile.c (compute_branch_probabilities,
937         compute_value_histograms, branch_prob): Ditto.
938         * tree-flow-inline.h (bsi_start, bsi_after_labels,
939         bsi_last): Ditto.
940         * tree-ssa-phiopt.c (tree_ssa_phiopt,
941         blocks_in_phiopt_order): Ditto.
942         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
943         compute_out, link_btr_uses, migrate_btr_defs): Ditto.
944         * tree-dfa.c (collect_dfa_stats): Ditto.
945         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
946         * cfglayout.c (fixup_reorder_chain): Ditto.
947         * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
948         partition_hot_cold_basic_blocks): Ditto.
949         * var-tracking.c (vt_find_locations): Ditto.
950         * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
951         * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
952         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
953         label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
954         * tree-ssa-reassoc.c (init_reassoc): Ditto.
955         * cfgrtl.c (entry_of_function, rtl_verify_flow_info,
956         rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
957         * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
958         and removed unused reverse orders.
959         * df.h (): Ditto.
960         * combine.c: Fix document typo.
961
962 2005-12-17  Jan Hubicka  <jh@suse.cz>
963
964         * tree-flow-inline.h (set_default_def, default_def): Kill.
965         * tree-dfa.c (default_defs): New global variable.
966         (default_def, set_default_def): New functions.
967         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash.
968         * tree-flow.h (struct var_ann_d): Kill default_def field.
969         (set_default_def, default_def): Update prototype.
970         (default_defs): Declare.
971
972 2005-12-16  Jeff Law  <law@redhat.com>
973
974         * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill.
975         (simplify_rhs_and_lookup_avail_expr): Kill.  Remnants moved
976         into tree-ssa-forwprop.c.
977         (eliminate_redundant_computations): Do not call
978         simplify_rhs_and_lookup_avail_expr anymore.
979         * tree-ssa-forwprop.c (simplify_not_neg_expr): New function
980         extracted from remnants of simplify_rhs_and_lookup_avail_expr.
981         (tree_ssa_forward_propagate_single_use_vars): Call
982         simplify_not_neg_expr appropriately.
983
984 2005-12-16  Bernd Trog  <berndtrog@yahoo.com>
985
986         PR target/20016
987         * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS.
988
989 2005-12-17  Kazu Hirata  <kazu@codesourcery.com>
990
991         PR rtl-optimization/25456
992         * struct-equiv.c (struct_equiv_improve_checkpoint): Replace
993         info->x_start with p->x_start.
994
995 2005-12-17  Alan Modra  <amodra@bigpond.net.au>
996
997         * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug
998         introduced 2005-12-16.
999
1000 2005-12-16  Steven Bosscher  <stevenb@suse.de>
1001
1002         PR rtl-optimization/23837
1003         * optabs.c (expand_binop): For a multi-word rotate, never emit
1004         a REG_NO_CONFLICT block.
1005
1006 2005-12-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1007
1008         PR middle-end/25457
1009         * reorg.c (mostly_true_jump): Remove unused variable 'insn'.
1010
1011         PR target/25447
1012         * config/pa/pa.c (pa_scalar_mode_supported_p): Handle
1013         MODE_DECIMAL_FLOAT.
1014
1015 2005-12-16  Steven Bosscher  <stevenb@suse.de>
1016
1017         * loop-invariant.c (move_loop_invariants): Add missing hunk from
1018         the previous patch, to nullify df.
1019
1020 2005-12-16  Steven Bosscher  <stevenb@suse.de>
1021
1022         * reorg.c (mostly_true_jump): Clean up code depending on
1023         LABEL_OUTSIDE_LOOP_P and loop notes.  Remove code doing
1024         poor man's branch prediction, instead rely on REG_BR_PROB
1025         notes to be available.
1026
1027 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
1028
1029         PR rtl-optimization/24899
1030         * loop.c (strength_reduce): Don't reduce giv that is not always
1031         computable and where add_val or mult_val can trap.
1032
1033         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
1034
1035 2005-12-16  Nathan Sidwell  <nathan@codesourcery.com>
1036
1037         * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct
1038         names of ms1-16-002 files.
1039
1040 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
1041
1042         PR driver/20425
1043         * gcc.c (for_each_path): New function.
1044         (add_to_obstack, file_at_path): New functions.
1045         (struct file_at_path_info, struct add_to_obstack_info): New.
1046         (build_search_list): Rewrite using for_each_path.  Constify struct
1047         path_prefix pointer.  Add do_multi param.  Adjust all callers.
1048         (find_a_file): Similarly, but just change existing param to bool.
1049         (putenv_from_prefixes): Add do_multi param, make "paths" const.
1050         (do_spec_path): Delete.
1051         (struct spec_path_info): New.
1052         (spec_path): New function.
1053         (do_spec_1): Use for_each_path for %D and %I.
1054         (find_file): Adjust for find_a_file changes.
1055         (main): Search multilibs for specs.  Print multilib lib path for
1056         -print-search-dirs.  Likewise add multilibs to LIBRARY_PATH_ENV.
1057         (read_specs): Search multilibs for %include and %include_noerr.
1058         (is_directory): Remove second string param.  Change last param
1059         to a bool.  Don't use concat.  Remove SMALL_ARG_MAX test, always
1060         check path is a dir.  Update all callers.
1061         * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention.
1062         * system.h (SMALL_ARG_MAX): Poison.
1063         * config.gcc: Don't define SMALL_ARG_MAX.
1064         * config.host: Likewise.
1065         * config.build: Likewise.
1066
1067 2005-12-16  Paolo Bonzini  <bonzini@gnu.org>
1068
1069         * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE,
1070         FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR,
1071         ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>,
1072         simplify_logical): Move simplifications that do not require
1073         additional infrastructure...
1074         * simplify-rtx.c (simplify_unary_operation_1,
1075         simplify_binary_operation_1): ... here.
1076
1077 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
1078
1079         PR 24823
1080         * flow.c (mark_used_dest_regs): New function.
1081         (mark_used_regs): Call mark_used_dest_regs.
1082
1083 2005-12-16  Jeff Law  <law@redhat.com>
1084
1085         * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which
1086         represent a use and definition of the same SSA_NAME.
1087
1088 2005-12-16  Jon Grimm  <jgrimm2@us.ibm.com>
1089             Janis Johnson  <janis187@us.ibm.com>
1090             Ben Elliston  <bje@au.ibm.com>
1091
1092         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New.
1093         (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P.
1094         * target.h (struct gcc_target): Add decimal_float_supported_p.
1095         * targhooks.c (default_scalar_mode_supported_p): Handle
1096         MODE_DECIMAL_FLOAT.
1097         * builtins.def: Add new builtins for 32, 64 and 128 bit variants
1098         of inf, nan, finite, isinf and isnan.
1099         * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128,
1100         BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR,
1101         BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128,
1102         BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128,
1103         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING,
1104         BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32,
1105         BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New.
1106         * c-decl.c (declspecs_add_type): Verify combos on type qualifiers.
1107         Pedwarn if decimal floating point types are used.  Error if
1108         decimal floating point is not supported by the target.
1109         (finish_declspecs): Return type from DFP typespec_word.
1110         * c-typeck.c (c_common_type): Choose the decimal floating point
1111         type with the greater precision when determining a common type.
1112         (convert_arguments): Warn if there is a mismatch between argument
1113         and prototype for decimal float types.  Warn of conversions with
1114         binary float types and of precision narrowing due to prototype.
1115         * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128.
1116         (c_token_starts_typename): Handle RID_DFLOAT32/64/128.
1117         (c_token_starts_declspecs): Likewise.
1118         (c_parser_attributes): Likewise.
1119         * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32,
1120         RID_DFLOAT64, RID_DFLOAT128.
1121         (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros.
1122         * c-common.c (c_common_type_for_mode): Handle decimal float modes.
1123         (shorten_compare): Convert DFP/BFP operands to a common type.
1124         (c_common_modes_and_builtins): Register built-in decimal float
1125         types if the target supports them.
1126         (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT.
1127         * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of
1128         inf, nan, finite, isinf and isnan builtins.
1129         * c-cppbuiltin.c (builtin_define_decimal_float_constants): New.
1130         (builtin_define_float_constants): Assert non-decimal radix.
1131         (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define.
1132         Call builtin_define_decimal_float_constants for each type.
1133         * c-lex.c (interpret_float): Decode decimal float types from CPP_N
1134         flags.  Use real_from_string3, which can handle binary or decimal
1135         floats.
1136         * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32,
1137         cts_dfloat64, cts_dfloat128.
1138         * tree.c (build_common_tree_nodes_2): Add decimal float types.
1139         * tree.h (enum tree_index): Add new enumeration values
1140         TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE,
1141         TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE.
1142         (dfloat32_type_node): New macro.
1143         (dfloat64_type_node, dfloat128_type_node): Likewise.
1144         (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise.
1145         (dfloat128_ptr_type_node): Likewise.
1146         * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128
1147         bit decimal floating point types with "df", "dd" and "dl".
1148         * c-format.h (enum format_lengths): Add new enumeration values
1149         FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD.
1150         * c-format.c (printf_length_specs, scanf_length_specs): Add
1151         entries for H, D, DD.
1152         (print_char_table, scan_char_table): Use new entries.
1153         (asm_fprintf_char_table, gcc_diag_char_table,
1154         gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer
1155         length arrays.
1156         * defaults.h (DECIMAL32_TYPE_SIZE): Define.
1157         (DECIMAL64_TYPE_SIZE): Likewise.
1158         (DECIMAL128_TYPE_SIZE): Likewise.
1159         (TARGET_DEC_EVAL_METHOD): Likewise.
1160         * doc/extend.texi (Decimal Float): New node.
1161         (Constructing Calls): Document decimal float built-ins.
1162         * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook.
1163         * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h.
1164         * ginclude/decfloat.h: New file.
1165
1166 2005-12-16  Alan Modra  <amodra@bigpond.net.au>
1167
1168         * reload.c (find_reloads): Fix comment typo.
1169         * recog.h (recog_memoized): Correct comment.
1170
1171 2005-12-16  Kazu Hirata  <kazu@codesourcery.com>
1172
1173         * basic-block.h, config/i386/winnt.c, config/pa/pa.c,
1174         config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def,
1175         reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c,
1176         tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos.
1177         * doc/invoke.texi, doc/tm.texi: Fix typos.
1178
1179 2005-12-16  Ben Elliston  <bje@au.ibm.com>
1180
1181         * real.c (decimal_quad_format): Correct values for emin, emax.
1182
1183 2005-12-15  DJ Delorie  <dj@redhat.com>
1184
1185         * config/m32c/predicates.md (m32c_psi_scale): New.
1186         * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New.
1187         * config/m32c/muldiv.md (mulpsi3): Support negative constants.
1188
1189 2005-12-16  Jan Hubicka  <jh@suse.cz>
1190
1191         PR rtl-optimization/25224
1192         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy
1193         tables.
1194
1195 2005-12-15  Zdenek Dvorak <dvorakz@suse.cz>
1196             Steven Bosscher <stevenb@suse.de>
1197
1198         * loop-invariant.c (df): New global variable.
1199         (find_defs, check_dependencies, find_invariant_insn, record_uses,
1200         find_invariants_bb, find_invariants_body, find_invariants,
1201         find_invariants_to_move, move_invariants, free_inv_motion_data,
1202         move_single_loop_invariants, move_loop_invariants): Do not pass df in
1203         arguments.
1204
1205 2005-12-15  Jakub Jelinek  <jakub@redhat.com>
1206
1207         * varasm.c (default_unique_section_1): Use special section
1208         names for SECCAT_DATA_REL{,_RO}{,_LOCAL}.
1209
1210 2005-12-16  Ben Elliston  <bje@au.ibm.com>
1211
1212         * doc/invoke.texi (Warning Options): Document -Walways-true being
1213         enabled by -Wall.
1214
1215 2005-12-15  Joseph S. Myers  <joseph@codesourcery.com>
1216
1217         PR other/25028
1218         * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define.
1219         * libgcc2.c (__floatdixf, __floatundixf, __floatditf,
1220         __floatunditf): Use #error if type sizes don't match requirements
1221         of implementation.
1222         (__floatdisf, __floatdidf): Unify.  Possibly use XFmode or TFmode
1223         as wider floating-point type.  Use #error if type sizes don't
1224         match requirements of implementation.  Avoid overflow in computing
1225         Wtype_MAXp1_F * Wtype_MAXp1_F.  When special casing conversion,
1226         shift one more bit.  Cast 1 to DWtype or UDWtype for shifting.
1227         (__floatundisf, __floatundidf): Likewise.
1228         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define.
1229         * config/ia64/ia64.c (ia64_init_libfuncs): Use
1230         _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for
1231         TFmode-TImode conversions.
1232         * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document.
1233
1234 2005-12-14  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1235
1236         * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
1237         Use builtin_define_with_int_value() instead of
1238         adding a new check for every new major FreeBSD version.
1239
1240 2005-12-14  Andrew Pinski  <pinskia@physics.uc.edu>
1241
1242         * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h.
1243
1244 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
1245
1246         * config/arm/predicates.md (call_memory_operand): New.
1247         * config/arm/arm.md (*call_mem, *call_value_mem): Use it.
1248
1249 2005-12-15  Andrew Haley  <aph@redhat.com>
1250
1251         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
1252         against prev_cache_entry == NULL when moving a cache entry to the
1253         head of the list.
1254         
1255 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
1256
1257         * config/mt/mt.c (mt_override_options): Require lower case
1258         architectures.  Revert accidental default to ms2.
1259         * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC,
1260         ENDFILE_SPEC): Require lower case architectures.  Revert default
1261         to ms2.
1262
1263         * doc/invoke.texi (MT Options): Rename and update.
1264         * doc/md.texi (MorphoTech family): Rename and update.
1265
1266 2005-12-15  Olivier Hainque  <hainque@adacore.com>
1267
1268         * stor-layout.c (layout_type): Don't complain about a too small
1269         an array element type size compared to its alignment when the
1270         size overflows.
1271
1272 2005-12-15  Jan Hubicka  <jh@suse.cz>
1273
1274         PR target/24969
1275         * i386.c (classify_argument): Properly adjust offset of bitfield for
1276         substructures.
1277
1278 2005-12-15  Richard Sandiford  <richard@codesourcery.com>
1279
1280         * final.c (final_scan_insn): Flip in_cold_section_p when changing
1281         between the hot and cold sections.  Use current_function_section
1282         to get the new section.
1283         * dwarf2out.c (output_line_info): Use in_cold_section_p to
1284         determine whether we are assembling hot or cold code.
1285         (secname_for_decl, dwarf2out_var_location): Likewise.
1286         (dwarf2out_init, dwarf2out_finish): Use switch_to_section.
1287         * varasm.c (last_text_section): Delete.
1288         (in_cold_section_p): New variable.
1289         (hot_function_section): New function.
1290         (current_function_section): Pass in_cold_section_p as the
1291         reloc argument to select_section.  Use it to decide between
1292         unlikely_function_section and hot_function_section.
1293         (assemble_start_function): Use switch_to_section.  Set
1294         in_cold_section_p instead of last_text_section.
1295         (assemble_end_function): Use switch_to_section.
1296         (switch_to_section): Don't set last_text_section.
1297         * config/darwin/darwin.c (machopic_select_section): Trust the reloc
1298         argument to make the right choice between hot and cold sections.
1299
1300 2005-12-15  Nathan Sidwell  <nathan@codesourcery.com>
1301
1302         Second part of MS1->MT renaming
1303         * config/mt/mt.md (doloop_end): Call mt_add_loop.
1304         (movqi, movhi): Call mt_set_memflags.
1305         (*movdf_internal): Call mt_split_words. 
1306         (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call
1307         mt_set_memflags.
1308         (cmpsi): Store to mt_compare_op[01].
1309         (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge,
1310         bungt, bunle, bunlt): Call mt_emit_cbranch.
1311         (prologue): Call mt_expand_prologue.
1312         (epilogu): Call mt_expend_epilogue.
1313         (eh_return): Call mt_expand_eh_return.
1314         (eh_epilogue): Call me_emit_eh_epilogue.
1315         (conditional_trap): Store to mt_compare_op[01].
1316         * config/mt/crti.asm: Adjust comment.
1317         * config/mt/crtn.asm: Adjust comment.
1318         * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed.
1319         (mt_compare_op0, mt_compare_op1): Renamed.
1320         (current_frame_info, zero_frame_info): Adjust type.
1321         (mt_ucmpsi3_libcall): Renamed.
1322         (mt_flag_delayed_branch): Renamed.
1323         (mt_struct_value_rtx, mt_return_addr_rtx): Renamed.
1324         (mt_nops_required, mt_nop_reasons): Renamed.
1325         (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn,
1326         mt_debug_stack, mt_print_operand_simple_address,
1327         mt_print_operand_address, mt_print_operand): Renamed, adjusted.
1328         (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg,
1329         mt_function_arg_advance, mt_arg_partial_bytes,
1330         mt_pass_by_reference, mt_function_arg_boundary,
1331         mt_reg_ok_for_base_p, mt_legitimate_simple_address_p,
1332         mt_legitimate_address_p): Renamed, adjusted.
1333         (mt_cpu): Renamed.
1334         (mt_init_machine_status, mt_override_options, mt_builtin_saveregs,
1335         mt_va_start, mt_compute_frame_size, mt_emit_save_restore,
1336         mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, 
1337         mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue,
1338         mt_expand_eh_return, mt_emit_eh_prologue,
1339         mt_handl_interrupt_attribute): Renamed, adjusted.
1340         (mt_attribute_table): Renamed, adjusted.
1341         (mt_initial_elimination_offset, mt_generate_compare,
1342         mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags,
1343         mt_secondary_reload_class, mt_function_value, mt_split_words,
1344         mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length,
1345         mt_scan_loop, mt_reorg_loops): Renamed, adjusted.
1346         (mt_labels): Renamed.
1347         (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard,
1348         mt_machine_reorg): Renamed, adjusted.
1349         (mt_attribute_table: Renamed.
1350         (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX,
1351         TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK,
1352         TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust.
1353         * config/mt/mt.opt (march): Set mt_cpu_string.
1354         * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed.
1355         (TARGET_CPU_CPP_BUILTINS): Adjust.
1356         (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003,
1357         TARGET_MS2): Adjust.
1358         (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust.
1359         (MT_MIN_INT): Renamed.
1360         (RETURN_ADDR_RTX): Adjust.
1361         (struct mt_frame_info): Renamed.
1362         (current_frame_info): Adjust type.
1363         (INITIAL_ELIMINATION_OFFSET): Adjust.
1364         (MT_NUM_ARG_REGS): Renamed.
1365         (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS,
1366         FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE,
1367         LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START,
1368         GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE,
1369         FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust.
1370         (mt_compare_op0, mt_compare_op1): Renamed.
1371         * config/mt/mt-protos.h: Rename prototypes.
1372
1373 2005-12-15  Richard Guenther  <rguenther@suse.de>
1374
1375         * tree-flow.h (okay_component_ref_for_subvars): Remove.
1376         (get_ref_base_and_extent): Declare.
1377         * tree-dfa.c (okay_component_ref_for_subvars): Remove.
1378         (get_ref_base_and_extent): New function.
1379         * tree-ssa-alias.c (find_used_portions): Use it.
1380         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1381         Likewise.
1382         * tree-ssa-operands.c (get_expr_operands): Likewise.
1383
1384 2005-12-15  Paolo Bonzini  <bonzini@gnu.org>
1385
1386         * combine.c: Remove force_to_mode's fourth parameter.
1387         (force_to_mode): Do not handle REG.
1388         (canon_reg_for_combine): New.
1389         (make_field_assignment): Use it where the removed argument was non-NULL.
1390
1391 2005-12-15  Alan Modra  <amodra@bigpond.net.au>
1392
1393         PR target/25406
1394         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle
1395         error_mark_node.  Make alignment params unsigned.
1396         * config/rs6000/rs6000-protos.h
1397         (rs6000_special_round_type_align): Update prototype.
1398         (rs6000_machopic_legitimize_pic_address): Remove arg names.
1399
1400 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
1401
1402         PR rtl-optimization/25310
1403         * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs
1404         of the eliminable register when substituting into a PLUS.
1405
1406 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1407
1408         PR debug/25023
1409         * config/i386/i386.c (ix86_force_to_memory): Always use
1410         SImode push for HImode in -m32.
1411         (ix86_free_from_memory): Likewise.
1412
1413 2005-12-14  Richard Sandiford  <richard@codesourcery.com>
1414
1415         * gcc/config/arm/arm.md: Provide a big-endian version of the
1416         (zero_extend:SI (subreg:QI ...)) splitter.
1417
1418 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1419
1420         * struct-equiv.c (note_local_live): Handle hard regs with different
1421         hard_regno_nregs.
1422
1423 2005-12-14  Jeff Law  <law@redhat.com>
1424
1425         * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer
1426         to a structure containing state rather than a pointer to bool.
1427         (case ARRAY_REF): New code to handle folding some array references.
1428         (case ADDR_EXPR): Note when we are processing expressions found
1429         within an ADDRE_EXPR.
1430         (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r
1431         for state variables rather than just a pointer to a boolean.
1432         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1433         handling of constant string references.
1434
1435 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1436
1437         * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge.
1438         ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge.
1439         ("*tstdi_cconly2", "*tstsi_cconly2"): Merge.
1440         Move other tst* patterns to retain partial order.
1441
1442 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1443
1444         * config/s390/s390.md ("d0", "1"): New mode attributes.
1445         ("<shift>di3", "<shift>si3"): Merge.
1446         ("*<shift>di3_and", "*<shift>si3_and"): Merge.
1447         ("ashrdi3", "ashrsi3"): Merge.
1448         ("*ashrdi3_cc", "*ashrsi3_cc"): Merge.
1449         ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge.
1450         ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge.
1451         ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge.
1452         ("*ashrdi3", "*ashrsi3"): Merge.
1453         ("*ashrdi3_and", "*ashrsi3_and"): Merge.
1454
1455 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1456
1457         * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge.
1458         ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge.
1459         ("*extendqidi2", "*extendqisi2") Merge.
1460         ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge.
1461         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1462         ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge.
1463         Move some patterns to retain partial ordering.
1464
1465 2005-12-14  Adrian Straetling  <straetling@de.ibm.com>
1466
1467         * config/s390/s390.md ("atype", "length"): Rewrite.
1468         ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode.
1469
1470 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1471
1472         * tree-ssa-operands.c (build_ssa_operands): Update leading comment.
1473
1474 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1475
1476         * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for
1477         PARALLELs with a mode.
1478
1479 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1480
1481         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of
1482         cond_expr parameter.
1483
1484 2005-12-14  Sebastian Pop  <pop@cri.ensmp.fr>
1485
1486         * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning.
1487
1488 2005-12-14  J"orn Rennecke <joern.rennecke@st.com>
1489
1490         PR bootstrap/25397:
1491
1492         * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
1493         of STACK_REGS bits.
1494
1495         * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
1496
1497 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
1498
1499         PR target/25254
1500         PR target/24188
1501         * config/i386/i386.c (x86_64_elf_select_section): If DECL is not
1502         DECL_P, call get_section rather than get_named_section.  Supply
1503         section flags to it.
1504
1505 2005-12-14  Ben Elliston  <bje@au.ibm.com>
1506
1507         * c-common.c (c_common_truthvalue_conversion): Generalise warning
1508         for addresses converted to booleans; not just function addresses.
1509         * c-typeck.c (build_binary_op): Warn for address comparisons which
1510         can never be NULL (eg. func == NULL or &var == NULL).
1511         * common.opt (Walways-true): New option.
1512         * c-opts.c (c_common_handle_option): Set it with -Wall.
1513         * doc/invoke.texi: Document it.
1514
1515 2005-12-13  Paul Brook  <paul@codesourcery.com>
1516
1517         * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2,
1518         __floatunsidf, __floatunsisf, __floatunsixf): New functions.
1519
1520 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1521
1522         * config/mt/t-mt (crti.o, crtn.o): Add multilib options.
1523         (EXTRA_MULTILIB_PARTS): Define.
1524
1525 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1526
1527         PR rtl-optimization/20070 / part1
1528         * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call
1529         count_or_remove_death_notes with kill == -1.
1530         (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack
1531         registers if PROP_POST_REGSTACK is set.
1532         (mark_used_reg): Likewise.
1533         (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD /
1534         REG_UNUSED notes for stack regs.
1535         * cfgcleanup.c (condjump_equiv_p): Change parameters and processing
1536         to match rtx_equiv_p machinery.  Change caller.
1537         (outgoing_edges_match): Likewise.
1538         (try_crossjump_to_edge): Use struct_equiv_block_eq
1539         instead of flow_find_cross_jump.
1540         * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define.
1541         (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise.
1542         (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise.
1543         (STRUCT_EQUIV_MAX_LOCAL): Likewise.
1544         (struct struct_equiv_checkpoint, struct equiv_info): Likewise.
1545         (insns_match_p): Update prototype.
1546         (flow_find_cross_jump): Remove prototype.
1547         (struct_equiv_block_eq, struct_equiv_init): Declare.
1548         (rtx_equiv_p, condjump_equiv_p): Likewise.
1549         * struct-equiv.c: Include reload.h.
1550         (IMPOSSIBLE_MOVE_FACTOR): Define.
1551         (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions.
1552         (struct_equiv_improve_checkpoint): Likewise.
1553         (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise.
1554         (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise.
1555         (struct_equiv_merge, find_dying_input): Likewise.
1556         (resolve_input_conflict, note_local_live): Likewise.
1557         (death_notes_match_p): Change parameters and processing
1558         to match rtx_equiv_p machinery.  Change caller.
1559         (insns_match_p): Likewise.
1560         (flow_find_cross_jump): Replace with:
1561         (struct_equiv_block_eq).
1562
1563         Back out this change:
1564         2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
1565           * recog.c (verify_changes): Make it static.
1566           * recog.h: Remove the corresponding prototype.
1567
1568 2005-12-13  J"orn Rennecke <joern.rennecke@st.com>
1569
1570         * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point
1571         values.
1572
1573 2005-12-13  Nathan Sidwell  <nathan@codesourcery.com>
1574
1575         * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2
1576         (MULTILIB_DIRNAMES): Add ms2.  Prefix ms1 dirs with 'ms1'.
1577         * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2,
1578         TARGET_MS1_64_001 appropriately.
1579         (ms1_machine_reorg): Use TARGET_MS2.
1580
1581 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
1582
1583         PR debug/25023
1584         PR target/25293
1585         * expr.c (emit_move_resolve_push): Handle PRE_MODIFY
1586         and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING.
1587         Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity.
1588         * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw.
1589         Set mode to SI, adjust constraints.
1590         (pushhi2_rex64, pushqi2_rex64): Set mode to DI.
1591         * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for
1592         32-bit code.
1593
1594 2005-12-13  Carlos O'Donell <carlos@codesourcery.com>
1595
1596         * c-cppbuiltin.c (builtin_define_float_constants): Add
1597         fp_cast parameter, pass to builtin_define_with_hex_fp_value.
1598         Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__.
1599         (builtin_define_with_hex_fp_value): Use fp_cast when building macro.
1600         (c_cpp_builtins): If flag_single_precision_constant then set fp_cast
1601         to "((double)%sL)" otherwise "%s".
1602
1603 2005-12-13  Paul Brook  <paul@codesourcery.com>
1604
1605         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for
1606         apcs/atpcs.
1607
1608 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com>
1609
1610         * tree-flow.h: Allow compilation with a C++ compiler.
1611         (struct edge_prediction): Prefix all field names  with "ep_".
1612         * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction.
1613         (tree_predict_edge, combine_predictions_for_bb): Likewise.
1614         (remove_predictions_associated_with_edge): Likewise.
1615         
1616 2005-12-12  Jeff Law  <law@redhat.com>
1617
1618         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
1619         reassociation code.
1620         * passes.c (init_optimization_passes): Run reassociation again
1621         after loop optimizations.
1622
1623 2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
1624
1625         * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
1626         if necessary.
1627         (optimize_stmt): Ditto.
1628         (canonicalize_comparison): New function.
1629         * tree-ssa-operands.c (swap_tree_operands): Make external.
1630         (get_expr_operands): Stop auto-canonicalization.
1631         * tree-ssa-reassoc.c: Rewrite.
1632         (init_optimization_passes): 
1633         * tree-flow.h (swap_tree_operands): Prototype.
1634         * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
1635
1636 2005-12-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1637
1638         * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to
1639         indicate function epilogue has been output.
1640         (pa_asm_output_mi_thunk): Likewise.
1641         (output_deferred_plabels): Put plabels in readonly data section when
1642         not generating PIC code.
1643         (som_output_text_section_asm_op): Use .NSUBSPA to output debug
1644         information.  Add assert.
1645         (som_output_comdat_data_section_asm_op): New function.
1646         (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op
1647         instead of output_section_asm_op for COMDAT sections.
1648
1649 2005-12-12  J"orn Rennecke <joern.rennecke@st.com>
1650
1651         * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge):
1652         Fix whitespace in vincinity of to-be-installed changes.
1653         * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace.
1654         (insns_match_p): Likewise.
1655
1656 2005-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1657
1658         * config.gcc (ms1): Replace with ...
1659         (mt): ... this.
1660         * config/ms1: Rename to ...
1661         * config/mt: ... here.  Rename ms1 files to mt.
1662         * config/mt/mt.c: Adjust gt-mt.h #include.
1663         * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust.
1664         (crti.o, crtn.o): Adjust file names.
1665
1666 2005-12-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1667
1668         * varray.h: Allow compilation with a C++ compiler.
1669         (union varray_data_tag): Prefix all field names with "vdt_".
1670         (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT,
1671         VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG,
1672         VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR,
1673         VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX,
1674         VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB,
1675         VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition.
1676         (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT,
1677         VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, 
1678         VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, 
1679         VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, 
1680         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, 
1681         VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, 
1682         VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, 
1683         VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise.
1684         (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, 
1685         VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, 
1686         VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, 
1687         VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, 
1688         VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, 
1689         VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, 
1690         VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, 
1691         VARRAY_TOP_TREE_PTR): Likewise.
1692         * varray.c (varray_grow): Likewise.
1693         (varray_clear): Likewise.
1694
1695 2005-12-12  Alan Modra  <amodra@bigpond.net.au>
1696
1697         PR target/25299
1698         * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase
1699         alignment to doubleword if the first field is a double array.
1700         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
1701
1702 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1703
1704         * tree-ssa-structalias.c (process_constraint): Remove code to
1705         transform addressofs into scalar.
1706         (create_variable_info_for): In whole-program IPA, globals don't
1707         point to ANYTHING by default.
1708
1709 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1710
1711         * timevar.def (TV_IPA_PTA): New.
1712         * tree-pass.h (pass_ipa_pta): New
1713         * tree-ssa-structalias.c: Include cgraph.h
1714         (in_ipa_mode): New.
1715         (predbitmap_obstack): New.
1716         (EXECUTE_IF_IN_NONNULL_BITMAP): New.
1717         (struct constraint_stats): Add num_edges.
1718         (new_var_info): Don't call bitmap_clear.
1719         (struct constraint_edge): Update docs.
1720         (new_constraint_edge): Remove src param.
1721         (struct constraint_graph): Add zero_weight_succs,
1722         zero_weight_preds.  Update docs.
1723         (constraint_expr_equal): Reformat.
1724         (constraint_edge_equal): Update for removal of src.
1725         (constraint_edge_less): Ditto.
1726         (constraint_edge_vec_find): Ditto.
1727         (erase_graph_self_edge): Update for removal of src and and zero
1728         weight bitmap.
1729         (clear_edges_for_node): Ditto.
1730         (add_graph_edge): Ditto.
1731         (get_graph_weights): Ditto.
1732         (allocate_graph_weights): Ditto.
1733         (merge_graph_nodes): Ditto.
1734         (int_add_graph_edge): Ditto.
1735         (valid_graph_edge): Ditto.
1736         (valid_weighted_graph_edge): Ditto.
1737         (build_constraint_graph): Ditto.
1738         (scc_visit): Ditto.
1739         (collapse_nodes): Ditto.
1740         (process_unification_queue): Ditto.
1741         (topo_visit): Ditto.
1742         (solve_graph): Ditto.
1743         (do_structure_copy): Ditto.
1744         (perform_var_substitution): Ditto.
1745         Init and release obstack.
1746         (handle_ptr_arith): Try to resolve directly.
1747         (find_func_aliases): Don't call update_alias_info here
1748         Handle RETURN_EXPR, and CALL_EXPR's in IPA mode.
1749         (do_sd_constraint): Add code for propagating faster.
1750         Update.
1751         (do_ds_constraint): Ditto.
1752         (count_num_arguments): New function.
1753         (create_function_info_for): Ditto.
1754         (create_variable_info_for): Handle FUNCTION_DECL.
1755         (intra_create_variable_infos): Use make_constraint_to_anything.
1756         (init_alias_vars): Init obstacks here.
1757         (need_to_solve): Handle zero weight graph changes.
1758         (compute_points_to_sets): Call update_alias_info here.
1759         (delete_points_to_sets): Free zero weight preds/succs here.
1760         (gate_ipa_pta): New.
1761         (ipa_pta_execute): New
1762
1763 2005-12-11  Daniel Berlin  <dberlin@dberlin.org>
1764
1765         * tree-ssa-structalias.c (var_anyoffset): Removed.
1766         (anyoffset_tree): Ditto.
1767         (anyoffset_id): Ditto.
1768         (do_deref): Take vector of constraints, no return value.
1769         Update to work on vector.                
1770         (get_constraint_for): Ditto.
1771         (get_constraint_for_component_ref): Ditto.
1772         (do_structure_copy): Ditto.
1773         (handle_ptr_arith): Ditto.
1774         (find_func_aliases): Ditto.
1775         (set_uids_in_ptset): Remove anyoffset handling.
1776         (init_base_vars): Ditto.
1777
1778 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
1779
1780         PR c++/25010
1781         * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that
1782         DECL_EXTERNAL functions have no bodies.  Tidy.
1783
1784 2005-12-10  Andreas Schwab  <schwab@suse.de>
1785
1786         * except.c (switch_to_exception_section): Only define if
1787         TARGET_UNWIND_INFO is not defined.
1788
1789 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1790
1791         * config/darwin.h (HAS_INIT_SECTION): Remove definition.
1792         (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07.
1793
1794 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1795
1796         * output.h (init_section, fini_section): Delete.
1797         * varasm.c (init_section, fini_section): Delete.
1798         (init_varasm_once): Don't initialize them.
1799         * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that
1800         there are no corresponding varasm.c variables.
1801
1802 2005-12-10  Richard Sandiford  <richard@codesourcery.com>
1803
1804         * dwarf2out.c (default_eh_frame_section): Delete, moving handling
1805         of EH_FRAME_SECTION_NAME into...
1806         (switch_to_eh_frame_section): ...here.  Try to set eh_frame_section
1807         if it is still null.
1808         * except.c (default_exception_section): Delete, moving most
1809         of the code to...
1810         (switch_to_exception_section): ...this new function.  Set
1811         exception_section if it is still null, then switch to it.
1812         (output_function_exception_table): Use switch_to_exception_section.
1813         * varasm.c (exception_section, eh_frame_section): Update comments.
1814         (get_section): Hoist use of SECTION_NAMED.
1815         (init_varasm_once): Don't set exception_section and eh_frame_section.
1816         * output.h (default_exception_section): Delete.
1817         (default_eh_frame_section): Delete.
1818
1819 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1820
1821         * config/bfin/bfin.c: Include "cgraph.h".
1822         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
1823         Return the reg that holds the pointer to the GOT.
1824         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
1825         doing stack checking.
1826
1827 2005-12-09  Diego Novillo  <dnovillo@redhat.com>
1828
1829         * tree.c (recompute_tree_invariant_for_addr_expr): Rename from
1830         recompute_tree_invarant_for_addr_expr.
1831         Update uses everywhere.
1832
1833 2005-12-09  Aldy Hernandez  <aldyh@redhat.com>
1834
1835         * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define.
1836         (MULTILIB_DIRNAMES): Define.
1837
1838 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1839
1840         PR target/25311
1841         * config/s390/s390.c (struct s390_address): New field literal_pool.
1842         (s390_decompose_address): Compute literal_pool field.  Do not 
1843         assume register %r13 is always (and solely) used as pool base.
1844         (s390_extra_constraint_str): Use literal_pool field.
1845
1846 2005-12-09  Thiemo Seufer  <ths@networkno.de>
1847
1848         * config/mips/mips.c (override_options): Don't allow too small
1849         integers in FP registers.
1850
1851 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
1852
1853         * config/s390/s390.c (s390_function_ok_for_sibcall): Use
1854         targetm.binds_local_p to check for local function calls.
1855
1856 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
1857
1858         PR debug/24908
1859         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
1860         call_used_regs can't be used to save reg in another reg.
1861
1862 2005-12-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1863             Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
1864
1865         * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of
1866         abort.
1867         * except.c (output_ttype): Likewise.
1868         * tree-object-size.c (collect_object_sizes_for): Likewise.
1869         (check_for_plus_in_loops_1): Likewise.
1870         (check_for_plus_in_loops): Likewise.
1871         (compute_object_sizes): Use gcc_unreachable instead of abort.
1872
1873 2005-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1874
1875         * config/ms1/ms1.md (UNSPEC_LOOP): New constant.
1876         (loop_end, loop_init, doloop_end): New insns.
1877         * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New.
1878         (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust.
1879         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
1880         (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust.
1881         * config/ms1/ms1.c: #include basic-block.h
1882         (struct machine_function): Add has_loops field.
1883         (ms1_add_loop): New.
1884         (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New.
1885         (struct loop_info, struct loop_work): New.
1886         (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers.
1887         (ms1_reorg_loops): New loop optimization.
1888         (ms1_machine_reorg): Call it.
1889         * config/ms1/ms1-protos.h (ms1_add_loop): Declare.
1890
1891 2005-12-08  Zdenek Dvorak  <dvorakz@suse.cz>
1892
1893         PR tree-optimization/25248
1894         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use
1895         evolution_of_loop from the failed attempt.  Remove handling
1896         of MULT_EXPR.
1897
1898 2005-12-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1899
1900         * tree.h (DECL_EXTERNAL): Clarify documentation.
1901
1902 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1903             Jakub Jelinek  <jakub@redhat.com>
1904
1905         PR target/25268
1906         * config/s390/s390.c (s390_decompose_shift_count): Remove BITS
1907         argument.  Don't drop outer ANDs.
1908         (s390_extra_constraint_str, print_shift_count_operand): Adjust callers.
1909         * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust
1910         prototype.
1911         * config/s390/predicates.md (setmem_operand): Remove.
1912         (shift_count_operand): Rename to...
1913         (shift_count_or_setmem_operand): ... this.  Adjust
1914         s390_decompose_shift_count caller.
1915         * config/s390/s390.md (<shift>di3_31_and, <shift>di3_64_and,
1916         ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and,
1917         ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and,
1918         <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and,
1919         rotl<mode>3_and, setmem_long_and): New insns.
1920         (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31,
1921         ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64,
1922         <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3,
1923         <shift>di3, ashrdi3): Use shift_count_or_setmem_operand instead
1924         of shift_count_operand.
1925         (setmem_long): Use shift_count_or_setmem_operand instead of
1926         setmem_operand.
1927
1928 2005-12-08  Daniel Jacobowitz  <dan@codesourcery.com>  
1929             Andreas Tobler  <a.tobler@schweiz.ch>
1930
1931         * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable
1932         tr expression.
1933
1934 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1935
1936         * expr.c (force_operand): Use convert_to_mode for conversions.
1937
1938 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1939
1940         * reload.h (reg_equiv_invariant): Declare.
1941         * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo
1942         register also when reg_equiv_invariant[R] is set.
1943
1944 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
1945             Andreas Tobler  <a.tobler@schweiz.ch>
1946
1947         * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET.
1948
1949 2005-12-07  Daniel Berlin  <dberlin@dberlin.org>
1950
1951         * tree-ssa-pre.c (bitmap_set_and): New function.
1952         (bitmap_set_and_compl): New function.
1953         (bitmap_set_empty_p): New function.
1954         (insert_extra_phis): New function.
1955         (compute_avail): Use insert_extra_phis.
1956
1957 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1958
1959         * config/s390/s390.c (s390_expand_atomic): New function.
1960         Adjust comment of helper functions.
1961         * config/s390/s390-protos.h (s390_expand_atomic): Declare.
1962         * config/s390/s390.md ("ATOMIC"): New code macro.
1963         ("atomic"): Corresponding new code attribute.
1964         ("sync_lock_test_and_set[hq]i", 
1965         "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern.
1966
1967 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
1968
1969         * config/s390/s390.c (s390_expand_mask_and_shift, 
1970         struct alignment_context, init_alignment_context, 
1971         s390_expand_cs_hqi): New.
1972         * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare.
1973         * config/s390/s390.md ("sync_compare_and_swaphi",
1974         "sync_compare_and_swapqi"): New pattern.
1975
1976 2005-12-07  Daniel Berlin <dberlin@dberlin.org>
1977
1978         Fix PR tree-optimization/25291
1979         * tree-ssa-operands.c (add_call_clobber_ops): Remove
1980         redundant and crashing check.
1981
1982 2005-12-08  Alan Modra  <amodra@bigpond.net.au>
1983
1984         PR target/25212
1985         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax
1986         tests further when !strict && reload_in_progress.
1987         (print_operand): Check that both operands of indexed address are regs.
1988         (print_operand_address): Likewise.
1989         * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify.
1990         (INT_REG_OK_FOR_BASE_P): Correct.
1991
1992 2005-12-07  J"orn Rennecke <joern.rennecke@st.com>
1993
1994         Preparation for PR rtl-optimization/20070 / part1
1995         * basic-block.h (insns_match_p, flow_find_cross_jump): Declare.
1996         * cfgcleanup.c (condjump_equiv_p): New function, broken out of
1997         outgoing_edges_match.
1998         (outgoing_edges_match): Use condjump_equiv_p.
1999         (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here
2000         into..
2001         * struct-equiv.c: New file.
2002         (death_notes_match_p) New function, broken out of insns_match_p.
2003         * Makefile.in (OBJS-common): Add struct-equiv.o.
2004         (struct-equiv.o): New target.
2005
2006 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2007
2008         * coretypes.h: Revert previous change.
2009         * config/darwin.h: Revert previous reversion.
2010         * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2.
2011
2012 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2013
2014         * coretypes.h (section): Provide dummy definition for target files.
2015         * config/darwin.h: Revert previous change.
2016
2017 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
2018
2019         * doc/sourcebuild.texi (all.build, install-normal): Remove.
2020         * configure.ac: Remove all.build and install-normal from target_list
2021         * configure: Regenerate.
2022         * Makefile.in (install): Don't depend on install-normal.
2023
2024 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
2025
2026         * Makefile.in: Document the use of stamps.
2027
2028 2005-12-07  Rafael vila de Espndola  <rafael.espindola@gmail.com>
2029
2030         * doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
2031         * Makefile.in: Add code to compute some dependencies on s-gtype
2032         automatically.  Remove the declaration of those dependencies.
2033
2034 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2035
2036         * gcc/reload.c (push_secondary_reload): Fix typo:
2037         s/insn_constraint/scratch_constraint/.
2038
2039 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2040
2041         * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2.
2042
2043 2005-12-07  Richard Sandiford  <richard@codesourcery.com>
2044
2045         * config/alpha/alpha.c (alpha_start_function): Use switch_to_section.
2046         (alpha_elf_select_rtx_section): Return the selected section rather
2047         than emitting assembly code.
2048         (alpha_write_linkage): Emit a ".link" directive directly and then
2049         set in_section to NULL.
2050         (vms_asm_out_constructor): Use switch_to_section.
2051         (vms_asm_out_destructor): Likewise.
2052         (unicosmk_output_common): Set in_section to NULL instead of calling
2053         the dummy common_section function.
2054         (unicosmk_text_section): Delete in favor of...
2055         (unicosmk_output_text_section_asm_op): ...this new function.
2056         (unicosmk_data_section): Delete in favor of...
2057         (unicosmk_output_data_section_asm_op): ...this new function.
2058         (unicosmk_init_sections): New function.
2059         (unicosmk_output_deferred_case_vectors): Use switch_to_section.
2060         (unicosmk_output_ssib): Set in_section to NULL instead of calling
2061         the dummy ssib_section function.
2062         (unicosmk_section_buf): Delete.
2063         * config/alpha/alpha-protos.h (unicosmk_text_section): Delete.
2064         (unicosmk_data_section): Delete.
2065         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2066         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section)
2067         (SECTION_FUNCTION_TEMPLATE): Delete.
2068         * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP)
2069         (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2070         (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete.
2071         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2072         (TARGET_ASM_INIT_SECTIONS): Define.
2073         * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP)
2074         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2075         (link_section, literals_section): Delete.
2076         (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then
2077         set in_section to NULL.
2078
2079         * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete.
2080         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete.
2081         (COMMON_SECTION): Delete.
2082         (TARGET_ASM_INIT_SECTIONS): Define.
2083         (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling
2084         the dummy common_section function.
2085         * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2086         * config/arm/arm.c (get_jump_table_size): Use pointer comparison
2087         between readonly_data_section and text_section to check whether
2088         read-only data is being put in the text section.
2089         (arm_output_function_epilogue): Use switch_to_section.
2090         (arm_elf_asm_constructor): Likewise.
2091         (thumb_call_via_reg): Replace call to in_text_section with
2092         a comparison between in_section and text_section.
2093         (arm_file_end): Use switch_to_section.
2094         (aof_text_section): Delete in favor of...
2095         (aof_output_text_section_asm_op): ...this new function.
2096         (aof_data_section): Delete in favor of...
2097         (aof_output_data_section_asm_op): ...this new function.
2098         (aof_asm_init_sections): New function.
2099         (zero_init_section): Moved from config/arm/aof.h.
2100         (aof_dump_imports, aof_file_start): Use switch_to_section.
2101         * config/arm/arm.h (thumb_call_via_label): Update comment.
2102         * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete.
2103         (common_section): Delete.
2104         * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2105         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
2106         global switch_to_section function instead of the old port-local one.
2107         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION)
2108         (SWITCH_TO_SECTION_FUNCTION): Delete.
2109         (drectve_section): Redefine as a macro.
2110         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS):
2111         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and
2112         switch_to_section.
2113
2114         * config/avr/avr.c (progmem_section): New variable.
2115         (avr_output_progmem_section_asm_op): New function.
2116         (avr_asm_init_sections): New function.
2117         (avr_output_addr_vec_elt): Use switch_to_section.
2118         * config/avr/avr.h (progmem_section): Declare.
2119         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2120         (READONLY_DATA_SECTION): Delete.
2121         (TARGET_ASM_INIT_SECTIONS): Define.
2122         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
2123         * config/avr/avr-protos.h (progmem_section): Delete.
2124
2125         * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2126
2127         * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2128         (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete.
2129
2130         * config/darwin-sections.def: New file.
2131         * config/darwin.c: Define all sections in darwin-sections.def.
2132         (output_objc_section_asm_op, darwin_init_sections): New functions.
2133         (machopic_output_indirection): Use switch_to_section.
2134         (machopic_select_section): Return the selected section rather than
2135         emitting assembly code.  Replace the static function table with
2136         inline conditional expressions.  Update the tests of last_text_section
2137         and move them into the FUNCTION_DECL block.
2138         (machopic_select_rtx_section): Return the selected section rather than
2139         emitting assembly code.
2140         (machopic_asm_out_constructor, machopic_asm_out_destructor)
2141         (darwin_file_end): Use switch_to_section.
2142         * config/darwin.h: Use darwin-sections.def to declare sections.
2143         (INIT_SECTION_ASM_OP): Remove empty definition.
2144         (HAS_INIT_SECTION): Define this instead.
2145         (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2146         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2147         (TARGET_ASM_EH_FRAME_SECTION): Delete.
2148         (TARGET_ASM_INIT_SECTIONS): Define.
2149         * config/darwin-protos.h (darwin_init_sections): Declare.
2150         (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section)
2151         (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete.
2152         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2153         (constructor_section, destructor_section, mod_init_section): Delete.
2154         (mod_term_section): Delete.
2155         (darwin_exception_section, darwin_eh_frame_section): Delete.
2156         (machopic_select_section): Return a section.
2157         (machopic_select_rtx_section): Likewise.
2158         (text_coal_section, text_unlikely_section, text_unlikely_coal_section)
2159         (const_section, const_coal_section, const_data_section): Delete.
2160         (const_data_coal_section, data_coal_section, cstring_section): Delete.
2161         (literal4_section, literal8_section, constructor_section): Delete.
2162         (mod_init_section, mod_term_section, destructor_section): Delete.
2163         (objc_class_section, objc_meta_class_section, objc_category_section)
2164         (objc_class_vars_section, objc_instance_vars_section): Delete.
2165         (objc_cls_meth_section, objc_inst_meth_section): Delete.
2166         (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete.
2167         (objc_selector_refs_section, objc_selector_fixup_section): Delete.
2168         (objc_symbols_section, objc_module_info_section): Delete.
2169         (objc_image_info_section, objc_protocol_section): Delete.
2170         (objc_string_object_section, objc_constant_string_object_section)
2171         (objc_class_names_section, objc_meth_var_names_section): Delete.
2172         (objc_meth_var_types_section, objc_cls_refs_section): Delete.
2173         (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section)
2174         (machopic_symbol_stub_section, machopic_picsymbol_stub_section)
2175         (darwin_exception_section, darwin_eh_frame_section): Delete.
2176         * config/t-darwin (darwin.o): Depend on config/darwin-sections.def.
2177
2178         * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section.
2179         (frv_asm_out_destructor): Likewise.
2180         * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2181         (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete.
2182         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and
2183         get_named_section.
2184         (ASM_OUTPUT_CASE_LABEL): Use switch_to_section.
2185         * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section)
2186         (data_section): Delete.
2187
2188         * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2189         (DRECTVE_SECTION_FUNCTION): Delete.
2190         (drectve_section): Redefine as a macro that sets in_section after
2191         emitting the directive.
2192         (SWITCH_TO_SECTION_FUNCTION): Delete.
2193         * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to
2194         in_text_section with comparison between in_section and text_section.
2195         * config/i386/i386.c (x86_64_elf_select_section): Return the section
2196         rather than emitting assembly code.  Use get_named_section.
2197         (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and
2198         get_named_section.
2199         (machopic_output_stub): Use switch_to_section.
2200         * config/i386/nwld.c (nwld_named_section_asm_out_constructor)
2201         (nwld_named_section_asm_out_destructor): Use get_section and
2202         switch_to_section.
2203
2204         * config/ia64/ia64.c (ia64_select_rtx_section): Return the section
2205         rather than emitting assembly code.
2206         (ia64_rwreloc_select_section): Likewise.
2207         (ia64_rwreloc_select_rtx_section): Likewise.
2208         * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete.
2209         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2210         switch_to_section.
2211         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2212         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete.
2213
2214         * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the
2215         section rather than emitting assembly code.
2216         (iq2000_select_section): Likewise.
2217         * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete.
2218         (sbss_section): Delete.
2219
2220         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section
2221         and get_named_section.
2222         * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete.
2223
2224         * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete.
2225         (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete.
2226         (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete.
2227         (MCORE_EXPORT_NAME): Emit the exports directive directly, then set
2228         in_section to NULL.
2229         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2230         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
2231         global switch_to_section function instead of the old port-local one.
2232         * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2233         (SWITCH_SECTION_FUNCTION): Delete.
2234         * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete.
2235         (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete.
2236         (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete.
2237         (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set
2238         in_section to NULL.
2239         (ASM_DECLARE_OBJECT_NAME): Update the type of save_section.  Use the
2240         global switch_to_section function instead of the old port-local one.
2241         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.
2242
2243         * config/mips/mips.c (mips_file_start): Update comment.
2244         (mips_output_aligned_bss): Use switch_to_section and get_named_section.
2245         (mips_output_aligned_decl_common): Use switch_to_section.
2246         (mips_select_rtx_section): Return the section rather than emitting
2247         assembly code.  Use get_named_section.
2248         (mips_function_rodata_section: Likewise get_section.
2249         (build_mips16_function_stub): Use switch_to_section.
2250         * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section.
2251         (SDATA_SECTION_ASM_OP): Delete.
2252         * config/mips/vxworks.h (EXTRA_SECTIONS): Delete.
2253         (EXTRA_SECTION_FUNCTIONS): Delete.
2254
2255         * config/mmix/mmix.c (mmix_file_start, mmix_file_end)
2256         (mmix_asm_output_aligned_local): Use switch_to_section.
2257
2258         * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section)
2259         (som_one_only_readonly_data_section): New variables.
2260         (pa_output_function_epilogue): Set in_section to NULL instead of
2261         calling forget_section.
2262         (output_deferred_plabels): Use select_section.
2263         (pa_asm_output_mi_thunk): Likewise.  Set in_section to NULL instead
2264         of calling forget_section.
2265         (pa_asm_output_aligned_bss, pa_asm_output_aligned_common)
2266         (pa_asm_output_aligned_local): Use select_section.
2267         (som_text_section_asm_op): Delete in favor of...
2268         (som_output_text_section_asm_op): ...this new function.
2269         (pa_som_asm_init_sections): New function.
2270         (pa_select_section): Return the section rather than emitting
2271         assembly code.
2272         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2273         (SOM_READONLY_DATA_SECTION_FUNCTION): Delete.
2274         (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete.
2275         (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete.
2276         * config/pa/pa-protos.h (som_text_section_asm_op): Delete.
2277         (som_readonly_data_section, som_one_only_readonly_data_section)
2278         (som_one_only_data_section, forget_section): Delete.
2279         * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete.
2280         (TARGET_ASM_INIT_SECTIONS): Define.
2281         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete.
2282
2283         * config/rs6000/rs6000.c (read_only_data_section): New variable.
2284         (private_data_section, read_only_private_data_section): New variables.
2285         (sdata2_section, toc_section): New variables.
2286         (rs6000_file_start): Use switch_to_section.
2287         (rs6000_assemble_integer): Use comparisons against in_section
2288         instead of calling in_toc_section and in_text_section.  Use
2289         unlikely_text_section_p.
2290         (rs6000_elf_output_toc_section_asm_op): New function, derived
2291         from the old rs6000/sysv4.h toc_section function.
2292         (rs6000_elf_asm_init_sections): New function.
2293         (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return
2294         the section rather than emitting assembly code.
2295         (machopic_output_stub): Use switch_to_section.
2296         (toc_section): Delete dummy function.
2297         (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use
2298         switch_to_section and get_section.
2299         (rs6000_xcoff_output_readonly_section_asm_op): New function.
2300         (rs6000_xcoff_output_readwrite_section_asm_op): New function.
2301         (rs6000_xcoff_output_toc_section_asm_op): New function, derived from
2302         the old rs6000/xcoff.h toc_section function.
2303         (rs6000_xcoff_asm_init_sections): New function.
2304         (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return
2305         the section rather than emitting assembly code.
2306         (rs6000_xcoff_file_start): Use switch_to_section.
2307         (rs6000_xcoff_file_end): Likewise.
2308         * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete.
2309         (sdata2_section, sbss_section, private_data_section): Delete.
2310         (read_only_data_section, read_only_private_data_section): Delete.
2311         * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2312         (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION)
2313         (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete.
2314         (FINI_SECTION_FUNCTION): Delete.
2315         (TARGET_ASM_INIT_SECTIONS): Define.
2316         (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section.
2317         * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2318         (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION)
2319         (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION)
2320         (READONLY_DATA_SECTION): Delete.
2321         (TARGET_ASM_INIT_SECTIONS): Define.
2322         (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section.  Set in_section
2323         to NULL rather than no_section.
2324         (TARGET_ASM_EXCEPTION_SECTION): Delete.
2325
2326         * config/sh/sh.c (sh_file_start): Use switch_to_section.
2327
2328         * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section.
2329         (sparc_output_deferred_case_vectors): Likewise.  Remove argument
2330         from call to current_function_section.
2331
2332         * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h.
2333         (bss100_section): New variable.
2334         (xstormy16_asm_output_aligned_common): Use switch_to_section.
2335         (xstormy16_asm_init_sections): New function.
2336         (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use
2337         switch_to_section and get_section.
2338         (xstormy16_output_addr_vec): Use switch_to_section.  Remove argument
2339         from calls to current_function_section.
2340         * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete.
2341         (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete.
2342         (TARGET_ASM_INIT_SECTIONS): Define.
2343         * config/stormy16/stormy16-protos.h (bss100_section): Delete.
2344
2345         * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2346         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION)
2347         (FINI_SECTION_FUNCTION): Delete.
2348
2349         * config/v850/v850.c: Include gt-v850.h.
2350         (rosdata_section, rozdata_section, tdata_section, zdata_section)
2351         (zbss_section): New variables.
2352         (v850_output_aligned_bss): Use switch_to_section.
2353         (v850_asm_init_sections): New function.
2354         (v850_select_section): Return the section rather than emitting
2355         assembly code.
2356         * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS)
2357         (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP)
2358         (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete.
2359         (TARGET_ASM_INIT_SECTIONS): Define.
2360         * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete.
2361         (sbss_section, tdata_section, zdata_section, rozdata_section): Delete.
2362         (zbss_section): Delete.
2363
2364         * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section.
2365
2366         * config/vx-common.h (vxworks_exception_section): Delete.
2367         (TARGET_ASM_EXCEPTION_SECTION): Delete.
2368
2369         * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the
2370         section rather than emitting assembly code.
2371         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use
2372         switch_to_section.
2373
2374         * Makefile.in (GTFILES): Add $(srcdir)/output.h.
2375         * coretypes.h (section): New union and typedef.
2376         * dbxout.c (FORCE_TEXT): Use switch_to_section.  Remove argument
2377         from call to current_function_section.
2378         (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish)
2379         (dbxout_symbol_location): Use switch_to_section.
2380         * dwarf2out.c (named_section_eh_frame_section): Delete, moving
2381         most of the code into...
2382         (default_eh_frame_section): ...here.  Return a section.
2383         (collect2_eh_frame_section): Delete, moving most of the code into..
2384         (switch_to_eh_frame_section): ...this new function.
2385         (debug_info_section, debug_abbrev_section, debug_aranges_section)
2386         (debug_macinfo_section, debug_line_section, debug_loc_section)
2387         (debug_pubnames_section, debug_str_section, debug_ranges_section): New
2388         variables.
2389         (output_call_frame_info): Call switch_to_eh_frame_section instead of
2390         eh_frame_section.  Use switch_to_section and get_section.
2391         (dwarf2out_begin_prologue): Use switch_to_section.
2392         (AT_string_form): Check the flags in debug_str_section instead of
2393         DEBUG_STR_SECTION_FLAGS.
2394         (output_comp_unit): Use switch_to_section, get_section, and
2395         debug_info_section.
2396         (output_line_info, secname_for_decl): Use unlikely_text_section_p.
2397         (dwarf2out_begin_block): Use switch_to_section.  Remove argument
2398         from call to current_function_section.
2399         (dwarf2out_var_location): Use unlikely_text_section_p.
2400         (dwarf2out_source_line): Use switch_to_section.  Remove argument
2401         from call to current_function_section.
2402         (dwarf2out_start_source_file, dwarf2out_end_source_file)
2403         (dwarf2out_define, dwarf2out_undef: Use switch_to_section and
2404         debug_macinfo_section.
2405         (dwarf2out_init): Initialize the new section variables.  Use them
2406         instead of calls to named_section_flags.  Use switch_to_section.
2407         (output_indirect_string): Use switch_to_section and debug_str_section.
2408         (dwarf2out_finish): Use switch_to_section and the new section
2409         variables.
2410         * except.c (default_exception_section): Return the section instead
2411         of emitting assembly code.
2412         (output_function_exception_table): Use the global exception_section
2413         variable instead of the target hook.  Use switch_to_section.  Remove
2414         argument from call to current_function_section.
2415         * final.c (HAVE_READONLY_DATA_SECTION): Delete.
2416         (shorten_branches): Use pointer comparisons to detect whether the
2417         text section is the same as readonly_data_section.
2418         (profile_function): Use switch_to_section.  Remove argument from
2419         call to current_function_section.
2420         (final_scan_insn): Likewise.  Update use of last_text_section.
2421         * gengtype.c (open_base_files): Add an include of output.h.
2422         * output.h (text_section, data_section, readonly_data_section)
2423         (ctors_section, dtors_section, bss_section, init_section)
2424         (fini_section, sdata_section): Turn into section pointers.
2425         (in_text_section, in_unlikely_text_section, exports_section)
2426         (drectve_section, named_section, mergeable_string_section)
2427         (last_text_section_name): Delete.
2428         (default_exception_section, default_eh_frame_section): Return sections.
2429         (SECTION_DECLARED, SECTION_NAMED): New macros.
2430         (SECTION_MACH_DEP): Bump value.
2431         (section_common, named_section, unnamed_section): New structures.
2432         (unnamed_section_callback): New typedef.
2433         (section): New union.
2434         (sbss_section, exception_section, eh_frame_section): New variables.
2435         (in_section, last_text_section): Turn into section pointers.
2436         (get_unnamed_section, get_section, get_named_section): New functions.
2437         (mergeable_constant_section, function_section): Return a section.
2438         (unlikely_text_section): Likewise.
2439         (current_function_section): Likewise.  Remove the decl argument.
2440         (unlikely_text_section_p, switch_to_section): New functions.
2441         (output_section_asm_op): New function.
2442         (set_named_section_flags, named_section_flags, named_section_real)
2443         (named_section_first_declaration): Delete.
2444         (default_select_section, default_elf_select_section): Return a section.
2445         (default_elf_select_section_1, default_function_rodata_section)
2446         (default_no_function_rodata_section, default_select_rtx_section)
2447         (default_elf_select_rtx_section): Likewise.
2448         * rtl.h (in_data_section): Delete.
2449         * sdbout.c (sdbout_one_type): Use switch_to_section.
2450         * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison.
2451         (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison.
2452         (TARGET_ASM_EH_FRAME_SECTION): Poison.
2453         * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro.
2454         (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete.
2455         (TARGET_ASM_OUT): Update after above changes.
2456         * target.h (init_sections): New hook.
2457         (exception_section, eh_frame_section): Delete.
2458         (select_section, select_rtx_section, function_rodata_section): Return
2459         a section rather than emitting assembly code.
2460         * varasm.c (text_section, data_section, readonly_data_section)
2461         (ctors_section, dtors_section, bss_section, init_section)
2462         (fini_section): Turn into section pointers.
2463         (sdata_section, sbss_section, exception_section): New variables.
2464         (eh_frame_section): New variable.
2465         (in_section): Make global and turn into a section pointer.
2466         (last_text_section): Turn into a section pointer.
2467         (unnamed_sections): New variable.
2468         (in_named_name, last_text_section_name): Delete.
2469         (EXTRA_SECTION_FUNCTIONS): Delete.
2470         (in_named_entry): Delete.
2471         (section_htab): New variable, replacing...
2472         (in_named_htab): ...this deleted variable.
2473         (section_entry_eq, section_entry_hash): New functions, based on...
2474         (in_named_entry_eq, in_named_entry_hash): ...these deleted functions.
2475         (get_unnamed_section, get_section): New functions.
2476         (unlikely_text_section): Return a section instead of emitting
2477         assembly code.
2478         (in_text_section, in_unlikely_text_section, in_data_section): Delete.
2479         (get_named_section_flags, named_section_first_declaration): Delete.
2480         (unlikely_text_section_p): New function.
2481         (named_section_real, named_section): Delete.
2482         (get_named_section): New function.
2483         (asm_output_bss, asm_output_aligned_bss): Use switch_to_section.
2484         (function_section): Return a section rather than emitting
2485         assembly code.
2486         (current_function_section): Likewise.  Remove argument.  Use
2487         last_text_section if nonnull, otherwise use function_section.
2488         (default_function_rodata_section): Return a section rather than
2489         emitting assembly code.  Use get_section.
2490         (default_no_function_rodata_section): Return a section rather than
2491         emitting assembly code.
2492         (variable_section): Use switch_to_section and get_named_section.
2493         (mergeable_string_section): Return a section rather than emitting
2494         assembly code.  Use get_section.  Make static.  Don't take special
2495         countermeasures for empty strings.
2496         (mergeable_constant_section): Return a section rather than emitting
2497         assembly code.  Use get_section.
2498         (default_named_section_asm_out_destructor): Use switch_to_section
2499         and get_section.
2500         (default_dtor_section_asm_out_destructor): Use switch_to_section.
2501         (default_named_section_asm_out_constructor): Use switch_to_section
2502         and get_section.
2503         (default_ctor_section_asm_out_constructor): Use switch_to_section.
2504         (assemble_start_function): Likewise.  Set last_text_section to
2505         NULL rather than no_section.  Change the type of save_section.
2506         (assemble_zeros, assemble_variable): Use the section flags to detect
2507         whether or not a section is text.
2508         (assemble_static_space): Use switch_to_section.
2509         (assemble_trampoline_template): Likewise.
2510         (output_constant_def_contents): Use switch_to_section and
2511         get_named_section.
2512         (output_constant_pool_1): Use switch_to_section.  Use the section
2513         flags to see whether sections contain mergeable data.
2514         (init_varasm_once): Initialize section_htab instead of in_named_htab.
2515         Initialize new section variables.  Call TARGET_ASM_INIT_SECTIONS.
2516         (default_elf_asm_named_section): Use SECTION_DECLARED to detect
2517         whether a section has already been declared.
2518         (default_select_section, default_elf_select_section): Return a
2519         section rather than emitting assembly code.
2520         (default_elf_select_section_1): Likewise.  Use bss_section for
2521         SECCAT_BSS if nonnull.  Use get_named_section.
2522         (default_select_rtx_section): Return a section rather than
2523         emitting assembly code.
2524         (default_elf_select_rtx_section): Likewise.  Use get_named_section.
2525         (file_end_indicate_exec_stack): Use switch_to_section and get_section.
2526         (output_section_asm_op, switch_to_section): New functions.
2527         * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and
2528         get_named_section.
2529
2530         * doc/tm.texi: Expand the introduction to the sections documentation.
2531         (TRAMPOLINE_SECTION): Document new interface.
2532         (SDATA_SECTION_ASM_OP): Document new macro.
2533         (READONLY_DATA_SECTION): Delete.
2534         (SDATA_SECTION_ASM_OP): Document new macro.
2535         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete.
2536         (TARGET_ASM_INIT_SECTIONS): Document new hook.
2537         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION)
2538         (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface.
2539         (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete.
2540
2541 2005-12-07  Alan Modra  <amodra@bigpond.net.au>
2542
2543         * gcc.c (init_gcc_specs): Match braces inside conditionally
2544         compiled strings.
2545
2546 2005-12-06  Geoffrey Keating  <geoffk@apple.com>
2547
2548         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New.
2549
2550 2005-12-06  Aldy Hernandez  <aldyh@redhat.com>
2551
2552         PR C++/24138
2553         * tree.c (integer_all_onesp): Always return true if all bits on.
2554
2555         * testsuite/g++.dg/init/array0.C: New.
2556
2557 2005-12-06  Adrian Straetling  <straetling@de.ibm.com>
2558
2559         * doc/md.texi: Adapt to implementation.
2560
2561 2005-12-06  Andreas Schwab  <schwab@suse.de>
2562
2563         * opts.c (decode_options): Fix typo in message.
2564
2565 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
2566
2567         PR other/13873
2568         * longlong.h: Merge PPC tests from upstream.
2569
2570 2005-12-06  Richard Guenther  <rguenther@suse.de>
2571
2572         * fold-const.c (fold_convert): Do not build and fold
2573         CONVERT_EXPR, but always use NOP_EXPR.
2574
2575 2005-12-06  Jan Beulich  <jbeulich@novell.com>
2576
2577         * config/i386/i386.c (builtin_description): Use MASK_SSE2 for
2578         __builtin_ia32_paddq and __builtin_ia32_psubq.
2579         (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for
2580         __builtin_ia32_pshufw.
2581         * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2.
2582
2583 2005-12-05  James E Wilson  <wilson@specifix.com>
2584
2585         PR target/24934
2586         * opts.c (decode_options): Turn off partitioning if flag_unwind_tables
2587         is set.
2588
2589 2005-12-05  Daniel Berlin  <dberlin@dberlin.org>
2590         
2591         * print-tree.c (print_node): Ditto.
2592         * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL.
2593         * tree-dump.c (dequeue_and_dump): Check for decl_common structure
2594         before accessing DECL_ARTIFICIAL. 
2595         Handle new tag tree codes.
2596         * tree-flow-inline.h (clear_call_clobbered): Update for tag
2597         changes.
2598         (unmodifiable_var_p): Ditto.
2599         * tree-flow.h (mem_tag_kind): Remove.
2600         (struct var_ann_d): Remove mem_tag_kind member.
2601         * tree-gimple.c (is_gimple_reg): Tags are not gimple registers.
2602         * tree-pretty-print.c (dump_generic_node): Handle memory tags.
2603         * tree-ssa-alias.c (init_alias_info): Update for memory tag changes.
2604         (group_aliases): Ditto.
2605         (setup_pointers_and_addressables): Ditto.
2606         (is_escape_site): Ditto.                                          
2607         (may_alias_p): Ditto.
2608         (create_tag_raw): New function.
2609         (create_memory_tag): Use it.
2610         (dump_alias_info): Update for tags.
2611         (may_be_aliased): Ditto.
2612         (add_type_alias): Ditto.
2613         (new_type_alias): Ditto.
2614         (create_sft): Ditto.
2615         (create_structure_vars): Ditto.
2616         * tree-ssa-ccp.c (get_default_value): Ditto.
2617         * tree-ssa-operands.c (get_expr_operands): Ditto.
2618         (add_stmt_operand): Ditto.
2619         (add_call_clobber_ops): Remove duplicated condition.
2620         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
2621         tags.
2622         * tree-tailcall.c (suitable_for_tail_opt_p): Ditto.
2623         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
2624         * tree.c (init_ttree): Update structures for new tree codes.
2625         (tree_code_size): Update sizes for new tree codes.
2626         (make_node_stat): Don't try to set common things on minimal
2627         structures.
2628         (tree_node_structure): Update for tags.
2629         (is_global_var): Ditto.
2630         * tree.def: Add new tree codes.
2631         * tree.h (MTAG_P): New macro.
2632         (TREE_MEMORY_TAG_CHECK): Ditto.
2633         (SSA_VAR_P): Update for tags.
2634         (struct tree_memory_tag): New structure.
2635         (MTAG_GLOBAL): New macro.
2636         (union tree_node): Add memory tag member.
2637         * treestruct.def (TS_MEMORY_TAG): New.
2638         
2639 2005-12-05  Dale Johannesen  <dalej@apple.com>
2640
2641         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS):  Fix to match
2642         what was approved (PR 24323).
2643
2644 2005-12-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2645
2646         * doc/c-tree.texi (Function Bodies): Remove description of
2647         RETURN_INIT.
2648
2649 2005-12-05  Joseph S. Myers  <joseph@codesourcery.com>
2650
2651         * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf,
2652         __floatunsixf, __floatundisf, __floatundidf, __floatunditf,
2653         __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf,
2654         __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3,
2655         __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3,
2656         __divxc3): Document.
2657
2658 2005-12-05  Geoffrey Keating  <geoffk@apple.com>
2659
2660         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve
2661         previous behaviour.
2662         * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to
2663         hook_bool_void_false.
2664         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2665         * config/darwin.c (darwin_cxx_determine_class_data_visibility): New.
2666
2667         * config/darwin.c (machopic_select_section): It's not defined
2668         as weak if it's only marked as weak_import.
2669         
2670         * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility):
2671         Prototype.
2672
2673         * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally.
2674         A hidden weak object does bind locally.  Strong linkonce data
2675         counts like any other strong symbol for binding.
2676         (weak_finish_1): Don't specially handle weakrefs, they no longer
2677         arrive here.
2678         (assemble_alias): Weakrefs can't be TREE_PUBLIC yet.
2679         * c-common.c (handle_alias_attribute): Allow static aliases
2680         of variables.
2681         (handle_weakref_attribute): Don't call declare_weak on weakrefs.
2682         * gthr-dce.h: Make weakrefs static.
2683         * gthr-tpf.h: Likewise.
2684         * gthr-solaris.h: Likewise.
2685         * gthr-posix.h: Likewise.
2686         * gthr-posix95.h: Likewise.
2687         * config/darwin.c (darwin_encode_section_info): static weakref
2688         variables are not necessarily defined in this translation unit.
2689         * doc/extend.texi (Function Attributes): Mention that an alias
2690         attribute creates a definition for the thing it's attached to.
2691         Change the documentation for weakref to say that the thing
2692         it's attached to must be static.
2693
2694         * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so
2695         we don't go into an infinite loop.
2696
2697 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
2698
2699         * config/rs6000/predicates.md (logical_const_operand): Split
2700         out of logical_operand.
2701         (logical_operand): Use it.
2702         * config/rs6000/rs6000.md (cmp -> xor peephole2): Use
2703         logical_const_operand.
2704
2705 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2706
2707         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS
2708         and IX86_BUILTIN_CMPNESS.
2709         (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti.
2710         * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly.
2711         * config/i386/i386.md (movti_internal): Correct type attribute.
2712         Simplify mode attribute.
2713         (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal):
2714         Correct type attribute.
2715         (absxf2): Correct operator.
2716         * config/i386/mmx.md (mov<mode>_internal_rex64, mov<mode>_internal,
2717         movv2sf_internal_rex64, movv2sf_internal): Correct type attribute.
2718         * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify
2719         mode attribute.
2720         (sse2_vmsqrtv2df2): Correct mode attribute.
2721
2722 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2723
2724         * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by
2725         16 bits. Provide insn pattern for this case.
2726
2727 2005-12-05  Jan Beulich  <jbeulich@novell.com>
2728
2729         * libgcc2.c (__popcountSI2): Don't use wide type for iterator and
2730         result.
2731         (__popcountDI2): Likewise.
2732
2733 2005-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2734
2735         PR target/25166
2736         * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and
2737         _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs.
2738         * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New
2739         functions.
2740
2741 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2742
2743         * c-typeck.c (null_pointer_constant_p): New function.
2744         (build_conditional_expr, build_c_cast, convert_for_assignment,
2745         build_binary_op): Use it.
2746
2747 2005-12-04  Joseph S. Myers  <joseph@codesourcery.com>
2748
2749         * c-common.c (binary_op_error): Do not allow NOP_EXPR.
2750         (c_common_truthvalue_conversion): Handle NOP_EXPR the same as
2751         CONVERT_EXPR.
2752         (check_function_arguments_recurse): Allow both NOP_EXPR and
2753         CONVERT_EXPR but check conversions preserve precision.
2754         * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR
2755         but check conversions preserve precision.
2756         (build_unary_op): Don't allow NOP_EXPR.  Use gcc_unreachable () in
2757         default case.
2758
2759 2005-12-04  Roger Sayle  <roger@eyesopen.com>
2760
2761         PR c/7776
2762         * common.opt (Wstring-literal-comparison): New command line option.
2763         * c-opts.c (c_common_handle_option): Set it with -Wall.
2764         * c-typeck.c (parser_build_binary_op): Issue warning if either
2765         operand of a comparison operator is a string literal, except for
2766         testing equality or inequality against NULL.
2767
2768         * doc/invoke.texi: Document new -Wstring-literal-comparison option.
2769
2770 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2771
2772         * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead
2773         of building a NOP_EXPR.
2774         (c_alignof_expr): Likewise.  Handle CONVERT_EXPR the same as
2775         NOP_EXPR.
2776         * c-convert.c (convert): Use fold_convert instead of building
2777         NOP_EXPRs and CONVERT_EXPRs directly.  Don't special case
2778         c_objc_common_truthvalue_conversion returning a NOP_EXPR.  Remove
2779         #if 0 code.
2780         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle
2781         NOP_EXPR the same as CONVERT_EXPR.
2782         * c-typeck.c (build_function_call): Use fold_convert instead of
2783         building a NOP_EXPR directly.
2784         (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR.
2785
2786 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2787
2788         PR rtl-optimization/25197
2789         * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we
2790         have a reg.
2791
2792 2005-12-02  Stuart Hastings  <stuart@apple.com>
2793
2794         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic
2795         warning.
2796
2797 2005-12-03  Joseph S. Myers  <joseph@codesourcery.com>
2798
2799         * c-typeck.c (default_function_array_conversion,
2800         build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR.
2801         (build_conditional_expr): Apply integer_zerop to orig_op1 and
2802         orig_op2.  Don't check them for NOP_EXPR.
2803         (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR
2804         around integer zero.
2805
2806 2005-12-03  Alan Modra  <amodra@bigpond.net.au>
2807
2808         * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p,
2809         toc_save_offset, toc_size, lr_size.
2810         (rs6000_stack_info): Use memset rather than bss struct copy to init.
2811         Test rs6000_ra_ever_killed last in condition setting lr_save_p.
2812         Adjust for removal of unused rs6000_stack_t fields.
2813         (debug_stack_info): Adjust.
2814         (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE.  Test for calls
2815         first, and don't bother checking for set/inc of lr on sibcalls.
2816         (rs6000_emit_epilogue): Tidy code restoring stack pointer.
2817
2818 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
2819
2820         PR target/25199
2821         * config/i386/i386.md (movqi_1): Only force imovx for alternative
2822         5 if operand 1 is not aligned.  Undo previous constraint change.
2823         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
2824
2825 2005-12-02  Richard Guenther  <rguenther@suse.de>
2826
2827         * tree.h (build): Remove prototype.
2828         (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
2829         * tree.c (build): Remove.
2830         (build0_stat): Update comment.
2831
2832 2005-12-02  Richard Guenther  <rguenther@suse.de>
2833
2834         * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
2835         * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
2836         Likewise.
2837         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref,
2838         maybe_fold_offset_to_component_ref): Likewise.
2839         * tree-ssa-dom.c (thread_across_edge,
2840         simplify_rhs_and_lookup_avail_expr,
2841         find_equivalent_equality_comparison, record_equivalences_from_stmt):
2842         Likewise.
2843         * gimple-low.c (lower_function_body, lower_return_expr): Likewise.
2844         * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions,
2845         lower_try_finally_switch): Likewise.
2846         * tree-if-conv.c (add_to_dst_predicate_list,
2847         replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise.
2848         * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter,
2849         voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr,
2850         gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr,
2851         gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr,
2852         shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr,
2853         gimplify_init_ctor_eval, gimplify_init_constructor,
2854         gimplify_variable_sized_compare, gimplify_boolean_expr,
2855         gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr,
2856         gimplify_expr, gimplify_body, gimplify_function_tree,
2857         force_gimple_operand): Likewise.
2858         * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
2859         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for,
2860         mx_register_decls): Likewise.
2861         * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain,
2862         get_frame_field, finalize_nesting_tree_1): Likewise.
2863         * tree-inline.c (setup_one_parameter): Likewise.
2864         * tree-vect-transform.c (vectorizable_condition): Likewise.
2865         * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies):
2866         Likewise.
2867         * tree-profile.c (tree_gen_edge_profiler): Likewise.
2868         * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise.
2869         * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise.
2870         * tree-chrec.h (build_polynomial_chrec): Likewise.
2871
2872 2005-12-02  Richard Guenther  <rguenther@suse.de>
2873
2874         * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i,
2875         alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable.
2876         * config/frv/frv.c (frv_expand_builtin_va_start): Likewise.
2877         * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
2878         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2879         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
2880         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
2881         Likewise.
2882         * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr,
2883         sh_adjust_unroll_max): Likewise.
2884         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
2885         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2886         * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr):
2887         Likewise.
2888         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
2889         Likewise.
2890         * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr):
2891         Likewise.
2892
2893 2005-12-02  Richard Guenther  <rguenther@suse.de>
2894
2895         * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for,
2896         simplify_cond_using_ranges): Use buildN instead of build.
2897         * tree-tailcall.c (adjust_accumulator_values,
2898         adjust_return_value): Likewise.
2899         * tree-sra.c (generate_one_element_ref, generate_copy_inout,
2900         generate_element_copy, generate_element_zero,
2901         generate_one_element_init): Likewise.
2902         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise.
2903         * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression,
2904         lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest,
2905         perfect_nestify): Likewise.
2906
2907 2005-12-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2908
2909         * pa.c (pa_secondary_reload): Revise initialization of variable regno.
2910
2911 2005-12-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2912
2913         * ggc.h (GGC_RESIZEVEC): New.
2914
2915 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2916
2917         * gcc.c (execute): Improve readability.
2918
2919 2005-12-02  Richard Guenther  <rguenther@suse.de>
2920
2921         * tree-cfg.c (mark_used_vars): New function.
2922         (dump_function_to_file): Dump only used VAR_DECLs.
2923
2924 2005-12-02  Richard Guenther  <rguenther@suse.de>
2925
2926         * convert.c (convert_to_integer): Fix compare for nonpositive
2927         constant to use tree_int_cst_sgn <= 0.
2928
2929 2005-12-02  Richard Guenther  <rguenther@suse.de>
2930
2931         * convert.c (convert_to_integer): Use fold_convert instead
2932         of fold_build1 (NOP_EXPR, ...).  Use tree_int_cst_sgn < 0
2933         instead of comparing against 0.  Use build_int_cst instead
2934         of converting integer_zero_node.
2935
2936 2005-12-02  Richard Guenther  <rguenther@suse.de>
2937
2938         * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR
2939         and RROTATE_EXPR.
2940  
2941 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2942
2943         PR target/21017
2944         * combine.c (simplify_logical <IOR>): Simplify more patterns to
2945         rotates.
2946
2947 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
2948
2949         PR middle-end/25176
2950         * function.c (expand_function_end): Emit blockage for unwinder
2951         after return label.
2952
2953 2005-12-01  Roger Sayle  <roger@eyesopen.com>
2954
2955         * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to
2956         constant nodes, i.e. INTEGER_CST, REAL_CST, etc...
2957         * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for
2958         integer constant comparisons.
2959
2960 2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
2961             Janis Johnson  <janis187@us.ibm.com>
2962             David Edelsohn  <dje@watson.ibm.com>
2963             Ben Elliston  <bje@au.ibm.com>
2964
2965         * dfp.h, dfp.c: New files.
2966         * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
2967         (DECNUM_H): Likewise.
2968         (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
2969         (INCLUDES): Append $(DECNUMINC).
2970         (OBJS-common): Add dfp.o.
2971         (dfp.o): New rule.
2972         * real.h (EXP_BITS): Pinch one bit to ..
2973         (struct real_value): Add decimal field.
2974         (real_format): Change table size, update documentation.
2975         (REAL_MODE_FORMAT): Update for to handle float, decimal float.
2976         (real_from_string3): Declare.
2977         (decimal_single_format): Declare.
2978         (decimal_double_format): Declare.
2979         (decimal_quad_format): Declare.
2980         (REAL_VALUE_TO_TARGET_DECIMAL32): New.
2981         (REAL_VALUE_TO_TARGET_DECIMAL64): New.
2982         (REAL_VALUE_TO_TARGET_DECIMAL128): New.
2983         * real.c: Include dfp.h.
2984         (normalize): Early return for decimal floats.
2985         (do_add): Zero decimal field.
2986         (do_compare): Call do_decimal_compare for decimal floats.
2987         (do_fix_trunc): Likewise, call decimal_do_fix_trunc.
2988         (real_arithmetic): Call decimal_real_arithmetic for decimal
2989         floating point operands.
2990         (real_identical): If a and b are of differing radix, return false.
2991         (real_to_integer): Call decimal_real_to_integer if the value is a
2992         decimal float.
2993         (real_to_integer2): Likewise, call decimal_real_to_integer2.
2994         (real_to_decimal): Likewise, call decimal_real_to_decimal.
2995         (real_to_hexadecimal): Place "N/A" in the return string for
2996         decimal float.
2997         (real_from_string3): New variant, given a mode.
2998         (real_maxval): Use decimal_real_maxval for decimal floats.
2999         (round_for_format): Use decimal_round_for_format for decimals.
3000         (real_convert): Use decimal_real_convert where appropriate.
3001         (significand_size): Handle base 10.
3002         (encode_decimal_single, decode_decimal_single,
3003         encode_decimal_double, decode_decimal_double, encode_decimal_quad,
3004         decode_decimal_quad): New functions.
3005         (decimal_single_format): New.
3006         (decimal_double_format): New.
3007         (decimal_quad_format): New.
3008         * machmode.def: Add SD, DD and TD decimal floating point modes.
3009         * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
3010         Include MODE_DECIMAL_FLOAT.
3011         (DECIMAL_FLOAT_MODE_P): New.
3012         * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
3013         * genmodes.c (struct mode_data): Add counter field.
3014         (struct mode_data): Update comment for format.
3015         (blank_mode): Initialise counter field.
3016         (new_mode): Increment counter field for each mode defined.
3017         (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
3018         using a format.
3019         (make_complex_modes): Handle modes containing `D'.
3020         (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
3021         (make_decimal_float_mode): New.
3022         (reset_float_format): Handle MODE_DECIMAL_FLOAT.
3023         (cmp_modes): Compare counter field if other characteristics
3024         similar.
3025         (emit_real_format_for_mode): Support formats for decimal floats.
3026         * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
3027         Document MODE_DECIMAL_FLOAT.
3028
3029 2005-12-02  Alan Modra  <amodra@bigpond.net.au>
3030
3031         * simplify-rtx.c (simplify_plus_minus): Do simplify constants.
3032         Delete dead code.
3033
3034 2005-12-01  Richard Henderson  <rth@redhat.com>
3035
3036         * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL.
3037
3038 2005-12-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3039
3040         * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New.
3041
3042         * config/pa/pa.c (pa_init_builtins): If we detect
3043         DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to
3044         putc_unlocked.
3045
3046 2005-12-01  Richard Guenther  <rguenther@suse.de>
3047
3048         * fold-const.c (fold_binary): Use fold_build2, not
3049         fold (build (...)).
3050
3051 2005-12-01  Nathan Sidwell  <nathan@codesourcery.com>
3052
3053         * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves.
3054
3055         * vec.h (VEC_block_remove): New.
3056
3057 2005-12-01  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3058
3059         PR c/13384
3060         * c-common.c (lvalue_error): Fix wording.
3061
3062 2005-12-01  Richard Guenther  <rguenther@suse.de>
3063
3064         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix
3065         thinko in last patch.
3066
3067 2005-12-01  Geoffrey Keating  <geoffk@apple.com>
3068
3069         * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather
3070         than -flat_namespace.
3071
3072 2005-12-01  Ben Elliston  <bje@au.ibm.com>
3073
3074         * mklibgcc.in: Parameterise the script to build soft float
3075         functions by iterating over each type, rather than cloning the
3076         code for each type.
3077
3078 2005-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3079
3080         PR middle-end/25158
3081         * builtins.c (fold_builtin_fputs): Defer check for missing
3082         replacement functions.
3083
3084 2005-11-30  Kean Johnston  <jkj@sco.com>
3085
3086         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
3087         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
3088
3089 2005-11-30  Richard Guenther  <rguenther@suse.de>
3090
3091         PR tree-optimization/22501
3092         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
3093         function split out from ...
3094         (forward_propagate_addr_expr): ... here.  Use it to propagate
3095         ADDR_EXPRs to all uses.
3096
3097 2005-11-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3098
3099         * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros.
3100         * builtins.c (expand_builtin_mathfn): Use them.
3101         (expand_builtin_mathfn_2): Likewise.
3102         (expand_builtin_mathfn_3): Likewise.
3103         (expand_builtin_int_roundingfn): Likewise.
3104         (expand_builtin): Likewise.
3105         (integer_valued_real_p): Likewise.
3106         (fold_builtin_int_roundingfn): Likewise.
3107         (fold_builtin_bitop): Likewise.
3108         (fold_builtin_logarithm): Likewise.
3109         (fold_builtin_1): Likewise.
3110         * convert.c (convert_to_integer): Likewise.
3111         * fold-const.c (negate_mathfn_p): Likewise.
3112         (tree_expr_nonnegative_p): Likewise.
3113
3114 2005-11-30  Dale Johannesen  <dalej@apple.com>
3115             Andrew Pinski  <pinskia@physics.uc.edu>
3116
3117         * combine.c (find_split_point):  Sign extend bitmask
3118         when changing bitfield assignment to IOR of AND.
3119
3120 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
3121
3122         * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early
3123         clobber to scratch reg.
3124         (*decrement_and_branch_until_zero_no_clobber): Remove.
3125         (decrement_and_branch peephole): Add dummy scratch reg to pattern.
3126         (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2.
3127         * config/ms1/ms1.opt (mmul): Remove.
3128         * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names.
3129         (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002.
3130
3131 2005-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3132             Bernd Schmidt  <bernd.schmidt@analog.com>
3133
3134         * pa/predicates.md (symbolic_operand): Add comment.
3135         * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders.
3136         * pa/pa-protos.h (pa_secondary_reload_class): Delete.
3137         * pa/pa.c (TARGET_SECONDARY_RELOAD): Define.
3138         (pa_secondary_reload_class): Delete.
3139         (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS
3140         and pa_secondary_reload_class.  Reorder some checks.  Update inline
3141         copy of symbolic operand.
3142         * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete.
3143
3144 2005-11-30  Nathan Sidwell  <nathan@codesourcery.com>
3145
3146         * loop-doloop.c (add_test): Only add jump notes if we did emit a
3147         jump.
3148
3149 2005-11-30  Jeff Law  <law@redhat.com>
3150
3151         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly
3152         handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
3153
3154 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3155
3156         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
3157         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
3158         (ia64_expand_move): Adjust caller.
3159
3160         * config/ia64/ia64.c (ia64_expand_atomic_op): Only use
3161         fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS
3162         negate VAL.
3163
3164 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
3165
3166         * simplify-rtx.c (simplify_plus_minus): Remove final parameter.
3167         Always produce an output if we can remove NEGs or canonicalize
3168         (minus (minus ...)) expressions.  Provide a fast path for the
3169         two-operand case.
3170         (simplify_gen_binary): Do not call simplify_plus_minus.
3171         (simplify_binary_operation_1): Reassociate at the end of the
3172         function.
3173
3174 2005-11-29  Evan Cheng  <evan.cheng@apple.com>
3175
3176         * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low
3177         moves and unpack to speed up.
3178
3179 2005-11-29  David S. Miller  <davem@sunset.davemloft.net>
3180
3181         * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd
3182         argument, they are always sparc_compare_op0 and sparc_compare_op1.
3183         (gen_v9_scc): Update callers.
3184         * config/sparc/sparc.md: Likewise.
3185         * config/sparc/sparc-protos.h: Update extern declaration.
3186
3187         * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo.
3188
3189 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
3190
3191         * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after
3192         the if.
3193
3194 2005-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
3195
3196         * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR.
3197         (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ...
3198         (negate_expr): Here.
3199
3200 2005-11-29  Ben Elliston  <bje@au.ibm.com>
3201
3202         * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN):
3203         Fix typo in comment.
3204
3205 2005-11-29  Ben Elliston  <bje@au.ibm.com>
3206
3207         * Makefile.in (clean-target): Depend on clean-target-libgcc.
3208         (clean-target-libgcc): Import rule from the top-level Makefile.in.
3209
3210 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3211
3212         PR middle-end/20109
3213         PR middle-end/25120
3214         * builtins.c (init_target_chars): New.
3215         (expand_builtin_printf, expand_builtin_fprintf,
3216         expand_builtin_sprintf, fold_builtin_sprintf,
3217         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
3218         fold_builtin_snprintf_chk, fold_builtin_printf,
3219         fold_builtin_fprintf): Check for matching format strings using
3220         the target charset.
3221
3222 2005-11-29  Paul Brook  <paul@codesourcery.com>
3223
3224         * config.gcc: Do not use fixproto on m68k-elf.
3225
3226 2005-11-28  Roger Sayle  <roger@eyesopen.com>
3227
3228         * expmed.c (div_cost): Replace with...
3229         (sdiv_cost, udiv_cost): New.
3230         (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost.
3231         Rename the div and mod fields, used to initialize sdiv_pow2_cheap
3232         and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion.
3233         (expand_divmod): Replace use of div_cost with either sdiv_cost
3234         or udiv_cost depending upon the signedness of the operation.
3235
3236 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
3237
3238         PR libfortran/24991
3239         * config/darwin.c (machopic_indirection_name,
3240         machopic_output_indirection): Follow transparent alias chain.
3241
3242 2005-11-28  Alexandre Oliva  <aoliva@redhat.com>
3243
3244         * varasm.c (ultimate_transparent_alias_target): Add comment.
3245
3246 2005-11-28  Kazu Hirata  <kazu@codesourcery.com>
3247
3248         * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and
3249         SET_SRC instead of XEXP where appropriate.
3250
3251 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
3252
3253         * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use
3254         __builtin_expect.
3255
3256 2005-11-28  Joseph S. Myers  <joseph@codesourcery.com>
3257
3258         * config/fp-bit.h (LSHIFT): Take shift count parameter.
3259         * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one
3260         bit at a time.
3261
3262 2005-11-28  Bernd Schmidt  <bernd.schmidt@analog.com>
3263
3264         * config/bfin/bfin.c (bfin_secondary_reload): Renamed from
3265         secondary_input_reload_class, made static.  Adapt to new
3266         infrastructure.
3267         (secondary_output_reload_class): Delete.
3268         (TARGET_SECONDARY_RELOAD): New macro.
3269         * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS,
3270         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
3271
3272 2005-11-28  Nathan Sidwell  <nathan@codesourcery.com>
3273
3274         PR c++/21166
3275         * c-decl.c (finish_struct):  Only set DECL_PACKED on a field
3276         when its natural alignment is > BITS_PER_UNIT.
3277         * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08.
3278         * c-common.c (handle_packed_attribute): Ignore packing on a field
3279         whose type is naturally char aligned.
3280
3281 2005-11-28  Richard Guenther  <rguenther@suse.de>
3282
3283         * c-common.c (strict_aliasing_warning): Handle all
3284         component-ref like accesses.
3285
3286 2005-11-28  Roger Sayle  <roger@eyesopen.com>
3287             Uros Bizjak  <uros@kss-loka.si>
3288
3289         PR middle-end/20219
3290         * fold-const.c (fold binary) <RDIV_EXPR>: Optimize
3291         sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x)
3292         when flag_unsafe_math_optimizations is set and
3293         we don't care about NaNs or Infinities.
3294
3295         Move x/expN(y) and x/pow(y,z) transformation into common
3296         flag_unsafe_math_optimizations section.
3297
3298 2005-11-27  Mark Mitchell  <mark@codesourcery.com>
3299
3300         * gcc.c (main): Change type of argv to "char **".
3301
3302 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
3303
3304         * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in
3305         small data sections.
3306         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global.
3307         * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare.
3308         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to..
3309         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm.  Don't
3310         output locals to sbss if !rs6000_elf_in_small_data_p.
3311         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above.
3312
3313 2005-11-28  Alan Modra  <amodra@bigpond.net.au>
3314
3315         PR target/24997
3316         * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern
3317         generated by reload.
3318         * config/rs6000/predicates.md (indexed_or_indirect_operand): Use
3319         indexed_or_indirect_address.
3320         (indexed_or_indirect_address): Don't test for base reg.  Call
3321         address_operand last.  Make it a special predicate.
3322
3323 2005-11-27  Kazu Hirata  <kazu@codesourcery.com>
3324
3325         * config/m68k/m68k.c (notice_update_cc): Remove useless code.
3326
3327 2005-11-27  Andrew Pinski  <pinskia@physics.uc.edu>
3328
3329         PR middle-end/24575
3330         * fold-const.c (negate_expr_p): Add case for signed divides if overflow
3331         is undefined.
3332         (negate_expr): Likewise.
3333
3334 2005-11-27  Andreas Schwab  <schwab@suse.de>
3335
3336         * config/m68k/m68k.c: Reindent and fix whitespace, remove
3337         redundant parens.
3338
3339 2005-11-27  Steven Bosscher  <stevenb@suse.de>
3340
3341         * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it
3342         has EH predecessor edges.
3343
3344 2005-11-26  Eric Christopher  <echristo@apple.com>
3345
3346         * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial
3347         register stalls by zero extending to the full register.
3348
3349 2005-11-27  Joseph S. Myers  <joseph@codesourcery.com>
3350
3351         * config/floatunsisf.c, config/floatunsidf.c,
3352         config/floatunsixf.c, config/floatunsitf.c: New files.
3353         * config/ia64/t-hpux: Add floatunsitf.c.
3354         * config/ia64/ia64.c (ia64_init_libfuncs): Use
3355         _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion.
3356
3357 2005-11-26  Richard Henderson  <rth@redhat.com>
3358
3359         * c-lex.c (pragma_lex): Rename from c_lex.
3360         * c-pch.c: Update for pragma_lex rename.
3361         * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise.
3362         * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise.
3363         * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise.
3364         * config/sol2-c.c, config/v850/v850-c.c: Likewise.
3365         * doc/tm.texi: Likewise.
3366
3367 2005-11-26  Andrew Pinski  <pinskia@physics.uc.edu>
3368
3369         PR middle-end/23669
3370         * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types
3371         when overflow is undefined.
3372
3373 2005-11-26  Hans-Peter Nilsson  <hp@axis.com>
3374
3375         * doc/md.texi (Insn Canonicalizations): Refer to the
3376         function commutative_operand_precedence for further rules.
3377
3378 2005-11-25  Roger Sayle  <roger@eyesopen.com>
3379
3380         PR middle-end/21309
3381         * expmed.c (choose_mult_variant): Return immediately when mult_cost
3382         is less than zero.  Limit mult_cost to a reasonable upper bound for
3383         the synthetic multiplication sequence.
3384
3385 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3386
3387         PR middle-end/25022
3388         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
3389         fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf):
3390         Lookup the explicit replacement functions for any unlocked
3391         stdio builtin transformations.
3392
3393 2005-11-25  Hans-Peter Nilsson  <hp@axis.com>
3394
3395         * config/cris/cris.md ("reload_out<mode>"): Mark operand 2 as