OSDN Git Service

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