OSDN Git Service

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