OSDN Git Service

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