OSDN Git Service

IA-64 sibcall unwind bug, PR target/13158
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-27  James E Wilson  <wilson@specifixinc.com>
2
3         PR target/13158
4         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
5         sibcall alloc instruction.
6         (process_set): Handle sibcall alloc instruction.
7
8 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
9
10         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
11
12         * config/darwin.h (GTHREAD_USE_WEAK): Define.
13
14 2004-10-28  Ben Elliston  <bje@au.ibm.com>
15
16         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
17         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
18         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
19         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
20         * tree-sra.c: Include "params.h".
21         (decide_block_copy): Use new parameters.
22         * doc/invoke.texi (Optimize Options): Document new SRA pass
23         parameters sra-max-structure-size and sra-field-structure-ratio.
24
25 2004-10-27  Nicolas Pitre <nico@cam.org>
26
27         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
28
29 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
30
31         PR tree-optimization/18048
32         * fold-const.c (try_move_mult_to_index): New function.
33         (fold): Use try_move_mult_to_index.
34         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
35         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
36         an all-ones unsigned constant without extra bits.
37         * tree.c (build_low_bits_mask): New function.
38         * tree.h (build_low_bits_mask): Declare.
39
40 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
41
42         PR target/17956
43         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
44         final condition.
45         (minsf3): Same.
46         (maxdf3): Same.
47         (mindf3): Same.
48
49 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
50
51         * tree-cfg.c (thread_jumps): Speed up by reordering the two
52         conditions for entering basic blocks into worklist.
53
54 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
55
56         * tree-cfg.c (thread_jumps): Speed up by pretending to have
57         ENTRY_BLOCK_PTR in worklist.
58
59 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
60
61         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
62         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
63
64 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
65         
66         Fix PR tree-optimization/17133
67         
68         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
69         def kill operand.
70
71         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
72         (get_v_must_def_result_ptr): Modify for new structure of
73         v_must_defs array.
74         (get_v_must_def_kill_ptr): New.
75         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
76         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
77         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
78         (op_iter_init): Initialize new mustu members.
79         (op_iter_next_mustdef): New function.
80         (op_iter_init_mustdef): Ditto.
81
82         * tree-flow.h (rewrite_def_def_chains): New function.
83
84         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
85         (ssa_mark_def_sites): Ditto.
86         (rewrite_stmt): Ditto.
87         (ssa_rewrite_stmt): Ditto.
88         (rewrite_blocks): Factor out from rewrite_into_ssa.
89         (mark_def_block_sites): Ditto.
90         (rewrite_def_def_chains): New function, just rewrites def-def
91         chains without phi node insertion.
92
93         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
94
95         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.       
96
97         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
98         they include the rhs now.
99
100         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
101         V_MUST_DEF_RESULT. 
102
103         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
104         Update callers.
105         (mark_really_necessary_kill_operand_phis): New function.
106         (perform_tree_ssa_dce): Call it.
107         (pass_dce): Add TODO_fix_def_def_chains.
108         (pass_cd_dce): Ditto.
109
110         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
111         well.
112         (rewrite_mem_refs): Ditto.
113
114         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
115         as well.
116
117         * tree-ssa-operands.c (allocate_v_may_def_optype):
118         v_may_def_operand_type_t became v_def_use_operand_type_t.
119         (allocate_v_must_def_optype) Ditto.
120         (finalize_ssa_v_must_defs): Update for new operand type, as well
121         as setting the use portion as well.
122         (copy_virtual_operands): Copy the kill operand as well.
123         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
124         V_MUST_DEF_RESULT. 
125
126         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
127         v_def_use_operand_type. 
128         (v_must_def_optype_d): Use v_def_use_operand_type.
129         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
130         (V_MUST_DEF_KILL_*): New macros.
131         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
132         members.
133         Rename existing must_i and num_v_must members to mustd_i and
134         num_v_mustd. 
135         (SSA_OP_VMUSTDEFKILL): New flag.
136         (SSA_OP_VIRTUAL_KILLS): New flag.
137         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
138         (SSA_OP_ALL_KILLS): New flag.
139         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
140
141         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
142
143         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
144         became V_MUST_DEF_RESULT.
145         (rename_variables_in_bb): Rename kill pointer as well.
146
147         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
148         immediate uses.
149
150 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
151
152         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
153         the block that needs it.
154
155 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
156
157         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
158         ATTRIBUTE_UNUSED.
159
160 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
161
162         * c-lex.c (cb_def_pragma): Clean up code for making location
163         palatable to diagnostic.c.
164
165 2004-10-27  Steven Bosscher  <stevenb@suse.de>
166
167         PR tree-optimization/17757
168         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
169         without any PHI arguments left.  Make sure the argument that
170         we're supposed to remove exists at all.
171
172 2004-10-27  Paul Brook  <paul@codesourcery.com>
173
174         * configure.ac: Don't test for [build] __cxa_atexit when building a
175         cross compiler.
176         * configure: Regenerate.
177
178 2004-10-27  Paul Brook  <paul@codeosurcery.com>
179
180         * configure.ac: Use build_exeext not host_exeext when lookin for
181         target tools.
182         * configure: Regenerate.
183
184 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
185
186         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
187
188 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
189             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
190
191         PR middle-end/14684
192         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
193         to match -fprofile-use.
194
195 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
196
197         * config/rs6000/rs6000.c: Fix a comment typo.
198
199 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
200
201         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
202         counter.
203
204 2004-10-27  Andreas Schwab  <schwab@suse.de>
205
206         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
207         unused.
208         (default_stabs_asm_out_constructor): Likewise.
209
210 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
211
212         * builtins.c (fold_builtin_unordered_cmp): Always bring both
213         operands to the same type.
214
215 2004-10-26  James E Wilson  <wilson@specifixinc.com>
216
217         PR target/18010
218         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
219
220 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
221
222         * dbxout.c: Include obstack.h.
223         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
224         default definition.
225         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
226         Default-define here.
227         (DBX_CONTIN_LENGTH): Move definition with others.
228         (DBX_FINISH_STABS): New target macro.
229         (current_sym_code, current_sym_value, current_sym_addr)
230         (current_sym_nchars, CHARS, dbxout_continue)
231         (print_int_cst_octal, print_octal, print_wide_int)
232         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
233         (stabstr_ob, stabstr_last_contin_point): New variables.
234         (NUMBER_FMT_LOOP): New improper macro.
235         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
236         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
237         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
238         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
239         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
240         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
241         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
242         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
243         New functions and/or proper function-like macros.
244         (CONTIN): Use stabstr_continue, unconditionally.
245         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
246         (dbxout_init): Initialize stabstr_ob.  Check
247         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
248         if it was used.  Use the new interfaces.
249         (dbxout_source_file): Remove file argument; always write to
250         asm_out_file.  Use the new interfaces.
251         (dbxout_type_method_1): Remove second argument which is always
252         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
253         (dbxout_type_methods): Remove write-only variables.  Use the
254         new interfaces.
255         (dbxout_parms): Refactor to remove code duplicated in each of
256         several successive if-else-if blocks.  Use the new interfaces.
257         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
258         (dbxout_source_line, dbxout_finish, dbxout_type_index)
259         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
260         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
261         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
262         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
263         Use the new interfaces.
264         * Makefile.in (dbxout.o): Update dependencies.
265
266         * defaults.h: Don't define ASM_STABD_OP.
267         * output.h: Prototype new dbxout_* interfaces.
268         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
269         * varasm.c: Don't define ASM_STABS_OP.
270         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
271         Use the new dbxout.c interfaces.  Call sorry if neither
272         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
273
274         * xcoffout.h: Don't define ASM_STABS_OP.
275         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
276         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
277         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
278         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
279         do { ... } while (0) idiom.
280
281         * config/alpha/alpha.c (num_source_filenames): Export.
282         * config/alpha/alpha.h (num_source_filenames): Declare.
283         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
284         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
285         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
286         Always use .debugsym.  Update commentary.
287         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
288         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
289         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
290         Use new interfaces.
291         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
292         (macho_branch_islands): Use new interfaces.
293
294         * doc/tm.texi: Update.
295
296 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
297
298         * expr.c (emit_group_store): Do not treat floats as BLKmode.
299         (emit_group_load): Same.
300
301 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
302
303         * c-parse.in (datadef): Use pedwarn rather than error and warning
304         for diagnostic in case of no declaration specifiers.
305
306 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
307
308         PR bootstrap/15747
309         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
310         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
311         can be used to work around this.
312
313 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
314
315         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
316         doubles.
317
318 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
319
320         * stmt.c (expand_case): Update a comment.
321
322 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
323
324         * stmt.c (expand_case): Put an assertion that index_expr is
325         never INTEGER_CST.  Don't special case for constant
326         index_expr.
327
328 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
329
330         PR 18162
331         * c-parse.in (designator): Finish with a semi-colon.
332
333 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
334
335         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
336         into rotlsi3.
337
338 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
339
340         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
341         a default case only.
342
343 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
344
345         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
346         e500 doubles.
347         (spe_build_register_parallel): New.
348         (rs6000_spe_function_arg): Handle e500 doubles.
349         (function_arg): Same.
350         (spe_func_has_64bit_regs_p): Same.
351         (rs6000_function_value): Same.
352         (rs6000_libcall_value): Same.
353         (legitimate_lo_sum_address_p): Return false for e500 doubles.
354
355         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
356         doubles.
357         (DATA_ALIGNMENT): Same.
358         (CANNOT_CHANGE_MODE_CLASS): Same.
359
360 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
361
362         * expr.c (emit_group_load): Handle floats.
363         (emit_group_store): Same.
364
365 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
366
367         * c-lex.c (get_nonpadding_token): Remove.
368         (c_lex_with_flags): Push timevar and eat padding here.  Improve
369         stray token diagnostic.
370         (lex_string): Replace logic with switch statement, eat padding
371         token here.
372
373 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
374
375         PR 18149
376         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
377
378 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
379
380         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
381         to 'non-weak'.
382         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
383         (ASM_MAKE_LABEL_LINKONCE): Delete.
384         (ASM_WEAKEN_DECL): New.
385         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
386         (ASM_DECLARE_FUNCTION_NAME): Likewise.
387         (TEXT_SECTION_ASM_OP): Add a tab.
388         (DATA_SECTION_ASM_OP): Likewise.
389         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
390         data_section on every section change.
391         (EXTRA_SECTIONS): Add a bunch of new extra sections.
392         (EXTRA_SECTION_FUNCTIONS): Likewise.
393         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
394         (JCR_SECTION_NAME): Define.
395         (TARGET_SECTION_TYPE_FLAGS): Don't define.
396         * config/darwin.c (darwin_encode_section_info): A symbol is defined
397         in this file if it is not weak.
398         (textcoal_section): Delete.
399         (datacoal_section): Delete.
400         (darwin_make_decl_one_only): Delete.
401         (machopic_select_section): Handle functions.
402         (darwin_asm_named_section): Add a tab.
403         (darwin_section_type_flags): Delete.
404         (darwin_unique_section): Delete contents.
405         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
406         DECL_WEAK is set.
407         * config/darwin-protos.h (darwin_section_type_flags): Delete.
408         (darwin_make_decl_one_only): Delete.
409         (text_coal_section): New.
410         (text_unlikely_section): New.
411         (text_unlikely_coal_section): New.
412         (const_coal_section): New.
413         (data_coal_section): New.
414         (const_data_coal_section): New.
415         * varasm.c (function_section): Honour
416         USE_SELECT_SECTION_FOR_FUNCTIONS.
417         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
418         TARGET_USES_WEAK_UNWIND_INFO is in effect.
419         * dbxout.c (dbxout_source_file): Don't change sections while
420         a function is being output.
421
422 2004-10-25  David Ayers  <d.ayers@inode.at>
423
424         * c-common.h: Remove RID_ID.
425         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
426         (typespec_reserved_attr): Add rule for TYPENAME
427         non_empty_protocolrefs.
428         (yylexname): Remove special handling of RID_ID.
429
430 2004-10-25  James E Wilson  <wilson@specifixinc.com>
431
432         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
433
434 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
435
436         PR c/16667
437         * c-parse.in (array_designator): New.
438         (designator): Use it.
439         (initelt): Only permit array_designator without '=', not ".foo".
440
441 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
442         * gcc/Makefile.in: removed ggc for cgraphunit.
443         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
444         * gcc/cgraph.h: removed static var analysis data structures and calls.
445         * gcc/cgraphunit.c:
446         cgraph_mark_local_and_external_functions:changed name to
447                 cgraph_mark_local_functions
448         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
449         cgraph_reset_static_var_maps,get_global_static_vars_info,
450         get_global_statics_not_read,get_global_statics_not_written,searchc,
451         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
452         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
453         scan_for_static_refs,cgraph_characterize_statics_local,
454         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
455         removed.
456         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
457         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
458         analysis
459         * gcc/tree-flow.h static_vars_info: removed
460         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
461         removed calls to static vars analysis.
462         get_call_expr_operands: removed callee variable.
463
464 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
465
466         * cfg.c (unchecked_make_edge, redirect_edge_succ,
467         redirect_edge_pred): Use VEC_safe_push instead of
468         VEC_safe_insert.
469         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
470
471 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
472
473         * cfgloopmanip.c (loopify): Take two more arguments true_edge
474         and false_edge.
475         * cfgloop.h: Adjust the corresponding prototype.
476         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
477         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
478
479 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
480
481         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
482         DECL_INCOMING_RTL is NULL.
483
484 2004-10-25  Steven Bosscher  <stevenb@suse.de>
485
486         * timevar.def (TV_FIND_REFERENCED_VARS): New.
487         * tree-dfa.c (pass_referenced_var): Use it.
488
489 2004-10-25  Roger Sayle  <roger@eyesopen.com>
490             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
491
492         * cse.c: Change encoding of quantity numbers to avoid undefined
493         pointer arithmetic on qty_table.
494         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
495         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
496         (new_basic_block): Assign "real" quantity numbers from zero.
497         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
498         REG_QTY to its unique negative value.
499         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
500         (cse_main): Don't include max_reg when determining max_qty.
501         (cse_basic_block): Avoid subtracting a large offset from qty_table,
502         which causes undefined C99 behaviour.  Only allocate needed memory.
503
504 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
505
506         * stmt.c (expand_case): Remove an obsolete comment.
507
508 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
509
510         PR middle-end/17407
511         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
512         layout_type as it is already done by build_array_type.
513         * tree.c (build_array_type): Layout the type even
514
515 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
516
517         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
518
519 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
520
521         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
522         with wider-than-32-bit HOST_WIDE_INTs.
523
524 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
525
526         * config/mips/mips.c(mips_output_filename): Remove unused
527         array ltext_label_name
528
529 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
530
531         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
532
533 2004-10-25  Ben Elliston  <bje@au.ibm.com>
534
535         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
536
537 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
538
539         * predict.c (predict_loops): Call scev_finalize instead of
540         scev_reset.
541
542 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
543
544         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
545         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
546         config/sh/ushmedia.h, config/sparc/elf.h,
547         config/sparc/sp64-elf.h: Update copyright.
548
549 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
550
551         * stmt.c (expand_case): Handle the default label outside of
552         the for loop.  Remove code to handle a missing default label.
553
554 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
555
556         * dbxout.c (dbxout_function_decl): Don't use
557         DBX_OUTPUT_FUNCTION_END.
558         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
559         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
560
561 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
562
563         PR middle-end/17967
564         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
565
566 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
567
568         * tree-ssa-dom.c (record_equality): Use loop depth to determine
569         which way to record the equality as well.
570         (loop_depth_of_name): New function.
571
572 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
573
574         PR middle-end/17793
575         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
576         through the operand if it is a useless type conversion.
577
578 2004-10-23  Ben Elliston  <bje@au.ibm.com>
579
580         * cfg.c (remove_edge): Use VEC_unordered_remove.
581         (redirect_edge_succ): Likewise.
582         (redirect_edge_pred): Likewise.
583         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
584
585 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
586
587         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
588         beyond its end.
589
590 2004-10-22  Eric Christopher  <echristo@redhat.com>
591
592         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
593         saves.
594
595 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
596
597         * config/rs6000/spe.md (spe_extendsfdf2): New.
598         (movdf_e500_double): New.
599         (spe_truncdfsf2): New.
600         (spe_absdf2): New.
601         (spe_nabsdf2): New.
602         (spe_negdf2): New.
603         (sub_adddf3): New.
604         (spe_subdf3): New.
605         (spe_muldf3): New.
606         (spe_floatsidf2): New.
607         (spe_floatunssidf2): New.
608         (fix_truncdfsi2): New.
609         (spe_fixuns_truncdfsi2): New.
610
611         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
612         (fpr_truncdfsf2): New.
613         (negdf2): Change to expander.
614         (fpr_negdf2): New.
615         (fpr_nabsdf2): Name pattern.
616         (adddf3): Change to expander.
617         (fpr_adddf3): Nem.
618         (subdf3): Change to expander.
619         (fpr_subdf3): New.
620         (muldf3): Change to expander.
621         (fpr_muldf3): New.
622         (divdf3): Change to expander.
623         (fpr_divdf3): New.
624         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
625         (cmpdf): Allow for TARGET_E500_DOUBLE.
626
627 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
628
629         * c-semantics.c (re_push_stmt_list): Remove.
630         * c-common.h: Remove the corresponding prototype.
631
632 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
633
634         * stmt.c (asm_op_is_mem_input): Remove.
635         * tree.h: Remove the corresponding prototype.
636
637 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
638
639         * tree-gimple.c (is_gimple_constructor_elt): Remove.
640         * tree-gimple.h: Remove the corresponding prototype.
641
642 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
643
644         * varasm.c (get_pool_mode_for_function, get_pool_offset):
645         Remove.
646         * rtl.h: Remove the corresponding prototypes.
647
648 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
649
650         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
651         edge information when we commit ourselves to threading a
652         particular jump.
653
654 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
655
656         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
657         into worklist instead of their indexes.
658
659 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
660
661         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
662         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
663         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
664         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
665         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
666         tree-scalar-evolution.c, tree-ssa-dom.c,
667         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
668         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
669         tree-vectorizer.c, vec.h: Fix comment formatting.
670
671 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
672
673         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
674         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
675
676 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
677
678         * config/ptx4.h, config/mcore/mcore-pe.h,
679         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
680
681 2004-10-22  Peter Barada <peter@the-baradas.com>
682
683         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
684         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
685         renaming of non-live registers in interrupt functions.
686         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
687
688 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
689
690         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
691         Use integer for loop counter.
692         (num_ending_zeros): New function.
693         (number_of_iterations_cond): Use num_ending_zeros.
694
695 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
696
697         * config.gcc: Add support for --enable-e500_double.
698
699         * config/rs6000/e500-double.h: New file.
700
701         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
702         TARGET_E500_DOUBLE.
703
704         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
705         TARGET_E500_DOUBLE.
706
707         * config/rs6000/linuxspe.h: Same.
708
709         * doc/invoke.texi (Option Summary): Document new options for
710         mfloat-gprs.
711         (RS/6000 and PowerPC Options): Same.
712
713         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
714         function.
715         (rs6000_override_options): Use it.  Use
716         SUB3TARGET_OVERRIDE_OPTIONS.
717         Add 8548 to processor_target_table.
718         (rs6000_legitimate_address): Handle e500 doubles.
719         (rs6000_legitimize_address): Same.
720         (rs6000_legitimize_reload_address): Same.
721         (rs6000_hard_regno_nregs): Same.
722         (spe_func_has_64bit_regs_p): Same.
723         (emit_frame_save): Same.
724         (gen_frame_mem_offset): Same.
725         (rs6000_dwarf_register_span): Same.
726         (rs6000_generate_compare): Same.
727         (easy_fp_constant): Same.
728         (legitimate_offset_address_p): Same.
729
730         * config/rs6000/spe.md: (cmdfeq_gpr): New.
731         (tstdfeq_gpr): New.
732         (cmpdfgt_gpr): New.
733         (tstdfgt_gpr): New.
734         (tstdfgt_gpr): New.
735         (cmpdflt_gpr): New.
736         (tstdflt_gpr): New.
737         Add new constants.
738
739 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
740
741         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
742
743 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
744
745         * dbxout.c: Remove unnecessary #undefs.
746         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
747         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
748         definition into use sites.
749         (cwd): Make local to dbxout_init.
750         (dbxout_init): Restructure cwd-using logic for clarity.  Use
751         IS_DIR_SEPARATOR.
752         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
753         STABS_GCC_MARKER folded in here.
754         * system.h: Poison now-unused macros.
755         * doc/tm.texi: Remove documentation of now-unused macros.
756
757 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
758
759         PR c/17538
760         * c-opts.c (push_command_line_include): Use the current file
761         name instead of the main one.
762
763 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
764
765         PR objc/17923
766         * tree.c (staticp): A CONST_DECL has static storage if either
767         TREE_STATIC or DECL_EXTERNAL is set.
768         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
769         have null names.
770
771 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
772
773         * expr.c (store_expr): Remove dont_store_target.
774
775 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
776
777         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
778
779 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
780
781         * tree-cfg.c (thread_jumps): Move a part of it to ...
782         (thread_jumps_from_bb): ... here.
783
784 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
785
786         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
787         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
788
789 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
790
791         * expr.c (store_expr): Clean up by renaming want_value to
792         call_param_p.
793
794 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
795
796         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
797         fixup pc here.
798
799 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
800
801         PR 18004.
802         * expmed.c (store_bit_field): Pass original 'value' before
803         recursing.
804
805 2004-10-21  Nicolas Pitre <nico@cam.org>
806
807         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
808         * config/arm/ieee754-df.S: Ditto.
809
810 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
811
812         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
813         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
814         Default to 0.
815         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
816         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
817         an internal label and an N_SLINE .stabn whose value is the
818         difference between that label and the function entry label.
819         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
820         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
821         label and an N_SO stab with an empty string referring to it.
822         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
823         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
824         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
825         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
826         macro is never defined.
827         * sdbout.c (sdbout_source_line_counter): Delete.
828         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
829         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
830         only two arguments.
831         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
832
833         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
834         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
835         definitions (identical to default).
836         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
837         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
838         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
839         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
840         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
841         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
842         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
843         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
844         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
845         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
846         (sym_lineno): Delete.
847         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
848         now-unused variable.
849         (alpha_output_lineno): Delete.
850         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
851         * config/mips/mips.c (mips_output_filename): Don't use
852         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
853         (mips_output_lineno): Delete.
854         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
855         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
856         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
857         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
858         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
859         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
860         * config/mmix/mmix.h: Likewise.
861         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
862         * config/mmix/mmix-protos.h: Don't prototype it.
863         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
864         no need to #undef ASM_OUTPUT_SOURCE_LINE.
865         * config/arm/aout.h: Remove RISCiX-specific definition of
866         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
867         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
868         ASM_OUTPUT_SOURCE_LINE.
869         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
870         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
871         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
872
873         * doc/tm.texi: Update.
874
875 2004-10-20  Richard Henderson  <rth@redhat.com>
876
877         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
878
879 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
880
881         * configure.ac: Revert my previous patch.
882         * configure: Regenerate.
883
884 2004-10-20  Ben Elliston  <bje@au.ibm.com>
885
886         * config/rs6000/rs6000.c
887         (rs6000_va_start): Use build_va_arg_indirect_ref.
888         (rs6000_gimplify_va_arg): Likewise.
889
890 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
891
892         PR java/15575
893         * configure.ac: Declare AM_LANGINFO_CODESET.
894         * aclocal.m4: Define AM_LANGINFO_CODESET.
895         * configure, config.in: Rebuilt.
896
897 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
898
899         * expr.c (store_expr): Remove code that is run when
900         want_value & 1 is nonzero.
901
902 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
903
904         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
905         from function pointer to void *.
906
907 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
908
909         PR target/18032
910         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
911         the frame pointer adjustment when exception handling is enabled.
912
913 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
914
915         * stor-layout.c: Fix a comment typo.
916
917 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
918
919         * expr.c (store_field): Remove two arguments value_mode and
920         unsignedp.
921         (expand_assignment, store_constructor_field,
922         expand_expr_real_1): Adjust calls to store_field.
923
924 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
925
926         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
927
928         PR target/17317
929         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
930         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
931         base and index register for loads.
932
933         * config/arc/t-arc: Fix multilib handling.
934
935 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
936
937         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
938         don't inspect BLOCK_FOR_INSN for barriers.
939         * emit-rtl.c (emit_barrier_before): Revert last change.
940         (emit_barrier_after, emit_barrier): Ditto.
941
942         * doc/extend.texi (Extended Asm): Warn and provide example
943         solution for using a call-clobbered asm register.
944         (Local Reg Vars): Similar.  Cross-reference example.
945
946 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
947
948         * tree-cfg.c (group_case_labels): Look at the second to last
949         case statement for combing with the default case.
950
951 2004-10-19  Richard Hendeson  <rth@redhat.com>
952
953         PR 17962
954         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
955
956 2004-10-19  Richard Hendeson  <rth@redhat.com>
957
958         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
959         succeeds, only expand the result.
960
961 2004-10-19  Richard Hendeson  <rth@redhat.com>
962
963         PR middle-end/17885
964         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
965         of INDIRECT_REF.
966
967 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
968
969         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
970         loop with goto.
971
972 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
973
974         * expr.c (expand_assignment): Remove the last argument.
975         Change the return type to void.
976         * expr.h: Update the prototype of expand_assignment.
977         * function.c (assign_parm_setup_reg): Update a call to
978         expand_assignment.
979         * stmt.c (expand_asm_expr): Likewise.
980
981 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
982
983         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
984         unnecessary assignments to temp.  Return const0_rtx.
985
986 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
987
988         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
989
990 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
991
992         * configure.ac (powerpc-*-darwin*): Require assembler to support
993         .machine directive.
994         * configure: Regenerate.
995
996 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
997
998         * reload1.c (ior_hard_reg_set): Remove.
999         (finish_spills): Use IOR_HARD_REG_SET instead of
1000         ior_hard_reg_set.
1001
1002 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1003
1004         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
1005         the currently visited word to right.
1006
1007 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1008
1009         PR middle-end/18045
1010         * expmed.c (expand_smod_pow2): Handle modes whose size
1011         is greater than that of HOST_WIDE_INT.
1012
1013 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
1014
1015         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
1016
1017 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1018             Roger Sayle  <roger@eyesopen.com>
1019
1020         PR middle-end/17813
1021         * dojump.c (discard_pending_stack_adjust): New function.
1022         (clear_pending_stack_adjust): Call it.
1023         * expr.h (discard_pending_stack_adjust): Declare it.
1024         * explow.c (emit_stack_save): Emit pending stack adjustments
1025         before saving the stack pointer.
1026         (emit_stack_restore): Discard pending stack adjustments before
1027         restoring the stack pointer.
1028
1029 2004-10-18  Richard Henderson  <rth@redhat.com>
1030
1031         * c-common.c (handle_mode_attribute): Allow scalar->vector
1032         type changes yet.
1033
1034 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1035
1036         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
1037         value to expand_assignment.
1038
1039 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1040
1041         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
1042         thread_jumps.
1043         (thread_jumps): Iterate until no new forwarder block arises.
1044
1045 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1046
1047         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
1048         (thread_jumps): Use forwardable as cache of
1049         tree_forwarder_block_p throughout the function.
1050
1051 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1052
1053         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
1054
1055 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
1056
1057         PR middle-end/15014
1058         PR middle-end/16973
1059         * tree-cfg.c (remove_bb): If we have a label expression in the
1060         basic block and the label we have taken the address, move the
1061         label expression to the basic block which is previous in the
1062         linked list.
1063         (tree_verify_flow_info): Fix printing out the label name of the
1064         problematic label expression.
1065
1066 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
1067
1068         PR rtl-optimization/18002
1069         * simplify-rtx.c (mode_signbit_p): Externalize function...
1070         * rtl.h (mode_signbit_p): ... to here.
1071         * combine.c (simplify_shift_const): Recognize PLUS signbit as
1072         canonical form of XOR signbit and move to outer op.
1073
1074 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1075
1076         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
1077         Update all callers.
1078         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
1079         Don't call fold_stmt more than once, use bsi_replace.
1080
1081 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1082
1083         PR tree-optimization/17656
1084         * tree-ssa.c (replace_immediate_uses): When replacing a
1085         constant, if the call to fold_stmt produced a different
1086         statement, get an appropriate statement pointer by scanning
1087         STMT's basic block.
1088
1089 2004-10-18  Richard Henderson  <rth@redhat.com>
1090
1091         * pointer-set.c (hash1): Don't use libm functions in fallback case.
1092
1093 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
1094
1095         PR bootstrap/17684
1096         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
1097         (stage1-start): Remove and copy libunwind.a and
1098         libunwind*$(SHLIB_EXT) instead of libunwind*.
1099         (stage2-start): Likewise.
1100         (stage3-start): Likewise.
1101         (stage4-start): Likewise.
1102         (stageprofile-start): Likewise.
1103         (stagefeedback-start): Likewise.
1104
1105         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
1106         the shared library to be created and don't remove the existing
1107         shared library.
1108         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1109         * config/i386/t-nwld (SHLIB_LINK): Likewise.
1110         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1111         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1112         * config/sh/t-linux (SHLIB_LINK): Likewise.
1113         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1114         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1115         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1116         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1117
1118         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
1119         files.
1120
1121 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1122
1123         * basic-block.h (reg_set_iterator): New.
1124         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
1125         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
1126         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
1127         * caller-save.c (save_call_clobbered_regs): Adjust to the new
1128         style.
1129         * cfgcleanup.c (thread_jump): Likewise.
1130         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1131         * conflict.c (conflict_graph_compute): Likewise.
1132         * flow.c (verify_local_live_at_start, update_life_info,
1133         initialize_uninitialized_subregs, propagate_one_insn,
1134         init_propagate_block_info, free_propagate_block_info,
1135         propagate_block, dump_regset): Likewise.
1136         * global.c (global_conflicts): Likewise.
1137         * graph.c (start_bb): Likewise.
1138         * local-alloc.c (update_equiv_regs): Likewise.
1139         * loop.c (load_mems): Likewise.
1140         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
1141         find_reg, finish_spills): Likewise.
1142         * resource.c (mark_target_live_regs): Likewise.
1143         * sched-deps.c (sched_analyze_insn): Likewise.
1144         * sched-rgn.c (sched-rgn.c): Likewise.
1145         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1146
1147 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
1148
1149         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
1150         operand 1 instead of 2
1151
1152 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1153
1154         * loop-unroll.c: Fix comment typos.
1155
1156 2004-10-18  Revital Eres  <eres@il.ibm.com>
1157
1158         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
1159         * loop-unroll.c: Include varray.h.
1160         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
1161         opt_info and expand it to support variable expansion.
1162         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
1163         expand it to support variable expansion.
1164         (pt_info_start_duplication): Rename si_info_start_duplication.
1165         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
1166         to the variable expansion optimization.
1167         (free_opt_info): Rename free_si_info.
1168         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
1169         expand_var_during_unrolling, insert_var_expansion_initialization,
1170         combine_var_copies_in_loop_exit, release_var_copies,
1171         get_expansion): New functions.
1172         (peel_loop_completely, unroll_loop_constant_iterations,
1173         unroll_loop_runtime_iterations, peel_loop_simple,
1174         unroll_loop_stupid): Change uses of struct si_info
1175         to struct opt_info
1176         and add uses of fvariable-expansion-in-unroller flag.
1177         * params.def: Add parameter to restrict the number of expansions.
1178         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
1179         the number of expansions.
1180         * common.opt: (fvariable-expansion-in-unroller): New flag.
1181         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
1182
1183 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1184
1185         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1186         __GXX_MERGED_TYPEINFO_NAMES to 0.
1187
1188 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
1189
1190         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1191         handle barriers in a bb by checking that it points to a NULL bb.
1192         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
1193         (emit_barrier_after, emit_barrier): Ditto.
1194
1195 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
1196
1197         * doc/extend.texi (Attribute Syntax): Clarify details of
1198         attributes on parameters.
1199
1200 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
1201
1202         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
1203         loop.
1204
1205 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1206
1207         Revert:
1208         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1209
1210         * c-typeck.c (default_function_array_conversion): Always create
1211         &a[0] for array types.
1212         (build_unary_op): Do not fold &a[x] into a + x.
1213
1214 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1215
1216         PR middle-end/17925
1217         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1218         block if there is a goto with a locus.
1219
1220 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1221
1222         * config/elfos.h, config/gofast.h, config/interix.h,
1223         config/netbsd.h, config/svr3.h, config/vxworks.h,
1224         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1225         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1226         config/alpha/netbsd.h, config/arm/arm-modes.def,
1227         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1228         config/cris/aout.h, config/frv/frv-modes.def,
1229         config/i386/beos-elf.h, config/i386/gas.h,
1230         config/i386/i386-coff.h, config/i386/i386-modes.def,
1231         config/i386/linux.h, config/i386/linux64.h,
1232         config/i386/mingw32.h, config/i386/netbsd-elf.h,
1233         config/i386/netbsd64.h, config/i386/sco5.h,
1234         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1235         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1236         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1237         config/mips/mips-modes.def, config/mips/sdb.h,
1238         config/mips/vr.h, config/mips/vxworks.h,
1239         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1240         config/pa/pa32-linux.h, config/rs6000/40x.md,
1241         config/rs6000/7450.md, config/rs6000/8540.md,
1242         config/rs6000/linuxspe.h, config/rs6000/power4.md,
1243         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1244         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1245         config/s390/s390-modes.def, config/sh/elf.h,
1246         config/sh/sh-modes.def, config/sh/sh64.h,
1247         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1248         config/stormy16/stormy16.md, config/v850/v850-protos.h,
1249         config/vax/vax.md: Update copyright.
1250
1251 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1252
1253         * expr.c (expand_expr_real_1): Remove an obsolete comment.
1254
1255 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1256
1257         * c-typeck.c (default_function_array_conversion): Always create
1258         &a[0] for array types.
1259         (build_unary_op): Do not fold &a[x] into a + x.
1260
1261 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
1262
1263         * pointer-set.c (hash1): Use integer part of 2^64 / phi
1264         instead 2^32 / phi if long is 64-bit.
1265
1266 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1267
1268         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1269         RID_PTRVALUE.
1270         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1271         declarations.
1272         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1273         __ptrextent__, __ptrvalue and __ptrvalue__.
1274         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1275         entries.
1276
1277 2004-10-16  Dale Johannesen  <dalej@apple.com>
1278
1279         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
1280
1281 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1282
1283         PR tree-optimization/17766
1284         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1285         (dom_info_available_p): Declare.
1286         * cfghooks.c (split_block, make_forwarder_block): Use
1287         dom_info_available_p.
1288         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1289         free_dominance_info, verify_dominators): Ditto.
1290         (dom_info_available_p): New function.
1291         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1292         (thread_jumps): Use dom_info_available_p.
1293         * tree-complex.c (expand_complex_div_wide): Ditto.
1294         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1295
1296 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1297
1298         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1299         (find_best_candidate): Take also important candidates into account.
1300         (find_optimal_iv_set): Initialize important_candidates bitmap.
1301
1302 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1303
1304         PR tree-optimization/17560
1305         * predict.c (tree_estimate_probability): Mark irreducible
1306         loops.
1307
1308 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1309
1310         PR rtl-optimization/17723
1311         * cfgcleanup.c (merge_memattrs): Handle case when
1312         MEM_SIZE == NULL_RTX.
1313
1314 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
1315
1316         * toplev.c (dump_file_name): Change type to be const.
1317
1318 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1319
1320         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1321         non_lvalue to stop something being a null pointer constant.
1322
1323 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
1324
1325         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1326         available for TARGET_FPRS.
1327         (FUNCTION_VALUE_REGNO_P): Same.
1328
1329 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
1330
1331         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1332         -maltivec in same style as other ISA options.
1333
1334 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
1335
1336         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1337         definition.
1338
1339 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1340
1341         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1342         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1343         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1344         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1345         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1346         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1347         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1348         predict.def, predict.h, protoize.c, reload.h, resource.h,
1349         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1350         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1351         unwind-sjlj.c, value-prof.h: Update copyright.
1352
1353 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1354
1355         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1356
1357 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
1358
1359         * tree-optimize.c (execute_one_pass): Stop timer right after
1360         executing the pass.
1361
1362 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1363
1364         Revert:
1365         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1366         PR middle-end/17967
1367         Revert:
1368                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1369                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1370
1371 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1372
1373         * configure.ac: Add .machine power4 directive when testing for
1374         mfcr field.
1375         * configure: Regenerate.
1376
1377 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1378
1379         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1380
1381 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1382
1383         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1384         always.
1385
1386 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
1387
1388         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1389         for 'f' if !TARGET_FPRS.
1390
1391 2004-10-14  Richard Henderson  <rth@redhat.com>
1392
1393         PR debug/14492
1394         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1395
1396 2004-10-14  Richard Henderson  <rth@redhat.com>
1397
1398         PR c/17023
1399         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1400         as error_mark_node.
1401         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1402         instaed of current_function_decl non-null.
1403
1404 2004-10-14  Matt Austern  <austern@apple.com>
1405
1406         * pointer-set.c: New file, special-purpose hash table.
1407         * pointer-set.h: New file.
1408         * tree.h (struct pointer_set_t): Declare as opaque type.
1409         (tree_walk): Last argument is pointer_set_t* now.
1410         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1411         (walk_type_fields):
1412         (walk_tree): Convert from htab_t to pointer_set_t for keeping
1413         track of which nodes have already been visited.
1414         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1415         * cgraphunit.c (cgraph_create_edges): Likewise.
1416         (cgraph_characterize_statics_local): Likewise.
1417         * tree-dfa.c (collect_dfa_stats): Likewise.
1418         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1419         pointer_set_t* now.
1420         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1421         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1422         of walk_subtrees is pointer_set_t* now.
1423         * Makefile.in (OBJS-common): add pointer-set.o
1424         (tree-inline.o): Depends on pointer-set.h
1425         (tree-dfa.o): Likewise
1426         (cgraphunit.o): Likewise
1427
1428 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1429
1430         * config/rs6000/darwin.h (ASM_SPEC): Delete.
1431         (TARGET_ASM_FILE_START): Define.
1432         * config/darwin.h (ASM_SPEC): Define.
1433         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1434         -mlong-double-128, it's the default.  Update comment about reason
1435         for force_cpusubtype_ALL.
1436         * config/rs6000/darwin-vecsave.asm: Supply .machine.
1437         * config/rs6000/darwin-world.asm: Likewise.
1438         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1439         (symbolic_operand): Delete #if 0ed code.
1440
1441 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1442
1443         * stmt.c (add_case_node): Make sure that we have integer
1444         constant before calling tree_int_cst_compare.
1445
1446 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1447
1448         PR middle-end/17967
1449         Revert:
1450                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1451                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1452
1453 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
1454
1455         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1456         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1457         -m64.
1458
1459 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
1460
1461         * reload.c (find_reloads): When reloading a PLUS with constant
1462         operand, make sure the constant is pushed to the constant pool
1463         if required.
1464         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1465         reload bug workaround.
1466         (s390_expand_plus_operand): Likewise.
1467
1468 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1469
1470         * opts.c (common_handle_option): Do not enable
1471         flag_speculative_prefetching for -fprofile-generate/use.
1472
1473 2004-10-14  Devang Patel  <dpatel@apple.com>
1474
1475         PR 17635
1476         * tree-if-conv.c (process_phi_nodes): Process latch block.
1477         (combine_blocks): Process latch block and update loop structure.
1478
1479 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
1480
1481         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1482         (vect_update_ivs_after_vectorizer):
1483         (vect_transform_for_unknown_loop_bound):
1484         (tree_duplicate_loop_to_edge):
1485         (allocate_new_names):
1486         (rename_use_op):
1487         (rename_def_op):
1488         (rename_variables_in_bb):
1489         (free_new_names):
1490         (rename_variables_in_loop):
1491         (copy_phi_nodes):
1492         (update_phis_for_duplicate_loop):
1493         (update_phi_nodes_for_guard):
1494         (make_loop_iterate_ntimes):
1495         (tree_duplicate_loop_to_edge_cfg):
1496         (add_loop_guard):
1497         (vect_analyze_loop_with_symbolic_num_of_iters):
1498         (verify_loop_for_duplication):
1499         (vect_gen_niters_for_prolog_loop):
1500         (vect_update_niters_after_peeling):
1501         (vect_update_inits_of_dr):
1502         (vect_update_inits_of_drs):
1503         (vect_build_loop_niters):
1504         (vect_do_peeling_for_alignment): New functions.
1505         (vect_transform_loop): Add unknown and known but indivisible loop
1506         bound support; add peeling for unalignment support.
1507         (vect_analyze_loop_form): Support symbolic number of iterations.
1508         (vect_transform_loop_bound): New input parameter.
1509         (vect_get_loop_niters): Change input parameter type.
1510         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1511         (vectorizable_store): Allow unaligned access.
1512         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1513         (vect_analyze_data_refs_alignment): Allowed one unaligned
1514         store.
1515         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1516         to use tree.
1517         (LOOP_VINFO_INT_NITERS): New macro.
1518         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1519         (do_peeling_for_alignment):
1520         (unaligned_drs): New members of _loop_vec_info.
1521         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1522
1523 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
1524
1525         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1526         (struct tree_string): Remove "const" qualifier for "str".
1527
1528 2004-10-14  Ira Rosen  <irar@il.ibm.com>
1529
1530         * tree-vectorizer.c (vect_analyze_data_refs): Call
1531         vect_get_base_and_bit_offset to get memory tag for array ref.
1532         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1533
1534 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
1535
1536         * configure.ac: Use $LN_S for creating symlinks (not $LN).
1537         * configure: Regenerate.
1538
1539 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1540
1541         * doc/install.texi (*-*-solaris2*): Update with info about kernel
1542         patches to solve spurious testsuite failures.
1543
1544 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
1545
1546         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1547         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1548         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1549         gcc_assert under ENABLE_CHECKING.
1550         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1551         get_vectype_for_scalar_type).
1552
1553         (vect_get_vec_def_for_operand): Remove redundant variables.
1554         (vect_transform_loop): Likewise.
1555
1556 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
1557
1558         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1559         global for -mcaller-super-interworking.
1560         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1561         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1562         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1563         not need a frame pointer.
1564         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1565         the soft frame pointer offset.
1566         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1567         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1568         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1569         the stack.  Use frame_pointer_needed to choose between them.
1570         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1571         (interwork_with_frame): New macro.
1572         (interwork): Add _interwork_{r7,r11}_call_via_rN().
1573
1574 2004-10-14  Ben Elliston  <bje@au.ibm.com>
1575
1576         PR other/17900
1577         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1578         up the filename looking for a previous directory separator.
1579
1580 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1581
1582         * c-tree.h (enum c_typespec_kind, struct c_typespec,
1583         parser_xref_tag): New.
1584         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
1585         typedef_p.
1586         (declspecs_add_type): Adjust prototypes.
1587         * c-parse.in (%union): Add tstype.
1588         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1589         typespec_reserved_attr, typespec_nonreserved_nonattr,
1590         structsp_attr, structsp_nonattr): Change to tstype.  Update
1591         actions.
1592         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1593         (declspecs_add_type): Update to take struct c_typespec argument.
1594         Set tag_defined_p and typedef_p as appropriate.
1595         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1596         Update to return struct c_typespec.
1597         (shadow_tag_warned): Don't let empty declarations with qualifiers
1598         or storage class specifiers redeclare a tag if a previous
1599         declaration is visible.
1600
1601 2004-10-13  Richard Henderson  <rth@redhat.com>
1602
1603         PR debug/15860
1604         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1605         for DECL_INCOMING_RTL.
1606
1607 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
1608
1609         PR target/17984
1610         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1611         trunc_int_for_mode for constants used in shortened mode.
1612
1613 2004-10-13  Richard Henderson  <rth@redhat.com>
1614
1615         PR c/17384
1616         * c-common.c (handle_mode_attribute): Disallow mode changes that
1617         alter the CODE of the top-level type.
1618
1619         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
1620         integer from internal limits macros.
1621         * config/i386/mm3dnow.h (__v2sf): Fix base type.
1622
1623 2004-10-13  Richard Henderson  <rth@redhat.com>
1624
1625         PR debug/13841
1626         * function.c (instantiate_decl): Recurse for CONCAT.
1627
1628 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
1629
1630         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1631         andi./andis.
1632         (anddi3): Same.
1633         (extzvdi_internal1): Add attribute "compare".
1634         (extzvdi_internal2): Same.
1635
1636 2004-10-12  Tom Tromey  <tromey@redhat.com>
1637
1638         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1639
1640 2004-10-13  Dale Johannesen  <dalej@apple.com>
1641
1642         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
1643
1644 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
1645
1646         * toplev.c (compile_file): Call mudflap_finish_file from here ...
1647         * c-decl.c (c_write_global_declarations): ... instead of here ...
1648         * cp/decl.c (cp_finish_file): ... and here.
1649         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1650
1651 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1652
1653         * tree-ssa-dom.c (record_range): Free the element if we are not
1654         going to use it.
1655
1656 2004-10-13  Tom Tromey  <tromey@redhat.com>
1657
1658         PR java/15578:
1659         * gcc.c (option_map): Added --extdirs and --encoding.
1660
1661 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1662
1663         PR target/14454
1664         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1665         sparc_can_output_mi_thunk.
1666         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
1667         handling of vcall offset.
1668         (sparc_can_output_mi_thunk): New predicate.
1669         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1670         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1671         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1672
1673         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1674
1675         * config/sparc/sparc.md (movdi): Remove redundant test.
1676
1677 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
1678
1679         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1680         TDF_IPA from -fdump-tree-*-all.
1681
1682 2004-10-13  Paul Brook  <paul@codesourcery.com>
1683
1684         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1685         * config/arm/arm.c (thumb_find_work_register): Update comments.
1686         (arm_load_pic_register): Add argument for scratch register.
1687         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1688         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1689
1690 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
1691
1692         * tree-data-ref.c: Fix comment typos.
1693
1694 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
1695             Zdenek Dvorak  <dvorakz@suse.cz>
1696
1697         PR tree-optimization/17724
1698         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1699
1700 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
1701
1702         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1703         (altivec_builtin_mask_for_store): Likewise.
1704         (altivec_init_builtins): Use lang_hooks.builtin_function to
1705         create the decls for builtin_altivec_mask_for_load/store.
1706
1707 2004-10-13  Nick Clifton  <nickc@redhat.com>
1708
1709         * config/c4x/c4x.c: Remove inclusion of loop.h.
1710
1711 2004-10-12  Ben Elliston  <bje@au.ibm.com>
1712
1713         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1714         (ei_container): New; renamed.
1715         (ei_start, ei_last): New macros.
1716         (ei_start_1, ei_last_1): Renamed from ei_start.
1717         (ei_last_1, ei_end_p): Use ei_container() where applicable.
1718         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1719         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1720
1721 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
1722
1723         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1724         * cfgloop.c (initialize_loops_parallel_p): New.
1725         (flow_loops_find): Initialize the parallel_p field to true for all
1726         the loops.
1727         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1728         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1729         the size of the data accessed in the loop.
1730         (struct nb_iter_bound): Moved...
1731         * cfgloop.h (struct nb_iter_bound): ... here.
1732         (estimated_nb_iterations, parallel_p): New fields in struct loop.
1733         (record_estimate): Declare extern here.
1734         * tree-chrec.c: Fix comments.
1735         (nb_vars_in_chrec): New function.
1736         * tree-chrec.h (nb_vars_in_chrec): Declared here.
1737         * tree-data-ref.c: Don't include lambda.h, that is already included
1738         in tree-data-ref.h.
1739         (tree_fold_divides_p): Don't check for integer_onep.
1740         (tree_fold_bezout): Removed.
1741         (gcd): New static duplicated function.
1742         (int_divides_p, dump_subscript): New.
1743         (dump_data_dependence_relation): Use dump_subscript.
1744         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1745         estimate_niter_from_size_of_data): New.
1746         (analyze_array_indexes, analyze_array): Call
1747         estimate_niter_from_size_of_data during the detection of array
1748         references.  Pass in a pointer to the statement that contains the
1749         array reference.
1750         (all_chrecs_equal_p): New.
1751         (compute_distance_vector): Renamed compute_subscript_distance.
1752         Deal with multivariate conflict functions.
1753         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1754         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1755         (non_affine_dependence_relation): New.
1756         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1757         analyze_siv_subscript, analyze_miv_subscript,
1758         analyze_overlapping_iterations, subscript_dependence_tester):
1759         Initialize and return last_conflicts function.
1760         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1761         compute_overlap_steps_for_affine_1_2): New.
1762         (analyze_siv_subscript_affine_cst): Removed.
1763         (analyze_subscript_affine_affine): Disprove dependences based on the
1764         iteration domains.  Solve the univariate dependence case as before,
1765         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1766         Implement the multivariate case of 2 versus 1 variables.
1767         (build_classic_dist_vector, build_classic_dir_vector): Implement some
1768         unhandled cases.
1769         (find_data_references_in_loop): Compute and initialize
1770         loop->estimated_nb_iterations and loop->parallel_p.
1771         (analyze_all_data_dependences): Modify the debug dump order.
1772         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1773         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1774         (SUB_LAST_CONFLICT, subscript->last_conflict,
1775         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1776         DDR_AFFINE_P, DDR_SIZE_VECT): New.
1777         (find_data_references_in_loop, initialize_data_dependence_relation,
1778         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1779
1780 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
1781
1782         * configure: Regenerate.
1783
1784 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
1785
1786         PR 17892
1787         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1788         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1789         and constant folding of floating point MULT_EXPR/PLUS_EXPR
1790         expressions.
1791
1792 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
1793
1794         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1795         (s390_gimplify_va_arg): Likewise.
1796
1797 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
1798
1799         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1800         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1801         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1802         * regclass.c (record_address_regs): Remove ifdef.  Use
1803         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1804         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1805         definition.
1806         (scan_rtx_address, replace_oldest_value_addr): Use
1807         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1808         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1809         unnecessary definitions.
1810         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1811         and MODE_BASE_REG_REG_CLASS.
1812         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1813         (MODE_BASE_REG_REG_CLASS): Define.
1814         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1815         (REG_MODE_OK_FOR_REG_BASE_P): Define.
1816         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1817         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1818
1819 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
1820
1821         * tree-ssa-alias.c (verify_name_tags): New function.
1822         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1823         (verify_alias_info): Call verify_name_tags.
1824
1825 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
1826
1827         PR rtl-optimization/17931
1828         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1829         ZERO_EXTRACT in it.
1830
1831 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
1832
1833         * arm.c (arm_print_operand): Use output_operand_lossage where possible
1834         rather than aborting.
1835
1836 2004-10-12  Paul Brook  <paul@coudesourcery.com>
1837
1838         * config.gcc: Add armv6{k,z,zk}
1839         * config/arm/arm-cores.def: Add arm1176 and mpcore.
1840         * config/arm/tune.md: Regenerate.
1841         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1842         Define.
1843         (all_architectures): Add armv6k, armv6z, armv6zk.
1844         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1845         * doc/invoke.texi: Document new arch and cpu values.
1846
1847 2004-10-12  Paul Brook  <paul@coodesourcery.com>
1848
1849         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1850         meabi=4.
1851
1852 2004-10-12  Paul Brook  <paul@codesourcery.com>
1853
1854         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1855         Handle negative constants.
1856
1857 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
1858
1859         PR c/17301
1860         * c-typeck.c (convert_arguments): Return error_mark_node if there
1861         are too few arguments.
1862         (build_function_call): Handle error_mark_node return from
1863         convert_arguments.
1864
1865 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
1866
1867         * configure.ac (symbolic_link): Replace with $LN_S.
1868         (Assembler/Linker): Hard link from gas and binutils trees.
1869         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1870         * configure: Regenerate.
1871
1872 2004-10-12  Paul Brook  <paul@codesourcery.com>
1873
1874         * configure.ac: Don't look for host assembler when building a canadian
1875         cross.
1876         * configure: Regenerate.
1877
1878 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1879
1880         PR other/17361
1881         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1882         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
1883         line options for "-lang-asm" and if found allow any of the C-family
1884         front-end options.
1885         (c_common_handle_option): Remove last use of permit_fortran_options.
1886
1887 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1888
1889         * config/s390/s390.c (print_operand): Support 'S' format flag.
1890         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1891         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1892         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1893         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1894         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1895         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1896         ("*movstricthi"): Likewise.
1897         ("*load_multiple_di", "*load_multiple_si"): Likewise.
1898         ("*store_multiple_di", "*store_multiple_si"): Likewise.
1899         ("*sethiqisi", "*sethihisi"): Likewise.
1900         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1901         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1902         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1903         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1904         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1905
1906         ("*tmhi_full"): Fix incorrect op_type attribute.
1907
1908         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1909         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1910         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1911         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1912
1913 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
1914
1915         PR middle-end/16266
1916         * function.c (temp_slots_at_level): Fix typo which creates too
1917         many temp stack slots levels.
1918
1919 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1920
1921         * config/s390/s390.c (s390_trampoline_template): Generate shorter
1922         trampoline code.
1923         (s390_trampoline_instantiate): Adapt.
1924         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1925
1926 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1927
1928         PR middle-end/17657
1929         * stmt.c (add_case_node): Add additional type argument.  Declare
1930         as static to match prototype.  Convert the upper and lower bounds
1931         to the specified index type.  Optimize away case ranges/values
1932         that are outside the index type's bounds.  Truncate case ranges
1933         that span the index type's bounds.
1934         (expand_case): Avoid unnessary computation and memory allocation
1935         when index type is error_mark_node.  Pass index_type as required
1936         by change to add_case_node API.  No need to convert case range
1937         bounds to index_type, this is now done by add_case_node.
1938
1939 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1940
1941         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1942         * config/s390/s390.c (s390_offset_p): New function.
1943         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1944         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1945         transform Q->Q alternatives to *clc pattern.
1946         ("*clc"): Move.
1947         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1948         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1949         to transform Q->Q alternatives to *mvc pattern.
1950         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
1951         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1952         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1953         transform Q->Q alternatives to *nc pattern.
1954         ("*nc"): New insn.  New peephole to merge adjacent NCs.
1955         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1956         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1957         transform Q->Q alternatives to *oc pattern.
1958         ("*oc"): New insn.  New peephole to merge adjacent OCs.
1959         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1960         transform Q->Q alternatives to *xc pattern.
1961         ("*xc"): New insn.  New peephole to merge adjacent XCs.
1962         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
1963
1964 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1965
1966         * gimplify.c (gimple_push_condition): Make sure that we don't
1967         have any saved condition cleanup if we were at the top level.
1968
1969 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
1970
1971         * config/frv/frv.md (*adddi3_internal): Change name to...
1972         (adddi3): ...replacing the exisiting define_expand.  Combine
1973         alternatives.  Fix the range of the constant constraints ('J' instead
1974         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
1975         to extract the lower and upper halves of the DImode operands.
1976         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1977         (adddi3_lower): Fix the range of the constant constraints and
1978         remove the bogus operands[2] check.
1979         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1980         operand 2.  Use addxi to handle constant operands.
1981         (subdi3_lower, subdi3_upper): Don't handle constant operands.
1982
1983 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
1984
1985         * gengtype-lex.l: Add commented } & ) characters to unconfuse
1986         editor's paren matching. Allow #define inside a struct.
1987
1988 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
1989
1990         PR middle-end/17703
1991         part of PR c++/17657
1992         * fold-const.c (fold_build_cleanup_point_expr): New function.
1993         * tree.h (fold_build_cleanup_point_expr): Prototype.
1994
1995 2004-10-10  Eric Christopher  <echristo@redhat.com>
1996
1997         * dwarf2out.c: Move attribute to subprogram declaration
1998         instead of subroutine type.
1999
2000 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2001
2002         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
2003         hoist_insn_after, and hoist_insn_to_edge.
2004         * rtl.h: Remove the prototypes for reg_referenced_between_p,
2005         no_jumps_between_p, and insn_dependent_p.
2006         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
2007         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
2008         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
2009         hoist_insn_to_edge): Remove.
2010
2011 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2012
2013         PR c/17881
2014         * c-decl.c (grokparms): Don't warn for parameters of incomplete
2015         type in declarations that are not definitions except for the case
2016         of parameters of void type.
2017
2018 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2019
2020         * tree-cfg.c: Fix comment typos.
2021
2022 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2023
2024         PR c/17301
2025         * builtins.c (expand_builtin_va_start): Check for too few
2026         arguments to va_start.
2027
2028 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2029
2030         PR c/17189
2031         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
2032         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
2033         pedantic.
2034         * c-parse.in (component_decl): Don't pedwarn here for unnamed
2035         fields.
2036
2037 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
2038
2039         PR tree-optimization/17906
2040         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
2041         copy non-gimple reg arguments.
2042
2043 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2044
2045         PR rtl-optimization/17853
2046         * simplify-rtx.c (simplify_relational_operation): Correct comment.
2047         Reorganize handling of comparison operations with floating point
2048         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
2049         Likewise, introduce support for comparison operations with vector
2050         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
2051
2052         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
2053         * doc/tm.texi: Likewise.
2054
2055 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2056
2057         * regs.h (struct reg_info_def): Remove the last_node_uid and
2058         changes_mode fields.
2059         (REGNO_LAST_NOTE_UID): Don't define.
2060         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
2061         * regmove.c (copy_src_to_dest): Likewise.
2062
2063 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2064
2065         PR middle-end/17894
2066         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
2067         relational comparison operator op needs to be swapped/reversed when
2068         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
2069
2070 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2071
2072         PR tree-opt/17902
2073         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
2074         instead of bsi_start.
2075         (value_replacement): Likewise.
2076         (abs_replacement): Likewise
2077
2078 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2079
2080         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
2081         (expand_gimple_cond_expr, expand_gimple_tailcall,
2082         expand_gimple_basic_block): Use it to dump RTL for each stmt.
2083         (tree_expand_cfg): Announce full RTL function dump.
2084         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
2085         not the graph version.
2086         * tree-pretty-print.c (dump_generic_node): Allow empty statements
2087         in the arms of a COND_EXPR for lowered nodes.
2088
2089 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
2090
2091         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
2092         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
2093         strtoufix16, strtoufix32, strtoufix64): Declare.
2094
2095 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2096
2097         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
2098         for an out-of-range floating point constant.
2099         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
2100         warning if the target format does not support infinities.
2101
2102 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2103
2104         * emit-rtl.c (last_label_num, base_label_num): Remove.
2105         (max_label_num): Always return label_num.
2106         (set_new_last_label_num, restore_emit_status): Remove.
2107         (init_emit): Don't initialize last_label_num.
2108         * function.c (pop_function_context_from): Don't call
2109         restore_emit_status.
2110         * function.h: Remove the prototype for restore_emit_status.
2111         * rtl.h: Remove the prototype for set_new_last_label_num.
2112
2113 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2114
2115         * stmt.c (expand_decl_init): Remove.
2116         * tree.h: Remove the corresponding prototype.
2117
2118 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2119
2120         * integrate.c (try_constants, subst_constants, mark_stores):
2121         Remove.
2122         * integrate.h: Remove the prototype for try_constants.
2123
2124 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2125
2126         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
2127         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
2128         comments about its relevance to errors.
2129         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
2130
2131 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2132
2133         PR c/16999
2134         * c-ppoutput.c (cb_ident): Don't quote string as it is already
2135         quoted.
2136
2137 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
2138
2139         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
2140         reference_node_pool.
2141
2142 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2143
2144         * tree-cfg.c: Fix a comment typo.
2145
2146 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
2147
2148         * config/s390/s390.c (s390_register_info): Don't save fprs for
2149         -msoft-float.
2150         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
2151
2152 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2153
2154         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
2155         (TARGET_DEFAULT): Use symbolic values.
2156         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
2157         (TARGET_DEFAULT): Use symbolic values.
2158         * config/s390/s390.c (s390_backchain_string): Initialize to
2159         TARGET_DEFAULT_BACKCHAIN.
2160
2161 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2162
2163         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
2164         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
2165         code.
2166         (expand_builtin_strcat): Accept a type parameter.
2167         (fold_builtin_mempcpy): Accept a type and endp parameter.
2168
2169         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
2170         Accept an `exp' instead of an `arglist'.
2171
2172 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
2173
2174         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
2175         reverting my 2004-09-07 patch to use build_int_cst.
2176
2177 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2178
2179         PR target/17245
2180         * config/sparc/sparc.c (input_operand): Remove redundant code
2181         for handling LO_SUM.
2182         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
2183         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
2184         Otherwise only accept it for TFmode if quad move insns are available.
2185
2186 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2187
2188         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
2189         common cases will be caught earlier than others.
2190
2191 2004-10-08  Michael Matz  <matz@suse.de>
2192
2193         * loop-doloop.c (doloop_optimize): Extend count.
2194
2195 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2196
2197         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
2198         (prefetch): Convert to expander.
2199
2200 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2201
2202         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
2203         first argument of CALL.
2204         (tls_local_dynamic): Likewise.
2205
2206 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2207
2208         * c-typeck.c (enum impl_conv): New.
2209         (convert_for_assignment): Use it.  Take tree for function called
2210         instead of its name.  Handle ObjC selectors for diagnostics at
2211         start of function.  Select diagnostic text within the function
2212         using full sentences for diagnsotics.  Use %qE to name functions
2213         in diagnostics.
2214         (convert_arguments, build_modify_expr,
2215         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2216         callers to convert_for_assignment.
2217         (warn_for_assignment): Remove.
2218
2219 2004-10-08  Nick Clifton  <nickc@redhat.com>
2220
2221         * config/sh/symbian.c (symbian_possibly_export_base_class):
2222         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2223         TYPE_CONTAINS_VPTR_P.
2224
2225 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2226
2227         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2228         fixed registers form all_used_regs. Update call_really_used_regs.
2229         (CALL_REALLY_USED_REGISTERS): Define.
2230         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2231         with call_really_used_regs.
2232
2233 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
2234
2235         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2236         for -profile as well as -p and -pg.
2237
2238 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
2239
2240         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2241
2242 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2243
2244         * tree-cfg.c (tree_block_forwards_to): Remove.
2245         * tree-flow.h: Remove the corresponding prototype.
2246
2247 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2248
2249         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2250         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2251
2252 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
2253
2254         Radar 3813796
2255         * config/rs6000/rs6000.c (rs6000_generate_compare): When
2256         flag_trapping_math is in effect, don't generate subtract
2257         instructions.
2258
2259 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
2260
2261         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2262         * config/s390/s390.c (s390_narrow_logical_operator): New function.
2263         (s390_extra_constraint_str): Add 'A' constraints.
2264         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2265         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2266         (CONSTRAINT_LEN): Likewise.
2267         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2268         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2269         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2270         ("*iordi3"): Add OI alternative and splitter.
2271         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2272         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2273         ("*xordi3"): Add XI alternative and splitter.
2274         ("*xorsi3", "*xorhi3"): Likewise.
2275
2276 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2277
2278         * config/mips/mips.c (mips_function_rodata_section): New function.
2279         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2280
2281 2004-10-07  Devang Patel  <dpatel@apple.com>
2282
2283         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2284         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2285         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2286         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2287         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2288         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2289         UNSPEC_VCONDU_V16QI): New constant defines.
2290         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2291         vconduv16qi): New patterns.
2292         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2293         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2294         (get_vec_cmp_insn): Same.
2295         (get_vsel_insn): Same.
2296         (rs6000_emit_vector_compare): Same.
2297         (rs6000_emit_vector_select): Same.
2298         (INSN_NOT_AVAILABLE): New.
2299
2300 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2301
2302         PR tree-optimization/17749
2303         * tree-tailcall.c (find_tail_calls): Check that parameter is
2304         a gimple_reg.
2305
2306 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2307
2308         * config/ia64/ia64.c: Fix a comment typo.
2309
2310 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2311
2312         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2313
2314 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2315
2316         PR c++/17115
2317         * tree-inline.c (expand_call_inline): Do not warn for functions
2318         marked with attribute noinline.
2319
2320 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2321
2322         PR target/17862
2323         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2324         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2325
2326         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2327         of 0 as 4th argument to pass_by_reference.
2328         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2329
2330 2004-10-06  Eric Christopher  <echristo@redhat.com>
2331
2332         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2333         attribute.
2334
2335 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2336
2337         PR target/17770
2338         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2339
2340 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2341
2342         PR rtl-optimization/17791
2343         * loop-doloop.c (doloop_modify): Take number of iterations as
2344         argument.
2345         (doloop_optimize): Extend or shorten the number of iterations
2346         when changing mode of counter register.
2347         * loop-iv.c (lowpart_subreg): Export.
2348         * rtl.h (lowpart_subreg): Declare.
2349
2350 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2351
2352         PR tree-optimization/17806
2353         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2354         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2355         flags moved to split_edge.
2356
2357 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2358
2359         PR middle-end/17835
2360         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2361         before tentatively building the conditional move sequence.
2362
2363 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2364
2365         PR target/16815
2366         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2367         check.
2368         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2369         function_arg_padding.
2370
2371 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2372
2373         PR bootstrap/17857
2374         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2375
2376 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2377
2378         * hooks.c (hook_int_void_1, hook_void_int): Remove.
2379         * hooks.h: Remove the corresponding prototypes.
2380
2381 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2382
2383         PR middle-end/17849
2384         * tree-nested.c (walk_stmt_info): Add changed field.
2385         (convert_nonlocal_reference): Set changed to when we
2386         change a decl to unnested decl.
2387         <case ADDR_EXPR>: Instead of checking if the immediate part
2388         of the ADDR_EXPR changed, check the field changed.
2389         Use recompute_tree_invarant_for_addr_expr instead of unsetting
2390         TREE_INVARIANT.
2391         (convert_local_reference):  Set changed to when we
2392         change a decl to unnested decl.
2393         <case ADDR_EXPR>: Instead of checking if the immediate part
2394         of the ADDR_EXPR changed, check the field changed.
2395         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2396
2397 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2398
2399         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2400         * dwarf2out.c (dwarf2out_init): Remove references to
2401         DWARF2_GENERATE_TEXT_SECTION_LABEL.
2402         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2403         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2404
2405 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2406
2407         * c-typeck.c (convert_arguments): Take expression for called
2408         function rather than its name.  Handle ObjC selectors directly
2409         rather than relying on warn_for_assignment to do so.  Call warning
2410         directly rather than warn_for_assignment.  Use %qE in diagnostics.
2411         Say "argument" rather than "arg" in diagnostics.
2412         (build_function_call): Update call to convert_arguments.
2413
2414 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2415
2416         PR debug/17787
2417         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2418         ENUMs specially instead of just saying we do.
2419
2420 2004-10-06  Eric Christopher  <echristo@redhat.com>
2421
2422         * dwarf2.h: Sync with include/elf/dwarf2.h
2423
2424 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2425
2426         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2427         and TREE_VEC nodes.
2428
2429 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2430
2431         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2432         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2433
2434 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2435
2436         * lambda-code.c (compute_nest_using_fourier_motzkin): New
2437         function.
2438         (lambda_compute_auxillary_space): Split from here.
2439
2440 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2441
2442         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2443         * tree-flow.h: Add prototype.
2444         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2445         expr_invariant_in_loop.
2446
2447 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2448
2449         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2450         EXIT_BLOCK_PTR.
2451
2452 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2453
2454         * config/s390/s390-protos.h (s_imm_operand): Remove.
2455         (s390_pool_operand): Add prototype.
2456         * config/s390/s390.c (general_s_operand): Remove.
2457         (s_imm_operand): Remove.
2458         (s_operand): Merge contents of general_s_operand.
2459         (s390_pool_operand): New function.
2460         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2461         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2462         ("*cmpdi_ccu"): Merge Q->Q alternative.
2463         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2464         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2465         ("*cli"): Remove.
2466         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2467         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2468         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2469
2470 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
2471
2472         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2473         call ia64_function_arg_boundary.
2474         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2475         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2476         (ia64_function_arg_advance): Do not put 128 bit floats into
2477         FP registers.
2478
2479 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2480
2481         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2482         Accept an expression instead of an arglist.
2483         (expand_builtin_stpcpy): Accept an expression instead of an
2484         arglist.
2485
2486 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2487
2488         PR target/16007
2489         * doc/install.texi (*-*-solaris2*): Mention potential problem
2490         with Sun assembler + GNU linker and C++ programs.
2491         Document status of binutils 2.15 release.
2492
2493 2004-10-06  Jan Hubicka  <jh@suse.cz>
2494
2495         * cse.c (cse_main): Kill push/pop context.
2496
2497 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
2498
2499         * pretty-print.c: Include tree.h.
2500         (pp_base_prepare_to_format): New function, logic from
2501         text_specifies_location.
2502         (pp_base_format_text): Use gcc_assert.
2503         * pretty-print.h (pp_prepare_to_format): New macro.
2504         (pp_base_prepare_to_format): Prototype.
2505         * diagnostic.c (text_specifies_location): Delete.
2506         (bug_report_request): Delete.
2507         (diagnostic_set_info): Don't call text_specifies_location.
2508         (diagnostic_action_after_output): Put text from
2509         bug_report_request inline here.  Use gcc_unreachable.
2510         (diagnostic_report_current_function): Fix comment.
2511         (diagnostic_report_diagnostic): Clarify logic for error recursion.
2512         Call pp_prepare_to_format before diagnostic_starter.
2513         (trim_filename): Use IS_DIR_SEPARATOR.
2514         (fatal_error, internal_error): Use gcc_unreachable.
2515         (error_recursion): Call diagnostic_action_after_output to
2516         issue the bug_report_request message and exit.
2517         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2518
2519         * c-parse.in: Add list of diagnostic messages to insulate
2520         translation template from version of yacc/bison used to
2521         compile the grammar.
2522
2523 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
2524
2525         PR 16406
2526         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2527
2528 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2529
2530         * basic-block.h: Remove the prototype for
2531         flow_preorder_transversal_compute.
2532         * cfganal.c (dfst_node): Remove.
2533         (flow_preorder_transversal_compute): Likewise.
2534         * rtl.h: Remove the prototype for get_jump_table_offset.
2535         * rtlanal.c (get_jump_table_offset): Remove.
2536
2537 2004-10-05  Richard Henderson  <rth@redhat.com>
2538
2539         PR 17756
2540         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2541
2542 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2543
2544         PR bootstrap/17817
2545         * Makefile.in: Stage the build directory too.
2546
2547 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
2548
2549         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2550
2551         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2552         (frv_emit_move): Same.
2553
2554         * config/frv/frv.c (frv_emit_move): New.
2555         (frv_legitimize_address): New.
2556
2557         * config/frv/frv.md ("movsi"): Call frv_emit_move.
2558         ("movqi"): Same.
2559         ("movhi"): Same.
2560         ("movdi"): Same.
2561         ("movsf"): Same.
2562         ("movdf"): Same.
2563
2564 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2565
2566         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2567         system headers.
2568
2569 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2570
2571         * c-decl.c (pushdecl): When an extern declaration at block scope
2572         refers to a visible entity with internal linkage, use the old DECL
2573         rather than the new one.
2574
2575 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2576
2577         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2578         comments.
2579
2580 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2581
2582         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2583         an infinite loop.
2584
2585 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2588         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
2589         blocks.
2590
2591 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2592
2593         * tree-cfg.c (cleanup_tree_cfg): Don't call
2594         delete_unreachable_blosk() after thread_jumps().
2595         (thread_jumps): Always remove basic blocks as they become
2596         unreachable.
2597
2598 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2599
2600         * tree-cfg.c (cleanup_tree_cfg): Remove variable
2601         something_changed.  Simplify the while loop.
2602
2603 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2604
2605         * builtins.c (expand_builtin_memmove): Delete duplicate code
2606         and accept a tree type for the result.
2607         (expand_builtin_bcopy): Accept a tree type for the result.
2608         (fold_builtin_memmove): Accept an arglist and tree type for
2609         the result.
2610
2611 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
2612
2613         * config/s390/s390.c (s390_dump_pool): Remove return value.
2614         Use gen_pool_align, gen_pool_section_start/end instead of
2615         gen_pool_start/end_31/64.
2616         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2617         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2618         ("pool_start_31", "pool_end_31"): Remove.
2619         ("pool_start_64", "pool_end_64"): Likewise.
2620         ("pool_align", "pool_section_start", "pool_section_end": New insns.
2621
2622         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2623         (TARGET_CANNOT_COPY_INSN_P): Define.
2624         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2625         (struct constant_pool): New member 'execute'.
2626         (s390_add_execute, s390_find_execute): New functions.
2627         (s390_execute_label, s390_execute_target): Likewise.
2628         (s390_dump_pool): Output in-pool execute target templates.
2629         (s390_dump_execute): New function.
2630         (s390_alloc_pool, s390_free_pool): Handle execute templates.
2631         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2632         (s390_chunkify_start, s390_chunkify_finish): Likewise.
2633         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2634         ("*execute"): New insn pattern.
2635         ("movmem_short", "*movmem_short"): Use splitters to generate
2636         explicit execute pattern, remove embedded execute.
2637         ("clrmem_short", "*clrmem_short"): Likewise.
2638         ("cmpmem_short", "*cmpmem_short"): Likewise.
2639
2640 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
2641
2642         * tree-ssa.c (verify_ssa): Verify phi arguments only
2643         contain renamed names.
2644
2645 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
2646
2647         * config/rs6000/linux.h: Formatting, whitespace.
2648         * config/rs6000/linux64.h: Likewise.
2649         * config/rs6000/rs6000-protos.h: Likewise.
2650         * config/rs6000/rs6000.c: Likewise.
2651         (easy_vector_splat_const): Add fall thru comments.
2652         (output_vec_const_move): Likewise.
2653
2654 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2655
2656         * Makefile.in: Update -Wno-error exceptions for move to build dir.
2657
2658 2004-10-05  Chao-Ying Fu  <fu@mips.com>
2659             Richard Sandiford  <rsandifo@redhat.com>
2660
2661         * doc/invoke.texi (-mpaired-single): Link to the new description of the
2662         built-in functions.  Document dependencies.
2663         (-mips3d): Add link here too.
2664         * doc/extend.texi (MIPS Paired-Single Support): New section.
2665
2666 2004-10-04  Chao-ying Fu  <fu@mips.com>
2667
2668         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2669
2670 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
2671
2672         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2673         Initialize OPT_STATS to 0.
2674
2675 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2676
2677         * tree-data-ref.c: Fix comment typos.
2678
2679 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
2680
2681         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
2682         the predicate cannot be computed, don't initialize the result to
2683         false.
2684
2685 2004-10-01  Eric Christopher  <echristo@redhat.com>
2686
2687         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2688         locally defined enum.
2689         * dwarf2out.c (add_calling_convention_attribute): Don't
2690         emit DW_CC_normal.
2691
2692 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
2693
2694         PR c/17178, PR c/17820
2695         * c-decl.c (pop_scope): Do not warn about unused static
2696         variables as they warned in the middle-end.
2697
2698 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2699
2700         * builtins.c (expand_builtin_memcpy): Delete duplicate code
2701         and make the first parameter the expression not the arglist.
2702
2703 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
2704
2705         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2706         as valid modes to expand address expressions.
2707
2708 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2709
2710         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2711         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2712         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2713         code formatting conventions.
2714
2715 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
2716
2717         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2718
2719 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2720
2721         PR tree-optimization/16632
2722         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2723         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
2724         where | is used instead of &.
2725
2726 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2727
2728         * ginclude/stddef.h: Fix a comment typo.
2729
2730 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2731
2732         PR target/17443
2733         * config.gcc (i?86-*-solaris2*): Restore correct logic
2734         for --enable-threads option.
2735         (sparc64-*-solaris2*): Likewise.
2736         (sparc-*-solaris2*): Likewise.
2737
2738 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
2739
2740         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2741         (OS_MISSING_POWERPC64): Move, and comment.
2742         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2743         (OS_MISSING_POWERPC64): Move, and comment.
2744
2745 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
2746
2747         * arm.c (output_call_mem): Add missing \t.
2748
2749 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2750
2751         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2752         expand_builtin_strncmp): Delete duplicate code.
2753
2754 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
2755
2756         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2757         take check-base and -limit arguments.
2758         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2759         check ranges for ARRAY_REF and COMPONENT_REF.
2760         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2761         instrumentation.
2762
2763 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2764
2765         * c-objc-common.c (c_tree_printer): Correct description of %E.
2766         Don't fall through after printing an expression.
2767
2768 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2769
2770         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2771
2772 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2773
2774         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2775         delete_unrechable_blocks() only when necessary.
2776
2777 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2778
2779         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2780         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2781         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2782         __gthread_recursive_mutex_unlock): New functions.
2783
2784 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2785
2786         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2787         * config/s390/tpf-eh.c: Remove file.
2788         * config/s390/tpf-unwind.h: New file.
2789         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2790         (MD_UNWIND_SUPPORT): Define.
2791
2792 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2793
2794         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2795
2796 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
2797
2798         * config/s390/s390-protos.h (s390_comparison): Add prototype.
2799         * config/s390/s390.c (s390_comparison): New function.
2800         (s390_branch_condition_mask): Return -1 for invalid comparisons.
2801         (s390_branch_condition_mnemonic): Assert valid comparison.
2802         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2803         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2804         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2805         s390_comparison instead of comparison_operator.
2806
2807         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2808         ("cmpmemdi"): Remove.
2809         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2810         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2811         ("cmpint_si"): Rename to ...
2812         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
2813         ("cmpint_di", "*cmpint_di"): Likewise.
2814         * config/s390/s390.c (s390_canonicalize_comparison): Remove
2815         redundant UNSPEC_CMPINT conversions.
2816         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2817
2818 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2819
2820         * collect2.c (COLLECT_PARSE_FLAG): Remove.
2821         (main): Remove a reference to COLLECT_PARSE_FLAG
2822         * system.h: Poison COLLECT_PARSE_FLAG.
2823         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2824
2825 2004-10-01  Paul Brook  <paul@codesourcery.com>
2826
2827         * config/arm/crti.asm: Give _init and _fini function type.
2828
2829 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2830
2831         * common.opt (ftree-loop-ivcanon): Enable by default.
2832         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2833         Enable complete loop unrolling.
2834         (canonicalize_induction_variables, tree_unroll_loops_completely):
2835         Reset scev info.
2836
2837 2004-10-01  Paul Brook  <paul@codesourcery.com>
2838
2839         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2840         not register number.
2841         (thumb_find_work_register): Search full register range.
2842
2843 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
2844
2845         PR tree-opt/17343
2846         * tree-cfg.c (group_case_labels): Get the label and not
2847         the case expr for the default case.
2848         When the label we looking at is the default, decrement the
2849         new_size.
2850
2851 2004-10-01  Jan Hubicka  <jh@suse.cz>
2852
2853         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2854         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2855         * toplev.h (tree_rest_of_compilation): Update prototype.
2856         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
2857
2858 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2859
2860         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2861         cleanup_control_flow() out of the while loop.
2862
2863 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
2864
2865         * tree-vectorizer.c (vectorizable_operation): Fail unless
2866         the mode for the vector type is indeed a vector mode.
2867
2868 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2869
2870         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2871         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2872         of convert.
2873         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2874         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2875         follow_ssa_edge_in_rhs): Ditto.
2876         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2877         (dump_iv): Dump base_object.
2878         (dump_use, dump_cand): Use dump_iv.
2879         (determine_base_object): New function.
2880         (alloc_iv): Initialize base_object field.
2881         (record_use): Clear the ssa_name field of iv.
2882         (get_computation_cost_at): Do not use difference of addresses of
2883         two different objects.
2884         (may_eliminate_iv): Do not require the loop to have just single exit.
2885         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2886         (nonzero_p): New function.
2887         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2888         tree_simplify_using_condition, simplify_using_initial_conditions,
2889         loop_niter_by_eval, find_loop_niter_by_eval,
2890         estimate_numbers_of_iterations_loop, compare_trees,
2891         upper_bound_in_type, lower_bound_in_type,
2892         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
2893         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
2894         instead of integer_(non)zerop.
2895
2896 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
2897
2898         Revert
2899         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2900
2901         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2902         and TI_VA_LIST_FPR_COUNTER_FIELD.
2903         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2904         * tree-pass.h (pass_stdarg): Add.
2905         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2906         * tree-stdarg.c: New file.
2907         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2908         (tree-stdarg.o): Add dependencies.
2909         * function.h (struct function): Add va_list_gpr_size and
2910         va_list_fpr_size fields.
2911         * function.c (allocate_struct_function): Initialize them.
2912
2913         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2914         va_list_{g,f}pr_counter_field.
2915         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2916         area will not be used.  Only save registers that tree-stdarg.c
2917         detected they need saving.
2918         (ix86_va_start): Don't set up fields that won't be used.
2919
2920         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2921         va_list_{g,f}pr_counter_field.
2922         (setup_incoming_varargs): Don't do anything if reg_save
2923         area will not be used.  Only save registers that tree-stdarg.c
2924         detected they need saving.
2925         (rs6000_va_start): Don't set up fields that won't be used.
2926
2927 2004-09-30  Eric Christopher  <echristo@redhat.com>
2928
2929         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2930         sh abi.
2931         * dwarf2out.c (add_calling_convention_attribute): New function.
2932         (gen_subroutine_type_die): Use.
2933         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2934         * target.h (gcc_target): Add dwarf_calling_convention.
2935         * hooks.c (hook_int_tree_0): New function.
2936         * hooks.h: Prototype.
2937         * config/sh/sh.c: Include dwarf2.h.
2938         (sh_dwarf_calling_convention): New function.
2939         (TARGET_DWARF_CALLING_CONVENTION): Use.
2940         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2941
2942 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2943
2944         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2945         expand_builtin_strrchr, expand_builtin_strpbrk,
2946         expand_builtin_strncat, expand_builtin_strspn,
2947         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2948         code.
2949
2950 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2951
2952         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2953         prototype.
2954         (s390_logical_operator_ok_p): Likewise.
2955         * config/s390/s390.c (s390_expand_logical_operator): New function.
2956         (s390_logical_operator_ok_p): Likewise.
2957         * config/s390/s390.md ("anddi3"): New expander.
2958         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2959         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2960         ("andsi3"): Use s390_expand_logical_operator.
2961         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2962         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2963         ("andhi3"): New expander.
2964         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2965         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2966         ("andqi3"): New expander.
2967         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2968         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2969         ("iordi3"): New expander.
2970         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2971         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2972         ("iorsi3"): Use s390_expand_logical_operator.
2973         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2974         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2975         ("iorhi3"): New expiorer.
2976         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2977         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2978         ("iorqi3"): New expiorer.
2979         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2980         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2981         ("xordi3"): New expander.
2982         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2983         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2984         ("xorsi3"): New expander.
2985         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2986         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2987         ("xorhi3"): New expander.
2988         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2989         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2990         ("xorqi3"): New expander.
2991         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2992         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2993
2994 2004-09-30  Roger Sayle  <roger@eyesopen.com>
2995
2996         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2997         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2998         machine mode as the result.
2999
3000 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3001
3002         PR bootstrap/17761
3003         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
3004         FOR_EACH_EDGE macros.
3005
3006 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3007
3008         * c-tree.h (readonly_error): Remove.
3009         * c-typeck (enum lvalue_use): New.
3010         (lvalue_or_else, readonly_error): Use it.  All callers changed.
3011         (readonly_error): Make static.
3012
3013 2004-09-30  Jan Hubicka  <jh@suse.cz>
3014
3015         PR debug/13974
3016         * cfgrtl.c (try_redirect_by_replacing_jump,
3017         force_nonfallthru_and_redirect, commit_one_edge_insertion,
3018         cfg_layout_merge_blocks):  Do not attach any line number information
3019         to newly inserted instructions.
3020         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
3021         emit_insn_*_noloc.
3022         (emit_*insn_before, emit_insn*_after): New.
3023         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
3024         existing locators.
3025         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
3026         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
3027
3028 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3029
3030         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
3031         (s390_return_address_offset): Remove.
3032         (s390_can_eliminate): Add prototype.
3033         (s390_initial_elimination_offset): Add prototype.
3034         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
3035         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
3036         * config/s390/s390.c (s390_arg_frame_offset): Remove.
3037         (s390_return_address_offset): Remove.
3038         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
3039         (struct machine_function): New member split_branches_pending_p.
3040         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
3041         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
3042         (s390_optimize_prologue): Remove base_used argument.  Call
3043         s390_update_frame_layout instead of s390_register_info.  Handle
3044         prologue/epilogue insns that touch only RETURN_REGNUM.
3045         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
3046         (s390_register_info): Remove base_used and return_addr_used
3047         arguments, compute special register usage inline.  Return live
3048         register data to caller.
3049         (s390_frame_info): Remove arguments, do not call s390_register_info.
3050         (s390_init_frame_layout): New function.
3051         (s390_update_frame_layout): Likewise.
3052         (s390_emit_prologue): Call s390_update_frame_layout; some code
3053         move to there.  Do not emit pool placeholder insn if unnecessary.
3054
3055 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3056
3057         * config/s390/s390.c (legitimate_reload_constant_p): Remove
3058         floating point constant workaround.
3059         (s390_secondary_input_reload_class): Handle PLUS reloads
3060         with too-large constant.
3061         (s390_expand_plus_operand): Likewise.
3062         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
3063         ("movsi"): Likewise.  Also, remove workaround for non-general
3064         operands.
3065         ("movdf"): Do not call force_const_mem.
3066         ("movsf"): Likewise.  Merge expander with *movsf insn.
3067         ("*movsf"): Remove, merge with movsf expander.
3068
3069 2004-09-30  Paul Brook  <paul@codesourcery.com>
3070
3071         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
3072         (ENDFILE_SPEC): Define.
3073         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
3074
3075 2004-09-30  Richard Henderson  <rth@redhat.com>
3076
3077         * config/alpha/qrnnd.asm: Mark for noexecstack.
3078
3079 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3080
3081         * protoize.c, tree-cfg.c: Fix comment typos.
3082
3083 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3084
3085         PR c/17730
3086         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
3087
3088 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
3089
3090         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
3091         expressions...
3092         (add_pointed_to_expr): ... here.
3093         Call add_pointed_to_expr for variables with DECL_INITIAL set.
3094         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
3095         pointer variable, if set.
3096
3097 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3098
3099         * config/sh/sh.c: Follow spelling conventions.
3100
3101 2004-09-29  Richard Henderson  <rth@redhat.com>
3102
3103         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
3104         * doc/tm.texi (DWARF_ZERO_REG): New.
3105
3106         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3107         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
3108         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
3109
3110 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
3111
3112         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
3113         with a PLUS as source operand.
3114         (expand_movstr): Likewise.
3115         (expand_builtin_stpcpy): Likewise.
3116
3117 2004-09-29  Richard Henderson  <rth@redhat.com>
3118
3119         PR 17739
3120         * tree-gimple.c (is_gimple_reg): Reject hard registers.
3121         (is_gimple_asm_val): New.
3122         * tree-gimple.h (is_gimple_asm_val): Declare.
3123         * gimplify.c (gimplify_asm_expr): Use it.
3124         * tree-pretty-print.c (print_declaration): Dump hard regs.
3125         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
3126         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3127         * tree-ssa-pre.c (is_undefined_value): Likewise.
3128         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3129         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
3130         * tree-ssa.c (warn_uninit): Likewise.
3131         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
3132
3133 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
3134
3135         * c-decl.c (merge_decls): Use comptype when comparing
3136         types to decide on DECL_SIZE save of olddecl.
3137
3138 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
3139
3140         * tree.h (INDIRECT_REF_P): New macro.
3141         * alias.c (get_alias_set): Use it
3142         (nonoverlapping_memrefs_p): Ditto.
3143         * emit-rtl.c (mem_expr_equal_p): Ditto.
3144         (set_mem_attributes_minus_bitpos): Ditto.
3145         (is_gimple_addressable): Ditto.
3146         (get_base_address): Ditto.
3147         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
3148         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
3149         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
3150         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
3151         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
3152         (add_address_candidates): Ditto.
3153         (rewrite_address_base): Ditto.
3154
3155 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3156
3157         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
3158         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
3159         (rewrite_ssa_into_ssa): Likewise.
3160         * tree-phinodes.c (create_phi_node): Access the number of
3161         predecessor edges using EDGE_COUNT() and not num_preds.
3162
3163 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3164
3165         PR c/7425
3166         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
3167
3168 2004-09-29  Eric Christopher  <echristo@redhat.com>
3169
3170         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
3171
3172 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
3173
3174         * config/cris/cris.md (moverside, movemside): With MEM, make sure
3175         the address is (plus reg mem).
3176
3177 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
3178
3179         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3180
3181 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3182
3183         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
3184         cascaded if ... else if with a switch.
3185
3186 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3187
3188         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
3189
3190 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3191
3192         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3193         and TI_VA_LIST_FPR_COUNTER_FIELD.
3194         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3195         * tree-pass.h (pass_stdarg): Add.
3196         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3197         * tree-stdarg.c: New file.
3198         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3199         (tree-stdarg.o): Add dependencies.
3200         * function.h (struct function): Add va_list_gpr_size and
3201         va_list_fpr_size fields.
3202         * function.c (allocate_struct_function): Initialize them.
3203
3204         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3205         va_list_{g,f}pr_counter_field.
3206         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3207         area will not be used.  Only save registers that tree-stdarg.c
3208         detected they need saving.
3209         (ix86_va_start): Don't set up fields that won't be used.
3210
3211         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3212         va_list_{g,f}pr_counter_field.
3213         (setup_incoming_varargs): Don't do anything if reg_save
3214         area will not be used.  Only save registers that tree-stdarg.c
3215         detected they need saving.
3216         (rs6000_va_start): Don't set up fields that won't be used.
3217
3218 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3219
3220         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
3221         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
3222         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
3223         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
3224         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
3225         ATTR_NONNULL_1_4): New.
3226
3227 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3228
3229         PR tree-optimization/17697
3230         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
3231         cfg if needed.
3232
3233 2004-09-28  Per Bothner  <per@bothner.com>
3234
3235         * profile.c (branch_prob): Pass correct value to output_location,
3236         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
3237
3238 2004-09-28  Richard Henderson  <rth@redhat.com>
3239
3240         PR 15089
3241         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
3242         * tree-flow.h (may_propagate_copy_into_asm): Declare.
3243         * tree-ssa-ccp.c (replace_uses_in): Use it.
3244         * tree-ssa-dom.c (cprop_operand): Likewise.
3245
3246 2004-09-28 Jeff Law  <law@redhat.com>
3247
3248         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
3249         that no outgoing edges be left in the duplicate block.  Do no
3250         update information on outgoing edges or PHI nodes in target
3251         blocks here.
3252         (remove_ctrl_stmt_and_useless_edges): Renamed from
3253         remove_last_stmt_and_useless_edges.  Handle case where the
3254         block is empty or has no control statements.  Do not update edge
3255         flags here.
3256         (thread_block): Create a template block rather than copying the
3257         original block every time.  Create outgoing edges from the
3258         duplicate blocks and update PHIs at the target of the outgoing
3259         edges here.  Fix edge flags for the original block if necessary.
3260         * cfghooks (duplicate_block): No longer assert that the original
3261         block has incoming edges.
3262
3263 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
3264
3265         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
3266         Reg Vars to enforce register allocation with general constraints.
3267         (Explicit Reg Vars): Clarify relation to asm statements.
3268         (Local Reg Vars): Similar.
3269
3270 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3271
3272         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
3273         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
3274         build_control_flow, new_edge): Remove.
3275         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
3276         (bitlst, bitlst_table_last, bitlst_table): Remove.
3277         (bblst): Store basic_block pointer instead of block index.
3278         (bblst_table): Likewise.
3279         (edgelst): Store edge pointer instead of edge index.
3280         (edgelst_table, edgelst_last): New variables.
3281         (extract_bitlst): Rename to ...
3282         (extract_edgelst): ... this.  Return edge pointers, not indices.
3283         (split_edges): Update call.
3284         (rgn_edges): Store edge pointers instead of indices.
3285         (edge_to_bit): Remove.
3286         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
3287         (SET_EDGE_TO_BIT): New macro.
3288         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
3289         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
3290         data structures instead of haifa_edge et al.  Use edge pointers
3291         instead of edge indices everywhere.
3292         (compute_dom_prob_ps): Use standard CFG data structures.  Account
3293         for exit edges.
3294         (compute_trg_info): Likewise.
3295         (propagate_deps): Likewise.
3296         (debug_candidate): Account for bblst data structure change.
3297         (check_live_1, update_live_1, is_pfree): Likewise.
3298         (IS_REACHABLE): Use standard CFG data structures.
3299         (init_ready_list): Update bblst_table/edgelst_table allocation.
3300         (schedule_region): Update alloc/cleanup code to data structure
3301         changes.  Use edge->aux to store per-region edge index.
3302         (init_regions): No longer call build_control_flow.  Do not
3303         create edge list any more.
3304
3305 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3306
3307         * cse.c (cse_insn): Avoid creating direct non-local jumps.
3308         * combine.c (can_combine_p): Likewise.
3309         * local-alloc. (update_equiv_regs): Likewise.
3310
3311 2004-09-28  Richard Henderson  <rth@redhat.com>
3312
3313         PR 17531
3314         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
3315         Don't check VOIDmode here.  Force PLUS operands to common type.
3316         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
3317         Pmode if given a non pointer type.
3318
3319 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3320
3321         PR 17531
3322         * optabs.c (expand_binop): Force constants to the correct mode.
3323
3324 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3325
3326         * config/s390/s390.c (s390_adjust_cost): Remove.
3327         (TARGET_SCHED_ADJUST_COST): Do not redefine.
3328         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3329         * config/s390/s390.md ("main_pool"): Use "larl" type
3330         attribute if TARGET_CPU_ZARCH.
3331
3332 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
3333
3334         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3335         variable.
3336
3337 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3338
3339         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3340         name to the pass.
3341
3342 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3343
3344         * common.opt (flag_gcse_sm): Disable by default.
3345         (flag_gcse_las): Likewise.
3346         (flag_web): Likewise.  Create from this file.
3347         * flags.h: Remove flag_web declaration.
3348         * toplev.c (flag_web): Likewise.
3349         (process_options): Never set flag_web.
3350
3351 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3352
3353         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3354         * tree-ssa-propagate.c: Include vec.h.
3355         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3356         instead of varrays.
3357         (cfg_blocks_add): Assert the block is not already in the worklist.
3358         Update uses of interesting_ssa_edges and varying_ssa_edges.
3359         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3360         ssa_propagate): Likewise.
3361
3362 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3363
3364         PR c/16409
3365         * c-decl.c (start_decl): Check for initializing incomplete array
3366         of VLAs.
3367         (build_compound_literal): Check for TYPE being error_mark_node.
3368         * c-parse.in (primary): Check for VLA compound literals.
3369
3370 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3371
3372         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3373         with --disable-checking.
3374
3375 2004-09-28  Devang Patel  <dpatel@apple.com>
3376
3377         * tree-pretty-print.c (dump_generic_node): Print vector types.
3378
3379 2004-09-28  Nick Clifton  <nickc@redhat.com>
3380
3381         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3382         invocation of the function sh_init_cumulative_args.
3383         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3384         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3385         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3386         * config/sh/sh.c (sh_init_cumulative_args): New function based
3387         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3388         heuristic added to determine the setting of force_mem when a
3389         library function is being called.
3390
3391 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3392
3393         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3394         Skip constant arguments.
3395
3396 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3397
3398         * tree-ssa-alias.c (create_name_tags): If PTR points to a
3399         volatile type, mark the tag volatile.
3400         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3401         volatile.
3402
3403 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
3404
3405         * tree.def (vec_cond_expr): Fix. Change 'e'
3406         to tcc_expression.
3407
3408 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3409
3410         * basic-block.h: Fix a comment typo.
3411
3412 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3413
3414         * optabs.c, optabs.h: Fix comment typos.
3415
3416 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
3417
3418         * config/sparc/sparc.md (call_address_struct_value_sp32):
3419         Properly mask the immediate field of the 'unimp' instruction.
3420         (call_symbolic_struct_value_sp32): Likewise.
3421
3422 2004-09-28  Ben Elliston  <bje@au.ibm.com>
3423             Steven Bosscher  <stevenb@suse.de>
3424             Andrew Pinski  <pinskia@physics.uc.edu>
3425
3426         Merge from edge-vector-branch:
3427         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3428         (struct edge_def): Remove pred_next, succ_next members.
3429         (struct basic_block_def): Remove pred, succ members.  Add preds
3430         and succs members of type VEC(edge).
3431         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3432         (BRANCH_EDGE): Likewise.
3433         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3434         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3435         (edge_iterator): New.
3436         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3437         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3438         (FOR_EACH_EDGE): New.
3439         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3440         where applicable.
3441         (rotate_loop): Likewise.
3442         (find_traces_1_route): Likewise.
3443         (bb_to_key): Likewise.
3444         (connect_traces): Likewise.
3445         (copy_bb_p): Likewise.
3446         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3447         (add_labels_and_missing_jumps): Likewise.
3448         (fix_up_fall_thru_edges): Likewise.
3449         (find_jump_block): Likewise.
3450         (fix_crossing_conditional_branches): Likewise.
3451         (fix_crossing_unconditional_branches): Likewise.
3452         (add_reg_crossing_jump_notes): Likewise.
3453         * bt-load.c (augment_live_range): Likewise.
3454         * cfg.c (clear_edges): Likewise.
3455         (unchecked_make_edge): Likewise.
3456         (cached_make_edge): Likewise.
3457         (make_single_succ_edge): Likewise.
3458         (remove_edge): Likewise.
3459         (redirect_edge_succ_nodup): Likewise.
3460         (check_bb_profile): Likewise.
3461         (dump_flow_info): Likewise.
3462         (alloc_aux_for_edges): Likewise.
3463         (clear_aux_for_edges): Likewise.
3464         (dump_cfg_bb_info): Likewise.
3465         * cfganal.c (forwarder_block_p): Likewise.
3466         (can_fallthru): Likewise.
3467         (could_fall_through): Likewise.
3468         (mark_dfs_back_edges): Likewise.
3469         (set_edge_can_fallthru_flag): Likewise.
3470         (find_unreachable_blocks): Likewise.
3471         (create_edge_list): Likewise.
3472         (verify_edge_list): Likewise.
3473         (add_noreturn_fake_exit_edges): Likewise.
3474         (connect_infinite_loops_to_exit): Likewise.
3475         (flow_reverse_top_sort_order_compute): Likewise.
3476         (flow_depth_first_order_compute): Likewise.
3477         (flow_preorder_transversal_compute): Likewise.
3478         (flow_dfs_compute_reverse_execute): Likewise.
3479         (dfs_enumerate_from): Likewise.
3480         (compute_dominance_frontiers_1):