OSDN Git Service

f561385387e7493fd905e99f409e265c122940b4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2
3         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
4         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
5         punctuation outside quotes.
6
7 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
8             James E Wilson  <wilson@specifixinc.com>
9
10         PR target/13158
11         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
12         sibcall alloc instruction.
13         (process_set): Handle sibcall alloc instruction.
14
15 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
16
17         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
18         SUBTARGET_ATTRIBUTE_TABLE.
19         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
20         (SUBTARGET_ATTRIBUTE_TABLE): Define.
21         * config/darwin.c (darwin_handle_weak_import_attribute): New.
22         (HAVE_DEAD_STRIP): Delete.
23         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
24         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
25         Prototype.
26
27         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
28
29         * config/darwin.h (GTHREAD_USE_WEAK): Define.
30
31 2004-10-28  Ben Elliston  <bje@au.ibm.com>
32
33         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
34         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
35         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
36         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
37         * tree-sra.c: Include "params.h".
38         (decide_block_copy): Use new parameters.
39         * doc/invoke.texi (Optimize Options): Document new SRA pass
40         parameters sra-max-structure-size and sra-field-structure-ratio.
41
42 2004-10-27  Nicolas Pitre <nico@cam.org>
43
44         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
45
46 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
47
48         PR tree-optimization/18048
49         * fold-const.c (try_move_mult_to_index): New function.
50         (fold): Use try_move_mult_to_index.
51         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
52         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
53         an all-ones unsigned constant without extra bits.
54         * tree.c (build_low_bits_mask): New function.
55         * tree.h (build_low_bits_mask): Declare.
56
57 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
58
59         PR target/17956
60         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
61         final condition.
62         (minsf3): Same.
63         (maxdf3): Same.
64         (mindf3): Same.
65
66 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
67
68         * tree-cfg.c (thread_jumps): Speed up by reordering the two
69         conditions for entering basic blocks into worklist.
70
71 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
72
73         * tree-cfg.c (thread_jumps): Speed up by pretending to have
74         ENTRY_BLOCK_PTR in worklist.
75
76 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
77
78         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
79         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
80
81 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
82         
83         Fix PR tree-optimization/17133
84         
85         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
86         def kill operand.
87
88         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
89         (get_v_must_def_result_ptr): Modify for new structure of
90         v_must_defs array.
91         (get_v_must_def_kill_ptr): New.
92         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
93         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
94         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
95         (op_iter_init): Initialize new mustu members.
96         (op_iter_next_mustdef): New function.
97         (op_iter_init_mustdef): Ditto.
98
99         * tree-flow.h (rewrite_def_def_chains): New function.
100
101         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
102         (ssa_mark_def_sites): Ditto.
103         (rewrite_stmt): Ditto.
104         (ssa_rewrite_stmt): Ditto.
105         (rewrite_blocks): Factor out from rewrite_into_ssa.
106         (mark_def_block_sites): Ditto.
107         (rewrite_def_def_chains): New function, just rewrites def-def
108         chains without phi node insertion.
109
110         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
111
112         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.       
113
114         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
115         they include the rhs now.
116
117         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
118         V_MUST_DEF_RESULT. 
119
120         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
121         Update callers.
122         (mark_really_necessary_kill_operand_phis): New function.
123         (perform_tree_ssa_dce): Call it.
124         (pass_dce): Add TODO_fix_def_def_chains.
125         (pass_cd_dce): Ditto.
126
127         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
128         well.
129         (rewrite_mem_refs): Ditto.
130
131         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
132         as well.
133
134         * tree-ssa-operands.c (allocate_v_may_def_optype):
135         v_may_def_operand_type_t became v_def_use_operand_type_t.
136         (allocate_v_must_def_optype) Ditto.
137         (finalize_ssa_v_must_defs): Update for new operand type, as well
138         as setting the use portion as well.
139         (copy_virtual_operands): Copy the kill operand as well.
140         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
141         V_MUST_DEF_RESULT. 
142
143         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
144         v_def_use_operand_type. 
145         (v_must_def_optype_d): Use v_def_use_operand_type.
146         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
147         (V_MUST_DEF_KILL_*): New macros.
148         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
149         members.
150         Rename existing must_i and num_v_must members to mustd_i and
151         num_v_mustd. 
152         (SSA_OP_VMUSTDEFKILL): New flag.
153         (SSA_OP_VIRTUAL_KILLS): New flag.
154         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
155         (SSA_OP_ALL_KILLS): New flag.
156         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
157
158         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
159
160         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
161         became V_MUST_DEF_RESULT.
162         (rename_variables_in_bb): Rename kill pointer as well.
163
164         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
165         immediate uses.
166
167 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
168
169         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
170         the block that needs it.
171
172 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
173
174         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
175         ATTRIBUTE_UNUSED.
176
177 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
178
179         * c-lex.c (cb_def_pragma): Clean up code for making location
180         palatable to diagnostic.c.
181
182 2004-10-27  Steven Bosscher  <stevenb@suse.de>
183
184         PR tree-optimization/17757
185         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
186         without any PHI arguments left.  Make sure the argument that
187         we're supposed to remove exists at all.
188
189 2004-10-27  Paul Brook  <paul@codesourcery.com>
190
191         * configure.ac: Don't test for [build] __cxa_atexit when building a
192         cross compiler.
193         * configure: Regenerate.
194
195 2004-10-27  Paul Brook  <paul@codeosurcery.com>
196
197         * configure.ac: Use build_exeext not host_exeext when lookin for
198         target tools.
199         * configure: Regenerate.
200
201 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
202
203         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
204
205 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
206             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
207
208         PR middle-end/14684
209         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
210         to match -fprofile-use.
211
212 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
213
214         * config/rs6000/rs6000.c: Fix a comment typo.
215
216 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
217
218         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
219         counter.
220
221 2004-10-27  Andreas Schwab  <schwab@suse.de>
222
223         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
224         unused.
225         (default_stabs_asm_out_constructor): Likewise.
226
227 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
228
229         * builtins.c (fold_builtin_unordered_cmp): Always bring both
230         operands to the same type.
231
232 2004-10-26  James E Wilson  <wilson@specifixinc.com>
233
234         PR target/18010
235         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
236
237 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
238
239         * dbxout.c: Include obstack.h.
240         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
241         default definition.
242         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
243         Default-define here.
244         (DBX_CONTIN_LENGTH): Move definition with others.
245         (DBX_FINISH_STABS): New target macro.
246         (current_sym_code, current_sym_value, current_sym_addr)
247         (current_sym_nchars, CHARS, dbxout_continue)
248         (print_int_cst_octal, print_octal, print_wide_int)
249         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
250         (stabstr_ob, stabstr_last_contin_point): New variables.
251         (NUMBER_FMT_LOOP): New improper macro.
252         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
253         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
254         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
255         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
256         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
257         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
258         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
259         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
260         New functions and/or proper function-like macros.
261         (CONTIN): Use stabstr_continue, unconditionally.
262         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
263         (dbxout_init): Initialize stabstr_ob.  Check
264         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
265         if it was used.  Use the new interfaces.
266         (dbxout_source_file): Remove file argument; always write to
267         asm_out_file.  Use the new interfaces.
268         (dbxout_type_method_1): Remove second argument which is always
269         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
270         (dbxout_type_methods): Remove write-only variables.  Use the
271         new interfaces.
272         (dbxout_parms): Refactor to remove code duplicated in each of
273         several successive if-else-if blocks.  Use the new interfaces.
274         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
275         (dbxout_source_line, dbxout_finish, dbxout_type_index)
276         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
277         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
278         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
279         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
280         Use the new interfaces.
281         * Makefile.in (dbxout.o): Update dependencies.
282
283         * defaults.h: Don't define ASM_STABD_OP.
284         * output.h: Prototype new dbxout_* interfaces.
285         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
286         * varasm.c: Don't define ASM_STABS_OP.
287         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
288         Use the new dbxout.c interfaces.  Call sorry if neither
289         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
290
291         * xcoffout.h: Don't define ASM_STABS_OP.
292         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
293         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
294         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
295         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
296         do { ... } while (0) idiom.
297
298         * config/alpha/alpha.c (num_source_filenames): Export.
299         * config/alpha/alpha.h (num_source_filenames): Declare.
300         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
301         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
302         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
303         Always use .debugsym.  Update commentary.
304         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
305         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
306         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
307         Use new interfaces.
308         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
309         (macho_branch_islands): Use new interfaces.
310
311         * doc/tm.texi: Update.
312
313 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
314
315         * expr.c (emit_group_store): Do not treat floats as BLKmode.
316         (emit_group_load): Same.
317
318 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
319
320         * c-parse.in (datadef): Use pedwarn rather than error and warning
321         for diagnostic in case of no declaration specifiers.
322
323 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
324
325         PR bootstrap/15747
326         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
327         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
328         can be used to work around this.
329
330 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
331
332         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
333         doubles.
334
335 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
336
337         * stmt.c (expand_case): Update a comment.
338
339 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
340
341         * stmt.c (expand_case): Put an assertion that index_expr is
342         never INTEGER_CST.  Don't special case for constant
343         index_expr.
344
345 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
346
347         PR 18162
348         * c-parse.in (designator): Finish with a semi-colon.
349
350 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
351
352         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
353         into rotlsi3.
354
355 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
356
357         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
358         a default case only.
359
360 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
361
362         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
363         e500 doubles.
364         (spe_build_register_parallel): New.
365         (rs6000_spe_function_arg): Handle e500 doubles.
366         (function_arg): Same.
367         (spe_func_has_64bit_regs_p): Same.
368         (rs6000_function_value): Same.
369         (rs6000_libcall_value): Same.
370         (legitimate_lo_sum_address_p): Return false for e500 doubles.
371
372         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
373         doubles.
374         (DATA_ALIGNMENT): Same.
375         (CANNOT_CHANGE_MODE_CLASS): Same.
376
377 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
378
379         * expr.c (emit_group_load): Handle floats.
380         (emit_group_store): Same.
381
382 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
383
384         * c-lex.c (get_nonpadding_token): Remove.
385         (c_lex_with_flags): Push timevar and eat padding here.  Improve
386         stray token diagnostic.
387         (lex_string): Replace logic with switch statement, eat padding
388         token here.
389
390 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
391
392         PR 18149
393         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
394
395 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
396
397         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
398         to 'non-weak'.
399         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
400         (ASM_MAKE_LABEL_LINKONCE): Delete.
401         (ASM_WEAKEN_DECL): New.
402         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
403         (ASM_DECLARE_FUNCTION_NAME): Likewise.
404         (TEXT_SECTION_ASM_OP): Add a tab.
405         (DATA_SECTION_ASM_OP): Likewise.
406         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
407         data_section on every section change.
408         (EXTRA_SECTIONS): Add a bunch of new extra sections.
409         (EXTRA_SECTION_FUNCTIONS): Likewise.
410         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
411         (JCR_SECTION_NAME): Define.
412         (TARGET_SECTION_TYPE_FLAGS): Don't define.
413         * config/darwin.c (darwin_encode_section_info): A symbol is defined
414         in this file if it is not weak.
415         (textcoal_section): Delete.
416         (datacoal_section): Delete.
417         (darwin_make_decl_one_only): Delete.
418         (machopic_select_section): Handle functions.
419         (darwin_asm_named_section): Add a tab.
420         (darwin_section_type_flags): Delete.
421         (darwin_unique_section): Delete contents.
422         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
423         DECL_WEAK is set.
424         * config/darwin-protos.h (darwin_section_type_flags): Delete.
425         (darwin_make_decl_one_only): Delete.
426         (text_coal_section): New.
427         (text_unlikely_section): New.
428         (text_unlikely_coal_section): New.
429         (const_coal_section): New.
430         (data_coal_section): New.
431         (const_data_coal_section): New.
432         * varasm.c (function_section): Honour
433         USE_SELECT_SECTION_FOR_FUNCTIONS.
434         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
435         TARGET_USES_WEAK_UNWIND_INFO is in effect.
436         * dbxout.c (dbxout_source_file): Don't change sections while
437         a function is being output.
438
439 2004-10-25  David Ayers  <d.ayers@inode.at>
440
441         * c-common.h: Remove RID_ID.
442         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
443         (typespec_reserved_attr): Add rule for TYPENAME
444         non_empty_protocolrefs.
445         (yylexname): Remove special handling of RID_ID.
446
447 2004-10-25  James E Wilson  <wilson@specifixinc.com>
448
449         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
450
451 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
452
453         PR c/16667
454         * c-parse.in (array_designator): New.
455         (designator): Use it.
456         (initelt): Only permit array_designator without '=', not ".foo".
457
458 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
459         * gcc/Makefile.in: removed ggc for cgraphunit.
460         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
461         * gcc/cgraph.h: removed static var analysis data structures and calls.
462         * gcc/cgraphunit.c:
463         cgraph_mark_local_and_external_functions:changed name to
464                 cgraph_mark_local_functions
465         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
466         cgraph_reset_static_var_maps,get_global_static_vars_info,
467         get_global_statics_not_read,get_global_statics_not_written,searchc,
468         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
469         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
470         scan_for_static_refs,cgraph_characterize_statics_local,
471         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
472         removed.
473         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
474         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
475         analysis
476         * gcc/tree-flow.h static_vars_info: removed
477         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
478         removed calls to static vars analysis.
479         get_call_expr_operands: removed callee variable.
480
481 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
482
483         * cfg.c (unchecked_make_edge, redirect_edge_succ,
484         redirect_edge_pred): Use VEC_safe_push instead of
485         VEC_safe_insert.
486         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
487
488 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
489
490         * cfgloopmanip.c (loopify): Take two more arguments true_edge
491         and false_edge.
492         * cfgloop.h: Adjust the corresponding prototype.
493         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
494         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
495
496 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
497
498         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
499         DECL_INCOMING_RTL is NULL.
500
501 2004-10-25  Steven Bosscher  <stevenb@suse.de>
502
503         * timevar.def (TV_FIND_REFERENCED_VARS): New.
504         * tree-dfa.c (pass_referenced_var): Use it.
505
506 2004-10-25  Roger Sayle  <roger@eyesopen.com>
507             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
508
509         * cse.c: Change encoding of quantity numbers to avoid undefined
510         pointer arithmetic on qty_table.
511         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
512         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
513         (new_basic_block): Assign "real" quantity numbers from zero.
514         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
515         REG_QTY to its unique negative value.
516         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
517         (cse_main): Don't include max_reg when determining max_qty.
518         (cse_basic_block): Avoid subtracting a large offset from qty_table,
519         which causes undefined C99 behaviour.  Only allocate needed memory.
520
521 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
522
523         * stmt.c (expand_case): Remove an obsolete comment.
524
525 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
526
527         PR middle-end/17407
528         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
529         layout_type as it is already done by build_array_type.
530         * tree.c (build_array_type): Layout the type even
531
532 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
533
534         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
535
536 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
537
538         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
539         with wider-than-32-bit HOST_WIDE_INTs.
540
541 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
542
543         * config/mips/mips.c(mips_output_filename): Remove unused
544         array ltext_label_name
545
546 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
547
548         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
549
550 2004-10-25  Ben Elliston  <bje@au.ibm.com>
551
552         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
553
554 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
555
556         * predict.c (predict_loops): Call scev_finalize instead of
557         scev_reset.
558
559 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
560
561         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
562         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
563         config/sh/ushmedia.h, config/sparc/elf.h,
564         config/sparc/sp64-elf.h: Update copyright.
565
566 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
567
568         * stmt.c (expand_case): Handle the default label outside of
569         the for loop.  Remove code to handle a missing default label.
570
571 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
572
573         * dbxout.c (dbxout_function_decl): Don't use
574         DBX_OUTPUT_FUNCTION_END.
575         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
576         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
577
578 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
579
580         PR middle-end/17967
581         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
582
583 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
584
585         * tree-ssa-dom.c (record_equality): Use loop depth to determine
586         which way to record the equality as well.
587         (loop_depth_of_name): New function.
588
589 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
590
591         PR middle-end/17793
592         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
593         through the operand if it is a useless type conversion.
594
595 2004-10-23  Ben Elliston  <bje@au.ibm.com>
596
597         * cfg.c (remove_edge): Use VEC_unordered_remove.
598         (redirect_edge_succ): Likewise.
599         (redirect_edge_pred): Likewise.
600         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
601
602 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
603
604         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
605         beyond its end.
606
607 2004-10-22  Eric Christopher  <echristo@redhat.com>
608
609         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
610         saves.
611
612 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
613
614         * config/rs6000/spe.md (spe_extendsfdf2): New.
615         (movdf_e500_double): New.
616         (spe_truncdfsf2): New.
617         (spe_absdf2): New.
618         (spe_nabsdf2): New.
619         (spe_negdf2): New.
620         (sub_adddf3): New.
621         (spe_subdf3): New.
622         (spe_muldf3): New.
623         (spe_floatsidf2): New.
624         (spe_floatunssidf2): New.
625         (fix_truncdfsi2): New.
626         (spe_fixuns_truncdfsi2): New.
627
628         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
629         (fpr_truncdfsf2): New.
630         (negdf2): Change to expander.
631         (fpr_negdf2): New.
632         (fpr_nabsdf2): Name pattern.
633         (adddf3): Change to expander.
634         (fpr_adddf3): Nem.
635         (subdf3): Change to expander.
636         (fpr_subdf3): New.
637         (muldf3): Change to expander.
638         (fpr_muldf3): New.
639         (divdf3): Change to expander.
640         (fpr_divdf3): New.
641         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
642         (cmpdf): Allow for TARGET_E500_DOUBLE.
643
644 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
645
646         * c-semantics.c (re_push_stmt_list): Remove.
647         * c-common.h: Remove the corresponding prototype.
648
649 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
650
651         * stmt.c (asm_op_is_mem_input): Remove.
652         * tree.h: Remove the corresponding prototype.
653
654 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
655
656         * tree-gimple.c (is_gimple_constructor_elt): Remove.
657         * tree-gimple.h: Remove the corresponding prototype.
658
659 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
660
661         * varasm.c (get_pool_mode_for_function, get_pool_offset):
662         Remove.
663         * rtl.h: Remove the corresponding prototypes.
664
665 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
666
667         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
668         edge information when we commit ourselves to threading a
669         particular jump.
670
671 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
672
673         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
674         into worklist instead of their indexes.
675
676 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
677
678         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
679         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
680         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
681         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
682         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
683         tree-scalar-evolution.c, tree-ssa-dom.c,
684         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
685         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
686         tree-vectorizer.c, vec.h: Fix comment formatting.
687
688 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
689
690         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
691         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
692
693 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
694
695         * config/ptx4.h, config/mcore/mcore-pe.h,
696         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
697
698 2004-10-22  Peter Barada <peter@the-baradas.com>
699
700         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
701         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
702         renaming of non-live registers in interrupt functions.
703         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
704
705 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
706
707         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
708         Use integer for loop counter.
709         (num_ending_zeros): New function.
710         (number_of_iterations_cond): Use num_ending_zeros.
711
712 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
713
714         * config.gcc: Add support for --enable-e500_double.
715
716         * config/rs6000/e500-double.h: New file.
717
718         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
719         TARGET_E500_DOUBLE.
720
721         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
722         TARGET_E500_DOUBLE.
723
724         * config/rs6000/linuxspe.h: Same.
725
726         * doc/invoke.texi (Option Summary): Document new options for
727         mfloat-gprs.
728         (RS/6000 and PowerPC Options): Same.
729
730         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
731         function.
732         (rs6000_override_options): Use it.  Use
733         SUB3TARGET_OVERRIDE_OPTIONS.
734         Add 8548 to processor_target_table.
735         (rs6000_legitimate_address): Handle e500 doubles.
736         (rs6000_legitimize_address): Same.
737         (rs6000_legitimize_reload_address): Same.
738         (rs6000_hard_regno_nregs): Same.
739         (spe_func_has_64bit_regs_p): Same.
740         (emit_frame_save): Same.
741         (gen_frame_mem_offset): Same.
742         (rs6000_dwarf_register_span): Same.
743         (rs6000_generate_compare): Same.
744         (easy_fp_constant): Same.
745         (legitimate_offset_address_p): Same.
746
747         * config/rs6000/spe.md: (cmdfeq_gpr): New.
748         (tstdfeq_gpr): New.
749         (cmpdfgt_gpr): New.
750         (tstdfgt_gpr): New.
751         (tstdfgt_gpr): New.
752         (cmpdflt_gpr): New.
753         (tstdflt_gpr): New.
754         Add new constants.
755
756 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
757
758         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
759
760 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
761
762         * dbxout.c: Remove unnecessary #undefs.
763         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
764         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
765         definition into use sites.
766         (cwd): Make local to dbxout_init.
767         (dbxout_init): Restructure cwd-using logic for clarity.  Use
768         IS_DIR_SEPARATOR.
769         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
770         STABS_GCC_MARKER folded in here.
771         * system.h: Poison now-unused macros.
772         * doc/tm.texi: Remove documentation of now-unused macros.
773
774 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
775
776         PR c/17538
777         * c-opts.c (push_command_line_include): Use the current file
778         name instead of the main one.
779
780 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
781
782         PR objc/17923
783         * tree.c (staticp): A CONST_DECL has static storage if either
784         TREE_STATIC or DECL_EXTERNAL is set.
785         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
786         have null names.
787
788 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
789
790         * expr.c (store_expr): Remove dont_store_target.
791
792 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
793
794         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
795
796 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
797
798         * tree-cfg.c (thread_jumps): Move a part of it to ...
799         (thread_jumps_from_bb): ... here.
800
801 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
802
803         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
804         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
805
806 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
807
808         * expr.c (store_expr): Clean up by renaming want_value to
809         call_param_p.
810
811 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
812
813         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
814         fixup pc here.
815
816 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
817
818         PR 18004.
819         * expmed.c (store_bit_field): Pass original 'value' before
820         recursing.
821
822 2004-10-21  Nicolas Pitre <nico@cam.org>
823
824         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
825         * config/arm/ieee754-df.S: Ditto.
826
827 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
828
829         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
830         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
831         Default to 0.
832         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
833         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
834         an internal label and an N_SLINE .stabn whose value is the
835         difference between that label and the function entry label.
836         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
837         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
838         label and an N_SO stab with an empty string referring to it.
839         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
840         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
841         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
842         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
843         macro is never defined.
844         * sdbout.c (sdbout_source_line_counter): Delete.
845         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
846         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
847         only two arguments.
848         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
849
850         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
851         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
852         definitions (identical to default).
853         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
854         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
855         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
856         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
857         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
858         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
859         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
860         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
861         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
862         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
863         (sym_lineno): Delete.
864         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
865         now-unused variable.
866         (alpha_output_lineno): Delete.
867         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
868         * config/mips/mips.c (mips_output_filename): Don't use
869         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
870         (mips_output_lineno): Delete.
871         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
872         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
873         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
874         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
875         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
876         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
877         * config/mmix/mmix.h: Likewise.
878         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
879         * config/mmix/mmix-protos.h: Don't prototype it.
880         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
881         no need to #undef ASM_OUTPUT_SOURCE_LINE.
882         * config/arm/aout.h: Remove RISCiX-specific definition of
883         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
884         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
885         ASM_OUTPUT_SOURCE_LINE.
886         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
887         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
888         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
889
890         * doc/tm.texi: Update.
891
892 2004-10-20  Richard Henderson  <rth@redhat.com>
893
894         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
895
896 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
897
898         * configure.ac: Revert my previous patch.
899         * configure: Regenerate.
900
901 2004-10-20  Ben Elliston  <bje@au.ibm.com>
902
903         * config/rs6000/rs6000.c
904         (rs6000_va_start): Use build_va_arg_indirect_ref.
905         (rs6000_gimplify_va_arg): Likewise.
906
907 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
908
909         PR java/15575
910         * configure.ac: Declare AM_LANGINFO_CODESET.
911         * aclocal.m4: Define AM_LANGINFO_CODESET.
912         * configure, config.in: Rebuilt.
913
914 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
915
916         * expr.c (store_expr): Remove code that is run when
917         want_value & 1 is nonzero.
918
919 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
920
921         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
922         from function pointer to void *.
923
924 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
925
926         PR target/18032
927         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
928         the frame pointer adjustment when exception handling is enabled.
929
930 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
931
932         * stor-layout.c: Fix a comment typo.
933
934 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
935
936         * expr.c (store_field): Remove two arguments value_mode and
937         unsignedp.
938         (expand_assignment, store_constructor_field,
939         expand_expr_real_1): Adjust calls to store_field.
940
941 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
942
943         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
944
945         PR target/17317
946         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
947         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
948         base and index register for loads.
949
950         * config/arc/t-arc: Fix multilib handling.
951
952 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
953
954         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
955         don't inspect BLOCK_FOR_INSN for barriers.
956         * emit-rtl.c (emit_barrier_before): Revert last change.
957         (emit_barrier_after, emit_barrier): Ditto.
958
959         * doc/extend.texi (Extended Asm): Warn and provide example
960         solution for using a call-clobbered asm register.
961         (Local Reg Vars): Similar.  Cross-reference example.
962
963 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
964
965         * tree-cfg.c (group_case_labels): Look at the second to last
966         case statement for combing with the default case.
967
968 2004-10-19  Richard Hendeson  <rth@redhat.com>
969
970         PR 17962
971         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
972
973 2004-10-19  Richard Hendeson  <rth@redhat.com>
974
975         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
976         succeeds, only expand the result.
977
978 2004-10-19  Richard Hendeson  <rth@redhat.com>
979
980         PR middle-end/17885
981         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
982         of INDIRECT_REF.
983
984 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
985
986         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
987         loop with goto.
988
989 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
990
991         * expr.c (expand_assignment): Remove the last argument.
992         Change the return type to void.
993         * expr.h: Update the prototype of expand_assignment.
994         * function.c (assign_parm_setup_reg): Update a call to
995         expand_assignment.
996         * stmt.c (expand_asm_expr): Likewise.
997
998 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
999
1000         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
1001         unnecessary assignments to temp.  Return const0_rtx.
1002
1003 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1004
1005         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
1006
1007 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
1008
1009         * configure.ac (powerpc-*-darwin*): Require assembler to support
1010         .machine directive.
1011         * configure: Regenerate.
1012
1013 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1014
1015         * reload1.c (ior_hard_reg_set): Remove.
1016         (finish_spills): Use IOR_HARD_REG_SET instead of
1017         ior_hard_reg_set.
1018
1019 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1020
1021         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
1022         the currently visited word to right.
1023
1024 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1025
1026         PR middle-end/18045
1027         * expmed.c (expand_smod_pow2): Handle modes whose size
1028         is greater than that of HOST_WIDE_INT.
1029
1030 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
1031
1032         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
1033
1034 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1035             Roger Sayle  <roger@eyesopen.com>
1036
1037         PR middle-end/17813
1038         * dojump.c (discard_pending_stack_adjust): New function.
1039         (clear_pending_stack_adjust): Call it.
1040         * expr.h (discard_pending_stack_adjust): Declare it.
1041         * explow.c (emit_stack_save): Emit pending stack adjustments
1042         before saving the stack pointer.
1043         (emit_stack_restore): Discard pending stack adjustments before
1044         restoring the stack pointer.
1045
1046 2004-10-18  Richard Henderson  <rth@redhat.com>
1047
1048         * c-common.c (handle_mode_attribute): Allow scalar->vector
1049         type changes yet.
1050
1051 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1052
1053         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
1054         value to expand_assignment.
1055
1056 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1057
1058         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
1059         thread_jumps.
1060         (thread_jumps): Iterate until no new forwarder block arises.
1061
1062 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1063
1064         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
1065         (thread_jumps): Use forwardable as cache of
1066         tree_forwarder_block_p throughout the function.
1067
1068 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1069
1070         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
1071
1072 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
1073
1074         PR middle-end/15014
1075         PR middle-end/16973
1076         * tree-cfg.c (remove_bb): If we have a label expression in the
1077         basic block and the label we have taken the address, move the
1078         label expression to the basic block which is previous in the
1079         linked list.
1080         (tree_verify_flow_info): Fix printing out the label name of the
1081         problematic label expression.
1082
1083 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
1084
1085         PR rtl-optimization/18002
1086         * simplify-rtx.c (mode_signbit_p): Externalize function...
1087         * rtl.h (mode_signbit_p): ... to here.
1088         * combine.c (simplify_shift_const): Recognize PLUS signbit as
1089         canonical form of XOR signbit and move to outer op.
1090
1091 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1092
1093         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
1094         Update all callers.
1095         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
1096         Don't call fold_stmt more than once, use bsi_replace.
1097
1098 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1099
1100         PR tree-optimization/17656
1101         * tree-ssa.c (replace_immediate_uses): When replacing a
1102         constant, if the call to fold_stmt produced a different
1103         statement, get an appropriate statement pointer by scanning
1104         STMT's basic block.
1105
1106 2004-10-18  Richard Henderson  <rth@redhat.com>
1107
1108         * pointer-set.c (hash1): Don't use libm functions in fallback case.
1109
1110 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
1111
1112         PR bootstrap/17684
1113         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
1114         (stage1-start): Remove and copy libunwind.a and
1115         libunwind*$(SHLIB_EXT) instead of libunwind*.
1116         (stage2-start): Likewise.
1117         (stage3-start): Likewise.
1118         (stage4-start): Likewise.
1119         (stageprofile-start): Likewise.
1120         (stagefeedback-start): Likewise.
1121
1122         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
1123         the shared library to be created and don't remove the existing
1124         shared library.
1125         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1126         * config/i386/t-nwld (SHLIB_LINK): Likewise.
1127         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1128         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1129         * config/sh/t-linux (SHLIB_LINK): Likewise.
1130         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1131         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1132         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1133         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1134
1135         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
1136         files.
1137
1138 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1139
1140         * basic-block.h (reg_set_iterator): New.
1141         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
1142         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
1143         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
1144         * caller-save.c (save_call_clobbered_regs): Adjust to the new
1145         style.
1146         * cfgcleanup.c (thread_jump): Likewise.
1147         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1148         * conflict.c (conflict_graph_compute): Likewise.
1149         * flow.c (verify_local_live_at_start, update_life_info,
1150         initialize_uninitialized_subregs, propagate_one_insn,
1151         init_propagate_block_info, free_propagate_block_info,
1152         propagate_block, dump_regset): Likewise.
1153         * global.c (global_conflicts): Likewise.
1154         * graph.c (start_bb): Likewise.
1155         * local-alloc.c (update_equiv_regs): Likewise.
1156         * loop.c (load_mems): Likewise.
1157         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
1158         find_reg, finish_spills): Likewise.
1159         * resource.c (mark_target_live_regs): Likewise.
1160         * sched-deps.c (sched_analyze_insn): Likewise.
1161         * sched-rgn.c (sched-rgn.c): Likewise.
1162         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1163
1164 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
1165
1166         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
1167         operand 1 instead of 2
1168
1169 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1170
1171         * loop-unroll.c: Fix comment typos.
1172
1173 2004-10-18  Revital Eres  <eres@il.ibm.com>
1174
1175         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
1176         * loop-unroll.c: Include varray.h.
1177         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
1178         opt_info and expand it to support variable expansion.
1179         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
1180         expand it to support variable expansion.
1181         (pt_info_start_duplication): Rename si_info_start_duplication.
1182         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
1183         to the variable expansion optimization.
1184         (free_opt_info): Rename free_si_info.
1185         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
1186         expand_var_during_unrolling, insert_var_expansion_initialization,
1187         combine_var_copies_in_loop_exit, release_var_copies,
1188         get_expansion): New functions.
1189         (peel_loop_completely, unroll_loop_constant_iterations,
1190         unroll_loop_runtime_iterations, peel_loop_simple,
1191         unroll_loop_stupid): Change uses of struct si_info
1192         to struct opt_info
1193         and add uses of fvariable-expansion-in-unroller flag.
1194         * params.def: Add parameter to restrict the number of expansions.
1195         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
1196         the number of expansions.
1197         * common.opt: (fvariable-expansion-in-unroller): New flag.
1198         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
1199
1200 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1201
1202         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1203         __GXX_MERGED_TYPEINFO_NAMES to 0.
1204
1205 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
1206
1207         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1208         handle barriers in a bb by checking that it points to a NULL bb.
1209         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
1210         (emit_barrier_after, emit_barrier): Ditto.
1211
1212 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
1213
1214         * doc/extend.texi (Attribute Syntax): Clarify details of
1215         attributes on parameters.
1216
1217 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
1218
1219         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
1220         loop.
1221
1222 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1223
1224         Revert:
1225         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1226
1227         * c-typeck.c (default_function_array_conversion): Always create
1228         &a[0] for array types.
1229         (build_unary_op): Do not fold &a[x] into a + x.
1230
1231 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1232
1233         PR middle-end/17925
1234         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1235         block if there is a goto with a locus.
1236
1237 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1238
1239         * config/elfos.h, config/gofast.h, config/interix.h,
1240         config/netbsd.h, config/svr3.h, config/vxworks.h,
1241         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1242         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1243         config/alpha/netbsd.h, config/arm/arm-modes.def,
1244         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1245         config/cris/aout.h, config/frv/frv-modes.def,
1246         config/i386/beos-elf.h, config/i386/gas.h,
1247         config/i386/i386-coff.h, config/i386/i386-modes.def,
1248         config/i386/linux.h, config/i386/linux64.h,
1249         config/i386/mingw32.h, config/i386/netbsd-elf.h,
1250         config/i386/netbsd64.h, config/i386/sco5.h,
1251         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1252         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1253         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1254         config/mips/mips-modes.def, config/mips/sdb.h,
1255         config/mips/vr.h, config/mips/vxworks.h,
1256         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1257         config/pa/pa32-linux.h, config/rs6000/40x.md,
1258         config/rs6000/7450.md, config/rs6000/8540.md,
1259         config/rs6000/linuxspe.h, config/rs6000/power4.md,
1260         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1261         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1262         config/s390/s390-modes.def, config/sh/elf.h,
1263         config/sh/sh-modes.def, config/sh/sh64.h,
1264         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1265         config/stormy16/stormy16.md, config/v850/v850-protos.h,
1266         config/vax/vax.md: Update copyright.
1267
1268 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1269
1270         * expr.c (expand_expr_real_1): Remove an obsolete comment.
1271
1272 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1273
1274         * c-typeck.c (default_function_array_conversion): Always create
1275         &a[0] for array types.
1276         (build_unary_op): Do not fold &a[x] into a + x.
1277
1278 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
1279
1280         * pointer-set.c (hash1): Use integer part of 2^64 / phi
1281         instead 2^32 / phi if long is 64-bit.
1282
1283 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1284
1285         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1286         RID_PTRVALUE.
1287         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1288         declarations.
1289         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1290         __ptrextent__, __ptrvalue and __ptrvalue__.
1291         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1292         entries.
1293
1294 2004-10-16  Dale Johannesen  <dalej@apple.com>
1295
1296         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
1297
1298 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1299
1300         PR tree-optimization/17766
1301         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1302         (dom_info_available_p): Declare.
1303         * cfghooks.c (split_block, make_forwarder_block): Use
1304         dom_info_available_p.
1305         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1306         free_dominance_info, verify_dominators): Ditto.
1307         (dom_info_available_p): New function.
1308         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1309         (thread_jumps): Use dom_info_available_p.
1310         * tree-complex.c (expand_complex_div_wide): Ditto.
1311         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1312
1313 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1314
1315         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1316         (find_best_candidate): Take also important candidates into account.
1317         (find_optimal_iv_set): Initialize important_candidates bitmap.
1318
1319 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1320
1321         PR tree-optimization/17560
1322         * predict.c (tree_estimate_probability): Mark irreducible
1323         loops.
1324
1325 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1326
1327         PR rtl-optimization/17723
1328         * cfgcleanup.c (merge_memattrs): Handle case when
1329         MEM_SIZE == NULL_RTX.
1330
1331 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
1332
1333         * toplev.c (dump_file_name): Change type to be const.
1334
1335 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1336
1337         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1338         non_lvalue to stop something being a null pointer constant.
1339
1340 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
1341
1342         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1343         available for TARGET_FPRS.
1344         (FUNCTION_VALUE_REGNO_P): Same.
1345
1346 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
1347
1348         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1349         -maltivec in same style as other ISA options.
1350
1351 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
1352
1353         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1354         definition.
1355
1356 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1357
1358         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1359         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1360         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1361         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1362         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1363         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1364         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1365         predict.def, predict.h, protoize.c, reload.h, resource.h,
1366         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1367         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1368         unwind-sjlj.c, value-prof.h: Update copyright.
1369
1370 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1371
1372         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1373
1374 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
1375
1376         * tree-optimize.c (execute_one_pass): Stop timer right after
1377         executing the pass.
1378
1379 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1380
1381         Revert:
1382         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1383         PR middle-end/17967
1384         Revert:
1385                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1386                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1387
1388 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1389
1390         * configure.ac: Add .machine power4 directive when testing for
1391         mfcr field.
1392         * configure: Regenerate.
1393
1394 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1395
1396         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1397
1398 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1399
1400         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1401         always.
1402
1403 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
1404
1405         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1406         for 'f' if !TARGET_FPRS.
1407
1408 2004-10-14  Richard Henderson  <rth@redhat.com>
1409
1410         PR debug/14492
1411         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1412
1413 2004-10-14  Richard Henderson  <rth@redhat.com>
1414
1415         PR c/17023
1416         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1417         as error_mark_node.
1418         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1419         instaed of current_function_decl non-null.
1420
1421 2004-10-14  Matt Austern  <austern@apple.com>
1422
1423         * pointer-set.c: New file, special-purpose hash table.
1424         * pointer-set.h: New file.
1425         * tree.h (struct pointer_set_t): Declare as opaque type.
1426         (tree_walk): Last argument is pointer_set_t* now.
1427         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1428         (walk_type_fields):
1429         (walk_tree): Convert from htab_t to pointer_set_t for keeping
1430         track of which nodes have already been visited.
1431         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1432         * cgraphunit.c (cgraph_create_edges): Likewise.
1433         (cgraph_characterize_statics_local): Likewise.
1434         * tree-dfa.c (collect_dfa_stats): Likewise.
1435         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1436         pointer_set_t* now.
1437         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1438         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1439         of walk_subtrees is pointer_set_t* now.
1440         * Makefile.in (OBJS-common): add pointer-set.o
1441         (tree-inline.o): Depends on pointer-set.h
1442         (tree-dfa.o): Likewise
1443         (cgraphunit.o): Likewise
1444
1445 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1446
1447         * config/rs6000/darwin.h (ASM_SPEC): Delete.
1448         (TARGET_ASM_FILE_START): Define.
1449         * config/darwin.h (ASM_SPEC): Define.
1450         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1451         -mlong-double-128, it's the default.  Update comment about reason
1452         for force_cpusubtype_ALL.
1453         * config/rs6000/darwin-vecsave.asm: Supply .machine.
1454         * config/rs6000/darwin-world.asm: Likewise.
1455         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1456         (symbolic_operand): Delete #if 0ed code.
1457
1458 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1459
1460         * stmt.c (add_case_node): Make sure that we have integer
1461         constant before calling tree_int_cst_compare.
1462
1463 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1464
1465         PR middle-end/17967
1466         Revert:
1467                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1468                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1469
1470 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
1471
1472         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1473         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1474         -m64.
1475
1476 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
1477
1478         * reload.c (find_reloads): When reloading a PLUS with constant
1479         operand, make sure the constant is pushed to the constant pool
1480         if required.
1481         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1482         reload bug workaround.
1483         (s390_expand_plus_operand): Likewise.
1484
1485 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1486
1487         * opts.c (common_handle_option): Do not enable
1488         flag_speculative_prefetching for -fprofile-generate/use.
1489
1490 2004-10-14  Devang Patel  <dpatel@apple.com>
1491
1492         PR 17635
1493         * tree-if-conv.c (process_phi_nodes): Process latch block.
1494         (combine_blocks): Process latch block and update loop structure.
1495
1496 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
1497
1498         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1499         (vect_update_ivs_after_vectorizer):
1500         (vect_transform_for_unknown_loop_bound):
1501         (tree_duplicate_loop_to_edge):
1502         (allocate_new_names):
1503         (rename_use_op):
1504         (rename_def_op):
1505         (rename_variables_in_bb):
1506         (free_new_names):
1507         (rename_variables_in_loop):
1508         (copy_phi_nodes):
1509         (update_phis_for_duplicate_loop):
1510         (update_phi_nodes_for_guard):
1511         (make_loop_iterate_ntimes):
1512         (tree_duplicate_loop_to_edge_cfg):
1513         (add_loop_guard):
1514         (vect_analyze_loop_with_symbolic_num_of_iters):
1515         (verify_loop_for_duplication):
1516         (vect_gen_niters_for_prolog_loop):
1517         (vect_update_niters_after_peeling):
1518         (vect_update_inits_of_dr):
1519         (vect_update_inits_of_drs):
1520         (vect_build_loop_niters):
1521         (vect_do_peeling_for_alignment): New functions.
1522         (vect_transform_loop): Add unknown and known but indivisible loop
1523         bound support; add peeling for unalignment support.
1524         (vect_analyze_loop_form): Support symbolic number of iterations.
1525         (vect_transform_loop_bound): New input parameter.
1526         (vect_get_loop_niters): Change input parameter type.
1527         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1528         (vectorizable_store): Allow unaligned access.
1529         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1530         (vect_analyze_data_refs_alignment): Allowed one unaligned
1531         store.
1532         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1533         to use tree.
1534         (LOOP_VINFO_INT_NITERS): New macro.
1535         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1536         (do_peeling_for_alignment):
1537         (unaligned_drs): New members of _loop_vec_info.
1538         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1539
1540 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
1541
1542         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1543         (struct tree_string): Remove "const" qualifier for "str".
1544
1545 2004-10-14  Ira Rosen  <irar@il.ibm.com>
1546
1547         * tree-vectorizer.c (vect_analyze_data_refs): Call
1548         vect_get_base_and_bit_offset to get memory tag for array ref.
1549         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1550
1551 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
1552
1553         * configure.ac: Use $LN_S for creating symlinks (not $LN).
1554         * configure: Regenerate.
1555
1556 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1557
1558         * doc/install.texi (*-*-solaris2*): Update with info about kernel
1559         patches to solve spurious testsuite failures.
1560
1561 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
1562
1563         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1564         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1565         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1566         gcc_assert under ENABLE_CHECKING.
1567         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1568         get_vectype_for_scalar_type).
1569
1570         (vect_get_vec_def_for_operand): Remove redundant variables.
1571         (vect_transform_loop): Likewise.
1572
1573 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
1574
1575         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1576         global for -mcaller-super-interworking.
1577         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1578         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1579         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1580         not need a frame pointer.
1581         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1582         the soft frame pointer offset.
1583         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1584         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1585         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1586         the stack.  Use frame_pointer_needed to choose between them.
1587         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1588         (interwork_with_frame): New macro.
1589         (interwork): Add _interwork_{r7,r11}_call_via_rN().
1590
1591 2004-10-14  Ben Elliston  <bje@au.ibm.com>
1592
1593         PR other/17900
1594         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1595         up the filename looking for a previous directory separator.
1596
1597 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1598
1599         * c-tree.h (enum c_typespec_kind, struct c_typespec,
1600         parser_xref_tag): New.
1601         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
1602         typedef_p.
1603         (declspecs_add_type): Adjust prototypes.
1604         * c-parse.in (%union): Add tstype.
1605         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1606         typespec_reserved_attr, typespec_nonreserved_nonattr,
1607         structsp_attr, structsp_nonattr): Change to tstype.  Update
1608         actions.
1609         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1610         (declspecs_add_type): Update to take struct c_typespec argument.
1611         Set tag_defined_p and typedef_p as appropriate.
1612         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1613         Update to return struct c_typespec.
1614         (shadow_tag_warned): Don't let empty declarations with qualifiers
1615         or storage class specifiers redeclare a tag if a previous
1616         declaration is visible.
1617
1618 2004-10-13  Richard Henderson  <rth@redhat.com>
1619
1620         PR debug/15860
1621         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1622         for DECL_INCOMING_RTL.
1623
1624 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
1625
1626         PR target/17984
1627         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1628         trunc_int_for_mode for constants used in shortened mode.
1629
1630 2004-10-13  Richard Henderson  <rth@redhat.com>
1631
1632         PR c/17384
1633         * c-common.c (handle_mode_attribute): Disallow mode changes that
1634         alter the CODE of the top-level type.
1635
1636         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
1637         integer from internal limits macros.
1638         * config/i386/mm3dnow.h (__v2sf): Fix base type.
1639
1640 2004-10-13  Richard Henderson  <rth@redhat.com>
1641
1642         PR debug/13841
1643         * function.c (instantiate_decl): Recurse for CONCAT.
1644
1645 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
1646
1647         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1648         andi./andis.
1649         (anddi3): Same.
1650         (extzvdi_internal1): Add attribute "compare".
1651         (extzvdi_internal2): Same.
1652
1653 2004-10-12  Tom Tromey  <tromey@redhat.com>
1654
1655         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1656
1657 2004-10-13  Dale Johannesen  <dalej@apple.com>
1658
1659         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
1660
1661 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
1662
1663         * toplev.c (compile_file): Call mudflap_finish_file from here ...
1664         * c-decl.c (c_write_global_declarations): ... instead of here ...
1665         * cp/decl.c (cp_finish_file): ... and here.
1666         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1667
1668 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1669
1670         * tree-ssa-dom.c (record_range): Free the element if we are not
1671         going to use it.
1672
1673 2004-10-13  Tom Tromey  <tromey@redhat.com>
1674
1675         PR java/15578:
1676         * gcc.c (option_map): Added --extdirs and --encoding.
1677
1678 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1679
1680         PR target/14454
1681         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1682         sparc_can_output_mi_thunk.
1683         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
1684         handling of vcall offset.
1685         (sparc_can_output_mi_thunk): New predicate.
1686         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1687         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1688         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1689
1690         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1691
1692         * config/sparc/sparc.md (movdi): Remove redundant test.
1693
1694 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
1695
1696         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1697         TDF_IPA from -fdump-tree-*-all.
1698
1699 2004-10-13  Paul Brook  <paul@codesourcery.com>
1700
1701         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1702         * config/arm/arm.c (thumb_find_work_register): Update comments.
1703         (arm_load_pic_register): Add argument for scratch register.
1704         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1705         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1706
1707 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
1708
1709         * tree-data-ref.c: Fix comment typos.
1710
1711 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
1712             Zdenek Dvorak  <dvorakz@suse.cz>
1713
1714         PR tree-optimization/17724
1715         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1716
1717 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
1718
1719         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1720         (altivec_builtin_mask_for_store): Likewise.
1721         (altivec_init_builtins): Use lang_hooks.builtin_function to
1722         create the decls for builtin_altivec_mask_for_load/store.
1723
1724 2004-10-13  Nick Clifton  <nickc@redhat.com>
1725
1726         * config/c4x/c4x.c: Remove inclusion of loop.h.
1727
1728 2004-10-12  Ben Elliston  <bje@au.ibm.com>
1729
1730         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1731         (ei_container): New; renamed.
1732         (ei_start, ei_last): New macros.
1733         (ei_start_1, ei_last_1): Renamed from ei_start.
1734         (ei_last_1, ei_end_p): Use ei_container() where applicable.
1735         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1736         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1737
1738 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
1739
1740         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1741         * cfgloop.c (initialize_loops_parallel_p): New.
1742         (flow_loops_find): Initialize the parallel_p field to true for all
1743         the loops.
1744         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1745         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1746         the size of the data accessed in the loop.
1747         (struct nb_iter_bound): Moved...
1748         * cfgloop.h (struct nb_iter_bound): ... here.
1749         (estimated_nb_iterations, parallel_p): New fields in struct loop.
1750         (record_estimate): Declare extern here.
1751         * tree-chrec.c: Fix comments.
1752         (nb_vars_in_chrec): New function.
1753         * tree-chrec.h (nb_vars_in_chrec): Declared here.
1754         * tree-data-ref.c: Don't include lambda.h, that is already included
1755         in tree-data-ref.h.
1756         (tree_fold_divides_p): Don't check for integer_onep.
1757         (tree_fold_bezout): Removed.
1758         (gcd): New static duplicated function.
1759         (int_divides_p, dump_subscript): New.
1760         (dump_data_dependence_relation): Use dump_subscript.
1761         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1762         estimate_niter_from_size_of_data): New.
1763         (analyze_array_indexes, analyze_array): Call
1764         estimate_niter_from_size_of_data during the detection of array
1765         references.  Pass in a pointer to the statement that contains the
1766         array reference.
1767         (all_chrecs_equal_p): New.
1768         (compute_distance_vector): Renamed compute_subscript_distance.
1769         Deal with multivariate conflict functions.
1770         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1771         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1772         (non_affine_dependence_relation): New.
1773         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1774         analyze_siv_subscript, analyze_miv_subscript,
1775         analyze_overlapping_iterations, subscript_dependence_tester):
1776         Initialize and return last_conflicts function.
1777         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1778         compute_overlap_steps_for_affine_1_2): New.
1779         (analyze_siv_subscript_affine_cst): Removed.
1780         (analyze_subscript_affine_affine): Disprove dependences based on the
1781         iteration domains.  Solve the univariate dependence case as before,
1782         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1783         Implement the multivariate case of 2 versus 1 variables.
1784         (build_classic_dist_vector, build_classic_dir_vector): Implement some
1785         unhandled cases.
1786         (find_data_references_in_loop): Compute and initialize
1787         loop->estimated_nb_iterations and loop->parallel_p.
1788         (analyze_all_data_dependences): Modify the debug dump order.
1789         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1790         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1791         (SUB_LAST_CONFLICT, subscript->last_conflict,
1792         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1793         DDR_AFFINE_P, DDR_SIZE_VECT): New.
1794         (find_data_references_in_loop, initialize_data_dependence_relation,
1795         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1796
1797 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
1798
1799         * configure: Regenerate.
1800
1801 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
1802
1803         PR 17892
1804         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1805         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1806         and constant folding of floating point MULT_EXPR/PLUS_EXPR
1807         expressions.
1808
1809 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
1810
1811         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1812         (s390_gimplify_va_arg): Likewise.
1813
1814 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
1815
1816         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1817         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1818         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1819         * regclass.c (record_address_regs): Remove ifdef.  Use
1820         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1821         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1822         definition.
1823         (scan_rtx_address, replace_oldest_value_addr): Use
1824         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1825         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1826         unnecessary definitions.
1827         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1828         and MODE_BASE_REG_REG_CLASS.
1829         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1830         (MODE_BASE_REG_REG_CLASS): Define.
1831         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1832         (REG_MODE_OK_FOR_REG_BASE_P): Define.
1833         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1834         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1835
1836 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
1837
1838         * tree-ssa-alias.c (verify_name_tags): New function.
1839         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1840         (verify_alias_info): Call verify_name_tags.
1841
1842 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
1843
1844         PR rtl-optimization/17931
1845         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1846         ZERO_EXTRACT in it.
1847
1848 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
1849
1850         * arm.c (arm_print_operand): Use output_operand_lossage where possible
1851         rather than aborting.
1852
1853 2004-10-12  Paul Brook  <paul@coudesourcery.com>
1854
1855         * config.gcc: Add armv6{k,z,zk}
1856         * config/arm/arm-cores.def: Add arm1176 and mpcore.
1857         * config/arm/tune.md: Regenerate.
1858         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1859         Define.
1860         (all_architectures): Add armv6k, armv6z, armv6zk.
1861         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1862         * doc/invoke.texi: Document new arch and cpu values.
1863
1864 2004-10-12  Paul Brook  <paul@coodesourcery.com>
1865
1866         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1867         meabi=4.
1868
1869 2004-10-12  Paul Brook  <paul@codesourcery.com>
1870
1871         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1872         Handle negative constants.
1873
1874 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
1875
1876         PR c/17301
1877         * c-typeck.c (convert_arguments): Return error_mark_node if there
1878         are too few arguments.
1879         (build_function_call): Handle error_mark_node return from
1880         convert_arguments.
1881
1882 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
1883
1884         * configure.ac (symbolic_link): Replace with $LN_S.
1885         (Assembler/Linker): Hard link from gas and binutils trees.
1886         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1887         * configure: Regenerate.
1888
1889 2004-10-12  Paul Brook  <paul@codesourcery.com>
1890
1891         * configure.ac: Don't look for host assembler when building a canadian
1892         cross.
1893         * configure: Regenerate.
1894
1895 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1896
1897         PR other/17361
1898         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1899         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
1900         line options for "-lang-asm" and if found allow any of the C-family
1901         front-end options.
1902         (c_common_handle_option): Remove last use of permit_fortran_options.
1903
1904 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1905
1906         * config/s390/s390.c (print_operand): Support 'S' format flag.
1907         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1908         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1909         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1910         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1911         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1912         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1913         ("*movstricthi"): Likewise.
1914         ("*load_multiple_di", "*load_multiple_si"): Likewise.
1915         ("*store_multiple_di", "*store_multiple_si"): Likewise.
1916         ("*sethiqisi", "*sethihisi"): Likewise.
1917         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1918         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1919         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1920         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1921         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1922
1923         ("*tmhi_full"): Fix incorrect op_type attribute.
1924
1925         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1926         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1927         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1928         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1929
1930 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
1931
1932         PR middle-end/16266
1933         * function.c (temp_slots_at_level): Fix typo which creates too
1934         many temp stack slots levels.
1935
1936 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1937
1938         * config/s390/s390.c (s390_trampoline_template): Generate shorter
1939         trampoline code.
1940         (s390_trampoline_instantiate): Adapt.
1941         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
1942
1943 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1944
1945         PR middle-end/17657
1946         * stmt.c (add_case_node): Add additional type argument.  Declare
1947         as static to match prototype.  Convert the upper and lower bounds
1948         to the specified index type.  Optimize away case ranges/values
1949         that are outside the index type's bounds.  Truncate case ranges
1950         that span the index type's bounds.
1951         (expand_case): Avoid unnessary computation and memory allocation
1952         when index type is error_mark_node.  Pass index_type as required
1953         by change to add_case_node API.  No need to convert case range
1954         bounds to index_type, this is now done by add_case_node.
1955
1956 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1957
1958         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
1959         * config/s390/s390.c (s390_offset_p): New function.
1960         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
1961         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
1962         transform Q->Q alternatives to *clc pattern.
1963         ("*clc"): Move.
1964         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
1965         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
1966         to transform Q->Q alternatives to *mvc pattern.
1967         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
1968         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
1969         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
1970         transform Q->Q alternatives to *nc pattern.
1971         ("*nc"): New insn.  New peephole to merge adjacent NCs.
1972         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
1973         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
1974         transform Q->Q alternatives to *oc pattern.
1975         ("*oc"): New insn.  New peephole to merge adjacent OCs.
1976         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1977         transform Q->Q alternatives to *xc pattern.
1978         ("*xc"): New insn.  New peephole to merge adjacent XCs.
1979         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
1980
1981 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1982
1983         * gimplify.c (gimple_push_condition): Make sure that we don't
1984         have any saved condition cleanup if we were at the top level.
1985
1986 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
1987
1988         * config/frv/frv.md (*adddi3_internal): Change name to...
1989         (adddi3): ...replacing the exisiting define_expand.  Combine
1990         alternatives.  Fix the range of the constant constraints ('J' instead
1991         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
1992         to extract the lower and upper halves of the DImode operands.
1993         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1994         (adddi3_lower): Fix the range of the constant constraints and
1995         remove the bogus operands[2] check.
1996         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1997         operand 2.  Use addxi to handle constant operands.
1998         (subdi3_lower, subdi3_upper): Don't handle constant operands.
1999
2000 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
2001
2002         * gengtype-lex.l: Add commented } & ) characters to unconfuse
2003         editor's paren matching. Allow #define inside a struct.
2004
2005 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
2006
2007         PR middle-end/17703
2008         part of PR c++/17657
2009         * fold-const.c (fold_build_cleanup_point_expr): New function.
2010         * tree.h (fold_build_cleanup_point_expr): Prototype.
2011
2012 2004-10-10  Eric Christopher  <echristo@redhat.com>
2013
2014         * dwarf2out.c: Move attribute to subprogram declaration
2015         instead of subroutine type.
2016
2017 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2018
2019         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
2020         hoist_insn_after, and hoist_insn_to_edge.
2021         * rtl.h: Remove the prototypes for reg_referenced_between_p,
2022         no_jumps_between_p, and insn_dependent_p.
2023         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
2024         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
2025         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
2026         hoist_insn_to_edge): Remove.
2027
2028 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2029
2030         PR c/17881
2031         * c-decl.c (grokparms): Don't warn for parameters of incomplete
2032         type in declarations that are not definitions except for the case
2033         of parameters of void type.
2034
2035 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         * tree-cfg.c: Fix comment typos.
2038
2039 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2040
2041         PR c/17301
2042         * builtins.c (expand_builtin_va_start): Check for too few
2043         arguments to va_start.
2044
2045 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2046
2047         PR c/17189
2048         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
2049         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
2050         pedantic.
2051         * c-parse.in (component_decl): Don't pedwarn here for unnamed
2052         fields.
2053
2054 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
2055
2056         PR tree-optimization/17906
2057         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
2058         copy non-gimple reg arguments.
2059
2060 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2061
2062         PR rtl-optimization/17853
2063         * simplify-rtx.c (simplify_relational_operation): Correct comment.
2064         Reorganize handling of comparison operations with floating point
2065         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
2066         Likewise, introduce support for comparison operations with vector
2067         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
2068
2069         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
2070         * doc/tm.texi: Likewise.
2071
2072 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2073
2074         * regs.h (struct reg_info_def): Remove the last_node_uid and
2075         changes_mode fields.
2076         (REGNO_LAST_NOTE_UID): Don't define.
2077         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
2078         * regmove.c (copy_src_to_dest): Likewise.
2079
2080 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2081
2082         PR middle-end/17894
2083         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
2084         relational comparison operator op needs to be swapped/reversed when
2085         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
2086
2087 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2088
2089         PR tree-opt/17902
2090         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
2091         instead of bsi_start.
2092         (value_replacement): Likewise.
2093         (abs_replacement): Likewise
2094
2095 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2096
2097         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
2098         (expand_gimple_cond_expr, expand_gimple_tailcall,
2099         expand_gimple_basic_block): Use it to dump RTL for each stmt.
2100         (tree_expand_cfg): Announce full RTL function dump.
2101         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
2102         not the graph version.
2103         * tree-pretty-print.c (dump_generic_node): Allow empty statements
2104         in the arms of a COND_EXPR for lowered nodes.
2105
2106 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
2107
2108         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
2109         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
2110         strtoufix16, strtoufix32, strtoufix64): Declare.
2111
2112 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2113
2114         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
2115         for an out-of-range floating point constant.
2116         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
2117         warning if the target format does not support infinities.
2118
2119 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2120
2121         * emit-rtl.c (last_label_num, base_label_num): Remove.
2122         (max_label_num): Always return label_num.
2123         (set_new_last_label_num, restore_emit_status): Remove.
2124         (init_emit): Don't initialize last_label_num.
2125         * function.c (pop_function_context_from): Don't call
2126         restore_emit_status.
2127         * function.h: Remove the prototype for restore_emit_status.
2128         * rtl.h: Remove the prototype for set_new_last_label_num.
2129
2130 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2131
2132         * stmt.c (expand_decl_init): Remove.
2133         * tree.h: Remove the corresponding prototype.
2134
2135 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2136
2137         * integrate.c (try_constants, subst_constants, mark_stores):
2138         Remove.
2139         * integrate.h: Remove the prototype for try_constants.
2140
2141 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2142
2143         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
2144         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
2145         comments about its relevance to errors.
2146         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
2147
2148 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2149
2150         PR c/16999
2151         * c-ppoutput.c (cb_ident): Don't quote string as it is already
2152         quoted.
2153
2154 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
2155
2156         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
2157         reference_node_pool.
2158
2159 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2160
2161         * tree-cfg.c: Fix a comment typo.
2162
2163 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
2164
2165         * config/s390/s390.c (s390_register_info): Don't save fprs for
2166         -msoft-float.
2167         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
2168
2169 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2170
2171         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
2172         (TARGET_DEFAULT): Use symbolic values.
2173         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
2174         (TARGET_DEFAULT): Use symbolic values.
2175         * config/s390/s390.c (s390_backchain_string): Initialize to
2176         TARGET_DEFAULT_BACKCHAIN.
2177
2178 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2179
2180         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
2181         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
2182         code.
2183         (expand_builtin_strcat): Accept a type parameter.
2184         (fold_builtin_mempcpy): Accept a type and endp parameter.
2185
2186         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
2187         Accept an `exp' instead of an `arglist'.
2188
2189 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
2190
2191         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
2192         reverting my 2004-09-07 patch to use build_int_cst.
2193
2194 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2195
2196         PR target/17245
2197         * config/sparc/sparc.c (input_operand): Remove redundant code
2198         for handling LO_SUM.
2199         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
2200         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
2201         Otherwise only accept it for TFmode if quad move insns are available.
2202
2203 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2204
2205         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
2206         common cases will be caught earlier than others.
2207
2208 2004-10-08  Michael Matz  <matz@suse.de>
2209
2210         * loop-doloop.c (doloop_optimize): Extend count.
2211
2212 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2213
2214         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
2215         (prefetch): Convert to expander.
2216
2217 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2218
2219         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
2220         first argument of CALL.
2221         (tls_local_dynamic): Likewise.
2222
2223 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2224
2225         * c-typeck.c (enum impl_conv): New.
2226         (convert_for_assignment): Use it.  Take tree for function called
2227         instead of its name.  Handle ObjC selectors for diagnostics at
2228         start of function.  Select diagnostic text within the function
2229         using full sentences for diagnsotics.  Use %qE to name functions
2230         in diagnostics.
2231         (convert_arguments, build_modify_expr,
2232         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2233         callers to convert_for_assignment.
2234         (warn_for_assignment): Remove.
2235
2236 2004-10-08  Nick Clifton  <nickc@redhat.com>
2237
2238         * config/sh/symbian.c (symbian_possibly_export_base_class):
2239         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2240         TYPE_CONTAINS_VPTR_P.
2241
2242 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2243
2244         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2245         fixed registers form all_used_regs. Update call_really_used_regs.
2246         (CALL_REALLY_USED_REGISTERS): Define.
2247         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2248         with call_really_used_regs.
2249
2250 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
2251
2252         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2253         for -profile as well as -p and -pg.
2254
2255 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
2256
2257         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2258
2259 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2260
2261         * tree-cfg.c (tree_block_forwards_to): Remove.
2262         * tree-flow.h: Remove the corresponding prototype.
2263
2264 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2265
2266         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2267         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2268
2269 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
2270
2271         Radar 3813796
2272         * config/rs6000/rs6000.c (rs6000_generate_compare): When
2273         flag_trapping_math is in effect, don't generate subtract
2274         instructions.
2275
2276 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
2277
2278         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2279         * config/s390/s390.c (s390_narrow_logical_operator): New function.
2280         (s390_extra_constraint_str): Add 'A' constraints.
2281         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2282         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2283         (CONSTRAINT_LEN): Likewise.
2284         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2285         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2286         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2287         ("*iordi3"): Add OI alternative and splitter.
2288         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2289         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2290         ("*xordi3"): Add XI alternative and splitter.
2291         ("*xorsi3", "*xorhi3"): Likewise.
2292
2293 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2294
2295         * config/mips/mips.c (mips_function_rodata_section): New function.
2296         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2297
2298 2004-10-07  Devang Patel  <dpatel@apple.com>
2299
2300         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2301         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2302         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2303         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2304         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2305         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2306         UNSPEC_VCONDU_V16QI): New constant defines.
2307         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2308         vconduv16qi): New patterns.
2309         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2310         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2311         (get_vec_cmp_insn): Same.
2312         (get_vsel_insn): Same.
2313         (rs6000_emit_vector_compare): Same.
2314         (rs6000_emit_vector_select): Same.
2315         (INSN_NOT_AVAILABLE): New.
2316
2317 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2318
2319         PR tree-optimization/17749
2320         * tree-tailcall.c (find_tail_calls): Check that parameter is
2321         a gimple_reg.
2322
2323 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2324
2325         * config/ia64/ia64.c: Fix a comment typo.
2326
2327 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2328
2329         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2330
2331 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2332
2333         PR c++/17115
2334         * tree-inline.c (expand_call_inline): Do not warn for functions
2335         marked with attribute noinline.
2336
2337 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2338
2339         PR target/17862
2340         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2341         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2342
2343         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2344         of 0 as 4th argument to pass_by_reference.
2345         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2346
2347 2004-10-06  Eric Christopher  <echristo@redhat.com>
2348
2349         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2350         attribute.
2351
2352 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2353
2354         PR target/17770
2355         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2356
2357 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2358
2359         PR rtl-optimization/17791
2360         * loop-doloop.c (doloop_modify): Take number of iterations as
2361         argument.
2362         (doloop_optimize): Extend or shorten the number of iterations
2363         when changing mode of counter register.
2364         * loop-iv.c (lowpart_subreg): Export.
2365         * rtl.h (lowpart_subreg): Declare.
2366
2367 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2368
2369         PR tree-optimization/17806
2370         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2371         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2372         flags moved to split_edge.
2373
2374 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2375
2376         PR middle-end/17835
2377         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2378         before tentatively building the conditional move sequence.
2379
2380 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2381
2382         PR target/16815
2383         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2384         check.
2385         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2386         function_arg_padding.
2387
2388 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2389
2390         PR bootstrap/17857
2391         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2392
2393 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2394
2395         * hooks.c (hook_int_void_1, hook_void_int): Remove.
2396         * hooks.h: Remove the corresponding prototypes.
2397
2398 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2399
2400         PR middle-end/17849
2401         * tree-nested.c (walk_stmt_info): Add changed field.
2402         (convert_nonlocal_reference): Set changed to when we
2403         change a decl to unnested decl.
2404         <case ADDR_EXPR>: Instead of checking if the immediate part
2405         of the ADDR_EXPR changed, check the field changed.
2406         Use recompute_tree_invarant_for_addr_expr instead of unsetting
2407         TREE_INVARIANT.
2408         (convert_local_reference):  Set changed to when we
2409         change a decl to unnested decl.
2410         <case ADDR_EXPR>: Instead of checking if the immediate part
2411         of the ADDR_EXPR changed, check the field changed.
2412         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2413
2414 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2415
2416         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2417         * dwarf2out.c (dwarf2out_init): Remove references to
2418         DWARF2_GENERATE_TEXT_SECTION_LABEL.
2419         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2420         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2421
2422 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2423
2424         * c-typeck.c (convert_arguments): Take expression for called
2425         function rather than its name.  Handle ObjC selectors directly
2426         rather than relying on warn_for_assignment to do so.  Call warning
2427         directly rather than warn_for_assignment.  Use %qE in diagnostics.
2428         Say "argument" rather than "arg" in diagnostics.
2429         (build_function_call): Update call to convert_arguments.
2430
2431 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2432
2433         PR debug/17787
2434         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2435         ENUMs specially instead of just saying we do.
2436
2437 2004-10-06  Eric Christopher  <echristo@redhat.com>
2438
2439         * dwarf2.h: Sync with include/elf/dwarf2.h
2440
2441 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2442
2443         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2444         and TREE_VEC nodes.
2445
2446 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2447
2448         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2449         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2450
2451 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2452
2453         * lambda-code.c (compute_nest_using_fourier_motzkin): New
2454         function.
2455         (lambda_compute_auxillary_space): Split from here.
2456
2457 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2458
2459         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2460         * tree-flow.h: Add prototype.
2461         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2462         expr_invariant_in_loop.
2463
2464 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2465
2466         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2467         EXIT_BLOCK_PTR.
2468
2469 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2470
2471         * config/s390/s390-protos.h (s_imm_operand): Remove.
2472         (s390_pool_operand): Add prototype.
2473         * config/s390/s390.c (general_s_operand): Remove.
2474         (s_imm_operand): Remove.
2475         (s_operand): Merge contents of general_s_operand.
2476         (s390_pool_operand): New function.
2477         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2478         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2479         ("*cmpdi_ccu"): Merge Q->Q alternative.
2480         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2481         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2482         ("*cli"): Remove.
2483         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2484         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2485         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2486
2487 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
2488
2489         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2490         call ia64_function_arg_boundary.
2491         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2492         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2493         (ia64_function_arg_advance): Do not put 128 bit floats into
2494         FP registers.
2495
2496 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2497
2498         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2499         Accept an expression instead of an arglist.
2500         (expand_builtin_stpcpy): Accept an expression instead of an
2501         arglist.
2502
2503 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2504
2505         PR target/16007
2506         * doc/install.texi (*-*-solaris2*): Mention potential problem
2507         with Sun assembler + GNU linker and C++ programs.
2508         Document status of binutils 2.15 release.
2509
2510 2004-10-06  Jan Hubicka  <jh@suse.cz>
2511
2512         * cse.c (cse_main): Kill push/pop context.
2513
2514 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
2515
2516         * pretty-print.c: Include tree.h.
2517         (pp_base_prepare_to_format): New function, logic from
2518         text_specifies_location.
2519         (pp_base_format_text): Use gcc_assert.
2520         * pretty-print.h (pp_prepare_to_format): New macro.
2521         (pp_base_prepare_to_format): Prototype.
2522         * diagnostic.c (text_specifies_location): Delete.
2523         (bug_report_request): Delete.
2524         (diagnostic_set_info): Don't call text_specifies_location.
2525         (diagnostic_action_after_output): Put text from
2526         bug_report_request inline here.  Use gcc_unreachable.
2527         (diagnostic_report_current_function): Fix comment.
2528         (diagnostic_report_diagnostic): Clarify logic for error recursion.
2529         Call pp_prepare_to_format before diagnostic_starter.
2530         (trim_filename): Use IS_DIR_SEPARATOR.
2531         (fatal_error, internal_error): Use gcc_unreachable.
2532         (error_recursion): Call diagnostic_action_after_output to
2533         issue the bug_report_request message and exit.
2534         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2535
2536         * c-parse.in: Add list of diagnostic messages to insulate
2537         translation template from version of yacc/bison used to
2538         compile the grammar.
2539
2540 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
2541
2542         PR 16406
2543         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2544
2545 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2546
2547         * basic-block.h: Remove the prototype for
2548         flow_preorder_transversal_compute.
2549         * cfganal.c (dfst_node): Remove.
2550         (flow_preorder_transversal_compute): Likewise.
2551         * rtl.h: Remove the prototype for get_jump_table_offset.
2552         * rtlanal.c (get_jump_table_offset): Remove.
2553
2554 2004-10-05  Richard Henderson  <rth@redhat.com>
2555
2556         PR 17756
2557         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2558
2559 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2560
2561         PR bootstrap/17817
2562         * Makefile.in: Stage the build directory too.
2563
2564 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
2565
2566         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2567
2568         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2569         (frv_emit_move): Same.
2570
2571         * config/frv/frv.c (frv_emit_move): New.
2572         (frv_legitimize_address): New.
2573
2574         * config/frv/frv.md ("movsi"): Call frv_emit_move.
2575         ("movqi"): Same.
2576         ("movhi"): Same.
2577         ("movdi"): Same.
2578         ("movsf"): Same.
2579         ("movdf"): Same.
2580
2581 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2582
2583         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2584         system headers.
2585
2586 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2587
2588         * c-decl.c (pushdecl): When an extern declaration at block scope
2589         refers to a visible entity with internal linkage, use the old DECL
2590         rather than the new one.
2591
2592 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2593
2594         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2595         comments.
2596
2597 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2598
2599         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2600         an infinite loop.
2601
2602 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2603
2604         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2605         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
2606         blocks.
2607
2608 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2609
2610         * tree-cfg.c (cleanup_tree_cfg): Don't call
2611         delete_unreachable_blosk() after thread_jumps().
2612         (thread_jumps): Always remove basic blocks as they become
2613         unreachable.
2614
2615 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2616
2617         * tree-cfg.c (cleanup_tree_cfg): Remove variable
2618         something_changed.  Simplify the while loop.
2619
2620 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2621
2622         * builtins.c (expand_builtin_memmove): Delete duplicate code
2623         and accept a tree type for the result.
2624         (expand_builtin_bcopy): Accept a tree type for the result.
2625         (fold_builtin_memmove): Accept an arglist and tree type for
2626         the result.
2627
2628 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
2629
2630         * config/s390/s390.c (s390_dump_pool): Remove return value.
2631         Use gen_pool_align, gen_pool_section_start/end instead of
2632         gen_pool_start/end_31/64.
2633         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2634         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2635         ("pool_start_31", "pool_end_31"): Remove.
2636         ("pool_start_64", "pool_end_64"): Likewise.
2637         ("pool_align", "pool_section_start", "pool_section_end": New insns.
2638
2639         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2640         (TARGET_CANNOT_COPY_INSN_P): Define.
2641         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2642         (struct constant_pool): New member 'execute'.
2643         (s390_add_execute, s390_find_execute): New functions.
2644         (s390_execute_label, s390_execute_target): Likewise.
2645         (s390_dump_pool): Output in-pool execute target templates.
2646         (s390_dump_execute): New function.
2647         (s390_alloc_pool, s390_free_pool): Handle execute templates.
2648         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2649         (s390_chunkify_start, s390_chunkify_finish): Likewise.
2650         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2651         ("*execute"): New insn pattern.
2652         ("movmem_short", "*movmem_short"): Use splitters to generate
2653         explicit execute pattern, remove embedded execute.
2654         ("clrmem_short", "*clrmem_short"): Likewise.
2655         ("cmpmem_short", "*cmpmem_short"): Likewise.
2656
2657 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
2658
2659         * tree-ssa.c (verify_ssa): Verify phi arguments only
2660         contain renamed names.
2661
2662 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
2663
2664         * config/rs6000/linux.h: Formatting, whitespace.
2665         * config/rs6000/linux64.h: Likewise.
2666         * config/rs6000/rs6000-protos.h: Likewise.
2667         * config/rs6000/rs6000.c: Likewise.
2668         (easy_vector_splat_const): Add fall thru comments.
2669         (output_vec_const_move): Likewise.
2670
2671 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2672
2673         * Makefile.in: Update -Wno-error exceptions for move to build dir.
2674
2675 2004-10-05  Chao-Ying Fu  <fu@mips.com>
2676             Richard Sandiford  <rsandifo@redhat.com>
2677
2678         * doc/invoke.texi (-mpaired-single): Link to the new description of the
2679         built-in functions.  Document dependencies.
2680         (-mips3d): Add link here too.
2681         * doc/extend.texi (MIPS Paired-Single Support): New section.
2682
2683 2004-10-04  Chao-ying Fu  <fu@mips.com>
2684
2685         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2686
2687 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
2688
2689         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2690         Initialize OPT_STATS to 0.
2691
2692 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2693
2694         * tree-data-ref.c: Fix comment typos.
2695
2696 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
2697
2698         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
2699         the predicate cannot be computed, don't initialize the result to
2700         false.
2701
2702 2004-10-01  Eric Christopher  <echristo@redhat.com>
2703
2704         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2705         locally defined enum.
2706         * dwarf2out.c (add_calling_convention_attribute): Don't
2707         emit DW_CC_normal.
2708
2709 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
2710
2711         PR c/17178, PR c/17820
2712         * c-decl.c (pop_scope): Do not warn about unused static
2713         variables as they warned in the middle-end.
2714
2715 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2716
2717         * builtins.c (expand_builtin_memcpy): Delete duplicate code
2718         and make the first parameter the expression not the arglist.
2719
2720 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
2721
2722         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2723         as valid modes to expand address expressions.
2724
2725 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2726
2727         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2728         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2729         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2730         code formatting conventions.
2731
2732 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
2733
2734         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2735
2736 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2737
2738         PR tree-optimization/16632
2739         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2740         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
2741         where | is used instead of &.
2742
2743 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2744
2745         * ginclude/stddef.h: Fix a comment typo.
2746
2747 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2748
2749         PR target/17443
2750         * config.gcc (i?86-*-solaris2*): Restore correct logic
2751         for --enable-threads option.
2752         (sparc64-*-solaris2*): Likewise.
2753         (sparc-*-solaris2*): Likewise.
2754
2755 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
2756
2757         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2758         (OS_MISSING_POWERPC64): Move, and comment.
2759         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2760         (OS_MISSING_POWERPC64): Move, and comment.
2761
2762 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
2763
2764         * arm.c (output_call_mem): Add missing \t.
2765
2766 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2767
2768         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2769         expand_builtin_strncmp): Delete duplicate code.
2770
2771 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
2772
2773         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2774         take check-base and -limit arguments.
2775         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2776         check ranges for ARRAY_REF and COMPONENT_REF.
2777         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2778         instrumentation.
2779
2780 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2781
2782         * c-objc-common.c (c_tree_printer): Correct description of %E.
2783         Don't fall through after printing an expression.
2784
2785 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2786
2787         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2788
2789 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2790
2791         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2792         delete_unrechable_blocks() only when necessary.
2793
2794 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2795
2796         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2797         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2798         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2799         __gthread_recursive_mutex_unlock): New functions.
2800
2801 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2802
2803         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2804         * config/s390/tpf-eh.c: Remove file.
2805         * config/s390/tpf-unwind.h: New file.
2806         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2807         (MD_UNWIND_SUPPORT): Define.
2808
2809 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2810
2811         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2812
2813 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
2814
2815         * config/s390/s390-protos.h (s390_comparison): Add prototype.
2816         * config/s390/s390.c (s390_comparison): New function.
2817         (s390_branch_condition_mask): Return -1 for invalid comparisons.
2818         (s390_branch_condition_mnemonic): Assert valid comparison.
2819         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2820         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2821         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2822         s390_comparison instead of comparison_operator.
2823
2824         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2825         ("cmpmemdi"): Remove.
2826         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2827         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2828         ("cmpint_si"): Rename to ...
2829         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
2830         ("cmpint_di", "*cmpint_di"): Likewise.
2831         * config/s390/s390.c (s390_canonicalize_comparison): Remove
2832         redundant UNSPEC_CMPINT conversions.
2833         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2834
2835 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2836
2837         * collect2.c (COLLECT_PARSE_FLAG): Remove.
2838         (main): Remove a reference to COLLECT_PARSE_FLAG
2839         * system.h: Poison COLLECT_PARSE_FLAG.
2840         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2841
2842 2004-10-01  Paul Brook  <paul@codesourcery.com>
2843
2844         * config/arm/crti.asm: Give _init and _fini function type.
2845
2846 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2847
2848         * common.opt (ftree-loop-ivcanon): Enable by default.
2849         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2850         Enable complete loop unrolling.
2851         (canonicalize_induction_variables, tree_unroll_loops_completely):
2852         Reset scev info.
2853
2854 2004-10-01  Paul Brook  <paul@codesourcery.com>
2855
2856         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2857         not register number.
2858         (thumb_find_work_register): Search full register range.
2859
2860 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
2861
2862         PR tree-opt/17343
2863         * tree-cfg.c (group_case_labels): Get the label and not
2864         the case expr for the default case.
2865         When the label we looking at is the default, decrement the
2866         new_size.
2867
2868 2004-10-01  Jan Hubicka  <jh@suse.cz>
2869
2870         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2871         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2872         * toplev.h (tree_rest_of_compilation): Update prototype.
2873         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
2874
2875 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2876
2877         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2878         cleanup_control_flow() out of the while loop.
2879
2880 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
2881
2882         * tree-vectorizer.c (vectorizable_operation): Fail unless
2883         the mode for the vector type is indeed a vector mode.
2884
2885 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2886
2887         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2888         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2889         of convert.
2890         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2891         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2892         follow_ssa_edge_in_rhs): Ditto.
2893         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2894         (dump_iv): Dump base_object.
2895         (dump_use, dump_cand): Use dump_iv.
2896         (determine_base_object): New function.
2897         (alloc_iv): Initialize base_object field.
2898         (record_use): Clear the ssa_name field of iv.
2899         (get_computation_cost_at): Do not use difference of addresses of
2900         two different objects.
2901         (may_eliminate_iv): Do not require the loop to have just single exit.
2902         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2903         (nonzero_p): New function.
2904         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2905         tree_simplify_using_condition, simplify_using_initial_conditions,
2906         loop_niter_by_eval, find_loop_niter_by_eval,
2907         estimate_numbers_of_iterations_loop, compare_trees,
2908         upper_bound_in_type, lower_bound_in_type,
2909         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
2910         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
2911         instead of integer_(non)zerop.
2912
2913 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
2914
2915         Revert
2916         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2917
2918         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2919         and TI_VA_LIST_FPR_COUNTER_FIELD.
2920         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2921         * tree-pass.h (pass_stdarg): Add.
2922         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2923         * tree-stdarg.c: New file.
2924         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2925         (tree-stdarg.o): Add dependencies.
2926         * function.h (struct function): Add va_list_gpr_size and
2927         va_list_fpr_size fields.
2928         * function.c (allocate_struct_function): Initialize them.
2929
2930         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2931         va_list_{g,f}pr_counter_field.
2932         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2933         area will not be used.  Only save registers that tree-stdarg.c
2934         detected they need saving.
2935         (ix86_va_start): Don't set up fields that won't be used.
2936
2937         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2938         va_list_{g,f}pr_counter_field.
2939         (setup_incoming_varargs): Don't do anything if reg_save
2940         area will not be used.  Only save registers that tree-stdarg.c
2941         detected they need saving.
2942         (rs6000_va_start): Don't set up fields that won't be used.
2943
2944 2004-09-30  Eric Christopher  <echristo@redhat.com>
2945
2946         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
2947         sh abi.
2948         * dwarf2out.c (add_calling_convention_attribute): New function.
2949         (gen_subroutine_type_die): Use.
2950         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
2951         * target.h (gcc_target): Add dwarf_calling_convention.
2952         * hooks.c (hook_int_tree_0): New function.
2953         * hooks.h: Prototype.
2954         * config/sh/sh.c: Include dwarf2.h.
2955         (sh_dwarf_calling_convention): New function.
2956         (TARGET_DWARF_CALLING_CONVENTION): Use.
2957         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
2958
2959 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2960
2961         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2962         expand_builtin_strrchr, expand_builtin_strpbrk,
2963         expand_builtin_strncat, expand_builtin_strspn,
2964         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
2965         code.
2966
2967 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2968
2969         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
2970         prototype.
2971         (s390_logical_operator_ok_p): Likewise.
2972         * config/s390/s390.c (s390_expand_logical_operator): New function.
2973         (s390_logical_operator_ok_p): Likewise.
2974         * config/s390/s390.md ("anddi3"): New expander.
2975         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
2976         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2977         ("andsi3"): Use s390_expand_logical_operator.
2978         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2979         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2980         ("andhi3"): New expander.
2981         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2982         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2983         ("andqi3"): New expander.
2984         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2985         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2986         ("iordi3"): New expander.
2987         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2988         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2989         ("iorsi3"): Use s390_expand_logical_operator.
2990         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2991         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2992         ("iorhi3"): New expiorer.
2993         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2994         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2995         ("iorqi3"): New expiorer.
2996         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2997         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2998         ("xordi3"): New expander.
2999         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
3000         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
3001         ("xorsi3"): New expander.
3002         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
3003         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
3004         ("xorhi3"): New expander.
3005         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
3006         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
3007         ("xorqi3"): New expander.
3008         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
3009         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
3010
3011 2004-09-30  Roger Sayle  <roger@eyesopen.com>
3012
3013         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
3014         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
3015         machine mode as the result.
3016
3017 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3018
3019         PR bootstrap/17761
3020         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
3021         FOR_EACH_EDGE macros.
3022
3023 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3024
3025         * c-tree.h (readonly_error): Remove.
3026         * c-typeck (enum lvalue_use): New.
3027         (lvalue_or_else, readonly_error): Use it.  All callers changed.
3028         (readonly_error): Make static.
3029
3030 2004-09-30  Jan Hubicka  <jh@suse.cz>
3031
3032         PR debug/13974
3033         * cfgrtl.c (try_redirect_by_replacing_jump,
3034         force_nonfallthru_and_redirect, commit_one_edge_insertion,
3035         cfg_layout_merge_blocks):  Do not attach any line number information
3036         to newly inserted instructions.
3037         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
3038         emit_insn_*_noloc.
3039         (emit_*insn_before, emit_insn*_after): New.
3040         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
3041         existing locators.
3042         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
3043         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
3044
3045 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3046
3047         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
3048         (s390_return_address_offset): Remove.
3049         (s390_can_eliminate): Add prototype.
3050         (s390_initial_elimination_offset): Add prototype.
3051         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
3052         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
3053         * config/s390/s390.c (s390_arg_frame_offset): Remove.
3054         (s390_return_address_offset): Remove.
3055         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
3056         (struct machine_function): New member split_branches_pending_p.
3057         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
3058         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
3059         (s390_optimize_prologue): Remove base_used argument.  Call
3060         s390_update_frame_layout instead of s390_register_info.  Handle
3061         prologue/epilogue insns that touch only RETURN_REGNUM.
3062         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
3063         (s390_register_info): Remove base_used and return_addr_used
3064         arguments, compute special register usage inline.  Return live
3065         register data to caller.
3066         (s390_frame_info): Remove arguments, do not call s390_register_info.
3067         (s390_init_frame_layout): New function.
3068         (s390_update_frame_layout): Likewise.
3069         (s390_emit_prologue): Call s390_update_frame_layout; some code
3070         move to there.  Do not emit pool placeholder insn if unnecessary.
3071
3072 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3073
3074         * config/s390/s390.c (legitimate_reload_constant_p): Remove
3075         floating point constant workaround.
3076         (s390_secondary_input_reload_class): Handle PLUS reloads
3077         with too-large constant.
3078         (s390_expand_plus_operand): Likewise.
3079         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
3080         ("movsi"): Likewise.  Also, remove workaround for non-general
3081         operands.
3082         ("movdf"): Do not call force_const_mem.
3083         ("movsf"): Likewise.  Merge expander with *movsf insn.
3084         ("*movsf"): Remove, merge with movsf expander.
3085
3086 2004-09-30  Paul Brook  <paul@codesourcery.com>
3087
3088         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
3089         (ENDFILE_SPEC): Define.
3090         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
3091
3092 2004-09-30  Richard Henderson  <rth@redhat.com>
3093
3094         * config/alpha/qrnnd.asm: Mark for noexecstack.
3095
3096 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3097
3098         * protoize.c, tree-cfg.c: Fix comment typos.
3099
3100 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3101
3102         PR c/17730
3103         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
3104
3105 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
3106
3107         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
3108         expressions...
3109         (add_pointed_to_expr): ... here.
3110         Call add_pointed_to_expr for variables with DECL_INITIAL set.
3111         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
3112         pointer variable, if set.
3113
3114 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3115
3116         * config/sh/sh.c: Follow spelling conventions.
3117
3118 2004-09-29  Richard Henderson  <rth@redhat.com>
3119
3120         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
3121         * doc/tm.texi (DWARF_ZERO_REG): New.
3122
3123         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3124         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
3125         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
3126
3127 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
3128
3129         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
3130         with a PLUS as source operand.
3131         (expand_movstr): Likewise.
3132         (expand_builtin_stpcpy): Likewise.
3133
3134 2004-09-29  Richard Henderson  <rth@redhat.com>
3135
3136         PR 17739
3137         * tree-gimple.c (is_gimple_reg): Reject hard registers.
3138         (is_gimple_asm_val): New.
3139         * tree-gimple.h (is_gimple_asm_val): Declare.
3140         * gimplify.c (gimplify_asm_expr): Use it.
3141         * tree-pretty-print.c (print_declaration): Dump hard regs.
3142         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
3143         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3144         * tree-ssa-pre.c (is_undefined_value): Likewise.
3145         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3146         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
3147         * tree-ssa.c (warn_uninit): Likewise.
3148         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
3149
3150 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
3151
3152         * c-decl.c (merge_decls): Use comptype when comparing
3153         types to decide on DECL_SIZE save of olddecl.
3154
3155 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
3156
3157         * tree.h (INDIRECT_REF_P): New macro.
3158         * alias.c (get_alias_set): Use it
3159         (nonoverlapping_memrefs_p): Ditto.
3160         * emit-rtl.c (mem_expr_equal_p): Ditto.
3161         (set_mem_attributes_minus_bitpos): Ditto.
3162         (is_gimple_addressable): Ditto.
3163         (get_base_address): Ditto.
3164         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
3165         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
3166         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
3167         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
3168         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
3169         (add_address_candidates): Ditto.
3170         (rewrite_address_base): Ditto.
3171
3172 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3173
3174         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
3175         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
3176         (rewrite_ssa_into_ssa): Likewise.
3177         * tree-phinodes.c (create_phi_node): Access the number of
3178         predecessor edges using EDGE_COUNT() and not num_preds.
3179
3180 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3181
3182         PR c/7425
3183         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
3184
3185 2004-09-29  Eric Christopher  <echristo@redhat.com>
3186
3187         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
3188
3189 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
3190
3191         * config/cris/cris.md (moverside, movemside): With MEM, make sure
3192         the address is (plus reg mem).
3193
3194 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
3195
3196         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3197
3198 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3199
3200         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
3201         cascaded if ... else if with a switch.
3202
3203 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3204
3205         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
3206
3207 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3208
3209         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3210         and TI_VA_LIST_FPR_COUNTER_FIELD.
3211         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3212         * tree-pass.h (pass_stdarg): Add.
3213         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3214         * tree-stdarg.c: New file.
3215         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3216         (tree-stdarg.o): Add dependencies.
3217         * function.h (struct function): Add va_list_gpr_size and
3218         va_list_fpr_size fields.
3219         * function.c (allocate_struct_function): Initialize them.
3220
3221         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3222         va_list_{g,f}pr_counter_field.
3223         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3224         area will not be used.  Only save registers that tree-stdarg.c
3225         detected they need saving.
3226         (ix86_va_start): Don't set up fields that won't be used.
3227
3228         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3229         va_list_{g,f}pr_counter_field.
3230         (setup_incoming_varargs): Don't do anything if reg_save
3231         area will not be used.  Only save registers that tree-stdarg.c
3232         detected they need saving.
3233         (rs6000_va_start): Don't set up fields that won't be used.
3234
3235 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3236
3237         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
3238         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
3239         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
3240         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
3241         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
3242         ATTR_NONNULL_1_4): New.
3243
3244 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3245
3246         PR tree-optimization/17697
3247         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
3248         cfg if needed.
3249
3250 2004-09-28  Per Bothner  <per@bothner.com>
3251
3252         * profile.c (branch_prob): Pass correct value to output_location,
3253         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
3254
3255 2004-09-28  Richard Henderson  <rth@redhat.com>
3256
3257         PR 15089
3258         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
3259         * tree-flow.h (may_propagate_copy_into_asm): Declare.
3260         * tree-ssa-ccp.c (replace_uses_in): Use it.
3261         * tree-ssa-dom.c (cprop_operand): Likewise.
3262
3263 2004-09-28 Jeff Law  <law@redhat.com>
3264
3265         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
3266         that no outgoing edges be left in the duplicate block.  Do no
3267         update information on outgoing edges or PHI nodes in target
3268         blocks here.
3269         (remove_ctrl_stmt_and_useless_edges): Renamed from
3270         remove_last_stmt_and_useless_edges.  Handle case where the
3271         block is empty or has no control statements.  Do not update edge
3272         flags here.
3273         (thread_block): Create a template block rather than copying the
3274         original block every time.  Create outgoing edges from the
3275         duplicate blocks and update PHIs at the target of the outgoing
3276         edges here.  Fix edge flags for the original block if necessary.
3277         * cfghooks (duplicate_block): No longer assert that the original
3278         block has incoming edges.
3279
3280 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
3281
3282         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
3283         Reg Vars to enforce register allocation with general constraints.
3284         (Explicit Reg Vars): Clarify relation to asm statements.
3285         (Local Reg Vars): Similar.
3286
3287 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3288
3289         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
3290         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
3291         build_control_flow, new_edge): Remove.
3292         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
3293         (bitlst, bitlst_table_last, bitlst_table): Remove.
3294         (bblst): Store basic_block pointer instead of block index.
3295         (bblst_table): Likewise.
3296         (edgelst): Store edge pointer instead of edge index.
3297         (edgelst_table, edgelst_last): New variables.
3298         (extract_bitlst): Rename to ...
3299         (extract_edgelst): ... this.  Return edge pointers, not indices.
3300         (split_edges): Update call.
3301         (rgn_edges): Store edge pointers instead of indices.
3302         (edge_to_bit): Remove.
3303         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
3304         (SET_EDGE_TO_BIT): New macro.
3305         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
3306         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
3307         data structures instead of haifa_edge et al.  Use edge pointers
3308         instead of edge indices everywhere.
3309         (compute_dom_prob_ps): Use standard CFG data structures.  Account
3310         for exit edges.
3311         (compute_trg_info): Likewise.
3312         (propagate_deps): Likewise.
3313         (debug_candidate): Account for bblst data structure change.
3314         (check_live_1, update_live_1, is_pfree): Likewise.
3315         (IS_REACHABLE): Use standard CFG data structures.
3316         (init_ready_list): Update bblst_table/edgelst_table allocation.
3317         (schedule_region): Update alloc/cleanup code to data structure
3318         changes.  Use edge->aux to store per-region edge index.
3319         (init_regions): No longer call build_control_flow.  Do not
3320         create edge list any more.
3321
3322 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3323
3324         * cse.c (cse_insn): Avoid creating direct non-local jumps.
3325         * combine.c (can_combine_p): Likewise.
3326         * local-alloc. (update_equiv_regs): Likewise.
3327
3328 2004-09-28  Richard Henderson  <rth@redhat.com>
3329
3330         PR 17531
3331         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
3332         Don't check VOIDmode here.  Force PLUS operands to common type.
3333         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
3334         Pmode if given a non pointer type.
3335
3336 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3337
3338         PR 17531
3339         * optabs.c (expand_binop): Force constants to the correct mode.
3340
3341 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3342
3343         * config/s390/s390.c (s390_adjust_cost): Remove.
3344         (TARGET_SCHED_ADJUST_COST): Do not redefine.
3345         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3346         * config/s390/s390.md ("main_pool"): Use "larl" type
3347         attribute if TARGET_CPU_ZARCH.
3348
3349 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
3350
3351         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3352         variable.
3353
3354 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3355
3356         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3357         name to the pass.
3358
3359 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3360
3361         * common.opt (flag_gcse_sm): Disable by default.
3362         (flag_gcse_las): Likewise.
3363         (flag_web): Likewise.  Create from this file.
3364         * flags.h: Remove flag_web declaration.
3365         * toplev.c (flag_web): Likewise.
3366         (process_options): Never set flag_web.
3367
3368 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3369
3370         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3371         * tree-ssa-propagate.c: Include vec.h.
3372         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3373         instead of varrays.
3374         (cfg_blocks_add): Assert the block is not already in the worklist.
3375         Update uses of interesting_ssa_edges and varying_ssa_edges.
3376         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3377         ssa_propagate): Likewise.
3378
3379 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3380
3381         PR c/16409
3382         * c-decl.c (start_decl): Check for initializing incomplete array
3383         of VLAs.
3384         (build_compound_literal): Check for TYPE being error_mark_node.
3385         * c-parse.in (primary): Check for VLA compound literals.
3386
3387 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3388
3389         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3390         with --disable-checking.
3391
3392 2004-09-28  Devang Patel  <dpatel@apple.com>
3393
3394         * tree-pretty-print.c (dump_generic_node): Print vector types.
3395
3396 2004-09-28  Nick Clifton  <nickc@redhat.com>
3397
3398         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3399         invocation of the function sh_init_cumulative_args.
3400         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3401         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3402         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3403         * config/sh/sh.c (sh_init_cumulative_args): New function based
3404         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3405         heuristic added to determine the setting of force_mem when a
3406         library function is being called.
3407
3408 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3409
3410         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3411         Skip constant arguments.
3412
3413 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3414
3415         * tree-ssa-alias.c (create_name_tags): If PTR points to a
3416         volatile type, mark the tag volatile.
3417         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3418         volatile.
3419
3420 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
3421
3422         * tree.def (vec_cond_expr): Fix. Change 'e'
3423         to tcc_expression.
3424
3425 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3426
3427         * basic-block.h: Fix a comment typo.
3428
3429 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3430
3431         * optabs.c, optabs.h: Fix comment typos.
3432
3433 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
3434
3435         * config/sparc/sparc.md (call_address_struct_value_sp32):
3436         Properly mask the immediate field of the 'unimp' instruction.
3437         (call_symbolic_struct_value_sp32): Likewise.
3438
3439 2004-09-28  Ben Elliston  <bje@au.ibm.com>
3440             Steven Bosscher  <stevenb@suse.de>
3441             Andrew Pinski  <pinskia@physics.uc.edu>
3442
3443         Merge from edge-vector-branch:
3444         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3445         (struct edge_def): Remove pred_next, succ_next members.
3446         (struct basic_block_def): Remove pred, succ members.  Add preds
3447         and succs members of type VEC(edge).
3448         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3449         (BRANCH_EDGE): Likewise.
3450         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3451         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3452         (edge_iterator): New.
3453         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3454         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3455         (FOR_EACH_EDGE): New.
3456         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3457         where applicable.
3458         (rotate_loop): Likewise.
3459         (find_traces_1_route): Likewise.
3460         (bb_to_key): Likewise.
3461         (connect_traces): Likewise.
3462         (copy_bb_p): Likewise.
3463         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3464         (add_labels_and_missing_jumps): Likewise.
3465         (fix_up_fall_thru_edges): Likewise.
3466         (find_jump_block): Likewise.
3467         (fix_crossing_conditional_branches): Likewise.
3468         (fix_crossing_unconditional_branches): Likewise.
3469         (add_reg_crossing_jump_notes): Likewise.
3470         * bt-load.c (augment_live_range): Likewise.
3471         * cfg.c (clear_edges): Likewise.
3472         (unchecked_make_edge): Likewise.
3473         (cached_make_edge): Likewise.
3474         (make_single_succ_edge): Likewise.
3475         (remove_edge): Likewise.
3476         (redirect_edge_succ_nodup): Likewise.
3477         (check_bb_profile): Likewise.
3478         (dump_flow_info): Likewise.
3479         (alloc_aux_for_edges): Likewise.
3480         (clear_aux_for_edges): Likewise.
3481         (dump_cfg_bb_info): Likewise.
3482         * cfganal.c (forwarder_block_p): Likewise.
3483         (can_fallthru): Likewise.
3484         (could_fall_through): Likewise.
3485         (mark_dfs_back_edges): Likewise.
3486         (set_edge_can_fallthru_flag): Likewise.
3487         (find_unreachable_blocks): Likewise.
3488         (create_edge_list): Likewise.
3489         (verify_edge_list): Likewise.
3490         (add_noreturn_fake_exit_edges): Likewise.
3491         (connect_infinite_loops_to_exit): Likewise.
3492         (flow_reverse_top_sort_order_compute): Likewise.
3493         (flow_depth_first_order_compute): Likewise.
3494         (flow_preorder_transversal_compute): Likewise.
3495         (flow_dfs_compute_reverse_execute): Likewise.
3496         (dfs_enumerate_from): Likewise.
3497         (compute_dominance_frontiers_1): Likewise.
3498         * cfgbuild.c (make_edges): Likewise.
3499         (compute_outgoing_frequencies): Likewise.
3500         (find_many_sub_basic_blocks): Likewise.
3501         (find_sub_basic_blocks): Likewise.
3502         * cfgcleanup.c (try_simplify_condjump): Likewise.
3503         (thread_jump): Likewise.
3504         (try_forward_edges): Likewise.
3505         (merge_blocks_move): Likewise.
3506         (outgoing_edges_match): Likewise.
3507         (try_crossjump_to_edge): Likewise.
3508         (try_crossjump_bb): Likewise.
3509         (try_optimize_cfg): Likewise.
3510         (merge_seq_blocks): Likewise.
3511         * cfgexpand.c (expand_gimple_tailcall): Likewise.
3512         (expand_gimple_basic_block): Likewise.
3513         (construct_init_block): Likewise.
3514         (construct_exit_block): Likewise.
3515         * cfghooks.c (verify_flow_info): Likewise.
3516         (dump_bb): Likewise.
3517         (delete_basic_block): Likewise.
3518         (split_edge): Likewise.
3519         (merge_blocks): Likewise.
3520         (make_forwarder_block): Likewise.
3521         (tidy_fallthru_edges): Likewise.
3522         (can_duplicate_block_p): Likewise.
3523         (duplicate_block): Likewise.
3524         * cfglayout.c (fixup_reorder_chain): Likewise.
3525         (fixup_fallthru_exit_predecessor): Likewise.
3526         (can_copy_bbs_p): Likewise.
3527         (copy_bbs): Likewise.
3528         * cfgloop.c (flow_loops_cfg_dump): Likewise.
3529         (flow_loop_entry_edges_find): Likewise.
3530         (flow_loop_exit_edges_find): Likewise.
3531         (flow_loop_nodes_find): Likewise.
3532         (mark_single_exit_loops): Likewise.
3533         (flow_loop_pre_header_scan): Likewise.
3534         (flow_loop_pre_header_find): Likewise.
3535         (update_latch_info): Likewise.
3536         (canonicalize_loop_headers): Likewise.
3537         (flow_loops_find): Likewise.
3538         (get_loop_body_in_bfs_order): Likewise.
3539         (get_loop_exit_edges): Likewise.
3540         (num_loop_branches): Likewise.
3541         (verify_loop_structure): Likewise.
3542         (loop_latch_edge): Likewise.
3543         (loop_preheader_edge): Likewise.
3544         * cfgloopanal.c (mark_irreducible_loops): Likewise.
3545         (expected_loop_iterations): Likewise.
3546         * cfgloopmanip.c (remove_bbs): Likewise.
3547         (fix_bb_placement): Likewise.
3548         (fix_irreducible_loops): Likewise.
3549         (remove_path): Likewise.
3550         (scale_bbs_frequencies): Likewise.
3551         (loopify): Likewise.
3552         (unloop): Likewise.
3553         (fix_loop_placement): Likewise.
3554         (loop_delete_branch_edge): Likewise.
3555         (duplicate_loop_to_header_edge): Likewise.
3556         (mfb_keep_just): Likewise.
3557         (create_preheader): Likewise.
3558         (force_single_succ_latches): Likewise.
3559         (loop_split_edge_with): Likewise.
3560         (create_loop_notes): Likewise.
3561         * cfgrtl.c (rtl_split_block): Likewise.
3562         (rtl_merge_blocks): Likewise.
3563         (rtl_can_merge_blocks): Likewise.
3564         (try_redirect_by_replacing_jump): Likewise.
3565         (force_nonfallthru_and_redirect): Likewise.
3566         (rtl_tidy_fallthru_edge): Likewise.
3567         (commit_one_edge_insertion): Likewise.
3568         (commit_edge_insertions): Likewise.
3569         (commit_edge_insertions_watch_calls): Likewise.
3570         (rtl_verify_flow_info_1): Likewise.
3571         (rtl_verify_flow_info): Likewise.
3572         (purge_dead_edges): Likewise.
3573         (cfg_layout_redirect_edge_and_branch): Likewise.
3574         (cfg_layout_can_merge_blocks_p): Likewise.
3575         (rtl_flow_call_edges_add): Likewise.
3576         * cse.c (cse_cc_succs): Likewise.
3577         * df.c (hybrid_search): Likewise.
3578         * dominance.c (calc_dfs_tree_nonrec): Likewise.
3579         (calc_dfs_tree): Likewise.
3580         (calc_idoms): Likewise.
3581         (recount_dominator): Likewise.
3582         * domwalk.c (walk_dominator_tree): Likewise.
3583         * except.c (emit_to_new_bb_before): Likewise.
3584         (connect_post_landing_pads): Likewise.
3585         (sjlj_emit_function_enter): Likewise.
3586         (sjlj_emit_function_exit): Likewise.
3587         (finish_eh_generation): Likewise.
3588         * final.c (compute_alignments): Likewise.
3589         * flow.c (calculate_global_regs_live): Likewise.
3590         (initialize_uninitialized_subregs): Likewise.
3591         (init_propagate_block_info): Likewise.
3592         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3593         * gcse.c (find_implicit_sets): Likewise.
3594         (bypass_block): Likewise.
3595         (bypass_conditional_jumps): Likewise.
3596         (compute_pre_data): Likewise.
3597         (insert_insn_end_bb): Likewise.
3598         (insert_store): Likewise.
3599         (remove_reachable_equiv_notes): Likewise.
3600         * global.c (global_conflicts): Likewise.
3601         (calculate_reg_pav): Likewise.
3602         * graph.c (print_rtl_graph_with_bb): Likewise.
3603         * ifcvt.c (mark_loop_exit_edges): Likewise.
3604         (merge_if_block): Likewise.
3605         (find_if_header): Likewise.
3606         (block_jumps_and_fallthru_p): Likewise.
3607         (find_if_block): Likewise.
3608         (find_cond_trap): Likewise.
3609         (block_has_only_trap): Likewise.
3610         (find_if_case1): Likewise.
3611         (find_if_case_2): Likewise.
3612         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3613         (perfect_nestify): Likewise.
3614         * lcm.c (compute_antinout_edge): Likewise.
3615         (compute_laterin): Likewise.
3616         (compute_available): Likewise.
3617         (compute_nearerout): Likewise.
3618         * loop-doloop.c (doloop_modify): Likewise.
3619         * loop-init.c (loop_optimizer_init): Likewise.
3620         * loop-invariant.c (find_exits): Likewise.
3621         * loop-iv.c (simplify_using_initial_values): Likewise.
3622         (check_simple_exit): Likewise.
3623         (find_simple_exit): Likewise.
3624         * loop-unroll.c (peel_loop_completely): Likewise.
3625         (unroll_loop_constant_iterations): Likewise.
3626         (unroll_loop_runtime_iterations): Likewise.
3627         * loop-unswitch.c (may_unswitch_on): Likewise.
3628         (unswitch_loop): Likewise.
3629         * modulo-sched.c (generate_prolog_epilog): Likewise.
3630         (sms_schedule): Likewise.
3631         * postreload-gcse.c (eliminate_partially_redundant_load):
3632         Likewise.
3633         * predict.c (can_predict_insn_p): Likewise.
3634         (set_even_probabilities): Likewise.
3635         (combine_predictions_for_bb): Likewise.
3636         (predict_loops): Likewise.
3637         (estimate_probability): Likewise.
3638         (tree_predict_by_opcode): Likewise.
3639         (tree_estimate_probability): Likewise.
3640         (last_basic_block_p): Likewise.
3641         (propagate_freq): Likewise.
3642         (estimate_loops_at_level): Likewise.
3643         (estimate_bb_frequencies): Likewise.
3644         * profile.c (instrument_edges): Likewise.
3645         (get_exec_counts): Likewise.
3646         (compute_branch_probabilities): Likewise.
3647         (branch_prob): Likewise.
3648         * ra-build.c (live_in): Likewise.
3649         * ra-rewrite.c (rewrite_program2): Likewise.
3650         * ra.c (reg_alloc): Likewise.
3651         * reg-stack.c (reg_to_stack): Likewise.
3652         (convert_regs_entry): Likewise.
3653         (compensate_edge): Likewise.
3654         (convert_regs_1): Likewise,
3655         (convert_regs_2): Likewise.
3656         (convert_regs): Likewise.
3657         * regrename.c (copyprop_hardreg_forward): Likewise.
3658         * reload1.c (fixup_abnormal_edges): Likewise.
3659         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
3660         (sbitmap_insersection_of_preds): Likewise.
3661         (sbitmap_union_of_succs): Likewise.
3662         (sbitmap_union_of_preds): Likewise.
3663         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
3664         (fix_basic_block_boundaries): Likewise.
3665         (sched_ebbs): Likewise.
3666         * sched-rgn.c (build_control_flow): Likewise.
3667         (find_rgns): Likewise.
3668         * tracer.c (find_best_successor): Likewise.
3669         (find_best_predecessor): Likewise.
3670         (tail_duplicate): Likewise.
3671         * tree-cfg.c (make_edges): Likewise.
3672         (make_ctrl_stmt_edges): Likewise.
3673         (make_goto_expr_edges): Likewise.
3674         (tree_can_merge_blocks_p): Likewise.
3675         (tree_merge_blocks): Likewise.
3676         (cfg_remove_useless_stmts_bb): Likewise.
3677         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3678         (tree_block_forwards_to): Likewise.
3679         (cleanup_control_expr_graph): Likewise.
3680         (find_taken_edge): Likewise.
3681         (dump_cfg_stats): Likewise.
3682         (tree_cfg2vcg): Likewise.
3683         (disband_implicit_edges): Likewise.
3684         (tree_find_edge_insert_loc): Likewise.
3685         (bsi_commit_edge_inserts): Likewise.
3686         (tree_split_edge): Likewise.
3687         (tree_verify_flow_info): Likewise.
3688         (tree_make_forwarder_block): Likewise.
3689         (tree_forwarder_block_p): Likewise.
3690         (thread_jumps): Likewise.
3691         (tree_try_redirect_by_replacing_jump): Likewise.
3692         (tree_split_block): Likewise.
3693         (add_phi_args_after_copy_bb): Likewise.
3694         (rewrite_to_new_ssa_names_bb): Likewise.
3695         (dump_function_to_file): Likewise.
3696         (print_pred_bbs): Likewise.
3697         (print_loop): Likewise.
3698         (tree_flow_call_edges_add): Likewise.
3699         (split_critical_edges): Likewise.
3700         (execute_warn_function_return): Likewise.
3701         (extract_true_false_edges_from_block): Likewise.
3702         * tree-if-conv.c (tree_if_conversion): Likewise.
3703         (if_convertable_bb_p): Likewise.
3704         (find_phi_replacement_condition): Likewise.
3705         (combine_blocks): Likewise.
3706         * tree-into-ssa.c (compute_global_livein): Likewise.
3707         (ssa_mark_phi_uses): Likewise.
3708         (ssa_rewrite_initialize_block): Likewise.
3709         (rewrite_add_phi_arguments): Likewise.
3710         (ssa_rewrite_phi_arguments): Likewise.
3711         (insert_phi_nodes_for): Likewise.
3712         (rewrite_into_ssa): Likewise.
3713         (rewrite_ssa_into_ssa): Likewise.
3714         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
3715         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
3716         (rewrite_trees): Likewise.
3717         * tree-pretty-print.c (dump_bb_header): Likewise.
3718         (dump_implicit_edges): Likewise.
3719         * tree-sra.c (insert_edge_copies): Likewise.
3720         (find_obviously_necessary_stmts): Likewise.
3721         (remove_data_stmt): Likewise.
3722         * tree-ssa-dom.c (thread_across_edge): Likewise.
3723         (dom_opt_finalize_block): Likewise.
3724         (single_incoming_edge_ignoring_loop_edges): Likewise.
3725         (record_equivalences_from_incoming_edges): Likewise.
3726         (cprop_into_successor_phis): Likewise.
3727         * tree-ssa-live.c (live_worklist): Likewise.
3728         (calculate_live_on_entry): Likewise.
3729         (calculate_live_on_exit): Likewise.
3730         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3731         (copy_loop_headers): Likewise.
3732         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3733         (fill_always_executed_in): Likewise.
3734         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
3735         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
3736         (compute_phi_arg_on_exit): Likewise.
3737         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
3738         (get_loops_exit): Likewise.
3739         (split_loop_exit_edge): Likewise.
3740         (ip_normal_pos): Likewise.
3741         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3742         Likewise.
3743         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
3744         (replace_phi_with_stmt): Likewise.
3745         (value_replacement): Likewise.
3746         * tree-ssa-pre.c (compute_antic_aux): Likewise.
3747         (insert_aux): Likewise.
3748         (init_pre): Likewise.
3749         * tree-ssa-propagate.c (simulate_stmt): Likewise.
3750         (simulate_block): Likewise.
3751         (ssa_prop_init): Likewise.
3752         * tree-ssa-threadupdate.c (thread_block): Likewise.
3753         (create_block_for_threading): Likewise.
3754         (remove_last_stmt_and_useless_edges): Likewise.
3755         * tree-ssa.c (verify_phi_args): Likewise.
3756         (verify_ssa): Likewise.
3757         * tree_tailcall.c (independent_of_stmt_p): Likewise.
3758         (find_tail_calls): Likewise.
3759         (eliminate_tail_call): Likewise.
3760         (tree_optimize_tail_calls_1): Likewise.
3761         * tree-vectorizer.c (vect_transform_loop): Likewise.
3762         * var-tracking.c (prologue_stack_adjust): Likewise.
3763         (vt_stack_adjustments): Likewise.
3764         (vt_find_locations): Likewise.
3765         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
3766         * config/i386/i386.c (ix86_pad_returns): Likewise.
3767         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3768         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3769
3770 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3771
3772         PR target/16532
3773         * config/sparc/sparc.c (struct machine_function): New field
3774         'leaf_function_p' and 'prologue_data_valid_p'.
3775         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
3776         to conveniently access the above fields.
3777         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
3778         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
3779         of the generic flavor 'current_function_uses_only_leaf_regs'.
3780         (eligible_for_sibcall_delay): Likewise.
3781         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
3782         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
3783         (sparc_asm_function_prologue): Add sanity check for the assumption
3784         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
3785         (sparc_can_use_return_insn_p): New function.
3786         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
3787         (output_restore): Likewise.
3788         (output_sibcall): Likewise.
3789         (sparc_output_mi_thunk): Likewise.
3790         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
3791         * config/sparc/sparc.md (return): New expander.
3792
3793         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
3794
3795 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
3796
3797         PR c++/17642
3798         * stor-layout.c (layout_decl): Use fold_convert, not convert.
3799         (bit_from_pos): Likewise.
3800         (byte_from_pos): Likewise.
3801         (pos_from_bit): Likewise.
3802         (normalize_offset): Likewise.
3803         (place_field): Likewise.
3804         (finalize_type_size): Likewise.
3805         (layout_type): Likewise.
3806         * tree.c (build_index_type): Likewise.
3807
3808 2004-09-27  Devang Patel  <dpatel@apple.com>
3809
3810         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
3811         * genopinit.c (optabs): New entry for vcond_gen_code and
3812         vcondu_gen_code.
3813         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
3814         (get_rtx_code): New function.
3815         (vector_compare_rtx): New function.
3816         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
3817         (expand_vec_cond_expr_p): New function.
3818         (expand_vec_cond_expr): New function.
3819         (get_vcond_icode): New function.
3820         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
3821         (vcond_gen_code, vcondu_gen_code): Same.
3822
3823 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3824
3825         * Makefile.in (STAGESTUFF): Split into ...
3826         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
3827         (mostlyclean): Update.
3828         (stage1-start, stage2-start, stage3-start, stage4-start,
3829         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
3830         Move the STAGEMOVESTUFF.
3831
3832 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3833
3834         * system.h (getpagesize): Return 'int' instead of 'long'.
3835
3836 2004-09-27  Michael Matz <matz@suse.de>
3837
3838         PR bootstrap/17698
3839         PR bootstrap/17702
3840         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
3841         bmp_iter_and_init): Shift by bit_in_word.
3842
3843 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3844
3845         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
3846         * configure.ac: Don't sinclude it here.
3847         * configure: Regenerate.
3848
3849 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
3850
3851         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
3852         Handle AND pattern
3853
3854 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
3855
3856         PR c/13804
3857         * c-typeck.c (build_component_ref): Name type involved in
3858         diagnostic for structure or union without a member of the given
3859         name.
3860
3861 2004-09-27  DJ Delorie  <dj@redhat.com>
3862
3863         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
3864         .comm alignment is bytes, not bits.
3865
3866 2004-09-27  Devang Patel  <dpatel@apple.com>
3867
3868         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3869         (print_call_name): Do not print VEC_COND_EXPR.
3870
3871 2004-09-27  Devang Patel  <dpatel@apple.com>
3872
3873         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3874
3875 2004-09-27  Jan Hubicka  <jh@suse.cz>
3876
3877         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
3878
3879 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
3880
3881         * bitmap.h: Fix a comment typo.
3882
3883 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
3884
3885         * libgcc2.c (getpagesize): Change type of return value to int.
3886
3887 2004-09-26  Matt Austern  <austern@apple.com>
3888
3889         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
3890         using mmap.
3891
3892 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3893
3894         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
3895         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
3896         (bitmap_iterator): New type.
3897         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
3898         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
3899         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
3900         bmp_iter_and_init, bmp_iter_and_next): New functions.
3901         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
3902         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
3903         use iterator-style EXECUTE_IF_IN_BITMAP macros.
3904         * bitmap.c (bitmap_print): Ditto.
3905         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
3906         btr_def_live_range): Ditto.
3907         * cfganal.c (compute_dominance_frontiers_1) Ditto.
3908         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
3909         Ditto.
3910         * ddg.c (build_inter_loop_deps): Ditto.
3911         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
3912         Ditto.
3913         * except.c (remove_eh_handler): Ditto.
3914         * flow.c (reg_set_to_hard_reg_set): Ditto.
3915         * gcse.c (clear_modify_mem_tables): Ditto.
3916         * global.c (build_insn_chain): Ditto.
3917         * ifcvt.c (dead_or_predicable): Ditto.
3918         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
3919         Ditto.
3920         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
3921         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
3922         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
3923         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
3924         tree_purge_all_dead_eh_edges): Ditto.
3925         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
3926         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
3927         rewrite_ssa_into_ssa): Ditto.
3928         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
3929         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
3930         Ditto.
3931         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
3932         compute_flow_sensitive_aliasing, maybe_create_global_var,
3933         dump_points_to_info_for): Ditto.
3934         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
3935         * tree-ssa-dse.c (dse_finalize_block): Ditto.
3936         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
3937         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
3938         Ditto.
3939         * tree-ssa-loop-ivopts.c (find_induction_variables,
3940         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
3941         determine_use_iv_costs, determine_set_costs, find_best_candidate,
3942         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
3943         Ditto.
3944         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
3945         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
3946         add_call_read_ops): Ditto.
3947         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
3948
3949 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3950
3951         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
3952         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
3953
3954 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3955
3956         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
3957         reflect size of memory regions being compared.
3958
3959 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
3960
3961         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
3962         expressions.  Always clear MEM_SIZE and alias set.
3963
3964 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3965             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
3966
3967         PR middle-end/17112
3968         * stor-layout.c (compute_record_mode): For records with a single
3969         field, only use the field's mode if its size matches what we'd
3970         have choosen for the record ourselves.  This forces the use of
3971         BLKmode for packed records that don't completely fill a mode.
3972
3973 2004-09-26  Roger Sayle  <roger@eyesopen.com>
3974
3975         PR middle-end/17151
3976         * combine.c (force_to_mode): Remove dubious early return test that
3977         inhibits further optimization.
3978
3979 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
3980
3981         * profile.c: Fix a comment typo.
3982
3983 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3984
3985         PR bootstrap/17591
3986         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
3987         with varying offset.
3988         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
3989         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
3990         ARRAY_REFS.
3991         (expr_invariant_in_loop_p): New function.
3992         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
3993         component_ref_field_offset for COMPONENT_REFs.  Do not allow
3994         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
3995         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
3996         MISALIGNED_INDIRECT_REFs.
3997         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
3998         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
3999         MISALIGNED_INDIRECT_REFs.
4000
4001 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
4002
4003         PR c/11459
4004         * gcc.c (cpp_options, cc1_options): Preserve relative order of
4005         -std and -ansi options.
4006
4007 2004-09-26  Jan Hubicka  <jh@suse.cz>
4008
4009         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
4010         for nested functions whose proper parent has not been output.
4011
4012         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
4013         when re-constructing profile previously invalidated by loop.
4014
4015 2004-09-25  Dale Johannesen  <dalej@apple.com>
4016
4017         * tree-gimple.c:  Move GIMPLE definition...
4018         * doc/tree-ssa.texi:  here.
4019
4020 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4021
4022         * tree-vectorizer.c: Fix a comment typo.
4023
4024 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4025
4026         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
4027         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
4028         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
4029         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
4030
4031 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4032
4033         * tree-ssa-loop-unswitch.c: Fix a comment typo.
4034
4035 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4036
4037         * doc/passes.texi: Fix a typo.
4038
4039 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4040
4041         * tree-optimize.c (init_tree_optimization_passes): Add
4042         pass_record_bounds.
4043         * tree-pass.h (pass_record_bounds): Declare.
4044         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
4045         New pass.
4046
4047 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4048
4049         PR tree-optimization/17474
4050         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
4051         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
4052
4053 2004-09-25  Jan Hubicka  <jh@suse.cz>
4054
4055         * predict.c (counts_to_freqs): Make global.
4056         * predict.h (counts_to_freqa): Declare.
4057         * profile.c (compute_branch_probabilities): Compute frequencies
4058         * tree-profile.c (do_tree_profiling): Refine conditional on when
4059         tree profiling pass is needed.
4060
4061         * passes.c (rest_of_handle_cfg): Disable const/pure function
4062         detection when doing tree based profiling.
4063
4064         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
4065         conditional.
4066
4067 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
4068
4069         * config/mips/mips.h (struct mips_args): Clarify comments.
4070         * config/mips/mips.c (struct mips_arg_info): Likewise.
4071         (mips_arg_info): Don't allow fpr_p to affect the register or
4072         stack alignment.  Remove o64 silliness.
4073         (function_arg): Deal with the o32 float,float case specially.
4074
4075 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
4076
4077         * config/mips/mips.md (loadx, storex): Define for V2SF.
4078
4079 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
4080
4081         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
4082         * config/s390/s390.c (s390_back_chain_rtx): New function.
4083         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
4084         Call anti_adjust_stack.
4085         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
4086         only if compiling with back chain.
4087         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
4088         back chain only if back chain enabled.  Use s390_back_chain_rtx.
4089
4090 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4091
4092         * doc/trouble.texi: Remove obsolete information.  Update
4093         information on how to regenerate fixincluded headers.
4094
4095 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4096
4097         PR c/12951
4098         * doc/invoke.texi: Document that
4099         -Wno-error-implicit-function-declaration is not accepted.
4100
4101 2004-09-24  Richard Henderson  <rth@redhat.com>
4102
4103         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
4104         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
4105         on TARGET_MAX.
4106         (alpha_expand_mov): Allow unaligned vectors.
4107         (alpha_expand_unaligned_store): Use CONST0_RTX.
4108         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
4109
4110 2004-09-24 Jeff Law  <law@redhat.com>
4111
4112         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
4113         aliasing rules.
4114         (simplify_cond_and_lookup_avail_expr): Likewise.
4115
4116 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4117
4118         PR c/12802
4119         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
4120         title.  Document interaction with -fms-extensions.
4121         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
4122         section.
4123
4124 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4125
4126         PR c/12713
4127         * doc/extend.texi: Document interaction of attribute noreturn and
4128         longjmp.
4129
4130 2004-09-24  Richard Henderson  <rth@redhat.com>
4131
4132         PR rtl-opt/17503
4133         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
4134         (som_hash, som_eq): New.
4135         (init_subregs_of_mode, record_subregs_of_mode): New.
4136         (cannot_change_mode_set_regs): Rewrite for htab implementation.
4137         (invalid_mode_change_p): Likewise.
4138         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
4139         * flow.c (mark_used_regs): Likewise.
4140         (life_analysis): Use init_subregs_of_mode.
4141         * regs.h (subregs_of_mode): Remove.
4142         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
4143
4144 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4145
4146         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
4147         type with the copy of the conditional.
4148
4149 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4150
4151         PR tree-opt/16954
4152         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4153         Prevent renaming if the aliasing sets of the type which the
4154         pointer points to are different.
4155
4156 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4157
4158         PR c/17188
4159         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
4160         declarations of enumerators.
4161         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
4162         for redefinition.  Check for nested redefinition.
4163         (finish_struct): Don't check for nested redefinition.
4164         (start_enum): Check for nested redefinition.
4165
4166 2004-09-24  Devang Patel  <dpatel@apple.com>
4167
4168         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
4169         only when necesssary.
4170         (combine_blocks): Combine loop header and exit block.
4171
4172 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
4173
4174         * hooks.c (hook_tree_tree_bool_null): New.
4175         * hooks.h (hook_tree_tree_bool_null): Declare it.
4176         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
4177         * targhooks.c (default_fold_builtin): Remove.
4178         * targhooks.h (default_fold_builtin): Remove.
4179
4180 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4181
4182         PR rtl-optimization/17625
4183         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
4184
4185 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4186
4187         PR tree-opt/17624
4188         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
4189         Reject if any of the operands occur in an abnormal PHI.
4190
4191 2004-09-24  Andreas Schwab  <schwab@suse.de>
4192
4193         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
4194         rules.
4195
4196 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
4197
4198         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
4199         if the GNU assembler is used.
4200         (sparc-*-solaris2*): Likewise.
4201         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
4202         (dbxout_function_end): Protect N_ENSYM with it.
4203         (dbxout_begin_prologue): Protect N_BNSYM with it.
4204         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
4205         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
4206         * config/sparc/sol2-gas.h: New file.
4207
4208 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
4209
4210         PR bootstrap/17369
4211         * Makefile.in (@set_gcc_lib_path@): Added.
4212
4213         * configure.ac: Include ../config/gcc-lib-path.m4. Use
4214         TL_AC_GNU_MAKE_GCC_LIB_PATH.
4215         * configure: Regenerated.
4216
4217 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4218
4219         PR c/6980
4220         * c-typeck.c (build_c_cast): Improve wording of
4221         -Wbad-function-cast diagnostic.
4222
4223 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
4224
4225         PR target/17626
4226         * config/cris/cris.md (moverside, movemside): Rename variable
4227         "reg" to "otherop".  To generate canonical RTX, check that otherop
4228         isn't constant instead of checking that operand 1 is a register.
4229
4230 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
4231
4232         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
4233
4234 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
4235             Jakub Jelinek  <jakub@redhat.com>
4236
4237         * tree-flow.h (find_new_referenced_vars): Add prototype.
4238         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
4239         Move to...
4240         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
4241         ... here.
4242         (mark_new_vars_to_rename): Walk through all operands.
4243         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
4244         (execute_fold_all_builtins): Use it.
4245         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
4246
4247 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
4248
4249         * gthr-tpf.h: New file.
4250         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
4251         * gthr.h: Use gthr-tpf.h on TPF OS.
4252
4253 2004-09-23 Jeff Law  <law@redhat.com>
4254
4255         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
4256         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4257         (substitute_and_fold):  Likewise.
4258         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
4259         except invariants from SSA_NAME_VALUE.
4260         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
4261         and SET_SSA_NAME_EQUIV.
4262         (restore_vars_to_original_value, record_const_or_copy): Likewise.
4263         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
4264         (record_equality, cprop_into_successor_phis): Likewise.
4265         (record_equivalences_from_stmt, cprop_operand): Likewise.
4266         (lookup_avail_expr): Likewise.
4267         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
4268         from SSA_NAME_VALUE.
4269         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
4270         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
4271         annotation from the VALUE_HANDLE field.
4272
4273 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
4274
4275         PR c++/13989
4276         PR c++/9844
4277         * tree.c (reconstruct_complex_type): Remove extra "this".
4278         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4279         Add V4SFmode to case statement.
4280
4281 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4282
4283         PR c/16833
4284         * doc/extend.texi, doc/invoke.texi: Document interaction of
4285         -fno-builtin with format checks.  Note that built-in functions
4286         have effects beyond generating code that avoids calls to those
4287         functions.
4288
4289 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
4290
4291         PR tree-optimization/17533
4292         * dominance.c (verify_dominators): Tolerate even more incorrect
4293         dominance data during error message printing.
4294         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
4295         and edges more correctly.
4296
4297 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
4298
4299         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
4300         New tree-codes.
4301         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
4302         MISALIGNED_INDIRECT_REF.
4303         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
4304         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
4305         Likewise.
4306         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
4307         (find_interesting_uses_address): Likewise.
4308         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
4309         (build_fold_addr_expr_with_type): Likewise.
4310         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
4311         * print-rtl.c (print_mem_expr): Likewise.
4312         * tree-dump.c (dequeue_and_dump): Likewise.
4313         * tree-eh.c (tree_could_trap_p): Likewise.
4314         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
4315         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
4316         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
4317         Likewise.
4318         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4319         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
4320         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
4321         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
4322         (add_address_candidates, rewrite_address_base): Likewise.
4323         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
4324         Likewise.
4325         * tree.c (staticp, build1_stat): Likewise.
4326
4327         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
4328         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
4329         * tree-ssa-operands.c (get_expr_operands): Likewise.
4330         * expr.c (expand_expr_real_1): Likewise.
4331
4332         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
4333         optabs.
4334         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
4335         for the new optabs.
4336         (expand_ternary_op): New function.
4337         * genopinit.c (optabs): Handle the new optabs.
4338         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
4339         (init_optabs): Initialize vec_realign_load_optab.
4340         (expand_ternary_op): New functions.
4341
4342         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
4343         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
4344         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
4345         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
4346         * target.h (struct vectorize): New member for struct gcc_target.
4347         (misaligned_mem_ok): New member for targetm.vectorize.
4348         (builtin_mask_for_load): Likewise.
4349         (builtin_mask_for_store): Likewise.
4350         * targethooks.c (default_vect_misaligned_mem_ok): New function.
4351         * targethooks.h (default_vect_misaligned_mem_ok): New function.
4352
4353         * config/rs6000/altivec.md (build_vector_mask_for_load): New
4354         define_expand.
4355         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
4356         (vec_realign_load_v16qi): New define_insn.
4357         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
4358         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
4359         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
4360         (altivec_builtin_mask_for_store): New variables.
4361         (rs6000_builtin_mask_for_load): New function. Implements
4362         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
4363         (rs6000_builtin_mask_for_store): New function. Implements
4364         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
4365         (rs6000_expand_builtin): Expand the target builtins
4366         builtin_mask_for_load and builtin_mask_for_store.
4367         (altivec_init_builtins): Initialize the new target builtins.
4368         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
4369         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
4370
4371         * tree-vectorizer.c (vect_create_data_ref): Renamed to
4372         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
4373         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
4374         (vectorizable_store): Call vect_create_data_ref_ptr with additional
4375         arguments, and create an indirect_ref with its return value data_ref.
4376         Check aligned_access_p.
4377         (vectorizable_load): Handle misaligned loads, using software-pipelined
4378         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
4379         vec_realign_load_optab is supported, or using a scheme without
4380         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
4381         misaligned_mem_ok is supported.
4382
4383         (vect_finish_stmt_generation): Typo.
4384         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
4385         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
4386         presence of misaligned loads.
4387         (vect_analyze_data_ref_access): Add check for constant init.
4388         (vect_get_symbl_and_dr): Remove duplicate line.
4389         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
4390
4391 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4392
4393         * builtins.c: Fix a comment typo.
4394
4395 2004-09-23  Jan Hubicka  <jh@suse.cz>
4396
4397         * profile.c (branch_prob): Do not verify flow info in the middle of the
4398         pass.
4399
4400 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4401
4402         * cfgloop.h (update_single_exits_after_duplication): Declare.
4403         (loopify, split_loop_bb): Declaration changed.
4404         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
4405         of rtx.
4406         (loopify): Added redirect_all_edges argument.
4407         (update_single_exits_after_duplication): Export.
4408         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
4409         * tree-flow.h (tree_duplicate_loop_to_header_edge,
4410         tree_ssa_loop_version): Declare.
4411         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
4412         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
4413         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
4414         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
4415
4416         * tree-ssa-loop-unswitch.c: New file.
4417         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
4418         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
4419         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
4420         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
4421         * tree-pass.h (pass_unswitch): Declare.
4422         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
4423         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
4424         * doc/passes.texi: Documen tree level loop unswitching.
4425
4426 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4427
4428         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
4429
4430 2004-09-22  Eric Christopher  <echristo@redhat.com>
4431
4432         * builtins.c (simplify_builtin_va_start): Remove.
4433         (simplify_builtin): Ditto.
4434         (fold_builtin_strchr): Ditto.
4435         (simplify_builtin_*): Rename remainders to fold_builtin_*.
4436         (expand_builtin): Fix up for above changes.
4437         (fold_builtin_1): Add new folders. Change for above.
4438         (expand_builtin_va_start): Call fold_builtin_next_arg.
4439         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
4440         * tree.h: Remove prototype for simplify_builtin.
4441
4442 2004-09-23  Jan Hubicka  <jh@suse.cz>
4443
4444         PR debug/17389
4445         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
4446         of fully inlined functions.
4447         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
4448         inlined.
4449
4450         * cfgexpand.c (add_reg_br_prob_note): New function.
4451         (expand_gimple_cond_expr): Use it.
4452         (tree_expand_cfg): No longer kill the profile.
4453         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
4454         only if it is present.
4455         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
4456         * predict.c (combine_predictions_for_insn): Set the probabilities
4457         based on REG_BR_PROB note if present.
4458         * predict.c (branch_prob): Profile is read only with
4459         flag_branch_probabilities.
4460
4461 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4462
4463         * aclocal.m4: Add in gettext's m4 includes.
4464         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
4465         * configure.ac: Add in check for iconv.h
4466         * configure: Regenerate.
4467
4468 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4469
4470         * aclocal.m4: Update for rename of gettext-sister.m4.
4471
4472 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
4473
4474         Fix PR tree-optimization/17587
4475         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
4476         (insert_aux): Instead of here.
4477
4478 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4479
4480         PR tree-optimization/16721
4481         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
4482         * tree-ssa-alias.c (create_memory_tag): Move setting of
4483         TREE_THIS_VOLATILE ...
4484         (get_tmt_for): ... here.
4485
4486 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4487
4488         * config/sparc/sparc.md (cmove splitter): Fix formatting.
4489         (conditional_trap expander): Reject inappropriate CCmodes.
4490         (conditional trap insn): Use V9 syntax if possible.
4491
4492 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4493
4494         PR c/16566
4495         * c-typeck.c (build_component_ref): Don't special-case
4496         COMPOUND_EXPR.
4497
4498 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
4499
4500         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
4501         returns NULL.
4502
4503 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4504
4505         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
4506         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
4507         TRUTH_XOR_EXPR): Mention the restriction on types.
4508
4509 2004-09-22  Matt Austern  <austern@apple.com>
4510
4511         * config/darwin.c (darwin_make_decl_one_only):
4512         Allow coalesced symbol to appear in static archive's table of contents
4513
4514 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4515
4516         PR tree-optimization/17512
4517         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
4518         special cases.
4519
4520 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
4521
4522         * dbxout.c (get_lang_number): Do not define if
4523         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
4524
4525 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
4526
4527         PR target/15583
4528         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
4529         builtin_define ("__USE_INIT_FINI__").
4530
4531 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
4532
4533         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
4534         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
4535         * config/s390/s390.h (TARGET_TPF): New macro.
4536         * config/s390/s390.md ("eh_return"): New expander.
4537         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
4538         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
4539         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
4540         * config/s390/tpf.h (TARGET_TPF): Define to 1.
4541         (STACK_POINTER_OFFSET): Increase to 448.
4542         (TARGET_DEFAULT): Set -mtpf-trace on as default.
4543         (TPF_LOC_DIFF_OFFSET): New macro.
4544         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
4545         encoding.
4546         (__isPATrange): Add prototype.
4547         (MD_FALLBACK_FRAME_STATE_FOR): Define.
4548         * config/s390/tpf-eh.c: New file.
4549
4550 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4551
4552         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
4553         operands in an integer comparison.
4554         * tree-cfg.c (find_taken_edge): Call fold() to determine
4555         whether the predicate is known.
4556
4557 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4558
4559         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
4560         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
4561         Create build and doc directories along with the language directories.
4562         Don't create doc directory separately.
4563         * configure: Regenerate.
4564         * Makefile.in: Create all object and executables files built
4565         with the build compiler in a build/ directory.
4566         (genobjnames): Add missing build objects.
4567         (STAGESTUFF): Don't stage the gen* programs.
4568         (ggc-none.o): Define dependencies for the target compiler.
4569         (build-print-rtl.o): Rename to build/print-rtl.o.
4570         (build-errors.o): Rename to build/errors.o.
4571         (build-varray.o): Rename to build/varray.o.
4572         (maintainerclean): Delete the contents of the build directory.
4573         ($(genobjs): %.o): Explicitly use -o.
4574         (build/insn-conditions.o): Delete specfic rule to use generic rule.
4575         (build/gengtype-lex.o): Likewise.
4576         (build/gengtype-yacc.o): Likewise.
4577         (build/gcov-iov.o): Likewise.
4578
4579 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4580
4581         * vec.h (VEC_space): Return true if there _is_ space.
4582         (VEC_reserve): Adjust.
4583
4584 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
4585
4586         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
4587         use FPRs for scalar, complex and vector types only.
4588
4589 2004-09-21 Jeff Law  <law@redhat.com>
4590
4591         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
4592         the opt_stats_d structure.
4593         (vrp_data): Change from a varray into a hash table.
4594         (vrp_hash_elt): New structure for elements in the vrp hash table.
4595         (vrp_hash, vrp_eq):New functions for hashing and testing equality
4596         in the vrp hash table.
4597         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
4598         initialization slightly to make it easier to read.  No longer need
4599         to grow/clear the varray.  Instead empty and delete the hash table.
4600         (dom_opt_finalize_block): Update due to change of VRP_DATA from
4601         a varray to a hash table.
4602         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
4603
4604         * tree-ssa-ccp.c (get_default_value): If we have a constant
4605         value recorded for an SSA_NAME, then use that constant as
4606         the initial lattice value.
4607         (substitute_and_fold): Transfer equivalences discovered into
4608         SSA_NAME_EQUIV.
4609
4610         * tree.h (SSA_NAME_EQUIV): Add comments.
4611         (SET_SSA_NAME_EQUIV): Similarly.
4612
4613 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
4614
4615         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
4616
4617         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
4618
4619 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
4620
4621         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
4622         (finish_decl): Likewise.
4623
4624 2004-09-21  Devang Patel  <dpatel@apple.com>
4625
4626         * tree.def (VEC_COND_EXPR): New tree node.
4627         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
4628
4629 2004-09-21  Stan Shebs  <shebs@apple.com>
4630
4631         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
4632         * config/rs6000/darwin-world.asm: Likewise.
4633
4634 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
4635
4636         * tree-ssa.c (verify_def): Use print_generic_stmt,
4637         not debug_generic_stmt.
4638         (verify_use): Ditto.
4639         (verify_phi_args): Ditto.
4640         (verify_ssa): Ditto.
4641
4642 2004-09-21  Paul Brook  <paul@codesourcery.com>
4643
4644         * varasm.c (default_assemble_integer): Return false for values wider
4645         than the target word size.  Works around GAS bug.
4646
4647 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
4648
4649         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
4650         gets value 0.
4651         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
4652         if it has value 0.
4653
4654 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
4655
4656         * c-typeck.c (build_function_call): Give name of object
4657         we are attempting to call in error message.
4658         * c-objc-common.c (c_tree_printer): Call pp_expression,
4659         not return false, for 'E' case.
4660
4661 2004-09-21  Steven Bosscher  <stevenb@suse.de>
4662
4663         PR rtl-optimization/17482
4664         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
4665         load_killed_in_block_p): Clarify comments.
4666         (record_last_reg_set_info): Make static inline.
4667         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
4668         (record_opr_changes): New function to replace the above.
4669         (compute_hash_table): Clarify comments.  Use record_opr_changes.
4670         (reg_set_between_after_reload_p): Clean up.
4671         (reg_used_between_after_reload_p): Likewise.
4672         (eliminate_partially_redundant_load): Clarify comments.
4673
4674 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4675
4676         PR rtl-optimization/17266
4677         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
4678
4679 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
4680
4681         PR rtl-optimization/14851
4682         * rtlanal.c (commutative_operand_precedence): Calculate
4683         precedence of stripped constant.
4684
4685 2004-09-20 Jeff Law  <law@redhat.com>
4686            Jan Hubicka  <jh@suse.cz>
4687
4688         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
4689         initialize key elements here.
4690         (release_ssa_name): Zero the released SSA_NAME here.
4691         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
4692         (struct tree_ssa_name): Add new "equiv" field.
4693         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
4694         (tree_ssa_dominator_optimize): No longer allocate, resize or
4695         clear CONST_AND_COPIES.
4696         (get_value_for, set_value_for): Kill.
4697         (thread_across_edge): Get/set the equivalency using
4698         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4699         (restore_vars_to_original_value): Likewise.
4700         (record_equivalences_from_phis): Likewise.
4701         (record_dominating_conditions): Likewise.
4702         (record_const_or_copy, record_equality): Likewise.
4703         (lookup_avail_expr): Likewise.
4704         (record_equivalences_from_stmt, cprop_operand): Likewise.
4705         (cprop_into_successor_phis): No longer need to pass around
4706         CONST_AND_COPIES.  Callers updated. Get equivalences via
4707         SSA_NAME_EQUIV.
4708         (cprop_into_phis): Likewise.
4709
4710 2004-09-20  Matt Austern <austern@apple.com>
4711             Zack Weinberg  <zack@codesourcery.com>
4712
4713         * c-common.c (fix_string_type): Build the unqualified array
4714         type unconditionally, then use c_build_qualified_type to get
4715         the proper const-qualified variant, and set its
4716         TYPE_MAIN_VARIANT to refer to the unqualified type.
4717         * c-lex.c (c_lex_return_raw_string): New global.
4718         (c_lex_with_flags): Honor it.
4719         * c-pragma.h: Declare it.
4720
4721 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4722
4723         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
4724
4725 2004-09-21  Jan Hubicka  <jh@suse.cz>
4726
4727         PR middle-end/17126
4728         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
4729         (tree_rest_of_compilation): Cleanup.
4730
4731 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
4732
4733         * config/s390/s390.c (s390_select_rtx_section): Remove.
4734         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
4735
4736 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4737
4738         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
4739         note to pretend a direct save from the original register when an
4740         intermediate register is used for the save.
4741
4742 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4743
4744         * tsystem.h (alloca): Provide a default definition.
4745
4746         Revert:
4747         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4748             * unwind-dw2.c: Call __builtin_alloca, not alloca.
4749
4750 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
4751
4752         PR tree-opt/17558
4753         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
4754         aliasing sets are the same rather than just conflicting.
4755
4756 2004-09-20  Jan Hubicka  <jh@suse.cz>
4757
4758         PR middle-end/16460
4759
4760         * cgraph.c (cgraph_unnest_node): New function.
4761         (c_finalize): Rename to ....
4762         (c_warn_unused_result_recursivly): ... this one; do only the warning
4763         (finish_function): Finalize the toplevel function; do not lower nested tree.
4764         * cgraph.h (cgraph_unnest_node): Declare.
4765         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
4766         nestedness datastructure.
4767         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
4768         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
4769         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
4770
4771 2004-09-20  Richard Henderson  <rth@redhat.com>
4772
4773         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
4774         from some_small_symbolic_operand_1; export.
4775         (some_small_symbolic_operand): Remove.
4776         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
4777         extra C check.
4778         * config/alpha/predicates.md (some_small_symbolic_operand): New.
4779
4780 2004-09-20  Jan Hubicka  <jh@suse.cz>
4781
4782         * predict.c (return_prediction): New function.
4783         (apply_return_prediction): Likewise.
4784         (tree_bb_level_predictions): Likewise.
4785         (tree_estimate_probability): Add noreturn exit edges; call
4786         bb_level_predictions; fix logic of return heuristics.
4787         (predict_paths_leading_to):  Rescuesce from old CVS version of
4788         process_note_prediction function.
4789         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
4790
4791 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
4792
4793         * config/s390/s390.c (s390_frame_info): Added alignment statement for
4794         floating point register area on stack.
4795
4796 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
4797
4798         * predict.c (expr_expected_value): Use *_CLASS_P macros.
4799
4800 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4801
4802         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
4803         generating useless garbage.
4804
4805 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
4806
4807         * builtins.c (fold_builtin): Call the new omonymous
4808         target hook for machine-dependent built-ins.
4809         * target-def.h (TARGET_FOLD_BUILTIN): New.
4810         * target.h (struct gcc_target): Add the fold_builtin hook.
4811         * targhooks.c (default_fold_builtin): New.
4812         * targhooks.h (default_fold_builtin): Declare it.
4813
4814 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
4815
4816         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
4817         comment typos.
4818
4819 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
4820
4821         PR target/17565
4822         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
4823
4824 2004-09-20  Jan Hubicka  <jh@suse.cz>
4825
4826         * predict.c (estimate_probability): Remove unnecesary code.
4827
4828 2004-09-19  Ira Rosen  <irar@il.ibm.com>
4829
4830         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
4831         (STMT_VINFO_VECT_DR_BASE): Declare.
4832         (VECT_SMODULO): Declare.
4833         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
4834         (vect_compute_array_base_alignment): New function.
4835         (vect_analyze_data_ref_access): Check array indices. Remove one
4836         dimensional arrays restriction.
4837         (vect_get_ptr_offset): New function.
4838         (vect_get_symbl_and_dr): New function.
4839         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
4840         (former name vect_get_base_decl_and_bit_offset).
4841         (vect_create_index_for_array_ref): Removed.
4842         (vect_create_index_for_vector_ref): New function.
4843         (vect_create_addr_base_for_vector_ref): New function.
4844         (vect_create_data_ref): Handle additional data refs. Call
4845         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
4846         (vect_compute_data_ref_alignment): Support the changes. Call
4847         vect_get_base_and_bit_offset.
4848         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
4849         data refs. Store vect_dr_base.
4850         (vect_analyze_data_ref_accesses): Support nonconstant init.
4851         (new_stmt_vec_info): Initialize vect_dr_base field.
4852         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4853         (get_vectype_for_scalar_type): Check for BLKmode.
4854         * tree-chrec.h (initial_condition_in_loop_num): Declare.
4855         * tree-chrec.c (initial_condition_in_loop_num): New function.
4856         (chrec_component_in_loop_num): New function.
4857         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
4858         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
4859         to be pointer to varray_type.
4860
4861 2004-09-19  Jan Hubicka  <jh@suse.cz>
4862
4863         * basic-block.h (update_bb_profile_after_threading): Declare.
4864         * cfg.c (update_bb_profile_after_threading): Break out from ...
4865         * cfgcleanup.c (try_forward_edges): ... here; use it.
4866         * tree-ssa-dom.c (thread_across_edge): Use it.
4867         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
4868         profile of the new BB.
4869
4870 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
4871
4872         * tree-ssa-pre.c (insert_into_set): Don't put
4873         is_gimple_min_invariant values into the set.
4874
4875 2004-09-19  Andreas Jaeger  <aj@suse.de>
4876
4877         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
4878         prototype.
4879
4880 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4881
4882         * config/cris/cris.h: Preserve the original spelling in a
4883         quote.
4884
4885 2004-09-18 Jeff Law  <law@redhat.com>
4886
4887         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
4888         global varrays to replace the block local varrays.
4889         (struct dom_walk_block_data): Remove, no longer used.
4890         (get_eq_expr_value): No longer need to pass around pointers to local
4891         varrays.  Callers updated.  Unused markers added to unused parameters.
4892         (record_range, record_equivalences_from_stmt): Likewise.
4893         (record_equivalences_from_incoming_edge): Likewise.
4894         (record_var_is_nonzero): Likewise.  Update now that we have a
4895         single global varray of SSA_NAMEs that need restoring.
4896         (dom_opt_initialize_block_local_data): Kill, no longer used.
4897         (tree_ssa_dominator_optimize): Initialize new global varrays.
4898         Update callbacks in dominator walker structure.
4899         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
4900         VRP_VARIABLES_STACK.
4901         (restore_nonzero_vars_to_original_value): Update now that we have
4902         a single global varray of SSA_NAMEs that need restoring.
4903         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
4904         Remove unused variables.
4905         (optimize_stmt): Remove unused variable.
4906
4907 2004-09-18  Jan Hubicka  <jh@suse.cz>
4908
4909         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
4910
4911         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
4912         verify_cgraph call.
4913
4914 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4915
4916         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
4917         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
4918         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
4919         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
4920         tree-ssa-operands.c, tree-ssa-phiopt.c,
4921         tree-ssa-threadupdate.c: Fix comment typos.
4922
4923 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4924
4925         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
4926         config/arm/README-interworking, config/arm/arm-cores.def,
4927         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
4928         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
4929         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
4930         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
4931         config/frv/frv.md, config/i386/winnt.c,
4932         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
4933         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
4934         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
4935         config/mcore/mcore.c, config/mips/mips.h,
4936         config/mn10300/mn10300.md, config/pa/pa.c,
4937         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
4938         config/rs6000/rs6000.c, config/sh/symbian.c,
4939         config/sparc/sparc.h: Fix comment typos.  Follow spelling
4940         conventions.
4941
4942 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
4943
4944         PR c/17424
4945         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
4946
4947 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4948
4949         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
4950         remove TREE_ADDRESSABLE from RESULT_DECL.
4951
4952 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
4953
4954         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
4955
4956 2004-09-18  Jan Hubicka  <jh@suse.cz>
4957
4958         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
4959         NULL.
4960         * tree-ssa-alias.c (init_alias_info): Likewise.
4961         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
4962         (verify_ssa): Likewise.
4963         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
4964
4965 2004-09-18  Jan Hubicka  <jh@suse.cz>
4966
4967         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
4968         huge offset.
4969
4970 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4971
4972         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
4973         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4974         DW_EH_PE_sdata* for data.
4975         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4976
4977 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
4978
4979         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
4980         shared anyway.
4981
4982         PR pch/13361
4983         * c-typeck.c (constructor_asmspec): Delete.
4984         (struct initializer_stack): Delete field 'asmspec'.
4985         (start_init): Delete saving of asmspec.
4986         (finish_init): Don't update constructor_asmspec.
4987         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
4988         * stmt.c (expand_asm): Duplicate strings from tree.
4989         (expand_asm_operands): Likewise.
4990         * tree.c (tree_size): Update computation of size of STRING_CST.
4991         (make_node): Don't make STRING_CST nodes.
4992         (build_string): Allocate string with tree node.
4993         (tree_code_size): Clean up assertions, don't allow requests
4994         for "the size of a STRING_CST".
4995         * tree.def (STRING_CST): Update comment.
4996         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
4997         (tree_string): Place contents of string in tree node.
4998         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
4999         from tree.
5000
5001 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
5002
5003         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
5004         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
5005
5006 2004-09-17  Jones Desougi  <jones@ingate.com>
5007
5008         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
5009         * configure, config.in: Regenerate.
5010
5011 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
5012
5013         * tree.c, tree.h (tree_class_strings): Make array const.
5014         Reindent per coding convention.  Move asterisk to proper place
5015         per coding convention.
5016
5017 2004-09-18  Andreas Schwab  <schwab@suse.de>
5018
5019         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
5020         (tree-vectorizer.o): Likewise.
5021         (targhooks.o): Likewise.
5022
5023 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
5024             Zack Weinberg  <zack@codesourcery.com>
5025
5026         * alias.c (find_base_decl): Remove unreachable case '3' block.
5027         * expr.c (safe_from_p): Abort if passed a type.
5028         * tree-gimple.c (recalculate_side_effects): Abort if passed
5029         anything other than an expression.
5030         * tree-ssa-pre.c (phi_translate): Return expr immediately if
5031         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
5032         Abort on un-handled tree classes.
5033         (valid_in_set): Likewise.
5034         * tree.c (tree_code_class_strings): New static data.
5035
5036         * tree.h (enum tree_code_class): New.
5037         (tree_code_class_strings): Declare.
5038         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
5039         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
5040         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
5041         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
5042         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
5043
5044         * tree.def, c-common.def, objc/objc-tree.def: Use
5045         tree_code_class enumeration constants instead of code letters.
5046
5047         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
5048         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
5049         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
5050         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
5051         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
5052         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
5053         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
5054         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
5055         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
5056         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
5057         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
5058         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
5059         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
5060         Update to match.
5061
5062         * LANGUAGES: Add note about change.
5063
5064 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
5065
5066         PR tree-optimization/17319
5067         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
5068         examine pointers on the LHS of an assignment.
5069         (collect_points_to_info_r): Handle RETURN_EXPR.
5070
5071 2004-09-17 Jeff Law  <law@redhat.com>
5072
5073         * tree-ssa-dom.c (const_and_copies_stack): New.
5074         (dom_walk_block_data): Remove const_and_copies field.
5075         (record_const_or_copy): No longer need to pass in varray_type *.
5076         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
5077         Callers updated.
5078         (record_equality): Similarly.
5079         (restore_vars_to_original_value): Similarly.  Revamp to use new
5080         single global stack rather than per-block stacks.
5081         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
5082         (thread_across_edge): Remove now unused parameters.
5083         (dom_opt_initialize_block_local_data): No longer test the block
5084         local CONST_AND_COPIES.
5085         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
5086
5087 2004-09-17  Jan Hubicka  <jh@suse.cz>
5088
5089         PR tree-optimization/17509
5090         * tree-optimize.c (update_inlined_to_pointers): New function.
5091         (tree_rest_of_compilation): Use it.
5092
5093 2004-09-17  Devang Patel  <dpatel@apple.com>
5094
5095         * dbxout.c (get_lang_number): New.
5096         (dbxout_init): Include lang number in N_SO  stab.
5097         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
5098         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
5099
5100 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
5101
5102         PR tree-optimization/17273
5103         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
5104         replacement is a constant.
5105
5106 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
5107
5108         * c-tree.h (enum c_typespec_keyword): New.
5109         (struct c_declspecs): Adjust description of "type".  Remove
5110         specbits, explicit_int_p and explicit_char_p.  Rename
5111         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
5112         short_p, signed_p, unsigned_p and complex_p.
5113         (finish_declspecs): New.
5114         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
5115         typename): Call finish_declspecs.
5116         * c-decl.c (finish_declspecs): New.
5117         (declspecs_add_type): Check for combinations which cannot occur in
5118         valid specifier lists.  Update comments.
5119         (shadow_tag_warned): Remove checks done in finish_declspecs.
5120         Don't report useless type name if type defaulted to int.
5121         (grokdeclarator): Remove checks and actions done in
5122         finish_declspecs.  Don't allow for type being NULL.  Update for
5123         datastructures changes.  Initialize decl_attr.
5124         (build_null_declspecs, quals_from_declspecs): Update for
5125         datastructures changes.
5126
5127 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
5128
5129         * doc/extend.texi: Fix duplicated word.
5130
5131 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
5132
5133         * doc/invoke.texi: Remove stray explanation on
5134         -freduce-all-givs and -fmove-all-movables.
5135
5136 2004-09-17  James Morrison  <phython@gcc.gnu.org>
5137
5138         * doc/cfg.texi: Use @smallexample.
5139         * doc/md.texi: Likewise.
5140         * doc/tree-ssa.texi: Likewise.
5141         * doc/extend.texi: Likewise.  Use @r{} in comments.
5142         * doc/trouble.texi: Use @r{} in comments.
5143
5144 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
5145
5146         * configure.ac (gcc_cv_gld_version): Handle whitespace before
5147         "VERSION=".
5148         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
5149         * configure: Regenerate.
5150
5151 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
5152
5153         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
5154         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
5155         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
5156         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
5157         slashes in substitutions.
5158         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
5159
5160 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
5161
5162         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
5163         gimplify.c, lambda-code.c, optabs.c, predict.c,
5164         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
5165         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
5166         conventions.
5167
5168 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
5169
5170         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
5171         doc/extend.texi, doc/install.texi, doc/invoke.texi,
5172         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
5173         doc/trouble.texi: Use @option around options.
5174
5175 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
5176
5177         * Makefile.in (gen-protos.o): Depend on errors.h.
5178
5179 2004-09-17  Steven Bosscher  <stevenb@suse.de>
5180
5181         PR tree-optimization/17513
5182         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
5183         for successors of the entry block.
5184
5185 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
5186
5187         PR rtl-optimization/15187
5188         * ifcvt.c (noce_try_cmove_arith): Exit early if total
5189         insn_rtx_cost of both branches > BRANCH_COST
5190
5191 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
5192
5193         PR tree-optimization/17528
5194         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
5195         erase the may-alias set for a tag when merging it with
5196         another.
5197
5198 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5199
5200         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
5201         for 32-bit TARGET_SHMEDIA.
5202         (call_value): Likewise.
5203
5204 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
5205
5206         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
5207         test apply only to TREE_STATIC and DECL_EXTERNAL.
5208
5209 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5210
5211         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
5212         * basic-block.h (get_dominated_by_region): Declare.
5213         * dominance.c (get_dominated_by_region): New function.
5214         * tree-cfg.c: Include cfglayout.h.
5215         (tree_duplicate_bb): Duplicate also phi nodes.
5216         (struct ssa_name_map_entry): New type.
5217         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
5218         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
5219         allocate_ssa_names, rewrite_to_new_ssa_names_def,
5220         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
5221         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
5222         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
5223         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
5224         rewrite_to_new_ssa_names, allocate_ssa_names,
5225         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
5226         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
5227         (copy_loop_headers): Use tree_duplicate_sese_region.
5228
5229 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
5230
5231         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
5232
5233 2004-09-16 Jeff Law  <law@redhat.com>
5234
5235         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
5236         (rewrite_block_data): Remove, no longer used.
5237         (rewrite_initialize_block_local_data): Remove, no longer used.
5238         (rewrite_initialize_block): Mark parameters as unused as needed.
5239         Change references to the block local block_defs to be block_defs_stack.
5240         Push a marker onto the block_defs_stack.
5241         (ssa_rewrite_initialize_block): Similarly.
5242         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
5243         (ssa_register_new_def): No longer needs varray argument.  Use
5244         block_defs_stack instead.  No longer handle possibly null block_defs
5245         varray.  Reverse order of items we push on the stack to make it
5246         easier to identify our marker.
5247         (register_new_def): No longer handle possibly null block_defs
5248         varray.
5249         (rewrite_finalize_block): Revamp to look for markers in the global
5250         block_defs_stack varray rather than wiping a block local varray.
5251         Mark arguments as unused as needed.
5252         (ssa_rewrite_finalize_block): Similarly.
5253         (rewrite_into_ssa): Update initialization of dom walker structure
5254         to reflect that we don't need block local data anymore.  Initialize
5255         the block_defs_stack varray.
5256         (rewrite_ssa_into_ssa): Similarly.
5257         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
5258         (struct dom_walk_data): Kill block_defs field.
5259         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
5260         (thread_across_edge): Use the global block_defs_stack instead of
5261         the old block_defs varray.
5262         (dom_opt_initialize_block_local_data): Update now that we don't have
5263         block_defs field to check anymore.
5264         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
5265         (restore_currdefs_to_original_value): Use the new block_defs_stack
5266         instead of a block local varray.
5267         (dom_opt_finalize_block): Similarly.
5268         (record_equivalencs_from_phis): Similarly.
5269         (optimize_stmt, register_definitions_for_stmt): Similarly.
5270
5271 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
5272
5273         PR tree-optimization/17517
5274         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5275         coalesce same-root variables without checking for abnormal PHI usage.
5276
5277 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
5278
5279         * cfgloop.h (duplicate_loop):  Add prototype.
5280         * cfgloopmanip.c (duplicate_loop): Make non-static.
5281         * lambda-code.c (perfect_nestify): Factor out test whether
5282         we can handle this loop into separate function.
5283         Call it.
5284         (can_convert_to_perfect_nest): New function.
5285         (replace_uses_of_x_with_y): Add modify_stmt call.
5286         * tree-loop-linear.c (linear_transform_loops): Call
5287         rewrite_into_loop_closed_ssa and free_df.
5288
5289 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
5290
5291         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
5292         loop invariant as well.
5293         (perfect_nestify): new function.
5294         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
5295         upper bounds, and steps.
5296         Set outerinductionvar properly.
5297         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
5298         parameters.
5299         Return NULL if we need a perfect loop and can't make one.
5300         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
5301         (not_interesting_stmt): New function.
5302         (phi_loop_edge_uses_def): Ditto.
5303         (stmt_uses_phi_result): Ditto.
5304         (stmt_is_bumper_for_loop): Ditto.
5305         (perfect_nest_p): Ditto.
5306         (nestify_update_pending_stmts): Ditto.
5307         (replace_uses_of_x_with_y): Ditto.
5308         (stmt_uses_op): Ditto.
5309         (perfect_nestify): Ditto.
5310         * lambda-mat.c (lambda_matrix_id_p): New function.
5311         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
5312         * lambda.h: Update prototypes.
5313         * tree-loop-linear (linear_transform_loop): Use new
5314         perfect_nest_p. Detect and ignore identity transform.
5315         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
5316
5317 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
5318
5319         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
5320         Gather also strides of accessed data.  Pass in the data references
5321         array.
5322         (try_interchange_loops): Add a new heuristic for handling the temporal
5323         locality.  Pass in the data references array.
5324         (linear_transform_loops): Pass the data references array to
5325         try_interchange_loops.
5326
5327 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
5328
5329         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
5330
5331 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
5332
5333         * doc/c-tree.texi (Classes): Remove index entries for
5334         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
5335
5336 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5337
5338         * fold-const.c (fold): Fold difference of addresses.
5339         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
5340         get_inner_reference.
5341         * tree-ssa-loop-ivopts.c (peel_address): Removed.
5342         (ptr_difference_const): Moved to fold-const.c.
5343         (split_address_cost): Use get_inner_reference instead of peel_address.
5344         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
5345         * tree.h (ptr_difference_const): Export.
5346
5347         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
5348         variable type to the dump.  Fix indentation.
5349         (idx_find_step): Handle nonconstant array_ref_element_size and
5350         array_ref_low_bound.
5351         (idx_record_use): Handle array_ref_element_size and
5352         array_ref_low_bound.
5353         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
5354         statements correctly.
5355         (get_computation_at, iv_value): Do not unshare expressions here.
5356         (rewrite_use_outer): Unshare the expression before it is emitted
5357         to code.
5358         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
5359         Moved to tree.c.
5360         * tree.c (unsigned_type_for, signed_type_for): Moved from
5361         tree-ssa-loop-niter.c.  Use langhooks.
5362         * tree.h (signed_type_for): Export.
5363
5364 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
5365
5366         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
5367         prototype.
5368
5369 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
5370
5371         PR target/11572
5372         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
5373         Add two parameters to extra_includes.
5374         (C_INCPATH_INIT): Remove.
5375         * c-incpath.c (register_include_chains): Call extra_pre_includes
5376         before adding the standard include directory.
5377         Update call to extra_includes.
5378         (!defined TARGET_EXTRA_INCLUDES): Update
5379         hook_void_charptr_charptr_int and add !define
5380         TARGET_EXTRA_PRE_INCLUDES.
5381         (!define TARGET_EXTRA_INCLUDES): Define as
5382         hook_void_charptr_charptr_int.
5383         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5384         (target_c_incpath): Always declare.
5385         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
5386         empty function.
5387         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5388         * config/darwin.h: (darwin_register_frameworks): Update for
5389         the two new parameters.
5390         (darwin_register_objc_includes): Add prototype.
5391         (TARGET_EXTRA_PRE_INCLUDES): Define.
5392         * config/darwin-c.c (darwin_register_objc_includes): New function.
5393         (darwin_register_frameworks): Update for the two new parameters.
5394         (target_c_incpath): Remove.
5395         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
5396         the compile line.
5397         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
5398         parameters.
5399         (TARGET_EXTRA_PRE_INCLUDES): Document.
5400
5401         * gcc.c (spec_function): Add replace-outfile.
5402         (replace_outfile_spec_function): New function.
5403         * config/darwin.h (LINK_SPEC): Add replace
5404         -lobjc with -lobjc-gnu if -fgnu-runtime is
5405         supplied.
5406         * invoke.texi (replace-outfile): Document.
5407
5408 2004-09-13  Jan Hubicka  <jh@suse.cz>
5409
5410         * predict.c (expr_expected_value, strip_builtin_expect): New function.
5411         (tree_predict_by_opcode): Use it.
5412         (tree_estimate_probability): Add, for now disabled,
5413         strip_builtin_expect call.
5414
5415 2004-09-15  James E Wilson  <wilson@specifixinc.com>
5416
5417         PR target/17455
5418         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
5419         if current_function_decl is a sibcall.
5420
5421 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5422
5423         * varasm.c (default_function_rdodata_section): Make sure to pass
5424         along a decl for a link-once section.
5425
5426 2004-09-15  Richard Henderson  <rth@redhat.com>
5427
5428         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
5429         warning with code disable.  Fix formatting.
5430
5431 2004-09-15  Steven Bosscher  <stevenb@suse.de>
5432
5433         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
5434         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
5435         after propagating into an ADDR_EXPR.
5436
5437 2004-09-15  Andrew Pinski  <apinski@apple.com>
5438
5439         PR rtl-opt/17427
5440         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
5441         Move it out of gcc_assert.
5442
5443 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5444
5445         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
5446         except.c, fold-const.c, function.c, langhooks.c, params.c,
5447         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
5448         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
5449         for quoting in diagnostics going through pretty-print.c.  Use ''
5450         for quoting in other diagnostic text.
5451         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
5452         translation.
5453         * Makefile.in (langhooks.o): Update dependencies.
5454         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
5455         formats.
5456
5457 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5458
5459         * configure.ac: Check for COMDAT support.  Robustify check for
5460         SHF_MERGE support.
5461         * configure: Regenerated.
5462         * config.in: Likewise.
5463         * langhooks-def.h (lhd_comdat_group): New function.
5464         (LANG_HOOKS_COMDAT_GROUP): New macro.
5465         (LANG_HOOKS_DECLS): Use it.
5466         * langhooks.c (lhd_comdat_group): Define.
5467         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
5468         * output.h (named_section_flags): Make it a macro.
5469         (named_section_real): New function.
5470         (default_no_named_section): Add decl parameter.
5471         (default_elf_asm_named_section): Likewise.
5472         (default_coff_asm_named_section): Likewise.
5473         (default_pe_asm_named_section): Likewise.
5474         * target.h (gcc_target): Adjust type of named_section.
5475         * varasm.c (named_section_flags): Rename to named_section_real.
5476         Add decl parameter.
5477         (default_no_named_section): Add decl parameter.
5478         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
5479         with the case that ASM_COMMENT_START is "@".
5480         (default_coff_asm_named_section): Add decl parameter.
5481         (default_pe_asm_named_section): Likewise.
5482         * config/alpha/alpha.c (vms_asm_named_section): Add decl
5483         parameter.
5484         (unicosmk_asm_named_section): Likewise.
5485         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
5486         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
5487         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
5488         * config/cris/cris-protos.h (cris_target_asm_named_section):
5489         Likewise.
5490         * config/cris/cris.c (cris_target_asm_named_section):
5491         Likewise.
5492         * config/darwin/darwin-protos.h (darwin_asm_named_section):
5493         Likewise.
5494         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
5495         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
5496         * config/i386/i386-protos.h (i386_pe_asm_named_section):
5497         Likewise.
5498         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
5499         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
5500         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
5501         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
5502         Likewise.
5503         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
5504         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
5505         * cp/cp-tree.h (cxx_comdat_group): Declare.
5506         * cp/decl.c (cxx_comdat_group): New function.
5507
5508 2004-09-15  Jan Hubicka  <jh@suse.cz>
5509
5510         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
5511         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
5512
5513         * tree-cfg.c (remove_bb): Release SSA defs.
5514
5515 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5516
5517         * doc/tm.texi: Follow spelling conventions.
5518
5519 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5520
5521         * tree-ssa-dom.c: Fix comment typos.
5522
5523 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
5524
5525         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
5526         include ccr.
5527         (ppc_fallback_frame_state): Save location of CR.
5528
5529 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
5530
5531         * expr.c (string_constant): Handle also read-only variables
5532         initialized to string literals.
5533
5534         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
5535         into memcpy (x, y, 1) if memcpy can be expanded inline.
5536
5537 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5538
5539         PR tree-optimization/17468
5540         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
5541         definition inside a block precede uses.
5542         * tree-tailcall.c (adjust_return_value): Emit statements in the
5543         correct order.
5544
5545 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
5546
5547         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
5548
5549 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
5550
5551         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
5552
5553 2004-09-14 Jeff Law  <law@redhat.com>
5554
5555         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
5556         (struct dom_walk_block_data): Remove avail_exprs member.
5557         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
5558         (lookup_avail_expr): No longer need to pass in address of
5559         the block local available exprs stack.  All callers changed.
5560         (simplify_cond_and_lookup_avail_expr): Similarly.
5561         (simplify_switch_and_lookup_avail_expr): Similarly.
5562         (get_eq_expr_value, record_cond): Likewise.
5563         (record_dominating_conditions): Likewise.
5564         (update_rhs_and_lookup_avail_expr): Likewise.
5565         (record_equivalences_from_stmt): Likewise.
5566         (dom_opt_initialize_block_local_data): No longer test state of
5567         block local avail_exprs.
5568         (dom_opt_initialize_block): Mark unwind point in the global
5569         avail_expr stack.
5570         (remove_expressions_from_table): Update to unwind to the
5571         most recent unwind marker in the global avail_expr stack.
5572         All callers changed.
5573         (dom_opt_finalize_block): Mark unwind point in the global
5574         avail_expr stack as needed.
5575         (record_cond): Push elements into the global avail_exprs stack.
5576
5577         * tree-dfa.c (free_df_for_stmt): No longer static.
5578         (free_df): Update comments.
5579         * tree-flow.h (free_df_for_stmt): Prototype.
5580         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
5581         call release_defs.
5582
5583 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5584
5585         PR tree-optimization/17252
5586         * tree-ssa-alias.c (may_alias_p): Don't assume that a
5587         pointer may not point to itself when using relaxed
5588         aliasing rules.
5589
5590 2004-09-14  Richard Henderson  <rth@redhat.com>
5591
5592         PR middle-end/17397
5593         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
5594         while folding <ADDR_EXPR <INDIRECT_REF X>>.
5595
5596 2004-09-14  Andrew Pinski  <apinski@apple.com>
5597
5598         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
5599         sets of the pointers but the aliasing sets of what they point to.
5600
5601 2004-09-14  Roger Sayle  <roger@eyesopen.com>
5602
5603         PR rtl-optimization/9771
5604         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
5605         conditional compilation in init_reg_sets_1.
5606         (init_reg_sets_1): Let global_regs[i] take priority over the frame
5607         (but not stack) pointer exceptions to regs_invalidated_by_call.
5608         (globalize_reg): Globalizing a fixed register may need to update
5609         regs_invalidated_by_call.
5610
5611 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5612
5613         PR tree-optimization/15262
5614         * tree-dfa.c (dump_variable): Also print the type of the
5615         variable.
5616         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
5617         memory tags are of conflicting alias sets but have no aliased
5618         symbols in common, add one tag to the alias set of the other.
5619         (setup_pointers_and_addressables): Remove hack to deal with
5620         programs with no aliased symbols.
5621         (may_alias_p): Don't special case aggregate types.
5622
5623 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5624
5625         PR c/15498
5626         * doc/invoke.texi (Environment Variables): Correct example locale.
5627
5628 2004-09-14  Jan Hubicka  <jh@suse.cz>
5629
5630         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
5631
5632 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
5633
5634         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
5635
5636 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5637
5638         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
5639         restrict_p.
5640         (struct c_declarator): Change u.array.quals and pointer_quals to
5641         int.  Add u.array.attrs.
5642         (quals_from_declspecs): New.
5643         * c-decl.c (quals_from_declspecs): New.
5644         (shadow_tag_warned): Give more specific message for useless type
5645         qualifiers.
5646         (build_array_declarator, set_array_declarator_inner,
5647         grokdeclarator, make_pointer_declarator, build_null_declspecs,
5648         declspecs_add_qual): Update for changed structures.
5649
5650 2004-09-14  Jeff Law  <law@redhat.com>
5651
5652         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
5653         to a global varray.
5654         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
5655         (dom_opt_initialize_block_local_data): No longer test state
5656         of stmts_to_rescan.
5657         (dom_opt_finalize_block): Update due to change in scope of
5658         stmts_to_rescan.
5659         (optimize_stmt): Similarly.
5660
5661 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5662
5663         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
5664         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
5665         comment typos.  Follow spelling conventions.
5666
5667 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5668
5669         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
5670         config/i386/predicates.md, config/sparc/sparc.c: Follow
5671         spelling conventions.
5672
5673 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5674             Steven Bosscher  <stevenb@suse.de>
5675
5676         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
5677         * basic-block.h (struct reorder_block_def): Add copy_number field.
5678         * cfgloop.h (biv_p): Declare.
5679         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
5680         * common.opt (fsplit-ivs-in-unroller): New flag.
5681         * loop-iv.c (biv_p): New function.
5682         * loop-unroll.c: Include hashtab.h and recog.h.
5683         (struct iv_to_split, struct split_ivs_info): New types.
5684         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
5685         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
5686         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
5687         insert_base_initialization, split_iv): New functions.
5688         (peel_loop_completely, unroll_loop_constant_iterations,
5689         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
5690         Use them.
5691         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
5692
5693 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5694
5695         * tree-cfg.c (thread_jumps): Update dominators correctly in
5696         case destination of threaded edge dominates its source.
5697
5698 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5699
5700         * unroll.c: Removed.
5701         * loop.h: Removed.
5702         * Makefile.in (LOOP_H, unroll.o): Removed.
5703         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
5704         dependency.
5705         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
5706         reference.
5707         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
5708         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
5709         * loop.c: Do not include loop.h.
5710         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
5711         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
5712         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
5713         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
5714         struct loop_regs, struct loop_movables, struct loop_info): Moved
5715         from loop.h.
5716         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
5717         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
5718         find_common_reg_term, loop_iterations, final_giv_value): Moved
5719         from unroll.c.
5720         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
5721         loop_dump_stream, for_each_insn_in_loop, express_from,
5722         extend_value_for_giv, loop_iv_add_mult_emit_before,
5723         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
5724         loop_insn_first_p, get_condition_for_loop,
5725         loop_insn_emit_before, loop_insn_hoist,
5726         loop_insn_sink): Made static.
5727         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
5728         reference.
5729         (strength_reduce): Do not call unroller.
5730         (record_giv): Do not initialize unrolled field.
5731         (prescan_loop): Do not set loop_info->preconditioned.
5732         * passes.c: Do not include loop.h.
5733         (rest_of_handle_loop_optimize): Do not call unroller.
5734         * predict.c: Do not include loop.h.
5735         * rtl.h (NOTE_PRECONDITIONED): Removed.
5736         * stmt.c: Do not include loop.h.
5737         * toplev.c: Do not include loop.h.
5738         (process_options): Do not handle flag_old_unroll_loops.
5739
5740         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
5741         Documentation removed.
5742         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
5743
5744 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
5745
5746         * Makefile.in (STAGE1_CHECKING): New variable.
5747         (stage1_build): Use it.
5748         * tree-ssa.c (verify_ssa): Preserve state of dominance
5749         information.
5750
5751 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
5752
5753         * config/i386/i386.c (output_fp_compare): Add generation
5754         of ftst instruction.
5755         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
5756         Use output_fp_compare () function.
5757         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
5758         (fix_truncdi_memory): Remove operands[5] copy.
5759
5760 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5761
5762         * config/m32r/m32r.md, config/m68k/m68kelf.h,
5763         config/mcore/mcore.md, config/rs6000/linux64.h,
5764         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
5765         typos.
5766
5767 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5768
5769         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
5770         * gen-protos.c: Include errors.h.
5771         (progname): Delete.
5772
5773 2004-09-14  Jan Hubicka  <jh@suse.cz>
5774
5775         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
5776         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
5777         (predict_loops): Use number_of_iterations_exit to predict
5778         number of iterations on trees.
5779
5780 2004-09-13  Dale Johannesen  <dalej@apple.com>
5781
5782         PR 17408
5783         PR 17409
5784         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
5785         objects declared extern.
5786
5787 2004-09-14  Paul Brook  <paul@codesourcery.com>
5788
5789         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
5790         HOST_WIDE_INT.
5791
5792 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5793
5794         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
5795         Only use TYPE_BINFO for aggregates.
5796
5797 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5798
5799         * expmed.c (synth_mult): Initialize latency.  Check cost before
5800         checking ops count.
5801
5802 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
5803
5804         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
5805         add_call_clobber_ops and add_call_read_ops.
5806         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
5807         the number of vdefs and vuses inserted based on analysis of global
5808         variables across calls.  * tree-dfa.c (find_referenced_vars):
5809         Needed to reset static var maps before each function is compiled.
5810         * cgraphunit.c:
5811         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
5812         static_vars_info,functions_to_static_vars_info,module_statics_escape,
5813         all_module_statics,searchc_env,dfs_info): New fields to support
5814         analysis of static global variables.
5815         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
5816         cgraph_reset_static_var_maps, get_global_static_vars_info,
5817         get_global_statics_not_read, get_global_statics_not_written,
5818         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
5819         check_rhs_var, check_lhs_var, get_asm_expr_operands,
5820         process_call_for_static_vars, scan_for_static_refs,
5821         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
5822         clear_static_vars_maps, cgraph_propagate_bits,
5823         cgraph_characterize_statics): New. Functions to support analysis
5824         of static global variables.
5825         (cgraph_mark_local_and_external_functions): Renamed from:
5826         (cgraph_mark_local_functions)
5827         (cgraph_expand_all_functions): Remove call to
5828         cgraph_mark_local_and_external_functions.
5829         (cgraph_optimize): Added driver to analyze static variables whose
5830         scope is within the compilation unit.  * cgraph.h (struct
5831         cgraph_local_info, GTY): Added statics_read, statics_written,
5832         local, calls_read_all, calls_write_all, for_functions_valid.
5833         (struct cgraph_node): Added next_cycle.  * cgraph.c
5834         (dump_cgraph_node): Added print routines for new fields.  *
5835         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
5836         list.
5837
5838 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5839
5840         * c-decl.c (grokdeclarator): Correct comments about where storage
5841         class specifiers are rejected by grammar and add corresponding
5842         asserts.  Diagnose typedefs and parameters declared inline.
5843         Change warning for inline main to a pedwarn.  Only diagnose inline
5844         main if hosted.
5845         (declspecs_add_scspec): Allow duplicate "inline".
5846
5847 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
5848
5849         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
5850         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5851
5852 2004-09-13  Richard Henderson  <rth@redhat.com>
5853
5854         PR 17436
5855         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
5856         (tree_type): Replace spare with contains_placeholder_bits.
5857         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
5858         make static.  Remove seen_types list.
5859         (type_contains_placeholder_p): New.
5860
5861 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5862
5863         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
5864         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
5865         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
5866         bdesc_arrays instead of mips_bdesc.
5867         (mips_init_builtins): Likewise.
5868         * config/mips/mips.h (TARGET_SB1): New.
5869         (HAVE_SQRT_P): Delete.
5870         * config/mips/mips.md (divide_condition): Support V2SF.
5871         (sqrt_condition, recip_condition): New.
5872         (div<mode>3): Use ANYF instead of SCALARF.
5873         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
5874         MODE.
5875         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
5876         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
5877         instead of MODE.
5878         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
5879         instead of SCALARF.  Use UNITMODE instead of MODE.
5880
5881 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
5882
5883         * config.in: Regenerate after removal of libbanshee.
5884
5885 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
5886
5887         PR tree-optimization/17400
5888         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5889         coalesce partitions when one occurs in an abnormal PHI.
5890
5891 2004-09-13  Andrew Pinski  <apinski@apple.com>
5892
5893         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
5894         name to _new_size.
5895
5896 2004-09-13  Richard Henderson  <rth@redhat.com>
5897
5898         PR inline-asm/6806
5899         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
5900         (cselib_invalidate_rtx_note_stores): New.
5901         (cselib_record_sets, cselib_process_insn): Update to match.
5902         * cselib.h (cselib_invalidate_rtx): Declare.
5903         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
5904
5905 2004-09-13  Richard Henderson  <rth@redhat.com>
5906
5907         PR tree-opt/10528
5908         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
5909         after copying its argument.
5910
5911 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5912
5913         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
5914         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
5915         in diagnostics.  Use %' for English apostrophes.
5916         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
5917         (pedwarn_c90, pedwarn_c99): Use it.
5918         * c-decl.c (lookup_label): Quote label name in diagnostic.
5919         * c-parse.in (yyprint): Use ' instead of ` for left quote.
5920         * c-typeck.c (warn_for_assignment): Likewise.
5921
5922 2004-09-13  Jan Hubicka  <jh@suse.cz>
5923
5924         * i386.c (x86_schedule): New global variable.
5925         (override_options): Disable scheduling when not supported.
5926         * i386.h (x86_schedule): Declare.
5927         (TARGET_SCHEDULE): New macro.
5928
5929 2004-09-12  Richard Henderson  <rth@redhat.com>
5930
5931         PR c++/16254
5932         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
5933         * tree.c, tree.h (has_cleanups): Remove.
5934
5935 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5936
5937         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
5938         arguments of the phi nodes correctly.
5939
5940 2004-09-12  Jan Hubicka  <jh@suse.cz>
5941
5942         * ggc-common.c (cmp_statistics): Fix sorting.
5943
5944 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
5945
5946         PR target/16795
5947         * expmed.c (expand_divmod): If cheap power of 2 divide is
5948         available, use it for negative constant as well.
5949
5950 2004-09-12  Andrew Pinski  <apinski@apple.com>
5951
5952         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
5953         size of 0.
5954
5955         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
5956
5957 2004-09-12  Richard Henderson  <rth@redhat.com>
5958
5959         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
5960         or minus one.
5961         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
5962         post-reload, and scratch NULL.
5963         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
5964         (x86_shift_adj_2): Use ix86_expand_clear.
5965         (ashldi3): Remove CMOVE expansion difference.
5966         (ashldi3_1): Remove.
5967         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
5968         add constraints for immediates.  New peephole for split-with-temp.
5969         Run splitter after peep2 pass.
5970         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
5971         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
5972         (setcc_2): Rename with *.
5973         * config/i386/predicates.md (reg_or_pm1_operand): New.
5974         (ashldi_input_operand): New.
5975
5976 2004-09-12  Richard Henderson  <rth@redhat.com
5977
5978         * print-rtl.c (print_decl_name): New.
5979         (print_mem_expr): Use it.
5980
5981 2004-09-12  Richard Henderson  <rth@redhat.com
5982
5983         PR 17186, part deux
5984         * except.c (sjlj_emit_function_exit): Fix logic locating
5985         sjlj_exit_after in final block.
5986
5987 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
5988
5989         * common.opt: Remove flags -fmove-all-movables and
5990         -freduce-all-givs.
5991         * loop-invariant.c (find_invariants_to_move):
5992         Remove all uses of flag_move_all_movables.
5993         * loop.c (move_movables): Remove all uses of
5994         flag_move_all_movables.
5995         (strength_reduce): Remove all uses of
5996         flag_reduce_all_givs.
5997         * doc/invoke.texi: Remove documentation of flags
5998         -fremove-all-movables and -freduce-all-givs.
5999
6000 2004-09-11  Roger Sayle  <roger@eyesopen.com>
6001
6002         PR middle-end/17411
6003         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
6004         change. elt->type may be a floating point type, so use fold_convert.
6005
6006 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
6007
6008         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
6009         the thing referenced as used, not the stub itself.
6010
6011 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6012
6013         * c-tree.h (enum c_storage_class): New.
6014         (struct c_declspecs): Add storage_class, inline_p and thread_p.
6015         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
6016         declarations and "auto" or "register" in file scope empty
6017         declarations.  Give more specific warnings for other cases of
6018         storage class specifiers in empty declarations.
6019         (grokdeclarator): Update for new structures.  Don't check for
6020         multiple storage classes.  Diagnose file-scope "register" if
6021         pedantic.
6022         (build_null_declspecs): Update.
6023         (declspecs_add_scspec): Update.  Diagnose multiple storage class
6024         specifiers and invalid uses of "__thread".
6025
6026 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
6027
6028         * tree.c (tree_code_size): New function, bulk of code from tree_size.
6029         (tree_size, make_node): Use it.
6030         * tree-ssa-pre.c (init_pre): Use it.
6031         * tree.h: Prototype it.
6032
6033 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6034
6035         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
6036         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
6037         redirect_immediate_use): Use PHI_DF.
6038         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
6039         (bb_for_stmt): Use PHI_BB.
6040         (get_immediate_uses): Use PHI_DF.
6041         * tree-ssa-dse.c (max_stmt_uid): New variable.
6042         (get_stmt_uid): New function.
6043         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
6044         node annotations.
6045         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
6046         (max_uid): Renamed to max_stmt_uid.
6047         (get_stmt_uid): New function.
6048         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
6049         phi node annotations.
6050         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
6051         * tree.h (PHI_BB, PHI_DF): New accessor functions.
6052         (struct tree_phi_node): Add bb and df fields.
6053
6054 2004-09-11  Richard Henderson  <rth@redhat.com>
6055
6056         PR middle-end/17416
6057         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
6058         in conflict loop.
6059
6060 2004-09-11  Jan Hubicka  <jh@suse.cz>
6061
6062         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
6063         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
6064         * i386.md (i387_cw): Add 'uninitialized' mode.
6065
6066         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
6067         (output_location): Break out from ....
6068         (branch_prob): ... here; handle gcov output on trees.
6069         * toplev.c (process_options): No longer be sorry about coverage for
6070         trees.
6071
6072 2004-09-11  Steven Bosscher  <stevenb@suse.de>
6073
6074         PR c++/17412
6075         * fold-const.c (fold): Do not try to fold the operand of a
6076         CLEANUP_POINT_EXPR if that operand does itself not have any
6077         operands.
6078
6079         PR middle-end/17417
6080         * langhooks.c (lhd_decl_printable_name): Make sure that this
6081         function is called with is a decl node that has an identifier.
6082         * tree-pretty-print.c (dump_function_name): New function to
6083         wrap PRINT_FUNCTION_NAME and dump_decl_name.
6084         (print_call_name): Use it.
6085
6086 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
6087
6088         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
6089         "config.h" if not.
6090
6091 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
6092
6093         * tree-ssa-alias.c (collect_points_to_info_r): Handle
6094         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
6095         to OFFSET.
6096
6097 2004-09-11  Richard Henderson  <rth@redhat.com>
6098
6099         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
6100         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
6101         operand of the ADDR_EXPR.
6102         (expand_expr_real_1): Update to match.
6103
6104 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
6105
6106         PR target/17277
6107         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
6108         choose 64-bit version.
6109
6110 2004-09-11  Richard Henderson  <rth@redhat.com>
6111
6112         PR c/17396
6113         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
6114
6115 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
6116
6117         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
6118         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
6119         Insert @: after i.e. or e.g.
6120
6121 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6122
6123         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
6124         D.xxx rather than <Dxxx>.
6125
6126 2004-09-10  Adam Nemet  <anemet@lnxw.com>
6127
6128         * configure.ac (AC_MSG_CHECKING(what linker to use)):
6129         in_tree_ld_is_elf should be true for LynxOS.
6130         * configure: Regenerate.
6131
6132 2004-09-10  Adam Nemet  <anemet@lnxw.com>
6133
6134         * Makefile.in (all.cross): Add srcextra.
6135
6136 2004-09-10  Roger Sayle  <roger@eyesopen.com>
6137
6138         PR middle-end/17024
6139         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
6140         floating point comparison operators.  Change aborts to gcc_asserts.
6141
6142 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6143
6144         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
6145
6146 2004-09-10  James E Wilson  <wilson@specifixinc.com>
6147
6148         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
6149         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
6150
6151         * convert.c (convert_to_vector): Replace recursive call with
6152         error_mark_node.
6153
6154         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
6155         Add integer argument named constant.  Use const_tiny_rtx instead of
6156         CONST0_RTX.
6157         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
6158         and CONST1_RTX.
6159         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
6160         vector types.
6161         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
6162         of gen_rtx_raw_CONST_VECTOR.
6163
6164 2004-09-10  Eric Christopher  <echristo@redhat.com>
6165
6166         PR c/16046
6167         * c-parse.in (attribute): Add NULL_TREE for error case
6168         for error recovery.
6169
6170 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
6171
6172         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
6173         (extract_interface_info): Delete prototype.
6174         * c-decl.c (extract_interface_info): Delete stub.
6175         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
6176         it's not already been done ...
6177         (init_c_lex): ... not here.
6178         (fe_file_change): Don't call extract_interface_info.
6179
6180 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6181
6182         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
6183         typedef_p and typedef_signed_p.
6184         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
6185         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
6186         Check typedef_p and typedef_signed_p, not typedef_decl.
6187         (grokfield): Check typedef_p, not typedef_decl.
6188         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
6189         not typedef_decl.
6190         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
6191         typedef_decl.
6192
6193 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6194
6195         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
6196
6197 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6198
6199         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
6200         temporary variables.
6201
6202         * dbxout.c (dbxout_block): Update for
6203         current_function_func_begin_label a string.
6204         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
6205         * except.c (dw2_output_call_site_table): Likewise.
6206         * toplev.c (current_function_func_begin_label): Likewise.
6207         * tree.h (current_function_func_begin_label): Likewise.
6208         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
6209
6210         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
6211         loop.
6212
6213         * config/darwin.c: Include target.h.
6214         (struct machopic_indirection): Make ptr_name a string.
6215         (machopic_indirection_hash): Update for ptr_name a string.
6216         (machopic_indirection_eq): Likewise.
6217         (machopic_indirection_name): Likewise.
6218         (machopic_output_indirection): Likewise.
6219         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
6220         string.  Don't expect stub names to be in the identifier hash table.
6221         Do call strip_name_encoding before looking up entry in ID hash table.
6222         * config/t-darwin (darwin.o): Add target.h to dependencies.
6223
6224         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
6225         of fprintf for register names.
6226
6227         * output.h (unlikely_section_label): Delete declaration.
6228         (unlikely_text_section_name): Likewise.
6229         * varasm.c (unlikely_section_label_printed): Make static.
6230         (unlikely_section_label): Likewise.
6231         (unlikely_text_section_name): Likewise.
6232         (assemble_start_function): Use reconcat.
6233
6234         * rtl.def (REG): Add comment to describe third field.
6235
6236 2004-09-10  Andrew Pinski  <apinski@apple.com>
6237
6238         * config/darwin.c (machopic_mcount_stub_name): Call
6239         machopic_indirection_name instead of making the string
6240         ourselves.
6241
6242 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
6243
6244         Revert
6245
6246         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
6247
6248             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
6249             memory tag is call clobbered, so are its aliases.
6250             (group_aliases): When two memory tags being grouped, if one is
6251             call clobbered, so are the other and its aliases.
6252             (add_may_alias): Remove call-clobbering stuff.
6253             (replace_may_alias): Likewise.
6254             (merge_pointed_to_info): Merge pt_global_mem
6255
6256 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6257
6258         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
6259         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
6260         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
6261         tree-scalar-evolution.c, tree-ssa-copyrename.c,
6262         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
6263
6264 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6265
6266         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
6267         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
6268         pair.  Remove match_dup from inputs.  Remove masaccs handling.
6269         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
6270         (masaccs, mdasaccs): Turn into define_insns.
6271
6272 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6273
6274         * tree-tailcall.c (process_assignment): Only do accumulator transforms
6275         for floating-point types if flag_unsafe_math_optimizations.
6276
6277 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6278
6279         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
6280         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
6281         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
6282         config/h8300/h8300.md, config/i386/gmm_malloc.h,
6283         config/ia64/ia64.md, config/ip2k/libgcc.S,
6284         config/mips/mips-ps-3d.md, config/mips/mips.c,
6285         config/rs6000/rs6000.c, config/s390/s390.c,
6286         config/sh/symbian.c: Fix comment typos.
6287
6288 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6289
6290         * config/s390/s390.c (s390_emit_prologue): Added missing
6291         "{}" brackets.
6292
6293 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6294
6295         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
6296         typos.  Follow spelling conventions.
6297
6298 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6299
6300         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
6301         in diagnostic.  Don't dereference NULL TYPE_NAME.
6302
6303 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6304
6305         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
6306         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
6307         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
6308         value-prof.c: Fix comment typos.  Follow spelling conventions.
6309
6310 2004-09-10  Jan Hubicka  <jh@suse.cz>
6311
6312         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
6313         * tree-split_edge.c (tree_split_edge): Likewise.
6314         (thread_jumps): Likewise.
6315
6316 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6317
6318         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
6319         typos.
6320
6321 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
6322
6323         * cgraph.h (cgraph_dump_file): Do not declare.
6324         * cgraphunit.c (cgraph_dump_file): Declare as static.
6325         (init_cgraph): New.
6326         * toplev.c (cgraph_dump_file): Do not declare.
6327         (compile_file): Call init_cgraph.
6328         * tree-dump.c (dump_files): Add IPA dump file, remove
6329         XML dump of call graph.
6330         (get_dump_file_name): Support IPA dump file naming scheme.
6331         * tree.h (enum tree_dump_index): Add IPA dump file, remove
6332         XML dump of call graph.
6333         * doc/invoke.texi (Debugging Options): Document the new options.
6334
6335 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6336
6337         * doc/extend.texi: Document the FR-V built-in functions.
6338
6339 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6340
6341         * doc/sourcebuild.texi: Delete libbanshee reference.
6342
6343 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
6344
6345         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
6346
6347 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6348
6349         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
6350         before calling vector_types_convertible_p.
6351         (digest_init): Check that inside_init has VECTOR_TYPE before calling
6352         vector_types_convertible_p.  Don't give another error if
6353         convert_for_assignment returns error_mark_node.
6354
6355 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6356
6357         PR middle-end/17055
6358         * fold-const.c (build_zero_vector): New function to construct a
6359         vector (either floating point or integer) of zeros.
6360         (fold_convert): Internally, enable conversions of integer zero
6361         to arbitrary vector types, using the new build_zero_vector.
6362
6363 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6364
6365         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
6366         expand a left shift by an immediate constant as either an ashl or
6367         a sequence of additions.
6368         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
6369         instead of calling gen_ashlsi3 with a constant directly.
6370
6371 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6372
6373         * config/i386/i386.c (ix86_split_long_move): When optimizing for
6374         size, and the low and high parts of a DImode constant are equal,
6375         copy one register to another instead of loading the same immediate
6376         value twice.
6377
6378 2004-09-09  Richard Henderson  <rth@redhat.com>
6379
6380         PR middle-end/17367
6381         * function.c (assign_parm_setup_block): Only put PARALLELs into
6382         a register if use_register_for_decl.
6383
6384 2004-09-09  Eric Christopher  <echristo@redhat.com>
6385
6386         * ra-colorize.c (reset_lists): Move variable declaration inside
6387         ENABLE_CHECKING to avoid unused variable warnings when
6388         not --enable-checking.
6389         (check_colors): Ditto.
6390
6391 2004-09-09  Mike Stump  <mrs@apple.com>
6392
6393         * version.c (version_string): Bump to 4.0.0.
6394         * doc/include/gcc-common.texi (version-GCC): Likewise.
6395
6396 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
6397
6398         * doc/extend.texi (nothrow attribute): The attribute is not
6399         implemented in 3.2 and earlier.
6400
6401 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
6402
6403         * genrecog.c (compute_predicate_codes): Use op0_codes
6404         instead of codes.
6405
6406 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6407
6408         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
6409         implementation changes.
6410
6411 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6412
6413         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
6414         a PARALLEL instead of a SET due to added clobbers.
6415
6416 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6417
6418         * reload.c (find_reloads_address): Pass correct operand to
6419         maybe_memory_address_p.
6420
6421 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
6422
6423         * Makefile.in: Remove libbanshee, tree-alias-*.
6424         Remove tree-alias-common.h dependencies.
6425         * common.opt: Remove -ftree-points-to.
6426         * configure.ac: Remove libbanshee.
6427         * flags.h: Remove pta_type, flag_tree_points_to.
6428         * gengtype.c (open_base_files): Remove tree-alias-type.h.
6429         * opts.c (OPT_ftree_points_to): Remove.
6430         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
6431         * tree-dfa.c: Remove tree-alias-common.h
6432         * tree-into-ssa.c: Ditto.
6433         * tree-outof-ssa.c: Ditto.
6434         * tree-ssa-copyrename.c: Ditto.
6435         * tree-ssa-live.c: Ditto.
6436         * tree-optimize.c: Ditto.
6437         * tree-ssa.c: Ditto.
6438         Remove pass_build_pta, pass_del_pta.
6439         * tree-pass.h: Ditto.
6440         * tree-ssa-alias.c: Remove tree-alias-common.h.
6441         (struct alias_stats_d): Remove pta_queries, pta_resolved.
6442         (pass_may_alias): Remove PROP_pta requirement.
6443         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
6444         (get_tmt_for): Ditto.
6445         (dump_alias_stats): Ditto.
6446         * doc/passes.texi: Remove blurb about points-to analysis.
6447         * fortran/Make-lang.in: Remove tree-alias-*.o.
6448
6449 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6450
6451         * genattrtab.c (write_insn_cases): New function, split out from
6452         write_attr_case.  Correctly handle define_peepholes when printing
6453         the instruction name.
6454         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
6455
6456 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
6457
6458         PR target/17377
6459         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
6460         * config/cris/cris.c (cris_return_address_on_stack): New function.
6461         * config/cris/cris.md ("return"): For location of return address,
6462         also check cris_return_address_on_stack.
6463
6464 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
6465
6466         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
6467         calling phi_ssa_name_p.
6468
6469 2004-09-09  Richard Henderson  <rth@redhat.com>
6470
6471         PR c/17322
6472         * c-typeck.c (valid_compound_expr_initializer): Use only
6473         initializer_constant_valid_p, and not TREE_CONSTANT.
6474         (digest_init): Likewise.
6475         (output_init_element): Likewise.
6476
6477 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6478
6479         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
6480         live_out_1, prune_hardregs_for_mode, init_one_web_common,
6481         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
6482         record_conflict, compare_and_free_webs, init_webs_defs_uses,
6483         parts_to_webs_1, parts_to_webs, reset_conflicts,
6484         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
6485         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
6486         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
6487         put_move, remove_move, combine, select_spill, colorize_one_web,
6488         try_recolor_web, insert_coalesced_conflicts, check_colors,
6489         break_precolored_alias, restore_conflicts_from_coalesce,
6490         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
6491         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
6492         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
6493         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
6494         check_df): Likewise.
6495         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
6496         real_arithmetic, real_compare, real_exponent, real_ldexp,
6497         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
6498         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
6499         real_digit, real_nan, real_maxval, round_for_format, real_convert,
6500         real_to_target, real_from_target, real_hash, encode_ieee_single,
6501         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
6502         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
6503         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
6504         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
6505         extract_insn, peep2_next_insn, peep2_reg_dead_p,
6506         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
6507         if_test_bypass_p): Likewise.
6508         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
6509         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
6510         emit_swap_insn, swap_to_top, move_for_stack_reg,
6511         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
6512         compensate_edge, convert_regs_1): Likewise.
6513         * regclass.c (init_reg_sets, init_reg_sets_1,
6514         memory_move_secondary_cost): Likewise.
6515         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
6516         Likewise.
6517         * reload.c (push_secondary_reload, find_valid_class, push_reload,
6518         operands_match_p, decompose, immune_p, find_reloads,
6519         find_reloads_toplev, find_reloads_address_1, subst_reloads,
6520         copy_replacements, refers_to_regno_for_reload_p,
6521         reg_overlap_mentioned_for_reload_p): Likewise.
6522         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
6523         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
6524         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
6525         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
6526         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
6527         do_output_reload, fixup_abnormal_edges): Likewise.
6528         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
6529         fill_slots_from_thread, relax_delay_slots): Likewise.
6530         * resource.c (mark_referenced_resources, mark_set_resources):
6531         Likewise.
6532         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
6533         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
6534         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
6535         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
6536         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
6537         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
6538         * rtlhooks.c (gen_lowpart_general): Likewise.
6539         * sbitmap.c (sbitmap_difference): Likewise.
6540         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
6541         sched_analyze, add_forward_dependence): Likewise.
6542         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
6543         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
6544         schedule_insns): Likewise.
6545         * sched-vis.c (print_pattern): Likewise.
6546         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
6547         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
6548         simplify_const_relational_operation, simplify_ternary_operation,
6549         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
6550         Likewise.
6551         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
6552         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
6553         resolve_operand_name_1, expand_return, expand_decl,
6554         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
6555         * stor-layout.c (put_pending_size, smallest_mode_for_size,
6556         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
6557         set_sizetype, get_mode_bounds): Likewise.
6558
6559 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
6560
6561         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
6562         * config/arm/pecoff.h, config/i386/beos-elf.h
6563         * config/i386/cygming.h, config/i386/i386-interix.h:
6564         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
6565         comment cloned from manual.
6566         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
6567
6568 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
6569
6570         * builtins.c (build_va_arg_indirect_ref): New function.
6571         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
6572         build_fold_indirect_ref.
6573         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
6574         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
6575         * tree.h: Declare new function.
6576
6577 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6578
6579         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
6580         dumping for development builds.
6581         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
6582         development builds only.
6583         * genattrtab.c (write_eligible_delay): Fix typo in previous
6584         commit.
6585         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
6586         gcc_assert.
6587
6588 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6589
6590         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
6591         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
6592         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
6593         hoist_code, extract_mentioned_regs_helper, compute_store_table,
6594         insert_store): Use gcc_assert and gcc_unreachable.
6595         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
6596         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
6597         ggc_record_overhead): Likewise.
6598         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
6599         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
6600         ggc_pop_context, clear_marks, validate_free_objects,
6601         ggc_pch_read): Likewise.
6602         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
6603         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
6604         ggc_push_context, check_cookies, ggc_collect,
6605         ggc_print_statistics): Likewise.
6606         * gimple-low.c (lower_function_body, lower_stmt,
6607         lower_bind_expr): Likewise.
6608         * gimplify.c (gimple_tree_eq, push_gimplify_context,
6609         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
6610         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
6611         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
6612         gimplify_case_label_expr, gimplify_exit_block_expr,
6613         canonicalize_component_ref, gimplify_compound_lval,
6614         gimplify_self_mod_expr, gimplify_call_expr,
6615         gimplify_init_ctor_eval, gimplify_init_constructor,
6616         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
6617         gimplify_expr, check_pointer_types_r,
6618         force_gimple_operand): Likewise.
6619         * global.c (global_alloc, build_insn_chain): Likewise.
6620         * graph.c (clean_graph_dump_file,
6621         finish_graph_dump_file): Likewise.
6622         gcov-io.c (gcov_open): Use GCOV_CHECK.
6623
6624 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6625
6626         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
6627
6628 2004-09-09  Jan Hubicka  <jh@suse.cz>
6629
6630         middle-end/17128
6631         * tree-inline.c (expand_call_inline): Make overactive sanity check
6632         happy.
6633
6634 2004-09-09  Jan Hubicka  <jh@suse.cz>
6635
6636         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
6637         VIEW_CONVERT_EXPR.
6638
6639 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6640
6641         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
6642         (gengtype.o): Depend on errors.h.
6643         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
6644         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
6645         attr_alt_subset_p, attr_alt_subset_of_compl_p,
6646         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
6647         write_test_expr, write_attr_value, write_eligible_delay,
6648         make_internal_attr, make_numeric_value): Likewise.
6649         * genautomata.c (regexp_name, get_str_vect,
6650         gen_presence_absence_set, automaton_decl_hash,
6651         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
6652         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
6653         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
6654         test_unit_reserv, it_is_empty_reserv_sets,
6655         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
6656         reserv_sets_and, output_cycle_reservs, get_free_state,
6657         intersected_state_reservs_p, states_union, remove_arc,
6658         copy_insn_regexp, transform_1, transform_2, transform_3,
6659         regexp_transform_func, store_alt_unit_usage,
6660         check_regexp_units_distribution, process_seq_for_forming_states,
6661         process_alts_for_forming_states, make_automaton,
6662         form_arcs_marked_by_insn, create_composed_state,
6663         set_out_arc_insns_equiv_num, partition_equiv_class,
6664         process_insn_equiv_class, set_insn_equiv_classes,
6665         units_to_automata_heuristic_distr, form_regexp,
6666         longest_path_length, output_dfa_max_issue_rate, add_vect,
6667         out_state_arcs_num, add_vect_el, output_trans_table,
6668         output_state_alts_table, output_dead_lock_vect,
6669         output_max_insn_queue_index_def,
6670         output_min_insn_conflict_delay_func,
6671         output_internal_insn_latency_func, output_print_reservation_func,
6672         output_cpu_unit_reservation_p, output_state_arcs,
6673         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
6674         make_default_insn_latency_attr,
6675         form_important_insn_automata_lists): Likewise.
6676         * genemit.c (gen_exp, output_add_clobbers,
6677         output_added_clobbers_hard_reg_p): Likewise.
6678         * genextract.c (print_path, main): Likewise.
6679         * genflags.c (gen_macro): Likewise.
6680         * gengenrtl.c: Include errors.h
6681         (type_from_format, accessor_from_format): Likewise.
6682         * gengtype.c (get_file_basename, output_mangled_typename,
6683         walk_type, write_types_process_field,
6684         write_types_local_process_field): Likewise.
6685         * genmodes.c (complete_mode): Likewise.
6686         * genopinit.c (gen_insn): Likewise.
6687         * genoutput.c (output_insn_data, check_constraint_len,
6688         constraint_len): Likewise.
6689         * genpreds.c (add_mode_tests):Likewise.
6690         * gen-protos.c (add_hash): Likewise.
6691         * genrecog.c (find_operand, find_matching_operand,
6692         validate_pattern, add_to_sequence, maybe_both_true,
6693         nodes_identical_1, merge_trees, write_switch, write_cond,
6694         write_action, is_unconditional, make_insn_sequence,
6695         debug_decision_2): Likewise.
6696         * gensupport.c (is_predicable, collect_insn_data,
6697         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
6698
6699 2004-09-09  Jan Hubicka  <jh@suse.cz>
6700
6701         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
6702         * cfgbuild.c (compute_outgoing_frequencies): When probability is
6703         missing, guess it.
6704         (find_many_sub_basic_blocks): Do update profile only when it is
6705         present.
6706         * predict.c (set_even_probabilities): Break out from ...
6707         (combine_predictions_for_insn): ... here; deal with
6708         !can_predict_insn_p insns.
6709         (combine_predictions_for_bb): Use set_even_probabilities.
6710         (bb_estimate_probability_locally): Break out from ....
6711         (estimate_probability): ... here.
6712         (guess_outgoing_edge_probabilities): New entry point.
6713
6714 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6715
6716         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
6717         handle_braces, process_brace_body, main, used_arg,
6718         set_multilib_dir, print_multilib_info): Use fatal, not abort.
6719
6720         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
6721
6722         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
6723         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
6724         Morgan's theorem in last checkin.
6725
6726 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6727             Nathan Sidwell  <nathan@codesourcery.com>
6728
6729         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
6730         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
6731         * timevar.c (timevar_push, timevar_pop, timevar_start,
6732         timevar_stop): Likewise.
6733         * toplev.c (default_pch_valid_p): Likewise.
6734         * tracer.c (tail_duplicate): Likewise.
6735         * tree-alias-common.c (get_alias_var_decl,
6736         get_values_from_constructor, create_alias_var, delete_alias_vars,
6737         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
6738         Likewise.
6739         * tree.c (tree_size, make_node_stat, copy_node_stat,
6740         build_int_cst_wide, integer_all_onesp, list_length, chainon,
6741         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
6742         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
6743         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
6744         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
6745         build_method_type_directly, decl_type_context, get_callee_fndecl,
6746         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
6747         tree_fold_gcd): Likewise.
6748         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
6749         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
6750         cleanup_control_expr_graph, find_taken_edge,
6751         find_taken_edge_switch_expr, phi_alternatives_equal,
6752         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
6753         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
6754         tree_split_edge, tree_verify_flow_info, thread_jumps,
6755         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
6756         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6757         chrec_fold_multiply_poly_poly): Likewise.
6758         * tree-complex.c (extract_component, expand_complex_division,
6759         expand_complex_comparison, expand_complex_operations_1,
6760         build_replicated_const, expand_vector_operations_1): Likewise.
6761         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
6762         build_classic_dir_vector): Likewise.
6763         * tree-dfa.c (compute_immediate_uses_for_phi,
6764         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
6765         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
6766         * tree-dump.c (dequeue_and_dump): Likewise.
6767         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
6768         record_in_finally_tree, replace_goto_queue_1,
6769         maybe_record_in_goto_queue, verify_norecord_switch_expr,
6770         do_return_redirection): Likewise.
6771         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
6772         add_to_dst_predicate_list, find_phi_replacement_condition,
6773         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
6774         Likewise.
6775         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
6776         initialize_inlined_parameters, declare_return_variable,
6777         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
6778         optimize_inline_calls, copy_tree_r): Likewise.
6779         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
6780         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
6781         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
6782         tsi_split_statement_list_after, tsi_split_statement_list_before):
6783         Likewise.
6784         * tree-mudflap.c (mf_varname_tree): Likewise.
6785         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
6786         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
6787         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6788         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
6789         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
6790         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
6791         Likewise.
6792         * tree-phinodes.c (resize_phi_node, add_phi_arg,
6793         remove_all_phi_nodes_for): Likewise.
6794         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
6795         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6796         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
6797         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
6798         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
6799         generate_one_element_ref, generate_element_copy,
6800         generate_element_zero, scalarize_copy, scalarize_init,
6801         scalarize_ldst): Likewise.
6802         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
6803         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
6804         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
6805         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
6806         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
6807         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
6808         widen_bitfield, ccp_fold_builtin): Likewise.
6809         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
6810         replace_exp_1, propagate_tree_value): Likewise.
6811         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6812         * tree-ssa-dce.c (set_control_dependence_map_bit,
6813         find_control_dependence, find_pdom, mark_operand_necessary,
6814         mark_stmt_if_obviously_necessary,
6815         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
6816         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
6817         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
6818         eliminate_redundant_computations, avail_expr_eq): Likewise.
6819         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
6820         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
6821         duplicate_blocks): Likewise.
6822         * tree-ssa-loop-im.c (for_each_index, set_level,
6823         is_call_clobbered_ref): Likewise.
6824         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
6825         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
6826         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
6827         peel_address, ptr_difference_cost, may_replace_final_value,
6828         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
6829         rewrite_use, rewrite_uses): Likewise.
6830         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6831         check_loop_closed_ssa_use): Likewise.
6832         * tree-ssanames.c (make_ssa_name): Likewise.
6833         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
6834         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
6835         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
6836         get_indirect_ref_operands, add_stmt_operand): Likewise.
6837         * tree-ssa-pre.c (value_exists_in_set_bitmap,
6838         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
6839         phi_translate, valid_in_set, compute_antic,
6840         find_or_generate_expression, create_expression_by_pieces, insert_aux,
6841         create_value_expr_from, eliminate): Likewise.
6842         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
6843         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
6844         Likewise.
6845         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
6846         eliminate_tail_call): Likewise.
6847         * tree-vectorizer.c (vect_create_index_for_array_ref,
6848         vect_align_data_ref, vect_create_data_ref,
6849         vect_create_destination_var, vect_get_vec_def_for_operand,
6850         vect_finish_stmt_generation, vect_transform_stmt,
6851         vect_transform_loop_bound, vect_transform_loop,
6852         vect_analyze_operations): Likewise.
6853         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
6854         Likewise.
6855         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
6856         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
6857         bsi_after_labels, bsi_last): Likewise.
6858         * tree-ssa-live.c (var_union, change_partition_var,
6859         create_ssa_var_map, calculate_live_on_entry, root_var_init,
6860         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
6861         Likewise.
6862         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
6863         tpa_find_tree): Likewise.
6864         (register_ssa_partition_check): Declare.
6865         (register_ssa_partition): use it.
6866         * tree-ssa-live.c: Include errors.h.
6867         (register_ssa_partition_check): New.
6868         * tree-ssa-operands.c: Include errors.h.
6869         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
6870
6871 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6872             Catherine Moore  <clm@redhat.com>
6873
6874         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
6875         (FRV_CPU_FR405): New processor enums.
6876         (frv_issue_rate, frv_acc_group): Declare.
6877         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
6878         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
6879         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
6880         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
6881         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
6882         handled by CPP_SPEC.
6883         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
6884         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
6885         (ACC_MASK): New macro.
6886         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
6887         (TARGET_MEDIA_FR450): New macro.
6888         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
6889         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
6890         (LABEL_ALIGN_AFTER_BARRIER): Define.
6891         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
6892         (IACC_FIRST, IACC_LAST): New pair of SPRs.
6893         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
6894         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
6895         (REGISTER_NAMES): Add entries for new registers.
6896         (REG_CLASS_CONTENTS): Update for new register ranges.
6897         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
6898         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
6899         (PACKING_FLAG_USED_P): Delete.
6900         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
6901         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
6902         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
6903         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
6904         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
6905         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
6906         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
6907         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
6908         (CPU_UNITS_QUERY): Define to 1.
6909         * config/frv/frv.c: Include gt-frv.h
6910         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
6911         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
6912         (frv_insn_group): New enumeration.
6913         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
6914         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
6915         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
6916         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
6917         gap left by REGSTATE_LIVE.
6918         (regstate_t): New typedef.
6919         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6920         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
6921         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
6922         Initialize frv_unit_codes[] and frv_type_to_unit[].
6923         (frv_conditional_register_usage): Remove redundant fixing of
6924         accumulator registers.
6925         (frv_insn_packing_flag): Update specification.
6926         (frv_function_prologue): Don't set frv_insn_packing_flag here.
6927         Zero out frv_nops[].
6928         (frv_expand_epilogue): Remove comments about the no-longer-present
6929         SIBCALL_P argument.
6930         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
6931         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
6932         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
6933         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
6934         packing is disabled and if INSN can only issue to M1.
6935         (call_operand): Check TARGET_LONG_CALLS.
6936         (acc_operand, even_acc_operand, quad_acc_operand)
6937         (accg_operand): Simplify.  Don't accept pseudo registers.
6938         (output_move_single): Handle SPR<-zero moves.
6939         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
6940         (frv_registers_update, frv_registers_used_p): Delete.
6941         (frv_registers_set_p): Delete.
6942         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
6943         (frv_issues_to_branch_unit_p): New function.
6944         (frv_packet): New structure.
6945         (frv_cond_flags, frv_regstate_conflict_p): New functions.
6946         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
6947         (frv_registers_update_1, frv_registers_update): New functions.
6948         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
6949         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
6950         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
6951         (frv_sort_insn_group, frv_reorder_packet): New functions.
6952         (frv_pack_insns): Use frv_reorder_packet.
6953         (frv_packet_address): New variable.
6954         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
6955         (frv_register_nop, frv_reorg): New functions.
6956         (bdesc_1arg): Add __SCUTSS.
6957         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
6958         __SUBSS, __SLASS and __SCAN.
6959         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
6960         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
6961         (frv_init_builtins): Register the above builtins.
6962         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
6963         registers.  Turn the referenced accumulators into global registers.
6964         (frv_read_iacc_argument): New function.
6965         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
6966         (frv_split_iacc_move): New function.
6967         (frv_expand_builtin): Handle the new builtins.
6968         * config/frv/frv.md: Replace old schedulers with new order-independent
6969         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
6970         packing algorithm.
6971         (cpu): Add fr550, fr450 and fr405.
6972         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
6973         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
6974         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
6975         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
6976         (fnop, mnop): New patterns.
6977         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
6978         New constants.
6979         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
6980         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
6981         registers.
6982         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
6983         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
6984         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
6985         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
6986         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
6987         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
6988         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
6989         (frv_prefetch0, frv_prefetch): New patterns.
6990         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
6991         -mcpu=simple.  Add -mcpu=fr550.
6992         (MULTILIB_DIRNAMES): Update accordingly.
6993         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
6994         -mcpu=fr450.
6995         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
6996         -mlong-calls and -malign-labels options for FR-V.
6997
6998 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6999
7000         PR c/8420
7001         * c-tree.h (struct c_declspecs): New.
7002         (struct c_declarator, struct c_type_name, struct c_parm): Update
7003         element types.
7004         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
7005         start_function, start_decl, build_c_parm,
7006         make_pointer_declarator): Update prototypes.
7007         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
7008         declspecs_add_scspec, declspecs_add_attrs): New.
7009         (split_specs_attrs): Remove.
7010         * c-parse.in (%union): Add dsptype.
7011         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
7012         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
7013         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
7014         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
7015         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
7016         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
7017         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
7018         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
7019         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
7020         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
7021         maybe_type_quals_attrs): Change to dsptype.
7022         (struct c_declspec_stack): New.
7023         (current_declspecs, declspec_stack): Change type.
7024         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
7025         structures.
7026         (extdefs): Likewise.
7027         (setspecs): Likewise.
7028         (fndef): Use current_declspecs for empty declspecs list.
7029         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
7030         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
7031         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
7032         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
7033         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
7034         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
7035         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
7036         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
7037         structures and helper functions.  Update comments.
7038         (typespec_nonattr): Correct comment.
7039         (maybe_type_quals_attrs, typename): Update to new structures.
7040         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
7041         shadow_tag, shadow_tag_warned, start_function, start_decl,
7042         build_c_parm, make_pointer_declarator,
7043         set_array_declarator_inner, groktypename): Update to new
7044         structures.
7045         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
7046         declspecs_add_scspec, declspecs_add_attrs): New.
7047         (split_specs_attrs): Remove.
7048         (shadow_tag_warned): Make warning for useless type names a
7049         pedwarn.  Give hard error for long, short, signed, unsigned or
7050         _Complex used with struct, union or enum in empty declaration.
7051         Make found_tag a bool.
7052         (grokdeclarator): Remove checks now done at parse time.
7053
7054 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
7055
7056         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
7057         c_declarator, struct c_type_name, struct c_parm): New.
7058         (build_array_declarator, set_array_declarator_inner,
7059         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
7060         start_function, start_decl, build_c_parm, build_attrs_declarator,
7061         build_function_declarator, make_pointer_declarator, c_cast_expr,
7062         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
7063         (build_id_declarator): New.
7064         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
7065         structures.
7066         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
7067         ARG_INFO_OTHERS): Remove.
7068         (build_id_declarator): New.
7069         (build_array_declarator, set_array_declarator_inner, groktypename,
7070         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
7071         grokfield, start_function, store_parm_decls_newstyle,
7072         store_parm_decls_oldstyle, store_parm_decls,
7073         build_c_parm, build_attrs_declarator, build_function_declarator,
7074         make_pointer_declarator, grokdeclarator): Update to new
7075         structures.
7076         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
7077         parmtype.
7078         (declarator, notype_declarator, after_type_declarator,
7079         parm_declarator, parm_declarator_starttypename,
7080         parm_declarator_nostarttypename, array_declarator, typename,
7081         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
7082         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
7083         parmlist_1, parmlist_2, parmlist_or_identifiers,
7084         parmlist_or_identifiers_1): Use these types.
7085         (primary, after_type_declarator, parm_declarator_starttypename,
7086         notype_declarator, component_decl, component_declarator,
7087         component_notype_declarator, typename, absdcl,
7088         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
7089         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
7090
7091 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
7092
7093         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
7094         in_typeof, record_maybe_used_decl, pop_maybe_used,
7095         c_expr_sizeof_expr, c_expr_sizeof_type): New.
7096         * c-decl.c (parser_obstack): New.
7097         (c_init_decl_processing): Initialize parser_obstack.
7098         (c_write_global_declarations_1): Check for used but undefined
7099         static functions.
7100         * c-parse.in (%union): Add otype.
7101         (save_obstack_position): New.
7102         (extdefs): Use it.
7103         (unary_expr): Update in_sizeof and in_alignof.  Use
7104         c_expr_sizeof_expr and c_expr_sizeof_type.
7105         (sizeof): Update in_sizeof.
7106         (alignof): Update in_alignof.
7107         (typeof): Update in_typeof.
7108         (typespec_nonreserved_nonattr): Call pop_maybe_used.
7109         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
7110         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
7111         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
7112         (build_external_ref): Set C_DECL_USED or call
7113         record_maybe_used_decl if appropriate.
7114         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
7115
7116 2004-09-08  Eric Christopher  <echristo@redhat.com>
7117
7118         * builtins.c: Fix prototype for fold_builtin_atan.
7119
7120 2004-09-08  Eric Christopher  <echristo@redhat.com>
7121
7122         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
7123         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
7124         fold_builtin_atan): New functions. Migrate function bodies...
7125         (fold_builtin_1): ... from here.
7126
7127 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
7128
7129         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
7130         save_size.
7131
7132 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
7133
7134         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
7135         * config/rs6000/power5.md (power5-lmul): Same.
7136
7137 2004-09-08  Richard Henderson  <rth@redhat.com>
7138
7139         PR rtl-opt/17186
7140         * function.c (expand_function_end): Have fall-off-the-end
7141         return path jump around return register setup.
7142
7143 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7144
7145         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
7146         (output_return): Do not test for the presence of the 'unimp' insn.
7147         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
7148         as predicates instead of custom ones.  Return raw strings when
7149         possible.
7150         (output_sibcall): Likewise.  Concatenate strings.
7151         (output_ubranch): Remove kludge for TurboSPARC.
7152         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
7153         (output_v9branch): Likewise.
7154         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
7155         <#>: Set sparc_indent_opcode if the delay slot is filled.
7156         <(>: Likewise.
7157         <)>: New operand to emit the displacement from the saved PC on return.
7158         <@>: Remove.
7159         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
7160         (ASM_OUTPUT_OPCODE): New macro.
7161         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
7162         * config/sparc/sparc.md (normal_branch, inverted_branch,
7163         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
7164         inverted_fpe_branch): Adjust call to output_cbranch.
7165         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
7166         call to output_v9branch.
7167         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
7168         (output_v9branch): Likewise.
7169
7170 2004-09-08  Devang Patel  <dpatel@apple.com>
7171
7172         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
7173         -segs_read_only_addr and -segs_read_write_addr.
7174         (WORD_SWITCH_TAKES_ARG): Same.
7175         (LINK_SPEC): Same.
7176         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
7177         -segs_read_write_addr.
7178
7179 2004-09-08  Richard Henderson  <rth@redhat.com>
7180
7181         * function.c (reference_callee_copied): New.
7182         (assign_parm_setup_reg): Use it.
7183         * calls.c (initialize_argument_information): Likewise.
7184         (emit_library_call_value_1): Likewise.
7185         * function.h (reference_callee_copied): Declare.
7186
7187         * target.h (struct gcc_target): Add callee_copies.
7188         * target-def.h (TARGET_CALLEE_COPIES): New.
7189         (TARGET_PASS_BY_REFERENCE): Update default.
7190         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7191         * targhooks.c (hook_callee_copies_named): New.
7192         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
7193         hook_pass_by_reference_false.
7194         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
7195         * targhooks.h: Update decls.
7196         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
7197         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7198         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
7199         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
7200         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7201         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
7202         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7203         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
7204         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7205         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
7206         (mips_callee_copies): New.
7207         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7208         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
7209         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7210         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
7211         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7212         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
7213         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7214         * config/sh/sh.c (sh_callee_copies): New.
7215         (TARGET_CALLEE_COPIES): New.
7216         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7217         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
7218         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7219         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
7220         for FUNCTION_ARG_CALLEE_COPIES.
7221         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
7222
7223 2004-09-08  Devang Patel  <dpatel@apple.com>
7224
7225         * tree-if-conv.c (find_phi_replacement_condition): Return true
7226         edge block.
7227         (replace_phi_with_cond_modify_expr): Select conditional expr args
7228         based on true edge basic block.
7229
7230 2004-09-08  Jan Hubicka  <jh@suse.cz>
7231
7232         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
7233         variables being alias set.
7234
7235 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7236
7237         * final.c (shorten_branches, final, get_insn_template,
7238         output_alternate_entry_point, final_scan_insn, alter_subreg,
7239         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
7240         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
7241         * fix-header.c (lookup_std_proto): Likewise.
7242         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
7243         verify_local_live_at_start, update_life_info, mark_reg,
7244         calculate_global_regs_live, allocate_reg_life_data,
7245         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
7246         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
7247         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
7248         * fold-const.c (force_fit_type, div_and_round_double,
7249         may_negate_without_overflow_p, int_const_binop, const_binop,
7250         size_binop, size_diffop, fold_convert_const, fold_convert,
7251         invert_tree_comparison, swap_tree_comparison,
7252         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
7253         range_binop, make_range, fold_cond_expr_with_comparison,
7254         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
7255         fold_abs_const, fold_not_const, fold_relational_const, round_up,
7256         round_down): Likewise.
7257         * function.c (find_function_data, assign_stack_temp_for_type,
7258         instantiate_virtual_regs_lossage, aggregate_value_p,
7259         assign_parm_find_entry_rtl, assign_parm_setup_block,
7260         expand_function_start, expand_function_end, keep_stack_depressed,
7261         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
7262
7263 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
7264
7265         * Makefile.in (tree-loop-linear.o): Added.
7266         (OBJS-common): Add tree-loop-linear.o
7267         * common.opt: New flag, ftree-loop-linear.
7268         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
7269         * tree-flow.h: Add prototype for linear_transform_loops.
7270         * tree-optimize.c: Add linear transform after vectorization.
7271         * tree-pass.h: Add struct pass_linear_transform.
7272         * tree-ssa-loop.c: Add pass_linear_transform.
7273         * tree-loop-linear.c: New file.
7274         * lambda-code.c: gcc_assertify.
7275         (gcc_loop_to_lambda_loop): Handle all exit tests.
7276         Handle case where we have (invariant >= induction var).
7277         (find_induction_var_from_exit_cond): Ditto.
7278
7279 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
7280
7281         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
7282         memory tag is call clobbered, so are its aliases.
7283         (group_aliases): When two memory tags being grouped, if one is
7284         call clobbered, so are the other and its aliases.
7285         (add_may_alias): Remove call-clobbering stuff.
7286         (replace_may_alias): Likewise.
7287         (merge_pointed_to_info): Merge pt_global_mem
7288
7289 2004-09-08  Jan Hubicka  <jh@suse.cz>
7290
7291         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
7292         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
7293         (cgraph_expand_function): Remove stale cgraph edges of currently
7294         compiled function; fix non-unit-at-a-time code copying function
7295         node for later reuse.
7296
7297 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7298
7299         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
7300         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
7301         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
7302         (vec_gc_free, vec_heap_free): New.
7303         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
7304         (DEF_VEC_P): Add allocator argument. Adjust.
7305         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
7306         (DEF_VEC_O): Add allocator argument. Adjust.
7307         (VEC(free)): New.
7308
7309         * tree.h (tree): Define a GC'd vector.
7310         * lamba-code.c (lambda_loop): Likewise.
7311         * value-prof.h (histogram_value): Likewise.
7312
7313 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7314
7315         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
7316         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
7317         gen_lowpart_common, gen_highpart, gen_highpart_mode,
7318         subreg_highpart_offset, operand_subword, operand_subword_force,
7319         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
7320         set_mem_alias_set, change_address_1, verify_rtx_sharing,
7321         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
7322         try_split, add_insn_after, add_insn_before, remove_insn,
7323         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
7324         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
7325         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
7326         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
7327         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
7328         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
7329         record_path_before_1, check_path_after_1, check_path_after): Likewise.
7330         * except.c (gen_eh_region, resolve_one_fixup_region,
7331         remove_unreachable_regions, convert_from_eh_region_ranges_1,
7332         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
7333         connect_post_landing_pads, sjlj_emit_function_exit,
7334         remove_exception_handler_label, remove_eh_handler,
7335         reachable_next_level, collect_one_action_chain,
7336         output_function_exception_table): Likewise.
7337         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
7338         optimize_save_area_alloca, allocate_dynamic_stack_space,
7339         probe_stack_range, hard_function_value): Likewise.
7340         * expmed.c (mode_for_extraction, store_bit_field,
7341         store_fixed_bit_field, extract_bit_field, expand_shift,
7342         expand_mult_const, expand_mult, choose_multiplier,
7343         expand_mult_highpart, expand_divmod, emit_store_flag,
7344         do_cmp_and_jump): Likewise.
7345         * expr.c (convert_move, convert_modes, move_by_pieces,
7346         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
7347         move_block_from_reg, gen_group_rtx, emit_group_load,
7348         emit_group_move, emit_group_store, use_reg, use_regs,
7349         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
7350         emit_move_insn, emit_move_insn_1, emit_push_insn,
7351         expand_assignment, store_expr, count_type_elements,
7352         store_constructor, store_field, safe_from_p, expand_var,
7353         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
7354
7355 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7356
7357         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
7358         gcc_assert and gcc_unreachable.
7359         * ddg.c (create_ddg_dependence, add_deps_for_def,
7360         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
7361         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
7362         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
7363         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
7364         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
7365         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
7366         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
7367         dataflow_set_copy, hybrid_search, diagnostic.c,
7368         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
7369         * dojump.c (do_jump): Likewise.
7370         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
7371         compute_dom_fast_query, calculate_dominance_info,
7372         free_dominance_info, get_immediate_dominator,
7373         set_immediate_dominator, get_dominated_by,
7374         redirect_immediate_dominators, nearest_common_dominator,
7375         dominated_by_p, verify_dominators, recount_dominator,
7376         iterate_fix_dominators, add_to_dominance_info,
7377         delete_from_dominance_info): Likewise.
7378         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
7379         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
7380         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
7381         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
7382         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
7383         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
7384         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
7385         output_call_frame_info, output_loc_operands, build_cfa_loc,
7386         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
7387         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
7388         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
7389         splice_child_die, attr_checksum, same_dw_val_p,
7390         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
7391         unmark_dies, value_format, output_loc_list, output_die,
7392         output_pubnames, output_aranges, base_type_die, is_base_type,
7393         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
7394         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
7395         field_byte_offset, add_data_member_location_attribute,
7396         add_const_value_attribute, rtl_for_decl_location,
7397         add_location_or_const_value_attribute, add_byte_size_attribute,
7398         add_bit_offset_attribute, add_bit_size_attribute,
7399         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
7400         decl_start_label, gen_formal_parameter_die,
7401         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
7402         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
7403         force_decl_die, force_type_die, gen_decl_die,
7404         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
7405         dwarf2out_finish): Likewise.
7406
7407 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
7408
7409         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
7410         * builtins.c: Include tree-mudflap.h.
7411
7412 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
7413
7414         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
7415         force operand 0.0 into register in XFmode. Also do not force
7416         operand 0.0 into register if !TARGET_CMOVE.
7417         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
7418         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
7419         implement ftst x87 instruction.
7420         (*fp_jcc_7): New insn pattern. Change corresponding split
7421         pattern to handle "general_operand" instead of
7422         "nonimmediate_operand".
7423
7424 2004-09-08  Ben Elliston  <bje@au.ibm.com>
7425
7426         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
7427
7428 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
7429
7430         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
7431         generated from standard va_arg expansion.
7432         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
7433         marked nodes.
7434         (mf_varname_tree, mf_file_function_line_tree): Add some support
7435         for column numbers if compiled with USE_MAPPED_LOCATION.
7436
7437 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7438
7439         * c-decl.c (groktypename_in_parm_context): Remove function.
7440         * c-tree.h (groktypename_in_parm_context): Remove prototype.
7441
7442 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7443
7444         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
7445         * c-parse.in: Include c-common.h instead of objc-act.h.
7446         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
7447         myparms, myparm): Remove %type declarations.
7448         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
7449         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
7450         declarations.
7451         (objc_inherit_code, objc_public_flag): Remove.
7452         (typespec_nonreserved_nonattr): Call
7453         objc_get_protocol_qualified_type() instead of get_static_reference()
7454         and get_protocol_reference().
7455         (stmt_nocomp): Call grokparm() on @catch parameter.
7456         (objcdef): Move semantic action to objc_finish_implementation().
7457         (classdef): Move semantic action to objc_start_class_interface(),
7458         objc_continue_interface(), objc_finish_interface(),
7459         objc_start_class_implementation(), objc_continue_implementation(),
7460         objc_start_category_interface() and
7461         objc_start_category_implementation().
7462         (protocoldef): Move semantic actions to objc_start_protocol() and
7463         objc_finish_interface().
7464         (ivar_decl_list): Remove nonterminal.
7465         (visibility_spec): Move semantic actions to objc_set_visibility().
7466         (ivar_decls): Remove assignment to $$.
7467         (ivar_decl): Rephrase in terms of component_decl; call
7468         objc_add_instance_variable().
7469         (ivars, ivar_declarator): Remove nonterminals.
7470         (opt_semi): New nonterminal.
7471         (methodtype): Remove semantic actions.
7472         (methoddef): Move semantic actions to objc_set_method_type(),
7473         objc_start_method_definition() and objc_finish_method_definition().
7474         (methodproto): Move semantic actions to objc_set_method_type() and
7475         objc_add_method_declaration().
7476         (methoddecl): Use objc_typename instead of typename; move semantic
7477         actions to objc_build_method_signature().
7478         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
7479         (optparmlist): Express in terms of optparms and optellipsis.
7480         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
7481         nonterminals.
7482         (keyworddecl): Use objc_typename instead of typename.
7483         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
7484         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
7485
7486 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
7487
7488         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
7489         (MD_FALLBACK_FRAME_STATE_FOR): Update.
7490         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
7491         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7492         (MD_FROB_UPDATE_CONTEXT): Remove default.
7493         (uw_update_context_1): Instead #ifdef invocation.
7494         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
7495         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7496         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
7497         (MD_UNWIND_SUPPORT): Undefine this instead.
7498         * config/i386/gnu.h: Likewise.
7499         * config/alpha/linux-unwind.h: New file, macro converted to
7500         function, extracted from..
7501         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
7502         (MD_UNWIND_SUPPORT): Define.
7503         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
7504         * config/i386/linux-unwind.h, config/i386/linux.h,
7505         config/i386/linux64.h: Likewise.
7506         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
7507         MD_HANDLE_UNWABI too.
7508         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
7509         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
7510         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
7511         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
7512         * config/sparc/linux-unwind.h, config/sparc/linux.h,
7513         config/sparc/linux64.h: Likewise.
7514         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
7515         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
7516         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
7517         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
7518         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
7519
7520 2004-09-07  Jan Hubicka  <jh@suse.cz>
7521
7522         * cse.c (fold_rtx):  Avoid building of
7523         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
7524
7525         * tree-ssa-pre.c (grand_bitmap_obstack): New.
7526         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
7527         (init_pre): Initialize obstack.
7528         (fini_pre): Free obstack.
7529
7530 2004-09-07  David Daney  <ddaney@avtrex.com>
7531
7532         * config.gcc: Added support for --with-divide=[breaks|traps] for
7533         mips targets.
7534         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
7535         (TARGET_DIVIDE_TRAPS): New macro.
7536         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
7537         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
7538         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
7539         GENERATE_DIVIDE_TRAPS.
7540         (mips_output_division): Emit conditional trap if
7541         GENERATE_DIVIDE_TRAPS is set.
7542         * doc/install.texi: Document --with-divide.
7543         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
7544
7545 2004-09-07  Caroline Tice  <ctice@apple.com>
7546
7547         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
7548         EDGE_CROSSING, to flags test case.
7549
7550 2004-09-07  Jan Hubicka  <jh@suse.cz>
7551
7552         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
7553         class too.
7554
7555 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7556
7557         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
7558         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
7559         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
7560         or gcc_unreachable.
7561         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
7562         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
7563         alloc_aux_for_edges, free_aux_for_edges): Likewise.
7564         * cfgcleanup.c (try_forward_edges,
7565         merge_blocks_move_predecessor_nojumps,
7566         merge_blocks_move_successor_nojumps): Likewise.
7567         * cfgexpand.c (expand_gimple_cond_expr,
7568         expand_gimple_tailcall): Likewise.
7569         * cfghooks.c (duplicate_block): Likewise.
7570         * cfglayout.c (record_effective_endpoints,
7571         insn_locators_initialize, change_scope, fixup_reorder_chain,
7572         verify_insn_chain, fixup_fallthru_exit_predecessor,
7573         duplicate_insn_chain, cfg_layout_finalize): Likewise.
7574         * cfgloopanal.c (check_irred): Likewise.
7575         * cfgloop.c (superloop_at_depth, flow_loops_free,
7576         flow_loop_entry_edges_find, flow_loops_find,
7577         flow_loop_outside_edge_p, get_loop_body,
7578         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
7579         get_loop_exit_edges, num_loop_branches, cancel_loop,
7580         verify_loop_structure): Likewise.
7581         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
7582         duplicate_loop_to_header_edge, create_preheader,
7583         create_loop_notes): Likewise.
7584         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
7585         edirect_branch_edge, force_nonfallthru_and_redirect,
7586         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
7587         commit_edge_insertions, commit_edge_insertions_watch_calls,
7588         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
7589         cfg_layout_redirect_edge_and_branch_force,
7590         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
7591         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
7592         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
7593         cgraph_varpool_node): Likewise.
7594         * cgraphunit.c (cgraph_finalize_function,
7595         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
7596         cgraph_expand_function, cgraph_remove_unreachable_nodes,
7597         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
7598         cgraph_mark_inline, cgraph_expand_all_functions,
7599         cgraph_build_static_cdtor): Likewise.
7600         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
7601         simplify_logical, distribute_notes, insn_cuid): Likewise.
7602         * conflict.c (conflict_graph_add, print_conflict): Likewise.
7603         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
7604         coverage_checksum_string): Likewise.
7605         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
7606         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
7607         cse_cc_succs, cse_condition_code_reg): Likewise.
7608         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
7609         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
7610         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
7611         cselib_record_set): Likewise.
7612
7613 2004-09-07  Jan Hubicka  <jh@suse.cz>
7614
7615         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
7616
7617 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7618
7619         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
7620         fold_convert.
7621         (fold_builtin_strpbrk): Likewise.
7622         * expr.c (array_ref_low_bound): Likewise.
7623         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
7624         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
7625         * tree-sra.c (generate_element_zero): Likewise.
7626         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7627         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
7628         add_old_iv_candidates, add_iv_candidates): Likewise.
7629         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
7630
7631 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7632
7633         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
7634         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
7635         c_expand_expr, boolean_increment, nonnull_check_p,
7636         check_function_arguments_recurse, fold_offsetof_1): Likewise.
7637         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
7638         builtin_define_type_max): Likewise.
7639         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
7640         implicit_decl_warning, builtin_function, build_compound_literal,
7641         complete_array_type, grokdeclarator, get_parm_info,
7642         start_function, store_parm_decls_oldstyle,
7643         c_write_global_declarations): Likewise.
7644         * c-format.c (get_constant, decode_format_attr,
7645         maybe_read_dollar_number, get_flag_spec, check_format_arg,
7646         check_format_types, format_type_warning,
7647         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
7648         init_dynamic_diag_info, handle_format_attribute): Likewise.
7649         * c-gimplify.c (push_context, pop_context, finish_bc_block):
7650         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
7651         * c-objc-common.c (c_tree_printer): Likewise.
7652         * c-pch.c (pch_init): Likewise.
7653         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
7654         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
7655         * c-typeck.c (c_incomplete_type_error, composite_type,
7656         common_pointer_type, common_type, same_translation_unit_p,
7657         tagged_types_tu_compatible_p, finish_init, pop_init_level,
7658         set_designator, set_nonincremental_init_from_string,
7659         process_init_element, c_finish_if_stmt): Likewise.
7660         * caller-save.c (init_caller_save, save_call_clobbered_regs,
7661         insert_restore, insert_save, insert_one_insn): Likewise.
7662         * calls.c (emit_call_1, compute_argument_block_size,
7663         precompute_arguments, expand_call, emit_library_call_value_1,
7664         store_one_arg): Likewise.
7665
7666 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7667
7668         * configure.ac (enable-checking): Add release option. Reorganize
7669         to avoid repetition.
7670         * configure: Rebuilt.
7671         * doc/install.texi (enable-checking): Amend documentation.
7672
7673 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7674
7675         PR bootstrap/17313
7676         * Makefile.in (specs.ready): Depend on cc1$(exeext).
7677
7678 2004-09-06  James E Wilson  <wilson@specifixinc.com>
7679
7680         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
7681         movdf_hardfloat_32bit): Split fG into two alternatives.
7682         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
7683
7684         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
7685
7686 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7687
7688         * final.c (output_in_slot): Delete.
7689         (final_scan_insn): Revert 2004-09-03 change.
7690         (output_asm_insn): Likewise.
7691         * config/sparc/sparc.c (output_return): Likewise.
7692         (output_sibcall): Likewise.
7693
7694 2004-09-06  Jan Hubicka  <jh@suse.cz>
7695
7696         * loop.c (loop_dump_aux): Do not print RTL when not available.
7697         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
7698         frontend specific type nodes.
7699         (produce_memory_decl_rtl): Break out from ...
7700         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
7701         (get_computation_at): Avoid random tree sharing.
7702         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
7703
7704 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
7705
7706         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
7707         unnecessary commands.
7708
7709 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
7710
7711         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
7712         (bitmap.o): Likewise.
7713
7714 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
7715
7716         Unify the management of RTL and tree-level dump files.
7717
7718         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
7719         Don't print function name to the dump file, the pass manager
7720         would do this for us. Add code from the top of
7721         rest_of_compilation, up to the initial RTL dump.
7722         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
7723         close the DFI_sibling dump file.
7724         (rest_of_compilation): Don't do that here.  Remove code up to the
7725         initial RTL dump.
7726         (init_optimization_passes): Remove.
7727         (pass_rest_of_compilation): Change pass name to NULL.
7728         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
7729         Do not call init_optimization_passes.
7730         * toplev.h (init_optimization_passes): Remove.
7731
7732         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7733         finish_graph_dump_file): Remove SUFFIX parameter.
7734         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
7735         finish_graph_dump_file): Likewise.
7736
7737         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
7738         * cfgexpand.c (pass_expand): Adjust.
7739         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
7740         * passes.c (pass_rest_of_compilation): Adjust.
7741         * predict.c (pass_profile): Adjust.
7742         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
7743         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
7744         pass_split_crit_edges, pass_warn_function_return): Adjust.
7745         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
7746         * tree-dfa.c (pass_referenced_vars): Adjust.
7747         * tree-eh.c (pass_lower_eh): Adjust.
7748         * tree-if-conv.c (pass_build_ssa): Adjust.
7749         * tree-into-ssa.c (pass_build_ssa): Adjust.
7750         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7751         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7752         * tree-nrv.c (pass_nrv): Adjust.
7753         * tree-optimize.c (pass_gimple, pass_all_optimizations,
7754         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
7755         pass_init_datastructures): Adjust.
7756         * tree-outof-ssa.c (pass_del_ssa): Adjust.
7757         * tree-profile.c (pass_tree_profile): Adjust.
7758         * tree-sra.c (pass_sra): Adjust.
7759         * tree-ssa-alias.c (pass_may_alias): Adjust.
7760         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
7761         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
7762         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
7763         * tree-ssa-dom.c (pass_dominator): Adjust.
7764         * tree-ssa-dse.c (pass_dse): Adjust.
7765         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
7766         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
7767         * tree-ssa-loop-ch.c (pass_ch): Adjust.
7768         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
7769         pass_loop_done, pass_complete_unroll, pass_iv_canon,
7770         pass_iv_optimize, pass_vectorize): Adjust.
7771         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
7772         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
7773         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
7774         pass_late_warn_uninnitialized): Adjust.
7775         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
7776
7777         * Makefile.in (tree-dump.o): Add new dependencies.
7778         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
7779         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
7780         Likewise.
7781         * toplev.c (dump_file_name): New.
7782         * tree-dump.c (dump_enable_all): Add LETTER parameter.
7783         (struct dump_file_info): Add NUM and LETTER fields.
7784         (dump_files): Adjust and add RTL dump files.
7785         (dump_register): Add NUM and LETTER fields.
7786         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
7787         (dump_begin): Use get_dump_file_name.
7788         (dump_switch_p_1): Adjust call to dump_enable_all.
7789         * tree-dump.h (dump_register): Adjust prototype.
7790         * tree-optimize.c (register_one_dump_file): Take dump file index.
7791         Support flags for RTL dumps.
7792         (register_dump_files): Fill in NUM field of struct dump_file_info.
7793         Track properties both when the gate is executed and when it is not.
7794         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
7795         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
7796         dumps of RTL.
7797         * tree-pass.h (dump_file_name): New.
7798         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
7799         New.
7800
7801         * Makefile.in (passes.o): Add new dependencies.
7802         * passes.c (struct dump_file_info, enum dump_file_index,
7803         dump_file_tbl, init_optimization_passes): Remove.
7804         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
7805         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
7806         dump_enabled_p.
7807         (finish_optimization_passes): Update finish_graph_dump_file loop.
7808         (enable_rtl_dump_file): Remove.
7809         * tree-dump.c (dump_files): Adjust and add RTL dump files.
7810         (enable_rtl_dump_file): Add here.
7811         * tree.h (enum tree_dump_index): Add RTL dump file indices.
7812         * doc/invoke.texi (Debugging options): Document new RTL debugging
7813         options.  Update.
7814
7815 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7816
7817         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
7818         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
7819         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
7820         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
7821         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
7822         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
7823         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
7824         vec.h: Fix comment formatting.
7825
7826 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7827
7828         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
7829         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
7830         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
7831         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
7832         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
7833         tree-ssa-loop-niter.c, tree-ssa-operands.c,
7834         tree-ssa-operands.h, tree-ssa-propagate.c,
7835         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
7836         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
7837
7838 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
7839
7840         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
7841         vectorizer is enabled.
7842
7843 2004-09-05  Andreas Jaeger  <aj@suse.de>
7844
7845         * tree-if-conv.c: Spell check comments and clean up whitespace.
7846
7847 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7848
7849         * tree-ssa-loop-ivopts.c: New file.
7850         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
7851         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
7852         target_pres_cost, target_spill_cost): Declare.
7853         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
7854         spill_cost): Renamed to ...
7855         (target_avail_regs, target_res_regs, target_small_cost,
7856         target_pres_cost, target_spill_cost): ... and exported.
7857         (init_set_costs, global_cost_for_size): Work with renamed variables.
7858         * common.opt (flag_ivopts): New flag.
7859         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
7860         REF_ORIGINAL.
7861         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
7862         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
7863         generating SSA form.
7864         (force_gimple_operand): New function.
7865         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
7866         * tree-cfg.c (stmt_bsi): New function.
7867         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7868         PARAM_IV_MAX_CONSIDERED_USES): New.
7869         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
7870         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
7871         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
7872         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
7873         * tree-nested.c (build_addr): Export.
7874         * tree-optimize.c (init_tree_optimization_passes): Add
7875         pass_iv_optimize.
7876         * tree-pass.h (pass_iv_optimize): Declare.
7877         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
7878         IMAGPART_EXPR.
7879         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
7880         as a phi node argument.
7881         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
7882         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
7883         functions.
7884         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
7885         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
7886         pass_iv_optimize): New pass.
7887         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
7888         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
7889         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
7890         * tree.h (REF_ORIGINAL): New macro.
7891         (build_int_cst_type, unsigned_type_for, zero_p,
7892         cst_and_fits_in_hwi, build_addr): Declare.
7893         * doc/invoke.texi (-fivopts): Document.
7894         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7895         PARAM_IV_MAX_CONSIDERED_USES): Document.
7896         * doc/passes.texi: Document induction variable optimizations pass.
7897
7898 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7899
7900         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
7901         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
7902         * c-common.c (c_common_attribute_table): Accept parameters to
7903         sentinel attribute.
7904         (check_function_sentinel, handle_sentinel_attribute): Likewise.
7905         * doc/extend.texi: Update accordingly.
7906
7907 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7908
7909         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
7910         New.
7911         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
7912         attribute.
7913         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
7914         New functions.
7915         (c_common_attribute_table): Add `sentinel' attribute.
7916         (check_function_arguments): Handle `sentinel' attribute.
7917         * doc/extend.texi: Document `sentinel' attribute.
7918
7919 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
7920
7921         * configure: Regenerated.
7922
7923 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7924
7925         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
7926
7927         * tree.c (save_expr): No longer TREE_READONLY.
7928
7929 2004-09-04  Jan Hubicka  <jh@suse.cz>
7930
7931         * passes.c (rest_of_clean_state):  Fix merge conflict made during
7932         commiting the patch.
7933
7934 2004-09-04  Jan Hubicka  <jh@suse.cz>
7935
7936         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
7937
7938 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7939
7940         * doc/md.texi (shift patterns): New anchor.  Add reference to
7941         TARGET_SHIFT_TRUNCATION_MASK.
7942         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
7943         * target.h (shift_truncation_mask): New target hook.
7944         * targhook.h (default_shift_truncation_mask): Declare.
7945         * targhook.c (default_shift_truncation_mask): Define.
7946         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
7947         (TARGET_INITIALIZER): Include it.
7948         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
7949         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
7950         reject all out-of-range values.  Fix sign-extension code for modes
7951         whose width is smaller than HOST_BITS_PER_WIDE_INT.
7952         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
7953         (expand_superword_shift, expand_subword_shift): Likewise.
7954         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
7955         (expand_binop): Use them to implement double-word shifts.
7956         * config/arm/arm.c (arm_shift_truncation_mask): New function.
7957         (TARGET_SHIFT_TRUNCATION_MASK): Define.
7958
7959 2004-09-04  Jan Hubicka  <jh@suse.cz>
7960
7961         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
7962         (mix): New macro copied from hashtab.c
7963         (iterative_hash_hashval_t, iterative_hash_pointer,
7964         iterative_hash_host_wide_int): New functions based on hashtab.c
7965         implementation.
7966
7967 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7968
7969         * config/mips/mips.md (mask): New mode attribute.
7970         (zero_extendsidi2): Add memory alternative.
7971         (*zero_extendsidi2_mem): Delete.
7972         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
7973         memory_operand in the TARGET_MIPS16 check.
7974         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
7975         Redefine using :GPR and :SHORT.
7976         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
7977
7978 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
7979
7980         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
7981         using rint_optab.
7982         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
7983         expand_builtin_mathfn.
7984         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
7985         btrunc?f patterns for btrunc_optab. Implement rint_optab using
7986         rint?f patterns.
7987         * optabs.c (init_optabs): Initialize rint_optab.
7988         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
7989         Add new OTI_rint.
7990         (btrunc_optab): Rename macro from trunc_optab.
7991         (rint_optab): Define corresponding macro.
7992
7993         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
7994         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
7995
7996         * config/i386/i386-protos.h (emit_i387_cw_initialization):
7997         Change prototype. Add new int parameter.
7998         * config/i386/i386.c (emit_i387_cw_initialization):
7999         Handle new rounding modes.
8000
8001         * config/i386/i386.h (enum fp_cw_mode): Delete.
8002         (MODE_NEEDED): Handle new rounding modes.
8003         (EMIT_MODE_SET): Change condition to handle new rounding modes.
8004
8005         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
8006         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
8007         represent different rounding modes of frndint insn.
8008         (type): Add frndint type.
8009         (i387, length, memory): Handle this type.
8010         (i387_cw): New attribute definition.
8011         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
8012         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
8013         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
8014         Add "i387_cw" attribute defined to "trunc".
8015         (x86_fnstcw_1): Remove comment.
8016         (*frndintxf2): Rename insn definition to frndintxf2. Move
8017         insn definition near rint?f2 expanders.
8018         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
8019         rintf and rintl built-ins as inline x87 intrinsics.
8020         (frndintxf2_floor): New pattern to implement floor rounding
8021         mode with frndint x87 instruction.
8022         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
8023         floorf and floorl built-ins as inline x87 intrinsics.
8024         (frndintxf2_ceil): New pattern to implement ceil rounding
8025         mode with frndint x87 instruction.
8026         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
8027         ceilf and ceill built-ins as inline x87 intrinsics.
8028         (frndintxf2_trunc): New pattern to implement trunc rounding
8029         mode with frndint x87 instruction.
8030         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
8031         truncf and truncl built-ins as inline x87 intrinsics.
8032         (frndintxf2_mask_pm): New pattern to implement rounding
8033         mode with exceptions with frndint x87 instruction.
8034         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
8035         implement nearbyint, nearbyintf and nearbyintl built-ins as
8036         inline x87 intrinsics.
8037
8038 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
8039
8040         * config/mips/mips.md (SHORT): New mode macro.
8041         (size): New mode attribute.
8042         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
8043         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
8044         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
8045         !ISA_HAS_SEB_SEH.
8046         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
8047         *extend[qh]isi2_hw patterns and extending them to di.
8048         (extendqihi2): Implement as define_insn_and_split that produces
8049         extendqisi2 after reload.
8050
8051 2004-09-03  Devang Patel  <dpatel@apple.com>
8052
8053         * Makefile.in (OBJS-common): Add tree-if-conv.o
8054         (tree-if-conv.o): New rule.
8055         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
8056         (get_loop_body_in_bfs_order): New.
8057         * cfgloop.h (get_loop_body_in_bfs_order): New.
8058         * tree-flow.h (enum move_pos): Move here from ..
8059         * tree-ssa-loop-im.c (enum move_pos): here.
8060         (movement_possibility): Make externally visible.
8061         * tree-optimize.c (init_tree_optimization_passes): New entry for
8062         if conversion pass.
8063         * tree-pass.h (pass_if_conversion): New.
8064         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
8065         * tree-if-conv.c: New file.
8066         * doc/passes.texi: Document tree if-conversion pass.
8067         * doc/tree-ssa.texi: Same.
8068
8069 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
8070
8071         PR target/14925:
8072         Makefile.in (LIB2ADDEHSTATIC): New.
8073         (LIB2ADDEHSHARED): New.
8074         (LIBUNWIND): New.
8075         (LIBUNWINDDEP): New.
8076         (SHLIBUNWIND_LINK): New.
8077         (SHLIBUNWIND_INSTALL): New.
8078         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
8079         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
8080         (clean): Remove libunwind*
8081         (stage1-start): Remove and copy stage1/libunwind*.
8082         (stage2-start): Remove and copy stage2/libunwind*.
8083         (stage3-start): Remove and copy stage3/libunwind*.
8084         (stage4-start): Remove and copy stage4/libunwind*.
8085         (stageprofile-start): Remove and copy stageprofile/libunwind*.
8086         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
8087
8088         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
8089         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
8090         tmake_file if --with-system-libunwind isn't used.
8091
8092         * config/ia64/t-glibc-libunwind: New file.
8093         * config/t-libunwind-elf: Likewise.
8094         * unwind-compat.c: Likewise.
8095         * unwind-compat.h: Likewise.
8096         * unwind-dw2-fde-compat.c: Likewise.
8097
8098         * config/ia64/t-glibc (LIB2ADDEH): Updated.
8099         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
8100
8101         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
8102         aliases if needed.
8103         * unwind-dw2-fde-glibc.c: Likewise.
8104         * unwind-dw2.c: Likewise.
8105
8106         * config/t-libunwind (LIB2ADDEH): Updated.
8107         (LIB2ADDEHSTATIC): New.
8108         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
8109         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
8110
8111         * configure.ac: Change --enable-libunwind-exceptions to
8112         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
8113         * configure: Regenerated.
8114         * config.in: Updated.
8115
8116         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
8117         above and mention --with-system-libunwind.
8118         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
8119         removed in gcc 3.4.3 and later.
8120
8121         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
8122         USE_LIBUNWIND_EXCEPTIONS is defined.
8123
8124         * mklibgcc.in: Support libunwind.
8125
8126 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
8127
8128         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
8129         m_NOCONA.
8130
8131 2004-09-03  Richard Henderson  <rth@redhat.com>
8132
8133         PR middle-end/9997
8134         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
8135         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
8136         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
8137         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
8138         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
8139         resize_stack_vars_conflict, add_stack_var_conflict,
8140         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
8141         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
8142         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
8143         expand_one_static_var, expand_one_hard_reg_var,
8144         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
8145         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
8146         (expand_used_vars): Rewrite.
8147         * Makefile.in (cfgexpand.o): Update dependencies.
8148
8149 2004-09-04  Jan Hubicka  <jh@suse.cz>
8150
8151         * cfg.c (free_edge): Use ggc_free.
8152         (expunge_block): Use ggc_free.
8153         * passes.c (rest_of_clean_state): Free after compilation.
8154         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
8155         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
8156
8157 2004-09-03  James E Wilson  <wilson@specifixinc.com>
8158
8159         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
8160         DECL_EXTERNAL check.
8161
8162 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8163
8164         * final.c (output_in_slot): New global variable.
8165         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
8166         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
8167         'output_in_slot' before invoking output_asm_insn.
8168         (output_asm_insn): Add a space after the tab if 'output_in_slot'
8169         is set.
8170         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
8171         final_scan_insn.
8172         (output_sibcall): Likewise.
8173
8174 2004-09-03  Jan Hubicka  <jh@suse.cz>
8175
8176         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
8177         * tree-ssanames (init_ssanames): Likewise.
8178
8179 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
8180
8181         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
8182         objc_declare_protocols, objc_start_protocol,
8183         objc_start_class_interface, objc_start_category_interface,
8184         objc_continue_interface, objc_finish_interface,
8185         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
8186         objc_start_class_implementation, objc_start_category_implementation,
8187         objc_continue_implementation, objc_finish_implementation,
8188         objc_add_method_declaration, objc_start_method_definition,
8189         objc_finish_method_definition, objc_build_keyword_decl,
8190         objc_build_method_signature, objc_build_encode_expr,
8191         objc_build_protocol_expr, objc_build_selector_expr,
8192         objc_build_message_expr, objc_build_string_object,
8193         objc_get_class_reference, objc_get_protocol_qualified_type,
8194         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
8195
8196 2004-09-03  James E Wilson  <wilson@specifixinc.com>
8197
8198         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
8199
8200         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
8201         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
8202         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
8203         (mips_recip1_<fmt>): Use frdiv1 type.
8204         (mips_recip2_<fmt>): Use frdiv2 type.
8205         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
8206         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
8207         and frsqrt1.
8208         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
8209
8210 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
8211
8212         * reload.c (find_reloads): Swap operand_loc pointers for
8213         find_dummy_reload if we have swapped two operands.
8214
8215 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
8216
8217         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
8218         to get the tablejump-insn before the jump-table label.
8219
8220 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
8221
8222         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
8223         objc_declare_protocols, objc_build_message_expr,
8224         objc_finish_message_expr, objc_build_selector_expr,
8225         objc_build_protocol_expr, objc_build_encode_expr,
8226         objc_build_string_object, objc_get_protocol_qualified_type,
8227         objc_get_class_reference, objc_get_class_ivars,
8228         objc_start_class_interface, objc_start_category_interface,
8229         objc_start_protocol, objc_continue_interface, objc_finish_interface,
8230         objc_start_class_implementation, objc_start_category_implementation,
8231         objc_continue_implementation, objc_finish_implementation,
8232         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
8233         objc_add_method_declaration, objc_start_method_definition,
8234         objc_finish_method_definition, objc_add_instance_variable,
8235         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
8236         objc_finish_try_stmt, objc_begin_catch_clause,
8237         objc_finish_catch_clause, objc_build_finally_clause,
8238         objc_build_synchronized, objc_static_init_needed_p,
8239         objc_generate_static_init_call): New prototypes.
8240
8241 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
8242
8243         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
8244         is only one reg.
8245         (ia64_function_value): Ditto.
8246
8247 2004-09-03  Jan Beulich  <jbeulich@novell.com>
8248
8249         * config.gcc: Resurrect NetWare as a target. Handle special case of
8250         Novell linker to be used (specified through --with-ld=) and threading
8251         model of either Posix (default) or NKS.
8252         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
8253         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
8254         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
8255         * config/i386/netware.c, config/i386/netware.h: New.
8256         * config/i386/nwld.c, config/i386/nwld.h: New.
8257         * config/i386/netware-crt0.c: New.
8258         * config/i386/netware-libgcc.c: New.
8259         * config/i386/netware-libgcc.def: New.
8260         * config/i386/netware-libgcc.exp: New.
8261         * config/i386/t-netware, config/i386/t-nwld: New.
8262         * gthr-nks.h: New.
8263         * doc/install.texi: Document NKS threading model.
8264
8265 2004-09-03  Jan Beulich  <jbeulich@novell.com>
8266
8267         PR c/7054
8268         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
8269         * tree.h (initial_max_fld_align): Declare
8270         * stor-layout.c (initial_max_fld_align): Define and initialize.
8271         (maximum_field_alignment): Initialize to the same value.
8272         * common.opt: Add -fpack-struct= variant of switch.
8273         * opts.c: Handle -fpack-struct= variant of switch.
8274         * c-pragma.c: Change #pragma pack() handling so that it becomes
8275         compatible to other compilers: accept individual 'push' argument,
8276         make final pop restore (command line) default, correct interaction
8277         of push/pop and sole specification of a new alignment (so that the
8278         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
8279         to #pragma pack(push, <n>).
8280         * doc/extend.texi: New node "Structure-Packing Pragmas" under
8281         "Pragmas", describing #pragma pack.
8282         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
8283         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
8284         Document new TARGET_DEFAULT_PACK_STRUCT.
8285
8286 2004-09-03  Devang Patel  <dpatel@apple.com>
8287
8288         * dwarf2out.c (gen_field_die). Equate decl number to die.
8289
8290 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
8291
8292         PR target/15832
8293         * global.c (modify_reg_pav): New function.
8294         (make_accurate_live_analysis): Call the new function.  Move pavin
8295         modification by earlyclobber set into the new function.
8296
8297 2004-09-03  Andreas Schwab  <schwab@suse.de>
8298
8299         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
8300         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
8301         extended.
8302
8303 2004-09-02  Jan Beulich  <jbeulich@novell.com>
8304
8305         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
8306         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
8307         not unwind code specific ones.
8308         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
8309         Remove unwind code specific dependencies.
8310         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
8311         Remove gbl-ctors.h.
8312         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
8313         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
8314         * tsystem.h: Declare memcpy and memset when inhibit_libc.
8315
8316 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
8317
8318         * combine.c (try_combine): Delay modifying of insns which cannot
8319         be easily undone.
8320
8321 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
8322
8323         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
8324         tree-loop-im.
8325         * gcc/tree-ssa-loop.c: Ditto
8326         * gcc/tree-ssa-loop-ivcanon.c: Ditto
8327         * gcc/doc/invoke.texi: Ditto.
8328
8329 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
8330
8331         * c-decl.c (store_parm_decls_newstyle): Make static.
8332         (store_parm_decls_from): New function.
8333         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
8334         (store_parm_decls_from): New prototype.
8335
8336 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
8337
8338         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
8339         HImode with STRICT_ALIGNMENT.
8340
8341 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8342
8343         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
8344         (TARGET_OS_CPP_BUILTINS): Likewise.
8345         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
8346         TARGET_BPABI_CPP_BUILTINS.
8347
8348 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
8349
8350         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
8351
8352 2004-09-02  Eric Christopher  <echristo@redhat.com>
8353
8354         * builtins.c (expand_builtin_cabs): Delete.
8355         (expand_builtin): If unable to fold the values do a normal
8356         library call for builtin_cab*.
8357         (fold_builtin_cabs): Depend on optimize and optimize_size.
8358         * optabs.c (expand_cmplxdiv_straight): Delete.
8359         (expand_cmplxdiv_wide): Ditto.
8360         (expand_vector_binop): Ditto.
8361         (expand_vector_unop): Ditto.
8362         (expand_complex_abs): Delete.
8363         (expand_binop): Remove calls to above functions.
8364         Remove open coding of complex arithmetic.
8365         (expand_unop): Ditto.
8366         * optabs.h: Remove prototypes.
8367
8368 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
8369
8370         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
8371         * c-tree.h (store_parm_decls_newstyle): New prototype.
8372
8373 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
8374
8375         * config/rs6000/rs6000.c (expand_block_clear): Use vector
8376         instructions if available.
8377         (expand_block_move): Likewise.
8378
8379 2004-09-03  Jan Hubicka  <jh@suse.cz>
8380
8381         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
8382
8383 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8384
8385         * config/arm/symbian.h (LIB_SPEC): Define to empty.
8386         * config/arm/t-symbian (SHLIB_LC): Likewise.
8387
8388 2004-09-02  Paul Brook  <paul@codesourcery.com>
8389
8390         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
8391
8392 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8393
8394         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
8395         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
8396         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
8397         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
8398         (mips_issue_rate): Remove unreachable abort.
8399         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
8400         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
8401         (mips_block_move_straight, print_operand_address, mips_file_start)
8402         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
8403         (mips_output_conditional_branch, mips_expand_builtin_direct)
8404         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
8405         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
8406         with gcc_assert.
8407
8408 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8409
8410         * config/mips/mips.md (*lea_high64): Change split condition to
8411         flow2_completed.  Add a peephole2 to generate a more parallel version.
8412
8413 2004-09-02  Jan Hubicka  <jh@suse.cz>
8414
8415         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
8416         GGC.
8417
8418         * ggc-page.c: include tree-flow.h.
8419         (extra_order_size_table): Add stmt_ann_d.
8420         (STAT_LABEL): Rename from ....
8421         (LABEL): ... this one.
8422         * Makefile.in (ggc-page.o): Add dependency.
8423
8424         * ggc-common.c (ggc_force_collect): New global variable.
8425         (loc_description): Add fields "freed", "collected"
8426         (ptr_hash): New static hash
8427         (ptr_hash_entry): New structure.
8428         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
8429         (ggc_record_overhead): Take ptr argument, record it
8430         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
8431         (cmp_statistics): Imrove sorting.
8432         (dump_ggc_loc_statistics): Output newly collected statistics
8433         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
8434         (ggc_free): Call ggc_free_overhead.
8435         (ggc_collect): Force collection when asked to be forced.
8436         (ggc_collect): Call ggc_prune_overhead_list.
8437         * ggc.h (ggc_force_collect): Declare
8438         (ggc_record_overhead): Update prototype.
8439         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
8440
8441 2004-09-02  James E Wilson  <wilson@specifixinc.com>
8442
8443         * common.opt (ftrapping-math): Default to on.
8444
8445 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
8446
8447         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
8448
8449 2004-09-02  Denis Chertykov  <denisc@overta.ru>
8450
8451         PR target/16884
8452         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
8453         match_scratch.
8454         (*movmemqi_insn): Likewise.
8455         (*movmemhi): Likewise.
8456         (clrmemhi): Likewise.
8457         (*clrmemqi): Likewise.
8458         (*clrmemhi): Likewise.
8459
8460 2004-09-02  Paul Brook  <paul@codesourcery.com>
8461
8462         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
8463         default_use_cxa_atexit=yes.
8464
8465 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
8466
8467         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
8468         (struct kernel_old_ucontext): Delete.
8469         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
8470         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
8471         when IN_LIGGCC2.
8472
8473 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8474
8475         * toplev.c (process_options): Fix typo.
8476
8477 2004-09-01  Richard Henderson  <rth@redhat.com>
8478
8479         PR middle-end/17258
8480         * calls.c (initialize_argument_information): Tighten pass-through
8481         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
8482         Use build_fold_addr_expr.
8483         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
8484         that assumes ADDR_EXPR allocates stack space.
8485         * fold-const.c (build_fold_addr_expr_with_type): Look through
8486         WITH_SIZE_EXPR.
8487
8488 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
8489
8490         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
8491         * ggc.h (ggc_alloc_rtx): Delete.
8492
8493 2004-09-01  Roger Sayle  <roger@eyesopen.com>
8494
8495         * expmed.c (enum alg_code): Remove long unused enumeration values.
8496         (struct mult_cost): New structure to hold the "score" of a synthetic
8497         multiply sequence, including both a rtx_cost and a latency field.
8498         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
8499         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
8500         (struct algorithm): Change type of cost field to be mult_cost.
8501         (synth_mult): Change type of cost_limit argument to be a
8502         pointer to a mult_cost.  Update all cost comparisons to use the
8503         new mult_cost infrastructure.  For alg_add_factor and
8504         alg_sub_factor operations, latency is lower than the rtx_cost.
8505         (choose_mult_variant):  Update calls to synth_mult.  Perform
8506         cost comparisons using the new mult_cost infrastructure.
8507         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
8508         to optain the total rtx_cost of a synth_mult "algorithm".
8509
8510 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
8511
8512         * config/rs6000/power4.md: Increase store latency to 12.
8513         * config/rs6000/power5.md: Same.
8514
8515 2004-09-01  James E Wilson  <wilson@specifixinc.com>
8516
8517         PR target/14064
8518         * config/avr/avr.c (avr_unique_section): Delete prototype and
8519         definition.
8520         (TARGET_ASM_UNIQUE_SECTION): Delete.
8521
8522 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8523
8524         * c-parse.in (primary): Call objc_build_message_expr(),
8525         objc_build_selector_expr(), objc_build_protocol_expr(),
8526         objc_build_encode_expr() and objc_build_string_object() instead of
8527         build_message_expr(), build_selector_expr(), build_protocol_expr(),
8528         build_encode_expr() and build_objc_string_object(), respectively.
8529         (component_decl_list2): Call objc_get_class_ivars() instead of
8530         get_class_ivars_from_name().
8531         (keyworddecl): Call objc_build_keyword_decl() instead of
8532         build_keyword_decl().
8533         (receiver): Call objc_get_class_reference() instead of
8534         get_class_reference().
8535         (reswords): Add blank line before @@ifobjc section, for clarity.
8536
8537 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
8538
8539         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
8540         to Altivec vetors.
8541
8542 2004-09-01  Wu Yongwei  <adah@sh163.net>
8543             Danny Smith  <dannysmith@users.sourceforge.net>
8544
8545         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
8546         not Windows 'DWORD'.
8547         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
8548         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
8549         (__gthr_win32_recursive_mutex_init_function): Add prototype for
8550         __GTHREAD_HIDE_WIN32API case..
8551         (__gthr_win32_recursive_mutex_lock): Likewise.
8552         (__gthr_win32_recursive_mutex_trylock): Likewise.
8553         (__gthr_win32_recursive_mutex_unlock): Likewise.
8554         (__gthread_recursive_mutex_init_function); Add definition for
8555         __GTHREAD_HIDE_WIN32API case.
8556         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
8557         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
8558         call to InterlockedDecrement.
8559
8560 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8561
8562         * tree-tailcall.c (find_tail_calls): Also fail is statement has
8563         volatile operands.
8564
8565         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
8566
8567         * doc/c-tree.texi: Document new operands for ARRAY_REF and
8568         COMPONENT_REF.
8569
8570 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8571
8572         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
8573         * common.opt (fspeculative-prefetching): New.
8574         * flags.h (flag_speculative_prefetching_set): Declare.
8575         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
8576         values.
8577         * opts.c (flag_sepculative_prefetching_set): New variable.
8578         (common_handle_option): Handle -fspeculative-prefetching.
8579         * passes.c (rest_of_compilation): Ditto.
8580         * profile.c (instrument_values, compute_value_histograms, branch_prob):
8581         Use vectors instead of arrays.
8582         * toplev.c (process_options): Handle -fspeculative-prefetching.
8583         * rtl-profile.c: Include ggc.h.
8584         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
8585         rtl_gen_one_value_profiler_no_edge_manipulation,
8586         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
8587         argument changed.
8588         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
8589         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
8590         argument changed.
8591         * value-prof.c: Include ggc.h.
8592         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
8593         macros.
8594         (insn_prefetch_values_to_profile, find_mem_reference_1,
8595         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
8596         speculative_prefetching_transform): New.
8597         (value_profile_transformations): Call speculative_prefetching_transform.
8598         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
8599         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
8600         tree_find_values_to_profile, find_values to profile): Use vectors
8601         instead of arrays.
8602         (free_profiled_values): Removed.
8603         * value-prof.h (struct histogram_value): Renamed to
8604         struct histogram_value_t.
8605         (histogram_value, histogram_values): New types.
8606         (find_values_to_profile): Declaration changed.
8607         (free_profiled_values): Removed.
8608         (struct profile_hooks): Type of argument of the hooks changed to
8609         histogram_value.
8610         * doc/invoke.texi (-fspeculative-prefetching): Document.
8611
8612 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8613
8614         PR rtl-optimization/16408
8615         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
8616
8617 2004-09-01  Richard Henderson  <rth@redhat.com>
8618
8619         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
8620         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
8621
8622 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8623
8624         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
8625
8626 2004-09-01  Mike Stump  <mrs@apple.com>
8627
8628         * config/darwin.c (machopic_symbol_defined_p): In addition to
8629         being SYMBOL_REF_LOCAL_P, a symbol must also be
8630         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
8631         defined in this output file, or translation unit in the case
8632         of IMA not being used.
8633         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
8634         never need .indirect_symbol when indirecting.
8635
8636 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8637
8638         * Makefile.in (bb-reorder.o): Add several dependencies.
8639
8640 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8641
8642         * fold-const.c (operand_equal_p): Require equal sign also for
8643         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
8644
8645 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8646
8647         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
8648         for use in configargs.h.  Put the cname in a separate variable.  Use
8649         that to set target_cpu_default2.
8650
8651 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
8652             Nick Clifton  <nickc@redhat.com>
8653
8654         * config/sh/sh.md ("length"): Increase branch length when
8655         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
8656         constant, 2 byte for aligning the constant.
8657
8658 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8659
8660         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
8661         CPU.
8662         (arm7tdmi-s): New CPU name.
8663         * arm/arm.c (ARM_CORE): Update for new format.
8664         * arm/arm.h (ARM_CORE): Likewise.
8665         * arm/gentune.sh: Update for extra field.
8666         * config.gcc: Likewise.
8667         * arm/arm-tune.md: Regenerate.
8668         * doc/invoke.texi: Document the real processor names for ARM cpus.
8669
8670 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8671
8672         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
8673         (floatdidf): New functions.
8674         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
8675         (floatdisf): New functions.
8676         * t-arm-elf: Use them.
8677
8678 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8679
8680         * c-common.h (lookup_interface): Remove prototype.
8681         (is_class_name): Rename to objc_is_class_name.
8682         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8683         (get_current_scope): Rename to objc_get_current_scope.
8684         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
8685         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
8686         (yylexname): Call objc_is_class_name() instead of is_class_name().
8687         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
8688         instead of lookup_objc_ivar().
8689         * stub-objc.c (lookup_interface): Remove stub.
8690         (is_class_name): Rename to objc_is_class_name.
8691         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8692
8693 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8694
8695         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
8696         * config/arm/lib1funcs.asm: Do not include supplemental .S files
8697         when compiling for Symbian.
8698         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
8699         (TARGET_OS_CPP_BUILTINS): Likewise.
8700         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
8701
8702 2004-08-31  Stan Shebs  <shebs@apple.com>
8703
8704         * toplev.c (process_options): Ensure debug_hooks is initialized.
8705
8706 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8707
8708         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
8709         * target.h (cxx): Add export_class_data.
8710         * config/arm/arm.c (arm_cxx_export_class_data): New function.
8711         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
8712         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
8713
8714 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8715
8716         * config/sh/sh.c (output_branch): Check the insn length possibly
8717         in the delayed slot.
8718
8719 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8720
8721         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
8722         blank after ')'.
8723         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
8724
8725         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
8726         (c_sizeof_of_alignof_type): Likewise.
8727         * expr.c (array_ref_element_size): Likewise.
8728         (highest_pow2_factor_for_target): Likewise.
8729         * gimplify.c (canonicalize_addr_expr): Likewise.
8730         (gimplify_compound_lval): Likewise.
8731         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
8732         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
8733         * varasm.c (assemble_variable): Likewise.
8734         (output_constant_def_contents): Alignments are unsigned.
8735
8736 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8737             Jeff Law  <law@redhat.com>
8738
8739         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
8740         gets modified.
8741
8742 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8743
8744         * hooks.c (hook_bool_void_true): New function.
8745         * hooks.h (hook_bool_void_true): Declare.
8746         * target-def.h (TARGET_CXX): Add
8747         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
8748         * target.h (struct cxx): Add key_method_may_be_inline.
8749         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
8750         function.
8751         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
8752         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
8753         __THUMB_INTERWORK.
8754
8755 2004-08-31  Denis Chertykov  <denisc@overta.ru>
8756
8757         PR target/15417
8758         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
8759         frame pointer register only in Pmode while reload in progress.
8760
8761 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
8762
8763         PR target/15334
8764         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
8765         because it breaks the 32-bit shift patterns that rely on a match_dup.
8766
8767 2004-08-31  Matt Austern  <austern@apple.com>
8768
8769         * config/darwin.c (darwin_make_decl_one_only): Allocate section
8770         names once per compilation, instead of once per symbol.
8771
8772 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
8773
8774         * Makefile.in (build_subdir): New substitution.
8775         (fixinc.sh): Simplify heavily since fixincludes is already built.
8776         (stmp-fixinc): Depend on specs.ready.
8777         (install-mkheaders): Use new location of fixincludes.
8778         (clean): Do not descend into fixinc.
8779         (FORBUILD): Replace with ../$(build_subdir).
8780         * configure.ac (build_subdir): Substitute.
8781         (FORBUILD): Do not set.
8782         (all_outputs): Remove fixinc/Makefile.
8783         (default commands): Do not create links in fixinc.
8784         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
8785         the fixincludes configuration steps and substituting
8786         @FIXINCL@ in fixinc.in.
8787         * fixinc.in: New, from fixinc/fixincl.sh.
8788
8789         * fixinc/*: Removed.
8790
8791 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
8792
8793         * attribs.c (strip_attrs): Remove.
8794         (split_specs_attrs): Move ...
8795         * c-decl.c: ... to here.
8796         * tree.h (split_specs_attrs, strip_attrs): Remove.
8797         * c-tree.h (split_specs_attrs): Declare.
8798
8799 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8800
8801         * read-rtl.c: Disable RTL checking.
8802         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
8803
8804 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8805
8806         * config/mips/mips.md (fcond): New code macro and attribute.
8807         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
8808         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
8809         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
8810
8811 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
8812
8813         Revert:
8814         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8815         PR rtl-optimization/16590
8816         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8817
8818 2004-08-30  Andrew Pinski  <apinski@apple.com>
8819
8820         * hard-reg-set.h:
8821         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
8822         * ChangeLog: Fix previous ChangeLog entry.
8823
8824         PR rtl-opt/13987
8825         * config.host (use_long_long_for_widest_fast_int): New, default is
8826         off.
8827         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
8828         * configure.ac: If use_long_long_for_widest_fast_int, then
8829         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
8830         * configure: Regenerate.
8831         * config.in: Regenerate.
8832         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
8833         New: widest integer type supported efficiently in hardware for the
8834         host.
8835         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
8836         HOST_BITS_PER_WIDEST_FAST_INT.
8837         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
8838         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
8839         HOST_WIDEST_FAST_INT
8840         instead of HOST_WIDE_INT.
8841         (HARD_REG_SET_LONGS): Likewise.
8842         (UHOST_BITS_PER_WIDE_INT): Likewise.
8843         Change the checks for the fast cases to be based on
8844         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
8845
8846 2004-08-30  Steven Bosscher  <stevenb@suse.de>
8847
8848         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
8849         not the pointers.
8850
8851 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
8852
8853         PR 12738
8854         PR 17205
8855         Radar 3460526
8856         Radar 3775729
8857         * c-decl.c (grokdeclarator): Produce error for 'static' on local
8858         function declaration.
8859
8860 2004-08-30  Richard Henderson  <rth@redhat.com>
8861
8862         * expr.c (array_ref_element_size): Force aligned_size back to
8863         sizetype.
8864         (component_ref_field_offset): Similarly for aligned_offset.
8865         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
8866         low-bound, element-size, field-offset fields rather than
8867         computed values.
8868
8869 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8870
8871         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
8872         redundant code.
8873
8874 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8875
8876         * c-tree.h (struct language_function): Add arg_info element.
8877         * c-decl.c (current_function_arg_info): New.
8878         (grokdeclarator, store_parm_decls): Use it instead of
8879         DECL_ARGUMENTS.
8880         (c_push_function_context, c_pop_function_context): Save and
8881         restore it.
8882
8883 2004-08-30  Richard Henderson  <rth@redhat.com>
8884
8885         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
8886         COMPONENT_REF to pointer arithmetic.
8887         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
8888         constant "c" as a valid constant initializer.  Allow narrowing of
8889         differences against the same base object, for any base object.
8890
8891 2004-08-30  Richard Henderson  <rth@redhat.com>
8892
8893         * expr.c (expand_expr_addr_expr): New.
8894         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
8895
8896 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8897
8898         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
8899         (mips_fp_condition): New enum.
8900         (mips_fp_conditions): New array.
8901         (print_fcc_operand): Delete.
8902         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
8903         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
8904         (builtin_description): Add "cond" field.
8905         (DIRECT_BUILTIN): Initialize it.
8906         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
8907         into INSN and CODE.  Initialize the "cond" field.
8908         (CMP_BUILTINS): Update accordingly.
8909         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
8910         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
8911         mips_fp_condition as argument.  Make it the final operand of the
8912         comparison instruction.
8913         (mips_expand_builtin): Update accordingly.
8914         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
8915         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
8916         the gaps.
8917         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
8918         Don't use the 'Q' operand prefix; just print the operand normally.
8919         (mips_cabs_*, mips_c_*): Delete, replacing with...
8920         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
8921         patterns.  Split the 4s versions into 2 ps patterns after reload.
8922
8923 2004-08-30  Richard Henderson  <rth@redhat.com>
8924
8925         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
8926         assuming an ADDR_EXPR is non-null.
8927
8928 2004-08-30  Jason Merrill  <jason@redhat.com>
8929
8930         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
8931
8932 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8933
8934         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
8935         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
8936         gcc_assert and gcc_unreachable instead of abort.
8937         * alloc-pool.c (abort, fancy_abort): Remove.
8938         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
8939         gcc_assert or gcc_unreachable.
8940         * attribs.c (init_attributes, decl_attributes): Likewise.
8941         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
8942         mark_bb_for_unlikely_executed_section,
8943         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
8944         fix_crossing_unconditional_branches):  Likewise.
8945         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
8946         bitmap_operation):  Likewise.
8947         * bt-load.c (insn_sets_btr_p, augment_live_range,
8948         move_btr_def):  Likewise.
8949         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
8950         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
8951         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
8952         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
8953         expand_builtin_memcmp, expand_builtin_args_info,
8954         std_gimplify_va_arg_expr, expand_builtin_unop,
8955         expand_builtin_fputs, expand_builtin_profile_func,
8956         expand_builtin_fork_or_exec, fold_builtin_bitop,
8957         fold_builtin_classify, fold_builtin_fputs): Likewise.
8958
8959 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8960
8961         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
8962         * gcov.c (abort): Remove undef.
8963
8964         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
8965         (struct tree_binfo): Remove primary field.
8966
8967 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8968
8969         * fixinc/Makefile.in (machname.h): Remove.
8970         (fixincl.x): Do not pass $@ to genfixes.
8971         * fixinc/genfixes: Remove code to produce machname.h.
8972         * fixinc/fixincl.sh: Move it here instead.
8973         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
8974         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
8975         return a bool indicating whether pz_mn_name_pat is NULL.
8976         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
8977         Declare extern C variables for the ENV_TABLE.
8978         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
8979         instead use the result of mn_get_regexps.
8980         * fixinc/fixtests.c: Likewise.
8981
8982 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8983
8984         * configure.ac: Do not run fixincludes after stage1 during
8985         toplevel bootstrap.
8986         * configure: Regenerate.
8987
8988 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8989
8990         * sched-deps.c (get_condition): Partially revert previous, by never
8991         trying to extract the condition from a condjump.
8992
8993 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8994
8995         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
8996         (handle_visibility_attribute, c_determine_visibility): Likewise.
8997         * c-common.h (my_friendly_assert): Remove.
8998
8999 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
9000
9001         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
9002         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
9003         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
9004         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
9005         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
9006
9007 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
9008
9009         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
9010         in COMPONENT_REF nodes.
9011
9012 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9013
9014         PR c++/15378
9015         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
9016         global_dc->warning_as_error_requested.
9017         * diagnostic.c (diagnostic_initialize): Tidy.
9018         * diagnostic.h (diagnostic_context::x_data): Remove
9019         (diagnostic_context::issue_warnings_are_errors_message): Rename
9020         from warnings_are_errors_message.
9021         (diagnostic_context::warning_as_error_requested): New.
9022
9023 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
9024
9025         * sched-deps.c (get_condition): Fix breakage in previous patch.
9026
9027 2004-08-30  Paul Brook  <paul@codesourcery.com>
9028
9029         * doc/install.texi: Fix broken mpfr link.
9030
9031 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
9032
9033         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
9034         other FreeBSD platforms.
9035
9036 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9037
9038         * arm.h (REVERSE_CONDITION): Define.
9039         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
9040
9041 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9042
9043         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
9044         just the codes, call reversed_comparison_code ().
9045         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
9046         (not_reg_cond): Use reversed_comparison_code.
9047         (and_reg_cond): Likewise.
9048         * ifcvt.c (cond_exec_process_if_block): Likewise.
9049         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
9050
9051 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9052
9053         * sched-deps.c (get_condition): Rewrite using jump support functions.
9054         Use reversed_comparison_code.
9055         (conditions_mutex_p): Use reversed_comparison_code.
9056
9057 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9058
9059         * config/mips/mips.c (override_options): Disable hot/cold partitioning
9060         for MIPS16.
9061
9062 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9063
9064         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
9065         (mips_function_type): Move to mips.c.
9066         * config/mips/mips.c (mips_builtin_type): New enum.
9067         (builtin_description): Replace code and ftype with builtin_type
9068         and function_type.
9069         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
9070         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
9071         (CODE_FOR_mips_abs_ps): Define.
9072         (mips_bdesc): Use new macros.
9073         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
9074         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
9075         (mips_expand_builtin_direct): New function.
9076         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
9077         builtin.  Replace boolean parameter with builtin_type.
9078         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
9079         (mips_expand_4s_compare_builtin): Delete, replacing with...
9080         (mips_expand_builtin_compare): ...this new function.
9081
9082 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
9083
9084         PR rtl-optimization/16590
9085         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
9086
9087 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
9088
9089         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
9090         * tree-ssa-propagate.c: Fix documentation.
9091
9092 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9093
9094         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
9095         (mov[sd]fcc): Likewise.
9096
9097 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9098
9099         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
9100
9101 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9102
9103         * config/mips/mips.md (divide_condition): New mode attribute.
9104         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
9105         (sqrt[sd]f3): Redefine using SCALARF.
9106         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
9107         patterns.
9108
9109 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9110
9111         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
9112         (loadx, storex, fmt, UNITMODE): New mode attributes.
9113         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
9114         (mul[sd]f3): Redefine using :SCALARF.
9115         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
9116         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
9117         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
9118         Check TARGET_FUSED_MADD for V2SF too.
9119         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
9120         were already named.
9121         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
9122         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
9123
9124 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9125
9126         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
9127         V2SF_type_node if it will be needed.
9128
9129 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9130
9131         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
9132         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
9133         (mips_prepare_builtin_target): New function.
9134         (mips_expand_builtin): Use them.  Update calls to subroutines.
9135         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
9136         cmp_choice with a boolean argument to select between movt and movf.
9137         Take the comparison's icode as an argument, not the function's fcode.
9138         (mips_expand_compare_builtin): New function.  Rename existing function
9139         to mips_expand_scalar_compare_builtin.
9140         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
9141         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
9142         comparison's icode as an argument, not the builtin's fcode.
9143
9144 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9145
9146         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
9147         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
9148         registers are false and -1 if all registers are true.
9149         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
9150         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
9151         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
9152         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
9153         (bc1any2t, bc1any2f): Likewise CCV2.
9154         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
9155
9156 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9157
9158         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
9159         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
9160         UNSPEC rather than an IF_THEN_ELSE.
9161         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
9162         mips_cond_move_tf_ps by name.
9163
9164 2004-08-29  Chao-ying Fu  <fu@mips.com>
9165             James E Wilson  <wilson@specifixinc.com>
9166
9167         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
9168         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
9169         * config/mips/mips-ps-3d.md: New file.
9170         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
9171         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
9172         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
9173         (mips_output_move): Emit "mov.ps" for V2SFmode.
9174         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
9175         MODE_VECTOR_FLOAT.
9176         (override_options): Check if TARGET_MIPS3D and there was an explicit
9177         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
9178         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
9179         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
9180         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
9181         and allow CCV2 and CCV4 to occupy two and four CC registers.
9182         (print_fcc_operand): New function.
9183         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
9184         %Z to call print_fcc_operand.
9185         (mips_function_value): Handle MODE_VECTOR_FLOAT.
9186         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
9187         (mips_vector_mode_supported_p): New function.
9188         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
9189         (builtin_description): New struct.
9190         (mips_bdesc): New array of struct builtin_description.
9191         (mips_expand_builtin, mips_init_builtins,
9192         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
9193         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
9194         functions.
9195         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
9196         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
9197         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
9198         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
9199         "-mips3d", and "-mno-mips3d".
9200         (ASM_SPEC): Map -mips3d to -mips3d in gas.
9201         (EXTRA_CONSTRAINT_Y): New macro.
9202         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
9203         multi-letter constraint 'Y'.
9204         (CONSTRAINT_LEN): New macro.
9205         (enum mips_builtins): New for MIPS builtin functions.
9206         (enum mips_function_type): New for the types of MIPS builtin functions.
9207         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
9208         * config/mips/mips.md: New constants for paired single and MIPS-3D
9209         instructions.  Include the new mips-ps-3d.md file.
9210         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
9211         movv2sf_hardfloat_64bit): New named patterns.
9212         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
9213         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
9214         sdxc1_v2sf_di): New unnamed patterns.
9215         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
9216         const_vector support.
9217         (const_0_or_1_operand): New predicate.
9218         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
9219
9220 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
9221
9222         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
9223         (tree-ssa-propagate.o): New rule.
9224         (GTFILES): Add tree-ssa-propagate.c.
9225         * tree-flow.h (struct stmt_ann_d): Remove field
9226         in_ccp_worklist.
9227         * tree-ssa-propagate.c: New file.
9228         * tree-ssa-propagate.h: New file.
9229         * tree-ssa-ccp.c: Re-write to use the routines from
9230         tree-ssa-propagate.c.
9231
9232 2004-08-28  Andrew Pinski  <apinski@apple.com>
9233
9234         * tree-ssa-loop.c: Remove extra include of basic-block.h.
9235
9236 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
9237
9238         * c-common.h: Update comments about ObjC/ObjC++ entry points.
9239         (objc_is_reserved_word): New prototype.
9240         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
9241         separate section; these are call-backs.
9242         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
9243         ObjC/ObjC++ "@" keywords.
9244         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
9245         prototypes; they already live in c-common.h.
9246         * stub-objc.c: Update copyright notice.
9247         (objc_is_reserved_word): New stub.
9248
9249 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
9250
9251         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
9252         even when not checking.
9253
9254 2004-08-27  Jason Merrill  <jason@redhat.com>
9255
9256         PR c++/13684
9257         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
9258         (gimple_push_cleanup): Add eh_only parm.
9259         (gimplify_target_expr): Pass it.
9260         * c.opt (-fno-threadsafe-statics): New option.
9261         * c-opts.c (c_common_handle_option): Handle it.
9262         * c-common.h (flag_threadsafe_statics): Declare it.
9263         * c-common.c (flag_threadsafe_statics): Record it.
9264         * doc/invoke.texi: Document it.
9265         * tsystem.h (_GNU_SOURCE): Define.
9266         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
9267         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
9268         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
9269         (__gthread_recursive_mutex_init_function): New fn.
9270         (__gthread_recursive_mutex_lock): New fn.
9271         (__gthread_recursive_mutex_trylock): New fn.
9272         (__gthread_recursive_mutex_unlock): New fn.
9273         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
9274         * gthr-win32.h, gthr-vxworks.h: Likewise.
9275         * gthr.h: Document.
9276
9277 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
9278
9279         * config/rs6000/rs6000.c (rs6000_override_options): Increase
9280         maximum skip to 15.  Set function alignment, jump alignment, and
9281         loop alignment to 16 for processors that form dispatch groups.
9282         (rs6000_rtx_costs): outer_code is used.
9283
9284 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
9285
9286         * stor-layout.c (sizetype_set): Remove.
9287         (set_sizetype): Don't test or set it.
9288
9289         * tree.h (size_int_type): Remove.
9290         * fold-const.c: Do not #include gt-fold-const.h.
9291         (size_htab_hash, size_htab_eq): Remove.
9292         (size_int_kind): Use build_int_cst.
9293         (new_const, size_htab): Remove.
9294         (size_int_type): Remove.
9295         (round_up): Use build_int_cst.
9296         (round_down): Likewise. Remove spurious constant build.
9297
9298 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
9299
9300         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
9301         Add is_release variable, use it for --enable-werror and
9302         --enable-checking defaults.
9303         * system.h (gcc_assert, gcc_unreachable): New.
9304         * doc/install.texi (--enable-checking): Update.
9305         * configure, config.in: Rebuilt.
9306
9307 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
9308
9309         * rtl.h (read_rtx): Change prototype.
9310         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
9311         line number.  Return true on success.
9312         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
9313         callers accordingly.
9314
9315 2004-08-26  Richard Henderson  <rth@redhat.com>
9316
9317         * c-typeck.c (build_offsetof): Remove.
9318         * c-tree.h (build_offsetof): Remove.
9319         * c-common.c (fold_offsetof_1, fold_offsetof): New.
9320         * c-common.h (fold_offsetof): Declare.
9321         * c-parse.in (offsetof_base): New.
9322         (offsetof_member_designator): Use it.  Build references, not just
9323         a tree list.
9324         (primary): Use fold_offsetof, not build_offsetof.
9325
9326 2004-08-26  Richard Henderson  <rth@redhat.com>
9327
9328         * tree.c (staticp): Return the static object.
9329         * tree.h (staticp): Update decl.
9330         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
9331         * langhooks.c (lhd_staticp): Return NULL_TREE.
9332         * langhooks-def.h (lhd_staticp): Update decl.
9333         * c-common.c (c_staticp): Return the static object.
9334         * c-common.h (c_staticp): Update decl.
9335
9336 2004-08-26  Richard Henderson  <rth@redhat.com>
9337
9338         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
9339         modes.
9340
9341 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9342
9343         PR c/13801
9344         * c-decl.c (struct c_binding): Add type and inner_comp fields.
9345         (bind): Set type and inner_comp fields.
9346         (pop_scope): Restore type of decl to the correct type from an
9347         outer scope.  Give error when popping file scope for incomplete
9348         arrays completed incompatibly with default initialization in an
9349         inner scope.
9350         (diagnose_mismatched_decls): Handle externs with initializers at
9351         block scope.
9352         (pushdecl): Set type of external declaration at block scope based
9353         only on the visible declarations.  Save type when changing the
9354         type of a declaration.  Merge an external declaration at block
9355         scope with a visible static declaration at file scope.
9356         (implicitly_declare): Give recycled old declaration the new type
9357         except for incompatible declarations of built-in functions, saving
9358         the old type.
9359
9360 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
9361
9362         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
9363
9364 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9365
9366         * tree-alias-common.c (gate_pta): New function.
9367         (pass_build_pta): Use it.
9368         (pass_del_pta): Use it.
9369         (delete_alias_vars): Don't check flag_tree_points_to.
9370
9371 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9372
9373         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
9374         TFmode as additional register mode cloberred by call.
9375
9376 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9377
9378         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
9379         parallel pattern for library call returning DImode in
9380         mixed mode.
9381
9382 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9383
9384         * config/rs6000/rs6000.c (function_arg): Generate parallel
9385         pattern for more split args.
9386
9387 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9388
9389         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
9390         either gen_movdi_di_update or gen_movdi_si_update depending on
9391         target mode.
9392         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
9393         to generate two versions.
9394
9395 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9396
9397         * Makefile.in (lambda-code.o): New.
9398         (lambda-trans.o): Ditto.
9399         (TREE_DATA_REF_H): Ditto.
9400         (LAMBDA_H): Ditto.
9401         (lambda-mat.o): Use LAMBDA_H.
9402         (tree-data-ref.o): Ditto.
9403         * lambda-code.c: New file.  Lambda code generation algorithm.
9404         * lambda-trans.c: Ditto. Lambda transformation matrix support.
9405         * lambda.h: Add lambda loop structures.
9406         Add lambda loopnest structures.
9407         Add lambda body vector structure.
9408         Add lambda linear expression structures.
9409         Add prototypes for functions in new files.
9410         * lambda-mat.c: Include tree.h
9411
9412 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
9413             Sebastian Pop  <pop@cri.ensmp.fr>
9414
9415         * tree-data-ref.h: Include lambda.h
9416         (free_dependence_relation): Declared here.
9417         (free_dependence_relations): Ditto.
9418         (free_data_refs): Ditto.
9419         * tree-data-ref.c (free_dependence_relation): New function.
9420         (free_dependence_relations): Ditto.
9421         (free_data_refs): Ditot.
9422         (analyze_all_data_dependences): Free datarefs and dependence_relations.
9423         (build_classic_dist_vector): Store in the dependence_relations the
9424         information. Each arc in the dependence_relations graph is labelled
9425         with the distance and direction vectors.
9426         (build_classic_dir_vector): Ditto.
9427         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
9428         Now computes again the whole dependence graph including read-read
9429         relations.
9430         (compute_data_dependences_for_loop): Now dependence_relations contains
9431         all the data, and thus it doesn't need to initialize the classic_dir
9432         and classic_dist vectors.
9433         (analyze_all_data_dependences): Adjusted for using the new interface of
9434         compute_data_dependences_for_loop.  Remove the statistics dump.
9435
9436 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
9437
9438         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
9439         (xtensa_expand_block_move): Update comment.
9440         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
9441
9442 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
9443
9444         PR target/13506
9445         * toplev.c (crash_signal): If we crashed while emitting
9446         a user asm, then die more gracefully.
9447
9448 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9449
9450         PR target/17119.
9451         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
9452         checking for a valid constant, regardless of sign.
9453
9454 2004-08-25  Richard Henderson  <rth@redhat.com>
9455
9456         PR target/16974
9457         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
9458         if the constant satisfies add_operand.
9459
9460 2004-08-25  Richard Henderson  <rth@redhat.com>
9461
9462         PR debug/10695
9463         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
9464         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
9465         unwind info for >16-bit frames.
9466
9467 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
9468
9469         PR target/17171
9470         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
9471
9472 2004-08-25  Richard Henderson  <rth@redhat.com>
9473
9474         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
9475         (TARGET_CANNOT_FORCE_CONST_MEM): New.
9476
9477 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9478
9479         * doc/tree-ssa.texi: Document new operand iterator.
9480
9481 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
9482
9483         PR target/16480
9484         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
9485         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
9486         as PLUS base regs.
9487
9488 2005-08-28  Paul Brook  <paul@codesourcery.com>
9489
9490         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
9491         -mfpu=vfp -march=armv5t
9492         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
9493
9494 2004-08-25  Richard Henderson  <rth@redhat.com>
9495
9496         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9497         * target.h (struct gcc_target): Add scalar_mode_supported_p.
9498         * targhooks.c (default_scalar_mode_supported_p): New.
9499         * targhooks.h (default_scalar_mode_supported_p): Declare.
9500         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
9501
9502         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
9503         before attempting to create types.  Tidy.
9504         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
9505
9506         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
9507         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9508
9509 2004-08-25  Richard Henderson  <rth@redhat.com>
9510
9511         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
9512         set REAL_MODE_FORMAT for TFmode.
9513
9514 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9515
9516         * c-decl.c (grokparm): New function.
9517         * c-tree.h (grokparm): New prototype.
9518
9519 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9520
9521         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
9522         iterator controlling structure.
9523         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
9524         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
9525         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
9526         iterator flags.
9527         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
9528         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
9529         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
9530         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
9531         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
9532         Empty operand pointers.
9533         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
9534         (op_iter_next_use): New.  Return next use_operand_p.
9535         (op_iter_next_def): New.  Return next def_operand_p.
9536         (op_iter_next_tree): New.  Return next operands as a tree.
9537         (op_iter_init): New.  Initialize an iterator structure.
9538         (op_iter_init_use): New.  Initialize structure and get the first use.
9539         (op_iter_init_def): New.  Initialize structure and get the first def.
9540         (op_iter_init_tree): New.  Initialize structure and get the first tree.
9541         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
9542         (op_iter_init_maydef): New.  Initialize structure and get the first
9543         V_MAY_DEF operands.
9544         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
9545         * tree-dfa.c (compute_immediate_uses_for_stmt,
9546         redirect_immediate_uses): Use new operand iterator.
9547         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
9548         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
9549         operands instead of using *_disappeared_p routines.
9550         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
9551         ssa_rewrite_stmt): Use new operand iterator.
9552         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
9553         rewrite_trees): Use new operand iterator.
9554         * tree-pretty-print.c (dump_vops): Use new operand iterator.
9555         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
9556         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
9557         dump_points_to_info): Use new operand iterator.
9558         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
9559         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
9560         operand iterator.
9561         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
9562         propagate_necessity): Use new operand iterator.
9563         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
9564         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
9565         a parameter instead of a stmt_ann_t.
9566         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
9567         build_tree_conflict_graph): Use new operand iterator.
9568         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
9569         rewrite_mem_refs): Use new operand iterator.
9570         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
9571         check_loop_closed_ssa_use): Use new operand iterator.
9572         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
9573         * tree-ssanames.c (release_defs): Use new operand iterator.
9574         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
9575
9576 2004-08-25  Adam Nemet  <anemet@lnxw.com>
9577
9578         * tlink.c (initial_cwd): New variable.
9579         (tlink_init): Initialize it.
9580         (recompile_files): Use tlink_execute() instead of system().  Don't
9581         duplicate verbose output of collect_execute.  Restore initial_cwd.
9582         Update comment before the function.
9583
9584 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9585
9586         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
9587         accept) a cast from one Objective-C pointer type to another.
9588
9589 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
9590
9591         * doc/install.texi: Document that libstdc++-v3 requires
9592         now automake 1.9.1.
9593
9594 2004-08-25  Caroline Tice  <ctice@apple.com>
9595
9596         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
9597         to comments at start of function.
9598         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
9599         comment.
9600         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9601         merge_blocks_move_predecessor_nojumps,
9602         merge_blocks_move_successor_nojumps, merge_blocks_move,
9603         try_crossjump_to_edge, try_crossjump_bb): Likewise.
9604         * cfglayout.c (fixup_reorder_chain): Likewise.
9605         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
9606         cfg_layout_can_merge_blocks_p):  Likewise.
9607         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
9608         * passes.c (rest_of_compilation): Update comments for calling
9609         optimization that partitions hot/cold basic blocks.
9610         * doc/invoke.texi:  Update documentation of
9611         freorder-blocks-and-partition flag.
9612
9613 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9614
9615         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
9616         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
9617
9618 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9619
9620         * config/mips/mips.md (any_shift): New code macro.
9621         (optab, insn): New code attributes.
9622         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
9623         Use the standard rather than internal patterns for the MIPS16
9624         double-shift optimization.
9625         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
9626         Redefine using :GPR and any_shift.
9627         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
9628         to cover all three shifts.
9629         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
9630         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
9631         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
9632
9633 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
9634
9635         * gimplify.c (lookup_tmp_var): Separate temporaries when not
9636         optimizing.
9637
9638 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9639
9640         PR libstdc++/17005 (fix for HP-UX 11.11)
9641         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
9642         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
9643         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
9644         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
9645         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
9646         (LINK_SPEC): Handle march=1.0 option.
9647         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9648         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
9649         (SUBTARGET_OPTIONS): New define.
9650         (LINK_SPEC): Handle march=1.0 option.
9651         (STARTFILE_SPEC): New define.
9652         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9653         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
9654         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
9655         (SUBTARGET_OPTIONS): New define.
9656         (LINK_SPEC): Handle march=1.0 option.
9657         (STARTFILE_SPEC): New define.
9658         * config/pa/pa.c (override_options): Add code to process -munix= option.
9659         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
9660         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
9661         defines.
9662         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
9663         (SUBTARGET_OPTIONS): Provide default define.
9664         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
9665         STANDARD_STARTFILE_PREFIX_2): New defines.
9666         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
9667         (ENDFILE_SPEC): Use %O.
9668         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
9669         Mention issue caused by changing namespace and runtime to UNIX 95/98.
9670         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
9671         Document -munix=std option.
9672
9673 2004-08-25  Steven Bosscher  <stevenb@suse.de>
9674
9675         * cse.c (cse_around_loop, cse_check_loop_start,
9676         cse_set_around_loop): Remove.
9677         (cse_basic_block): Remove the around_loop argument.
9678         (cse_end_of_basic_block): Remove the after_loop argument.
9679         (cse_main): Likewise.
9680         * rtl.h (cse_main): Update prototype.
9681         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
9682         rest_of_handle_gcse): Update cse_main calls.
9683
9684 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
9685
9686         * tree.h  (build_int_cst): New, sign extended constant.
9687         (build_int_cstu): New, zero extended constant.
9688         (build_int_cst_wide): Renamed from build_int_cst.
9689         * tree.c (build_int_cst, build_int_cstu): New.
9690         (build_int_cst_wide): Renamed from build_int_cst.
9691         (make_vector_type, build_common_tree_nodes,
9692         build_common_tree_nodes_2): Adjust build_int_cst calls.
9693         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9694         expand_builtin_strpbrk, expand_builtin_fputs,
9695         build_string_literal, expand_builtin_printf,
9696         expand_builtin_sprintf, fold_builtin_classify_type,
9697         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
9698         fold_builtin_toascii, fold_builtin_isdigit,
9699         simplify_builtin_strstr, simplify_builtin_strpbrk,
9700         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
9701         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
9702         DEF_ATTR_INT): Likewise.
9703         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
9704         Likewise.
9705         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9706         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
9707         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9708         * c-typeck.c (really_start_incremental_init, push_init_level,
9709         set_nonincremental_init_from_string): Likewise.
9710         * calls.c (load_register_parameters): Likewise.
9711         convert.c (convert_to_pointer): Likewise.
9712         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9713         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
9714         build_gcov_info): Likewise.
9715         * except.c (init_eh, assign_filter_values): Likewise.
9716         * expmed.c (store_fixed_bit_field, extract_bit_field,
9717         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9718         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9719         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9720         * expr.c (convert_move, emit_group_load, emit_group_store,
9721         expand_assignment, store_constructor, store_field,
9722         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9723         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9724         invert_truthvalue, optimize_bit_field_compare,
9725         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9726         fold_div_compare, fold, fold_read_from_constant_string,
9727         fold_negate_const, fold_abs_const, fold_not_const, round_up,
9728         round_down): Likewise.
9729         * function.c (assign_parm_setup_block): Likewise.
9730         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
9731         Likewise.
9732         * stor-layout.c (layout_type, initialize_sizetypes,
9733         set_min_and_max_values_for_integral_type): Likewise.
9734         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9735         reset_evolution_in_loop): Likewise.
9736         * tree-chrec.h (build_polynomial_chrec): Likewise.
9737         * tree-complex.c (build_replicated_const): Likewise.
9738         * tree-eh.c (honor_protect_cleanup_actions,
9739         lower_try_finally_onedest, lower_try_finally_copy,
9740         lower_try_finally_switch): Likewise.
9741         * tree-mudflap.c (mf_build_string, mx_register_decls,
9742         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9743         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9744         * tree-pretty-print.c (dump_generic_node): Likewise.
9745         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9746         Likewise.
9747         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9748         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9749         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9750         Likewise.
9751         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
9752         canonicalize_loop_induction_variables): Likewise.
9753         * tree-vectorizer.c (vect_create_index_for_array_ref,
9754         vect_transform_loop_bound, vect_compute_data_ref_alignment):
9755         Likewise.
9756
9757         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
9758         alpha_gimplify_va_arg_1): Likewise.
9759         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9760         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9761         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9762         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9763         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9764         mips_gimplify_va_arg_expr): Likewise.
9765         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9766         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9767         add_compiler_branch_island): Likewise.
9768         * config/s390/s390.c (s390_va_start): Likewise.
9769         * config/sh/sh.c (sh_va_start): Likewise.
9770         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9771         Likewise.
9772         * config/xtensa/xtensa.c (xtensa_va_start,
9773         xtensa_gimplify_va_arg_expr): Likewise.
9774
9775         * objc/objc-act.c (build_objc_string_object,
9776         build_objc_symtab_template, init_def_list, init_objc_symtab,
9777         init_module_descriptor, generate_static_references,
9778         build_selector_translation_table, get_proto_encoding,
9779         build_typed_selector_reference, build_selector_reference,
9780         build_next_objc_exception_stuff,
9781         build_method_prototype_list_template, generate_descriptor_table,
9782         generate_protocols, build_protocol_initializer,
9783         build_ivar_list_template, build_method_list_template,
9784         build_ivar_list_initializer, generate_ivars_list,
9785         generate_dispatch_table, generate_protocol_list,
9786         build_category_initializer, build_shared_structure_initializer,
9787         generate_shared_structures, handle_impent,
9788         generate_objc_image_info): Likewise.
9789
9790 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
9791
9792         * cfglayout.c (duplicate_insn_chain): Remove references to
9793         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
9794         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
9795         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
9796         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
9797         and NOTE_INSN_LOOP_CONT.
9798         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
9799         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
9800         and NOTE_INSN_LOOP_CONT.
9801         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
9802         check_dbra_loop, loop_dump_aux): Remove references to removed notes
9803         and fields.
9804         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
9805         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
9806         references to removed notes and fields.
9807         (subtract_reg_term, ujump_to_loop_cont): Remove.
9808
9809 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
9810
9811         * doc/install.texi: Document that libcpp does not require
9812         Automake any longer.  Document that Automake 1.9.1 should
9813         work everywhere.
9814
9815 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9816
9817         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
9818         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
9819         DWARF_DEBUGGING_INFO from choice-of-definition chain;
9820         restructure using C89 features (#elif, #error).
9821         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
9822         * config/sh/sh.h: Remove references to DWARF_DEBUG.
9823         * doc/invoke.texi: Remove references to DWARF version 1;
9824         clarify why -gdwarf-2<n> doesn't work.
9825
9826 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9827
9828         * basic-block.h (BB_SET_PARTITION): Clear old value first.
9829         * cfg.c (clear_bb_flags): Don't clear partition setting.
9830         * ifcvt.c (find_if_case_1): Remove ??? comment.
9831
9832 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
9833
9834         PR target/17052
9835         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
9836         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
9837         current_function_stdarg in place of sysv_varargs_p.
9838         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
9839         sysv_varargs_p.
9840
9841 2004-08-24  Richard Henderson  <rth@redhat.com>
9842
9843         PR target/16298
9844         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
9845         random codes within CONST.
9846
9847 2004-08-24  James E Wilson  <wilson@specifixinc.com>
9848
9849         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
9850         -freorder-blocks-and-partition.
9851
9852 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9853
9854         PR middle-end/17044
9855         * tree-ssa-threadupdate.c (redirection_data): Make static.
9856         (thread_block): Use ggc_alloc_cleared to allocate struct
9857         redirection_data.  Don't free elements in redirection_data.
9858
9859 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9860
9861         * config/mips/predicates.md (small_data_pattern): Match prefetches.
9862
9863 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9864
9865         PR tree-optimization/17016
9866         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9867         number_of_iterations_exit): Use POINTER_TYPE_P instead
9868         of testing for POINTER_TYPE.
9869
9870 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9871
9872         * tree-ssa-loop-ivcanon.c: New file.
9873         * tree-ssa-loop-manip.c (create_iv): New function.
9874         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
9875         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
9876         * cfgloop.c (mark_single_exit_loops): New function.
9877         (verify_loop_structure): Verify single-exit loops.
9878         * cfgloop.h (struct loop): Add single_exit field.
9879         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
9880         (mark_single_exit_loops): Declare.
9881         (tree_num_loop_insns): Declare.
9882         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
9883         (duplicate_loop_to_header_edge): Use it.
9884         * common.opt (fivcanon): New flag.
9885         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
9886         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
9887         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
9888         (bsi_insert_on_edge_immediate): New function.
9889         * tree-flow.h (bsi_insert_on_edge_immediate,
9890         canonicalize_induction_variables, tree_unroll_loops_completely,
9891         create_iv): Declare.
9892         * tree-optimize.c (init_tree_optimization_passes): Add
9893         pass_iv_canon and pass_complete_unroll.
9894         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
9895         * tree-scalar-evolution.c (get_loop_exit_condition,
9896         get_exit_conditions_rec, number_of_iterations_in_loop,
9897         scev_initialize): Use single_exit information.
9898         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
9899         missing assumptions.
9900         (loop_niter_by_eval):  Return number of iterations as unsigned
9901         int.
9902         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
9903         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
9904         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
9905         New passes.
9906         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
9907         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
9908         the defining statement is ready.
9909         * tree-vectorizer.c (vect_create_iv_simple): Removed.
9910         (vect_create_index_for_array_ref, vect_transform_loop_bound):
9911         Use create_iv.
9912         (vect_transform_loop_bound): Use single_exit information.
9913         (vect_analyze_loop_form): Cleanup bogus tests.
9914         (vectorize_loops): Do not call flow_loop_scan.
9915         * tree.h (may_negate_without_overflow_p): Declare.
9916         * fold-const.c (may_negate_without_overflow_p): Split out from ...
9917         (negate_expr_p): ... this function.
9918         (tree_expr_nonzero_p): Handle overflowed constants correctly.
9919         * doc/invoke.texi (-fivcanon): Document.
9920         * doc/passes.texi: Document canonical induction variable creation.
9921
9922 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9923
9924         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
9925         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
9926         using the mode of the operand to decide between them.
9927         * config/mips/mips.md (MOVECC): New mode macro.
9928         (ccreg): New mode attribute.
9929         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
9930         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
9931         (mov[sd]icc): Redefine using :GPR.
9932
9933 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9934
9935         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
9936         (mips_prefetch_cookie): New function.
9937         * config/mips/mips.c (print_operand_address): Fix handling of
9938         ADDRESS_CONST_INT.
9939         (mips_emit_prefetch): Delete.
9940         (mips_prefetch_cookie): New function.
9941         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
9942         mode of QImode for the address_operand.  Use mips_prefetch_cookie
9943         to calculate the first "pref" operand.
9944         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
9945         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
9946
9947 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
9948
9949         * arm.md: Include predicates.md.
9950         * predicates.md: New file.
9951         * arm.c (s_register_operand, arm_hard_register_operand)
9952         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
9953         (arm_immediate_operand, arm_neg_immediate_operand)
9954         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
9955         (arm_add_operand, arm_addimm_operand, arm_not_operand)
9956         (offsettable_memory_operand, alignable_memory_operand)
9957         (arm_reload_memory_operand, arm_float_rhs_operand)
9958         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
9959         (index_operand, shiftable_operator, logical_binary_operator)
9960         (shift_operator, equality_operator, arm_comparison_operator)
9961         (minmax_operator, cc_register, dominant_cc_register)
9962         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
9963         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
9964         (const_shift_operand, load_multiple_operation)
9965         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
9966         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
9967         (cirrus_register_operand, cirrus_fp_register)
9968         (cirrus_shift_const): Delete, replaced with equivalents in
9969         predicates.md.
9970         (shift_op): Handle ROTATE.
9971         * arm-protos.h: Delete declarations for above.
9972         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
9973         * t-arm (MD_INCLUDES): Add predicates.md.
9974         (s-preds): Depends on MD_INCLUDES.
9975
9976 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9977
9978         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
9979         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
9980         patterns.  Redefine using :GPR.  Give the match_operator a mode.
9981         Use '%2' rather than '%z2' for operand 2.
9982
9983 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9984
9985         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
9986         attribute.
9987
9988 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9989
9990         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
9991         of internal patterns.
9992         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
9993         Redefine using :P.
9994         (tablejump): Use expand_binop to calculate address.  Adjust names
9995         of internal patterns.
9996         (tablejump[sd]i): Renamed from tablejump_internal[12].
9997         Redefine using :P.
9998         (tablejump_mips16[12]): Delete.
9999
10000 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10001
10002         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
10003         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
10004         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
10005         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
10006         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
10007
10008 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10009
10010         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
10011         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
10012         using :GPR.
10013         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
10014         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
10015         (*branch_equality[sd]i_inverted): Likewise
10016         branch_equality{,_di}_inverted.
10017         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
10018         Redefine using :GPR.
10019
10020 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
10021
10022         * rtl.def: Reorganize, placing all codes used only in machine
10023         descriptions at the end.
10024
10025         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
10026         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
10027         rtx_name, rtx_format arrays by direct reference to rtl.def,
10028         first undefining GENERATOR_FILE.  Define enum insn_note and
10029         note_insn_name array by direct reference to insn-notes.def.
10030         (adjust_field_rtx_def): Remove local definition of rtx_name.
10031         Use symbolic names for insn notes.
10032         * Makefile.in (gengtype.o): Update dependencies.
10033
10034 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
10035
10036         * basic-block.h (struct basic_block_def): Reorder fields to
10037         eliminate interior padding.  Remove 'partition' field.
10038         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
10039         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
10040         (BB_COPY_PARTITION): New macros.
10041         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
10042         Replace all references to the 'partition' field of a basic
10043         block with new macros.
10044
10045         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
10046         * final.c (final_scan_insn): Don't handle it.
10047         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
10048         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
10049         * sched-rgn.c (sched_is_disabled_for_current_region_p):
10050         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
10051
10052 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
10053
10054         * c-decl.c (c_init_decl_processing): Adjust
10055         build_common_tree_nodes call.
10056         * expmed.c (const_mult_add_overflow_p): Use
10057         build_distinct_type_copy.
10058         * stor-layout.c (early_type_list): Remove.
10059         (layout_type): Don't append to early_type_list.
10060         (initialize_sizetypes): Add signed_p argument.
10061         (set_sizetype): Overwrite the stub type nodes directly.
10062         * tree.c (copy_node_stat): Clear a type's value cache here ...
10063         (build_distinct_type): ... not here.
10064         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
10065         * tree.h (initialize_sizetypes): Add signed_p argument.
10066         (build_common_tree_nodes): Likewise.
10067
10068         * objc/objc-act.c (get_static_reference): Use
10069         build_variant_type_copy.
10070         (get_protocol_reference): Likewise.
10071         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
10072
10073 2004-08-24  Richard Henderson  <rth@redhat.com>
10074             Andrew Pinski  <apinski@apple.com>
10075
10076         * gimplify.c (gimplify_array_ref_to_plus): Delete.
10077         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
10078         for ARRAY_REF.
10079
10080         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
10081         ARRAY_REF also to get to the STRING_CST.
10082
10083 2004-08-24  Paul Brook  <paul@codesourcery.com>
10084
10085         * config/arm/arm.c (arm_override_options): Update error message.
10086         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
10087         TARGET_HARD_FLOAT_ABI.
10088         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
10089         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
10090
10091 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10092
10093         PR target/17093
10094         * config/m32r.md (movsi_sda): Add SI mode specification to
10095         UNSPEC.
10096
10097 2004-08-24  Nick Clifton  <nickc@redhat.com>
10098
10099         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
10100         of seth_add3_operand.
10101
10102 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
10103
10104         * Makefile.in (PROTO_OBJS): Add errors.o.
10105         * protoize.c (fancy_abort): Remove.
10106         * mips-tfile.c (fancy_abort): Add parameters.
10107
10108 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
10109
10110         * doc/trouble.texi (C++ misunderstandings): Fix example code.
10111
10112 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
10113
10114         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
10115         (host-default.o): Add dependency on HOOKS_H.
10116         * config/x-linux: Likewise.
10117         * config/x-solaris: Likewise.
10118         * config/i386/x-mingw32: Likewise.
10119         * config/rs6000/x-darwin: Likewise.
10120
10121 2004-08-23  James E Wilson  <wilson@specifixinc.com>
10122
10123         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
10124         DEF_REG_NOTE.
10125
10126 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
10127
10128         PR c/14492
10129         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
10130
10131 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
10132
10133         * cfg.c (check_bb_profile): Fix typos.
10134         * function.c (assign_parm_is_stack_parm): Likewise.
10135         * tree-nested.c: Likewise.
10136
10137 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
10138
10139         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
10140         Remove TYPECODE.
10141         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
10142
10143 2004-08-23  Eric Christopher  <echristo@redhat.com>
10144
10145         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
10146         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
10147         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
10148         * target.h: Ditto.
10149         * hooks.h: Include machmode.h.
10150         (hook_bool_mode_false): Declare.
10151         * hooks.c (hook_bool_mode_false): Define.
10152         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
10153         * stor-layout.c (layout_type): Ditto.
10154         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
10155         Define to target macro.
10156         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
10157         * config/arm/arm.c: Ditto. Use.
10158         * config/arm/arm.h: Ditto.
10159         * config/arm/arm-protos.h: Ditto.
10160         * config/i386/i386.c: Ditto.
10161         * config/i386/i386.h: Ditto.
10162         * config/rs6000/rs6000.c: Ditto.
10163         * config/rs6000/rs6000.h: Ditto.
10164         * config/sh/sh.c: Ditto.
10165         * config/sh/sh.h: Ditto.
10166         * config/sh/sh-protos.h: Ditto.
10167         * config/sh/sh.md: Use.
10168         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
10169         to TARGET_VECTOR_MODE_SUPPORTED_P.
10170
10171 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
10172
10173         * Makefile.in (BUILD_ERRORS): Set to build-errors.
10174         (errors.o): New target for host.
10175         (build-errors.o): New target for build.
10176         (genobjs): Replace errors.o with build-errors.
10177         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
10178         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
10179         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
10180         (fix-header.o): Add errors.h
10181         * collect2.c (fancy_abort): Add parameters.
10182         * collect2.h (fancy_abort): Don't declare.
10183         * errors.h (fancy_abort): Don't declare.
10184         * errors.c: Include either bconfig.h or config.h.
10185         (fancy_abort): Trim filename.
10186         * fix-header.c (v_fatal, fatal): Remove.
10187         (progname): Remove definition.
10188         (main): Set progname here.
10189         * gcc.c (fancy_abort): Add parameters.
10190         * gcc.h (fancy_abort): Remove declaration.
10191         * gcov.c (fancy_abort): Remove.
10192         * rtl.h (fancy_abort): Don't declare.
10193         (abort): Don't define.
10194         * tree.h (fancy_abort): Don't declare.
10195         (abort): Don't define.
10196         * system.h (fancy_abort): Declare.
10197         (abort): Define to fancy_abort.
10198         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
10199
10200         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
10201         (usize_type, ubitsizetype): Remove.
10202         * stor-layout.c (set_sizetype): Don't initialize usizetype,
10203         ubitsizetype.
10204         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
10205
10206         * tree.h (build_distinct_type_copy): New.
10207         (build_type_copy): ... here.  Rename to ...
10208         (build_variant_type_copy): ... here.
10209         * tree.c (build_qualified_type): Rename build_type_copy call.
10210         (build_distinct_type_copy): New, broken out of ...
10211         (build_type_copy): ... here.  Rename to ...
10212         (build_variant_type_copy): ... here.  Use
10213         build_distinct_type_copy.
10214         (build_common_tree_nodes_2): Rename build_type_copy call.
10215         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
10216         call.
10217         (handle_packed_attribute, handle_unused_attribute,
10218         handle_transparanet_union_attribute, handle_aligned_attribute,
10219         handle_deprecated_attribute): Likewise.
10220         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
10221         Likewise.
10222         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
10223         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
10224         build_distinct_type_copy.
10225
10226 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10227
10228         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
10229         attribute.
10230
10231 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10232
10233         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
10234         loads and stores.
10235         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
10236         formerly unnamed patterns.  Redefine using :P for the address.  Remove
10237         explicit length attributes.
10238
10239 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10240
10241         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
10242         New functions.
10243         (single_reachable_address): Use them.
10244         (schedule_sm): Add dump.
10245         (is_call_clobbered_ref): New function.
10246         (determine_lsm_reg): Check whether the reference is call clobbered.
10247         Only work for gimple_reg_type values.
10248
10249 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10250
10251         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
10252         $31 store insns.  Redefine using :GPR.
10253
10254 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10255
10256         * config/mips/mips.md (P): New mode macro.
10257         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
10258         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
10259         Add mode attributes.
10260
10261 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10262
10263         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
10264         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
10265         later constants to cover the gap.
10266         (load, store): New mode attributes.
10267         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
10268         Use new unspec constants.
10269
10270 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10271
10272         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
10273         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
10274         to use register_operand rather than uns_arith_operand as the predicate
10275         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
10276         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
10277         Redefine using :GPR.  Make same predicate change here.  Extend the
10278         commutativity of operands 1 and 2 from the SImode version to the
10279         DImode one.
10280         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
10281         but with no predicate changes.
10282         (*nor[sd]i3): Redefine using :GPR.
10283
10284 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10285
10286         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
10287         noreturn functions.
10288
10289 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10290
10291         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
10292         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
10293         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
10294         rather than "%z2" (with a fake const0_rtx for operand 2).
10295         (ffs[sd]i2): Redefine using :GPR.
10296         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
10297
10298 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10299
10300         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
10301
10302 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10303
10304         * config/mips/mips.md (any_extend): New code macro.
10305         (u, su): New code attributes.
10306         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
10307         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
10308         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
10309         (*{s,u}mul_acc_di): Redefine using any_extend.
10310         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
10311         to reflect real insn names.
10312         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
10313         with an any_extend template.
10314         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
10315         Add '*' to name.
10316
10317 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10318
10319         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
10320         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
10321         (mul[sd]i3_r4000): Redefine using :GPR.
10322         (mulsi3_mult3): Don't check TARGET_MAD separately.
10323         (muldi3_mult3): Moved after mulsi_mult3.
10324
10325 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10326
10327         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
10328         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
10329         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
10330         (TARGET_GAS, TARGET_MIPS_AS): Delete.
10331         (TARGET_GPWORD): Define to true for n32 on IRIX.
10332         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
10333         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
10334         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
10335         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
10336         (MDEBUG_ASM_SPEC): Delete, folding into...
10337         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
10338         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
10339         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
10340         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
10341         to define asm_abi_default_spec.
10342         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
10343         (TARGET_ASM_SELECT_SECTION): Delete.
10344         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
10345         for non-mips16 code, removing previous workaround for SGI assemblers.
10346         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
10347         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
10348         (override_options): Remove !TARGET_GAS and !have_named_sections code.
10349         (print_operand): Fold TARGET_GAS conditionals into asm strings.
10350         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
10351         ASM_STABS_OP and ASM_STABN_OP.
10352         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
10353         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
10354         (mips_output_function_prologue): Remove !TARGET_GAS code.
10355         (mips_select_rtx_section): Remove !have_named_sections code.
10356         (mips_select_section): Delete.
10357         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
10358         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
10359         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
10360         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
10361         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
10362         * config/mips/windiss.h (ASM_SPEC): Likewise.
10363
10364 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10365
10366         * read-rtl.c (map_value, mapping, macro_group): New structures.
10367         (BELLWETHER_CODE): New macro.
10368         (modes, codes, bellwether_codes): New variables.
10369         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
10370         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
10371         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
10372         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
10373         (add_map_value, initialize_macros): New functions.
10374         (def_hash, def_hash_eq_p): Generalize to anything that points to,
10375         or starts with, a char * field.
10376         (find_macro, read_mapping, check_code_macro): New functions.
10377         (read_rtx_1): New, split out from read_rtx.  Handle the new
10378         define_{mode,code}_{macro,attr} constructs.  Use find_macro
10379         to parse the name of a code or mode.  Use BELLWETHER_CODE to
10380         extract the format and to choose a suitable code for rtx_alloc.
10381         Modify recursive invocations to use read_rtx_1.
10382         (read_rtx): Call initialize_macros.  Apply code and mode macros
10383         to the rtx returned by read_rtx_1.  Cache everything after the
10384         first macro expansion for subsequent read_rtx calls.
10385         * doc/md.texi: Document new .md constructs.
10386         * config/mips/mips.md (GPR): New mode macro.
10387         (d, si8_di5): New mode attributes.
10388         (any_cond): New code macro.
10389         (add[sd]i3): Redefine using :GPR.
10390         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
10391         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
10392         previously unnamed MIPS16 patterns.
10393         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
10394         lines.  Don't match (plus (const_int 0) ...).
10395         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
10396         Use a define_split to generate the addition.
10397         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
10398         (subsi3_internal): Delete.
10399         (*subsi3_extended): Renamed from subsi3_internal_2.
10400         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
10401         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
10402         using an any_cond template.
10403
10404 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10405
10406         * read-rtl.c (read_rtx): Tidy use of format_ptr.
10407
10408 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10409
10410         * read-rtl.c (string_obstack): New file-scope variable.
10411         (read_string, read_quoted_string, read_braced_string)
10412         (read_escape): Remove obstack parameter and use string_obstack instead.
10413         (read_rtx): Remove function-local rtl_obstack and initialize
10414         string_obstack instead.  Update call to read_string.
10415
10416 2004-08-22  Andrew Pinski  <apinski@apple.com>
10417
10418         PR c/15262
10419         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
10420         expression is not constant.
10421         (c_finish_return): Do not go through INDIRECT_REF when looking
10422         for the inner expression of an ADDR_EXPR for warning about.
10423
10424 2004-08-22  Richard Henderson  <rth@redhat.com>
10425
10426         PR 17075
10427         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
10428         create new blocks and fall through.
10429         (expand_gimple_basic_block): Update to match.
10430
10431 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
10432
10433         * reload.c (find_reloads_address): Make return value tri-state.
10434         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
10435         (find_reloads): Assume that reloaded addresses match 'o' or
10436         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
10437         returned 1 (not -1).  Omit optional reloads for address operands
10438         only if find_reloads_address returned 1 (not -1).
10439
10440         * config/s390/s390.c (legitimize_reload_address): New function.
10441         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
10442         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
10443         legitimize_reload_address.
10444
10445 2004-08-22  Richard Hendersion  <rth@redhat.com>
10446
10447         * tree.h (SAVE_EXPR_RESOLVED_P): New.
10448         * gimplify.c (gimplify_save_expr): Use it.
10449         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
10450         on the temporary variable.
10451
10452 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
10453
10454         * fold-const.c (rtl_expr_nonnegative_p): Delete.
10455         * tree.h (rtl_expr_nonnegative_p): Remove.
10456
10457 2004-08-22  Steven Bosscher  <stevenb@suse.de>
10458
10459         * config/i386/ppro.md (ppro_complex_insn): Add missing check
10460         for cpu==pentiumpro.
10461
10462         * combine.c (struct reg_stat): Fix comment typo.
10463
10464 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10465
10466         * c-tree.h (c_sizeof_nowarn): Remove.
10467
10468 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10469
10470         * c-decl.c (set_array_declarator_type): Rename to
10471         set_array_declarator_inner.
10472         (build_c_parm, build_attrs_declarator, build_function_declarator):
10473         New functions.
10474         (make_pointer_declarator): Call build_attrs_declarator.
10475         * c-tree.h (set_array_declarator_type): Rename to
10476         set_array_declarator_inner.
10477         (build_c_parm, build_attrs_declarator, build_function_declarator):
10478         New prototypes.
10479         * c-parse.in (after_type_declarator,
10480         parm_declarator_starttypename, parm_declarator_nostarttypename,
10481         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
10482         firstparm): Use these functions
10483
10484 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10485
10486         * c-decl.c (build_array_declarator, set_array_declarator_type,
10487         start_decl, grokdeclarator, grokparms): Change boolean parameters
10488         to type bool.
10489         * c-tree.h (build_array_declarator, set_array_declarator_type,
10490         start_decl): Update prototypes.
10491         * c-decl.c, c-parse.in: All callers changed.
10492
10493 2004-08-21  Mike Stump  <mrs@apple.com>
10494
10495         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
10496         (darwin_fix_and_continue): Likewise.
10497         (darwin_fix_and_continue_switch): Likewise.
10498         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
10499         (darwin_fix_and_continue): Likewise.
10500         (darwin_fix_and_continue_switch): Likewise.
10501
10502 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
10503
10504         PR  c++/16030
10505         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
10506         Remove, merging into ...
10507         (gen_stdcall_or_fastcall_suffix): New function, returning tree
10508         rather than const char*, and accepting additional parameter.
10509         Don't add suffix to '*'-prefixed symbols or variadic functions.
10510         (i386_pe_encode_section_info): Adjust for call to new function.
10511         Call change_decl_assembler_name.
10512
10513 2004-08-20  Mike Stump  <mrs@apple.com>
10514
10515         * config/darwin.c (machopic_indirect_data_reference): Mark
10516         stubs as defined.
10517         * config/386/386.c (darwin_local_data_pic): Add.
10518         (legitimate_constant_p): Reorder so that PLUS handling runs
10519         before darwin_local_data_pic to match the ordering in
10520         legitimate_pic_address_disp_p and so that MINUS runs after
10521         darwin_local_data_pic as otherwise the darwin_local_data_pic
10522         logic can be skipped, which would be very bad.
10523         (legitimate_pic_address_disp_p): Move from from here to
10524         darwin_local_data_pic so it can be reused.
10525
10526 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
10527
10528         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
10529         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
10530         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
10531         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
10532         (RS6000_ABI_NAME): Define as "linux".
10533         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
10534         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
10535         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
10536         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
10537         * config/rs6000/rs6000.c (dot_symbols): New global var.
10538         (rs6000_output_function_entry): New function, modified for
10539         !DOT_SYMBOLS..
10540         (print_operand <case 'z'>): ..extracted from here.
10541         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
10542         (rs6000_output_function_epilogue): Likewise.
10543         (rs6000_elf_declare_function_name): Likewise.
10544         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
10545         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
10546         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
10547         * configure: Regenerate.
10548         * config.in: Regenerate.
10549
10550 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10551
10552         * reload.c (find_reloads_address): Fix thinko in previous change.
10553
10554         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
10555         a CONST_INT.
10556
10557 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
10558
10559         PR rtl-optimization/17099
10560         * combine.c (force_to_mode): Check if inner_mask has any bits set
10561         outside of GET_MODE (x) instead of op_mode.
10562
10563 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10564
10565         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
10566         fragment.
10567         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
10568         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
10569         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
10570         architecture.
10571         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
10572         configurations.
10573         * config/arm/t-symbian: New file.
10574
10575 2004-08-20  Andrew Pinski  <apinski@apple.com>
10576
10577         * regrename.c (kill_value_regno): ANSIfy.
10578
10579 2004-08-20  Dale Johannesen  <dalej@apple.com>
10580
10581         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
10582
10583 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
10584
10585         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
10586         (kill_value_regno): New function, derived from kill_value.
10587         (kill_value): Update.
10588         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
10589
10590 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
10591
10592         Fix PR tree-optimization/17111
10593         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
10594         of non-value_handles.
10595         (bitmap_set_contains): All constants are in every set.
10596
10597 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10598
10599         * fold-const.c (round_up, round_down): Use build_int_cst.
10600         Optimize common case.
10601
10602 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
10603             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10604
10605         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
10606         one_only_data_section): Rename to som_readonly_data_section,
10607         som_one_only_readonly_data_section and som_one_only_data_section.
10608         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
10609         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
10610         conditional defines.
10611         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
10612         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
10613         string values.
10614         (pa_select_section): Use renamed section functions.
10615         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
10616         SOM_READONLY_DATA_SECTION_FUNCTION,
10617         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
10618         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
10619         Define here ...
10620         * config/pa/som.h: ... not here.
10621         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
10622         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
10623         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
10624         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
10625         (READONLY_DATA_SECTION): Use som_readonly_data_section.
10626
10627 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10628
10629         * fold-const.c (int_const_binop): Don't generate non-overflowing
10630         size-types specially.
10631         (fold_convert_const): Likewise.
10632
10633         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
10634         clear cache on copied sizetype.
10635
10636 2004-08-20  Ben Elliston  <bje@au.ibm.com>
10637
10638         * configure.ac: Don't escape apostrophe in --enable-coverage help.
10639         * configure: Regenerate.
10640
10641 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
10642
10643         PR 5620
10644         * gcc.c (struct stat input_stat): Don't define if
10645         HOST_LACKS_INODE_NUMBERS
10646         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
10647         than stat to determine if temp file is same as input file.
10648         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
10649         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
10650
10651 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
10652
10653         * configure.ac (mips*-*-*): Print an error if not using GAS.
10654         * configure: Regenerated.
10655         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
10656         comments about buggy MIPSpro assemblers.
10657         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
10658         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
10659         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
10660         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
10661         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
10662         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
10663         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
10664         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
10665         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
10666         of more general IRIX 6 definitions.
10667         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
10668         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
10669         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
10670         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
10671         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10672         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
10673         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
10674         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
10675         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
10676         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
10677         (LINK_SPEC): Move most of definition to iris.h.
10678         (SUBTARGET_LINK_SPEC): New macro.
10679         (IRIX_STARTFILE_SPEC): Fold into...
10680         (STARTFILE_SPEC): ...here.
10681         (IRIX_ENDFILE_SPEC): Fold into...
10682         (ENDFILE_SPEC): ...here.
10683         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
10684         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
10685         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
10686         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
10687         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
10688         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
10689         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
10690         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10691         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
10692         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
10693         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
10694         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
10695         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
10696         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
10697         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
10698         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
10699         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
10700         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
10701         (TARGET_IRIX6): Define to 1.
10702         (DRIVER_SELF_SPECS): Define.
10703         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
10704         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
10705         (SUBTARGET_LINK_SPEC): New macro.
10706         (IRIX_STARTFILE_SPEC): Fold into...
10707         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
10708         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
10709         (LIB_SPEC, LIBGCC_SPEC): Use them.
10710         (LIB_SPEC): Remove !mabi=* case.
10711         (IRIX_ENDFILE_SPEC): Fold into...
10712         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
10713         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
10714         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
10715         (TARGET_IRIX6): New macro.
10716         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
10717         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
10718         (LABEL_AFTER_LOC): Delete.
10719         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
10720         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
10721         (mips_build_builtin_va_list): Check TARGET_IRIX6.
10722         (override_options): Remove TARGET_SGI_O32_AS-related code.
10723         (irix_output_external_libcall): Make static.
10724         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
10725         LABEL_AFTER_LOC.
10726         (mips_file_start): Tidy guard for ABI sections.  Remove use of
10727         ABICALLS_ASM_OP; use .abicalls instead.
10728         (mips_output_aligned_decl_common, mips_declare_object_name)
10729         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
10730         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
10731         .globl foo .text directives.
10732         (irix_asm_named_section_1, irix_asm_named_section)
10733         (irix_section_align_entry, irix_section_align_htab)
10734         (irix_orig_asm_out_file, irix_section_align_entry_eq)
10735         (irix_section_align_entry_hash, irix_asm_output_align)
10736         (irix_file_start, irix_section_align_1, copy_file_data)
10737         (irix_file_end, irix_section_type_flags): Delete.
10738         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
10739         Use standard section syntax.  Remove protective "jr $31".
10740         (__gcc_fini): Likewise .gcc_fini.
10741         * config/mips/irix-crtn.asm: Adjust sections accordingly.
10742         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
10743         iris5gas.h.
10744         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
10745         from t-irix-gld.
10746         (EXTRA_MULTILIB_PARTS): Define.
10747         * config/mips/t-iris6: Remove bogus comment.
10748         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
10749         * config/mips/iris5gas.h, config/mips/iris5gld.h,
10750         config/mips/iris6gas.h, config/mips/iris6gld.h,
10751         config/mips/t-iris5-as, config/mips/t-iris5-gas
10752         config/mips/t-irix-gld: Delete.
10753         * config/mips/iris.h: New file.
10754         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
10755
10756 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
10757
10758         * postreload.c (reload_cse_move2add): Allow any condjump, but check
10759         that the implicit set isn't clobbered in the jump insn.
10760
10761 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10762
10763         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
10764         * optabs.c (init_optabs): Don't check it.
10765         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
10766         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
10767
10768 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
10769
10770         * config/s390/s390.md (s390_warn_framesize_string)
10771         (s390_warn_dynamic_string, s390_stack_size_string)
10772         (s390_stack_guard_string): New global string variables.
10773         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
10774         (s390_stack_guard): New global variables.
10775         (override_options): Added checks for the new options.
10776         (s390_emit_prologue): Emit stack check and trap code and perform
10777         compile time stack size checking.
10778
10779         * config/s390/s390.h (TARGET_OPTIONS): Added new options
10780         "warn-framesize", "warn-dynamicstack", "stack-size" and
10781         "stack-guard".
10782
10783         * doc/invoke.texi: Added documentation for the new options.
10784
10785 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10786
10787         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
10788         to eliminate warning.
10789         (linear_search_fdes): Declare p as unsigned.
10790         (binary_search_mixed_encoding_fdes): Likewise.
10791         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
10792         to eliminate warning.
10793         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
10794         type cast.
10795
10796 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10797
10798         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
10799         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
10800         instead of one.  Check for strictly legitimate address.
10801         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
10802         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
10803
10804 2004-08-19  Eric Christopher  <echristo@redhat.com>
10805
10806         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
10807         * langhooks.h (unsave_expr_now): Ditto.
10808         * tree.h (unsave_expr_1): Remove prototype.
10809         (lhd_unsave_expr_now): Rename to unsave_expr_now.
10810         * tree-inline.c (unsave_expr_1): Move here
10811         from tree.c. Make static.
10812         (unsave_expr_now): Rename from lhd_unsave_expr_now.
10813         * tree-sra.c: Fix up for rename.
10814         * tree-ssa-copy.c: Ditto.
10815         * tree-eh.c: Ditto.
10816         * tree.c (unsave_expr_1): Move to tree-inline.c.
10817
10818 2004-08-19  Caroline Tice  <ctice@apple.com>
10819
10820         * config/i386/cygming.h (switch_to_section):  Fix typo (change
10821         in_unlikely_text_section to in_unlikely_executed_text).
10822
10823 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
10824
10825         * vec.h (VEC_lower_bound): New macro.
10826
10827 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
10828
10829         PR target/16446
10830         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
10831         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
10832         treat each ABI separately.  Deal with n32/n64 complex float arguments.
10833         (function_arg): Add associated complex handling here.
10834
10835 2004-08-19  Richard Henderson  <rth@redhat.com>
10836
10837         * config/arm/arm.c (arm_gen_load_multiple): Use
10838         adjust_automodify_address.  Take base memory and offset instead
10839         of unchanging/struct/scalar bits.
10840         (arm_gen_store_multiple): Likewise.
10841         (arm_gen_movmemqi): Use adjust_automodify_address.
10842         * config/arm/arm-protos.h: Update decls.
10843         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
10844         (store_multiple): Similarly.
10845
10846 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
10847
10848         * regclass.c (globalize_reg): Update call_really_used_regs.
10849
10850 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
10851
10852         * doc/invoke.texi (integer-share-limit): Document.
10853
10854         * tree.h (TYPE_CACHED_VALUES_P): New.
10855         (TYPE_CACHED_VALUES): New.
10856         (TYPE_ORIG_SIZE_TYPE): Adjust.
10857         * tree.def (INTEGER_CST): Update documentation.
10858         * tree.c: Inlcude params.h.
10859         (build_int_cst): Cache small values.
10860         (build_type_copy): Do not copy the value cache.
10861         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
10862         unneeded zeroing.
10863         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
10864         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
10865         cache.
10866         * fold-const.c (force_fit_type): Copy value when setting
10867         overflows.
10868         (int_const_binop): Likewise.
10869         * stor-layout.c: Include params.h
10870         (set_sizetype): Create values cache.
10871         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
10872         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
10873         * params.h (INTEGER_SHARE_LIMIT): New.
10874         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
10875
10876 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
10877
10878         * gimplify.c (gimplify_minimax_expr): Remove.
10879         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
10880
10881 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
10882
10883         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10884         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
10885
10886 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10887
10888         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
10889
10890 2004-08-18  Andrew Pinski  <apinski@apple.com>
10891
10892         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
10893
10894 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
10895
10896         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
10897         (__aeabi_ul2f): Likewise.
10898
10899 2004-08-18  Richard Henderson  <rth@redhat.com>
10900
10901         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
10902         move to rtl completely.
10903         (struct meminsnbuf, xtensa_emit_block_move): Remove.
10904         (xtensa_find_mode_for_size): Remove.
10905         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
10906         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
10907
10908 2004-08-18  Richard Henderson  <rth@redhat.com>
10909
10910         * config/mcore/mcore.c (mode_from_align): Remove DImode.
10911         (block_move_sequence): Rewrite to use adjust_address.
10912         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
10913         Return boolean indicating success/failure.
10914         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
10915         * config/mcore/mcore.md (movmemsi): Update to match.
10916
10917 2004-08-18  Mike Stump  <mrs@apple.com>
10918
10919         * doc/invoke.texi (-mfix-and-continue): Add support for
10920         fast turn around debugging.
10921         (-ffix-and-continue): Likewise.
10922         (-mindirect-data): Likewise.
10923         (-findirect-data): Likewise.
10924         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
10925         (indirect_data): Likewise.
10926         (machopic_data_defined_p): Likewise.
10927         (machopic_output_indirection): Likewise.
10928         (darwin_encode_section_info): Likewise.
10929         (darwin_fix_and_continue): Likewise.
10930         (darwin_fix_and_continue_switch): Likewise.
10931         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
10932         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
10933         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
10934         (SUBTARGET_OPTIONS): Likewise.
10935         (darwin_fix_and_continue): Likewise.
10936         (darwin_fix_and_continue_switch): Likewise.
10937         (TARGET_FIX_AND_CONTINUE): Likewise.
10938         * config/rs6000.c (rs6000_emit_prologue): Likewise.
10939
10940 2004-08-19  Steven Bosscher  <stevenb@suse.de>
10941
10942         * basic-block.h (struct edge_def): Remove crossing_edge.
10943         (EDGE_CROSSING): New define.
10944         (EDGE_ALL_FLAGS): Update.
10945         * bb-reorder.c (find_traces_1_round, better_edge_p,
10946         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
10947         find_jump_block, fix_crossing_conditional_branches,
10948         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
10949         Replace all occurences of crossing_edge with an edge flag check
10950         or set/reset.
10951         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
10952         try_crossjump_bb): Likewise.
10953         * cfglayout.c (fixup_reorder_chain): Likewise.
10954         * cfgrtl.c (force_nonfallthru_and_redirect,
10955         commit_one_edge_insertion): Likewise.
10956
10957         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
10958         * tree-flow.h (compute_dominance_frontiers): Move prototype...
10959         * basic-block.h:  ...here.
10960         * tree-cfg.c (compute_dominance_frontiers_1,
10961         compute_dominance_frontiers): Move from here...
10962         * cfganal.c: ...to here.  Include timevar.h.
10963
10964 2004-08-18  James E Wilson  <wilson@specifixinc.com>
10965
10966         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
10967         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
10968
10969         * config/mips/mips.md (type): Add frdiv.
10970         (divsf3+1, divsf3+2): Change type to frdiv.
10971         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
10972         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
10973
10974         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
10975         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
10976         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
10977         * config/mips/5000.md (r5k_fdiv_single): Likewise.
10978         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
10979         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
10980         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
10981         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
10982         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
10983         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
10984         Likewise.
10985         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
10986
10987 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
10988
10989         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
10990         get regression tester working again.
10991
10992 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10993
10994         * insn-notes.def, reg-notes.def: New files.
10995         * rtl.h: Use them to define enum insn_note and enum reg_note.
10996         * rtl.c: Use them to define note_insn_name and reg_note_name.
10997         * Makefile.in (RTL_BASE_H): Update.
10998
10999         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
11000         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
11001
11002 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
11003
11004         * arm.c (arm_size_rtx_costs): New function.
11005         (arm_override_options): Use it if optimizing for space.
11006
11007 2004-08-18  Richard Henderson  <rth@redhat.com>
11008
11009         * emit-rtl.c (gen_const_mem): New.
11010         * rtl.h (gen_const_mem): Declare.
11011         * expr.c (do_tablejump): Use it.
11012         * varasm.c (force_const_mem): Likewise.
11013         * config/darwin.c (machopic_indirect_data_reference): Likewise.
11014         (machopic_legitimize_pic_address): Likewise.
11015         * config/arm/arm.c (legitimize_pic_address): Likewise.
11016         * config/i386/i386.c (legitimize_pic_address): Likewise.
11017         (legitimize_tls_address): Likewise.
11018         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
11019         * config/ia64/ia64.md (load_fptr): Likewise.
11020         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
11021         * config/pa/pa.c (legitimize_pic_address): Likewise.
11022         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
11023         (rs6000_emit_move): Likewise.
11024         * config/s390/s390.c (legitimize_pic_address): Likewise.
11025         (legitimize_tls_address): Likewise.
11026         * config/s390/s390.md (casesi): Likewise.
11027         * config/sh/sh.c (sh_reorg): Likewise.
11028         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
11029         * config/v850/v850.md (casesi): Likewise.
11030
11031         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
11032         * config/sh/sh.c (prepare_move_operands): Remove incorrect
11033         use of MEM_READONLY_P.
11034
11035 2004-08-18  Steven Bosscher  <stevenb@suse.de>
11036
11037         * Makefile.in (OBJS-common): Add postreload-gcse.c.
11038         Add new postreload-gcse.o.
11039         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
11040         (lookup_as_function, insert, rehash_using_reg, use_related_value,
11041         equiv_constant): Use SAFE_HASH instead of safe_hash.
11042         (exp_equiv_p): Export.  Add for_gcse argument when comparing
11043         for GCSE.
11044         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
11045         find_comparison_args, fold_rtx, cse_insn): Update callers.
11046         (hash_rtx): New function derived from old canon_hash and bits
11047         from gcse.c hash_expr_1.
11048         (canon_hash_string): Rename to hash_rtx_string.
11049         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
11050         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
11051         (cselib_lookup): Update this caller.
11052         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
11053         Make static.
11054         (hash_expr): Call hash_rtx.
11055         (ldst_entry): Likewise.
11056         (expr_equiv_p): Call exp_equiv_p.
11057         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
11058         reg_used_on_edge, reg_set_between_after_reload_p,
11059         reg_used_between_after_reload_p, get_avail_load_store_reg,
11060         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
11061         get_bb_avail_insn, hash_scan_set_after_reload,
11062         compute_hash_table_after_reload,
11063         eliminate_partially_redundant_loads, gcse_after_reload,
11064         get_bb_avail_insn, gcse_after_reload_main): Remove.
11065         * postreload-gcse.c: New file, reincarnating most of the above.
11066         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
11067         (gcse_after_reload_main): Update prototype.
11068         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
11069         * passes.c (rest_of_handle_gcse2): Use it.
11070
11071 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
11072
11073         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
11074         (pass_loop_done): Likewise.
11075
11076 2004-08-18  Andrew Pinski  <apinski@apple.com>
11077
11078         * config/rs6000/darwin.md: Delete the altivec patterns which are
11079         handled differently now.
11080         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
11081         (macho_correct_pic_di): Likewise.
11082         (call_indirect_nonlocal_darwin64): Likewise.
11083         Delete the save world/saveFP/saveVec patterns.
11084
11085         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
11086         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11087         * config/rs6000/rs6000.md: Include darwin.md.
11088         (builtin_setjmp_receiver): Add DImode case.
11089         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
11090         Darwin bits.
11091
11092 2004-08-18  Matt Austern  <austern@apple.com>
11093
11094         Dead code stripping
11095         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
11096         * darwin.c (darwin_file_end): Mark file as potentially strippable.
11097
11098 2004-08-18  Richard Henderson  <rth@redhat.com>
11099
11100         * alias.c (readonly_fields_p): Remove.
11101         (objects_must_conflict_p): Don't call it.
11102         * tree.h (readonly_fields_p): Remove.
11103         * langhooks.h (struct lang_hooks): Remove honor_readonly.
11104         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
11105
11106 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
11107
11108         * tree-dfa.c (add_referenced_var): Only global variables are
11109         call-clobbered.
11110         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
11111         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
11112         all pointers dereferenced if the statement dereferences them.
11113         (create_name_tags): Do not create memory tags for pointers
11114         that have PT_ANYTHING set.
11115         Also check if PT_VARS is not empty before creating a name tag.
11116         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
11117         variables that share the same alias set with a pointer that
11118         may point anywhere.
11119         (add_may_alias): Add FIXME comment to remove clobbering
11120         aliased variables and tags.
11121         (replace_may_alias): Likewise.
11122         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
11123         (merge_pointed_to_info): If the original variable has not
11124         points-to information, call set_pt_anything.
11125         (add_pointed_to_var): Do not prevent adding a pointed-to
11126         variable if the pointers is PT_ANYTHING.
11127         If the variable is a global, set PT_GLOBAL_MEM.
11128         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
11129         pointer type only come in PTR+OFFSET flavours.
11130         Always call merge_pointed_to_info on PHI arguments that are
11131         SSA_NAMEs.
11132         (get_nmt_for): Mark call-clobbered tags whose pointer points
11133         to global memory.
11134         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
11135         values.
11136         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
11137         FLAGS.
11138         (add_stmt_operand): Abort if the caller tried to add a killing
11139         definition for a memory tag.
11140         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
11141         unnecessary checks.
11142
11143 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
11144
11145         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
11146         from call_used_regs.  Update call_really_used_regs.
11147         (CALL_REALLY_USED_REGISTERS): Define.
11148         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
11149         Replace call_used_regs with call_really_used_regs.
11150         (calc_live_regs, sh_media_register_for_return): Likewise.
11151         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
11152         * sh.md (return_media): Likewise.
11153
11154 2004-08-18  Andrew Pinski  <apinski@apple.com>
11155
11156         * config/darwin.c (machopic_legitimize_pic_address): Only set
11157         MEM_READONLY_P in the non TARGET_TOC case.
11158
11159 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
11160
11161         * rtl.def (NIL): Delete.
11162         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
11163         Tighten the syntax a little.
11164
11165         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
11166         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
11167         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
11168         * config/i386/predicates.md, config/m32r/m32r.h
11169         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
11170         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
11171         * config/sparc/sparc.h, doc/tm.texi:
11172         Replace all occurrences of NIL with UNKNOWN.
11173
11174 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
11175
11176         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
11177         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
11178         sequence inline.  Move drop_through_label code into this
11179         block, being the only place it is used.  Adjust comments.
11180
11181 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
11182
11183         * config/rs6000/altivec.md: Add new patterns for calls to
11184         save_world/rest_world functions.
11185
11186         * config/rs6000/rs6000-protos.h: (save_world_operation,
11187         restore_world_operation) new declarations.
11188
11189         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
11190         field added.
11191         (rs6000_stack_info): Set world_save_p field.
11192         (save_world_operation): New function.
11193         (restore_world_operation): New function.
11194         (compute_save_world_info): New function.
11195         (rs6000_stack_info): Call compute_save_world_info.
11196         (rs6000_emit_prologue): Check for world_save_p and generate
11197         pattern to call save_world for saving all non-volatile and
11198         special registers.
11199         (rs6000_emit_epilogue): Check for world_save_p and generate
11200         pattern to call rest_world to restore saved registers.
11201
11202         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
11203         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
11204         (rs6000_reg_names): New entries added for save_world_operation and
11205         restore_world_operation.
11206
11207 2004-08-18  Caroline Tice  <ctice@apple.com>
11208
11209         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
11210         "-freorder-blocks-and-partition" to the flags used in second
11211         stage of profiledbootstrap.
11212         * bb-reorder.c (push_to_next_round_p): Add new variable,
11213         next_round_is_last; set and use variable to make sure, when
11214         partitioning, that the last trace construction round consists
11215         of all (and only) cold basic blocks.
11216         (rotate_loop): Don't copy blocks that end in a section
11217         crossing jump.
11218         (copy_bb): Correctly initialize "partition" of duplicated bb.
11219         (add_unlikely_executed_notes): Add a comment.
11220         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
11221         to make sure, if function contains hot blocks, that the
11222         successors of ENTRY_BLOCK_PTR are hot; also, only look for
11223         crossing edges if the architecture supports named sections.
11224         (mark_bb_for_unlikely_executed_section): Modify to always
11225         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
11226         the basic block note insn.
11227         (fix_crossing_unconditional_branches): Remove extra space.
11228         (fix_edges_for_rarely_executed_code): Modify to only do
11229         partitioning work if the architecture supports named sections.
11230         (reorder_basic_blocks): Modify to only add
11231         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
11232         supports named sections.
11233         * c-common.c (handle_section_attribute): Initialize new global
11234         variable, user_defined_section_attribute, to true if user has
11235         specified one.
11236         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
11237         forward edges that cross section boundaries.
11238         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
11239         partitioning information if the architecture supports named
11240         sections.
11241         * cfgrtl.c (target.h): Add statement to include this.
11242         (rtl_split_block): Make sure newly created bb gets correct
11243         partition.
11244         (try_redirect_by_replacing_jump): Make sure redirection isn't
11245         attempting to cross section boundaries.
11246         (force_nonfallthru_and_redirect): Only do partition fix up if
11247         architecture supports named sections.
11248         (rtl_split_edge): Make sure newly created bb ends up in
11249         correct partition.
11250         (commit_one_edge_insertion): Remove code that incorrectly
11251         updated basic block partition; Make sure partition fix up only
11252         happens if architecture supports named sections and it's not
11253         already done.
11254         (rtl_verify_flow_info_1): Fix if-condition on test/error
11255         condition that fallthru edges are not allowed to cross section
11256         boundaries.
11257         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
11258         * final.c (final_scan_insn): Remove redundant test from if-statement;
11259         change calls to text_section into calls to function_section; add code
11260         to only to partitioning fix up if architecture supports named
11261         sections.
11262         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
11263         partition.
11264         (if_convert): Add targetm.have_named_sections to test.
11265         * output.h (unlikely_section_label): Extern declaration for new global
11266         variable.
11267         (unlikely_text_section_name): Likewise.
11268         * opts.c (decode_options): If both partitioning and DWARF debugging
11269         are turned on, issue a warning that this doesn't work, and change
11270         partitiong to basic block reordering (without hot/cold partitions).
11271         * passes.c (rest_of_handle_final): Re-set new global variable,
11272         user_defined_section_attribute, to false.
11273         (rest_of_compilation): Change options for calling partitioning
11274         function: Don't call if the user defined the section attribute, and
11275         don't call if DECL_ONE_ONLY is true for the current function.
11276         * predict.c (choose_function_section): Return immediately if we
11277         are doing hot/cold partitioning (i.e. let the basic block partitioning
11278         determine where the function belongs).
11279         * reg-stack.c (emit_swap_insn): Add condition to step over
11280         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
11281         * toplev.c (user_defined_section_attribute): New global variable.
11282         * toplev.h (user_defined_section_attribute): Extern declaration
11283         for new global variable.
11284         * varasm.c (unlikely_section_label): New global variable.
11285         (unlikely_text_section_name): New global variable.
11286         (unlikely_text_section): Add code to initialize
11287         unlikely_text_section_name if necessary; modify to use
11288         unlikely_text_section_name and unlikely_section_label; also to use
11289         named_section properly.
11290         (in_unlikely_text_section):  Modify to work correctly with
11291         named_section and to use unlikely_text_section_name.
11292         (named_section):  Add code to work properly with cold section.
11293         (function_section): Clean up if-statement.
11294         * config/darwin.c (darwin_asm_named_section): Return to original
11295         code, removing use of SECTION_FORMAT_STRING.
11296         * config/arm/pe.h (switch_to_section):  Add case for
11297         in_unlikely_executed_text to switch statement.
11298         * config/i386/cygming.h (switch_to_section): Likewise.
11299         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
11300         (SECTION_FORMAT_STRING): Likewise.
11301         * config/mcore/mcore.h (switch_to_section): Likewise.
11302         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
11303         (SECTION_FORMAT_STRING): Remove.
11304
11305 2004-08-18  Roger Sayle  <roger@eyesopen.com>
11306
11307         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
11308         -ffixed-reg safe, by preserving the meanings of zero and one.
11309         (CALL_USED_REGISTERS): Likewise.
11310         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
11311
11312 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11313
11314         * config/sh/sh.c (split_branches): Check the result of
11315         next_active_insn.
11316         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
11317         Call rtl_register_cfg_hooks.
11318
11319 2004-08-18  Richard Henderson  <rth@redhat.com>
11320
11321         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
11322         * alias.c (true_dependence): Update to match new semantics.
11323         (canon_true_dependence, write_dependence_p): Likewise.
11324         (anti_dependence, output_dependence): Update write_dependence_p args.
11325         (unchanging_anti_dependence): Remove.
11326         * calls.c (purge_mem_unchanging_flag): Remove.
11327         (fixup_tail_calls): Don't call it.
11328         (expand_call): Don't add unchanging memory to function usage.
11329         * expr.c (emit_block_move_via_libcall): Likewise.
11330         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
11331         (get_subtarget): Don't use RTX_UNCHANGING_P.
11332         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
11333         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
11334         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
11335         * cse.c (insert): Don't use RTX_UNCHANGING_P.
11336         (cse_insn, canon_hash): Use MEM_READONLY_P.
11337         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
11338         instead of RTX_UNCHANGING_P.
11339         * explow.c (maybe_set_unchanging): Remove.
11340         * expr.h (maybe_set_unchanging): Remove.
11341         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
11342         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
11343         (assign_parm_setup_reg, expand_function_start): Likewise.
11344         * integrate.c (copy_rtx_and_substitute): Likewise.
11345         * ra-rewrite.c (emit_colors): Likewise.
11346         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
11347         (fixup_match_1): Likewise.
11348         * reload1.c (reload, alter_reg): Likewise.
11349         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
11350         not RTX_UNCHANGING_P.
11351         (equiv_init_varies_p): Likewise.
11352         * loop-invariant.c (check_maybe_invariant): Likewise.
11353         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
11354         * loop.c (note_addr_stored): Likewise.
11355         (prescan_loop): Likewise. Don't check function usage for clobbered
11356         unchanging memory.
11357         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
11358         not RTX_UNCHANGING_P.
11359         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
11360         * varasm.c (force_const_mem): Likewise.
11361         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
11362         * web.c (entry_register): Likewise.
11363         * tree-gimple.h (get_base_address): Move decl ...
11364         * tree.h: ... here.
11365         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
11366
11367         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
11368         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
11369         (alpha_set_memflags): Update to match.
11370
11371         * config/darwin.c (machopic_indirect_data_reference): Set
11372         MEM_READONLY_P instead of RTX_UNCHANGING_P.
11373         (machopic_indirect_call_target): Likewise.
11374         (machopic_legitimize_pic_address): Likewise.
11375         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
11376         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
11377         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
11378         * config/frv/frv.md (symGOT2reg): Likewise.
11379         * config/i386/i386.c (legitimize_pic_address,
11380         legitimize_tls_address, ix86_split_to_parts): Likewise.
11381         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
11382         * config/ia64/ia64.md (load_fptr): Likewise.
11383         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
11384         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
11385         * config/mcore/mcore.c (block_move_sequence): Likewise.
11386         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
11387         * config/pa/pa.c (legitimize_pic_address): Likewise.
11388         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
11389         (rs6000_emit_move): Likewise.
11390         * config/s390/s390.c (legitimize_pic_address): Likewise.
11391         (legitimize_tls_address): Likewise.
11392         * config/s390/s390.md (casesi): Likewise.
11393         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
11394         * config/sh/sh.md (symGOT2reg): Likewise.
11395         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
11396         * config/v850/v850.md (casesi): Likewise.
11397
11398         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
11399         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
11400         * config/mips/mips.c (mips_restore_gp): Likewise.
11401         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
11402         * config/sh/sh.c (sh_reorg): Likewise.
11403
11404 2004-08-18  Richard Henderson  <rth@redhat.com>
11405
11406         * tree.h (struct tree_decl): Add gimple_formal_temp.
11407         (DECL_GIMPLE_FORMAL_TEMP_P): New.
11408         * gimplify.c (pop_gimplify_context): Clear it.
11409         (lookup_tmp_var): Set it, if is_formal.
11410         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
11411         Use is_gimple_val for VECTOR.  Simplify return value.
11412         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
11413         (gimplify_expr): Likewise.
11414         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
11415         is_gimple_tmp_rhs for clarity.  Update all callers.
11416         (is_gimple_reg_rhs): Simplify logic.
11417         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
11418         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
11419         (is_gimple_formal_tmp_reg): Similarly.
11420         * tree-gimple.h: Update decls.
11421         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
11422         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
11423         * tree-ssa-live.c (var_union, type_var_init): Likewise.
11424
11425 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
11426
11427         * c4x.c (legitimize_operands): Remove calls to
11428         preserve_subexpressions_p.
11429
11430 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
11431
11432         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
11433         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
11434
11435 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
11436
11437         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
11438         Objective-C++ extensions.
11439         * gengtype.c (get_file_basename): Match entire subdirectory name
11440         ('cp', 'objc', 'objcp') rather than just its suffix.
11441         (get_base_file_bitmap): Allow for files to belong to more than one
11442         language.
11443         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
11444         used by more than one front-end.
11445
11446 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
11447
11448         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
11449         avoid use of preserve_subexpressions_p.
11450
11451 2004-08-17  Richard Henderson  <rth@redhat.com>
11452
11453         PR 17051
11454         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
11455
11456 2004-08-17  DJ Delorie  <dj@redhat.com>
11457
11458         * doc/extend.texi: Document new xstormy16 attribute.
11459
11460         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
11461         (xstormy16_splittable_below100_or_register): New.
11462         (combine_bnp): New.
11463         (xstormy16_reorg): New.
11464         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11465
11466         * config/stormy16/stormy16.md (movqi_internal): Make name public.
11467         (movhi_internal): Likewise.
11468         (cbhranchhi): Likewise.
11469         (cbhranchhi_neg): Likewise.
11470         (andhi3): Only allow splittable below100 operands.
11471         (iorhi3): Likewise.
11472         (peephole2): New and/zero_extend->and peephole.
11473         (peephole2): New load/ior/save->set1 peephole.
11474         (peephole2): New load/and/save->clr1 peephole.
11475         (bclrx, bclrx2, bclr7, bclr15): New.
11476         (bsetx, bsetx2, bset7, bset15): New.
11477
11478         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
11479         liberal about acceptable 'B' masks.
11480
11481         * config/stormy16/stormy16-protos.h
11482         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11483         xstormy16_below100_operand, xstormy16_below100_or_register,
11484         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11485         (PREDICATE_CODES): Add new predicates.
11486
11487         * config/stormy16/stormy16.c
11488         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11489         xstormy16_below100_operand, xstormy16_below100_or_register,
11490         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11491         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
11492         (xstormy16_legitimate_address_p): Allow below100 symbols.
11493         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
11494         (xstormy16_expand_move): Leave below100 operands as-is.
11495         (xstormy16_encode_section_info): Encode below100 symbols.
11496         (xstormy16_strip_name_encoding): New.
11497         (xstormy16_print_operand): Print 'b' as shift mask.
11498         (xstormy16_attribute_table): Add below100 attributes.
11499         (xstormy16_handle_below100_attribute): New.
11500
11501         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
11502         (XSTORMY16_SECTION_FUNCTION): New.
11503         (EXTRA_SECTION_FUNCTIONS): Define using the above.
11504         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11505         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
11506         (ASM_OUTPUT_LABELREF): Define.
11507
11508         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
11509         (movhi_internal): Add below100 support.
11510         (andhi3): Add below100 support.
11511         (iorhi3): Add below100 support.
11512         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
11513
11514 2004-08-17  James E Wilson  <wilson@specifixinc.com>
11515
11516         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
11517         of VOIDmode for comparison code mode.
11518         * config/mips/mips.md: For conditional move patterns, use mode of
11519         first compare operand for comparison mode, instead of VOIDmode.
11520
11521         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
11522         normal and -ffast-math code.
11523
11524 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
11525
11526         PR c++/15871
11527         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
11528
11529 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
11530
11531         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
11532
11533 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
11534
11535         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
11536         for non Darwin targets.
11537         (*call_value_nonlocal_darwin64): Likewise.
11538
11539 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
11540
11541         * config/rs6000/rs6000.c (rs6000_function_value): Check for
11542         altivec mode for altivec return register.
11543
11544 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
11545
11546         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
11547         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11548         * config/rs6000/rs6000.md: Include darwin.md.
11549         (builtin_setjmp_receiver): Add DImode case.
11550         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
11551         Darwin bits.
11552
11553 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
11554
11555         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
11556         trees.
11557         * tree-vectorizer.h: New File: Same.
11558         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
11559         * common.opt (ftree-vectorize): New flag to enable vectorization.
11560         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
11561         vectorization pass.
11562         * tree-data-ref.h (init_data_ref): Additional argument.
11563         (array_base_name_differ_p): Moved to tree-data-ref.c.
11564         * tree-data-ref.c (array_base_name_differ_p): Revised.
11565         (initialize_data_dependence_relation): Call array_base_name_differ_p
11566         with an extra argument.
11567         (analyze_all_data_dependences): Same.
11568         (init_data_ref): Additional argument is_read to set DR_IS_READ.
11569         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
11570         file.
11571         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
11572         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
11573         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
11574         vectorization pass.
11575         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
11576         (tree_ssa_loop_done): Call scev_finalize.
11577         (tree_vectorize): Define the new vectorization pass.
11578         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
11579         size of the vector they support (until support for multiple vector
11580         sizes is added to the vectorizer).
11581         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
11582         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
11583         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
11584         documentation.
11585
11586 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11587
11588         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
11589         usage.
11590         (generate_protocol_list, handle_impent): Likewise.
11591
11592 2004-08-17  Roger Sayle  <roger@eyesopen.com>
11593
11594         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
11595         ensure that call_used_regs is a superset of both fixed_regs and
11596         call_really_used_regs.
11597
11598 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
11599
11600         PR target/17019
11601         * arm.md (addsi3_cbranch_scratch): Correct case labels.
11602
11603 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11604
11605         PR middle-end/17036
11606         * fold-const.c (fold): Check for integer operand when
11607         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
11608         Pinski  <pinskia@physics.uc.edu>.
11609
11610 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11611
11612         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
11613         No need to check if in a cross configuration.
11614         * configure: Regenerate.
11615
11616         * calls.c (precompute_register_parameters):
11617         Inline preserve_subexpressions_p ().
11618         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
11619         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
11620         Likewise.
11621         * expr.c (get_subtarget): Likewise.
11622         * rtl.h (preserve_subexpressions_p): Remove.
11623         * stmt.c (preserve_subexpressions_p): Remove.
11624
11625         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
11626         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
11627         Abort on gimplified cases.
11628
11629 2004-08-16  James E Wilson  <wilson@specifixinc.com>
11630
11631         * tree.h (VECTOR_FLOAT_TYPE_P): New.
11632         (FLOAT_TYPE_P): Use it.
11633         * c-typeck.c (build_binary_op): After convert calls, check for
11634         check for ERROR_MARK operands.
11635
11636 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
11637
11638         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
11639         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
11640         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
11641         (genobjs static pattern rule): Remove %.c dependency.
11642         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
11643         Rename rules; delete commands; fix dependencies.
11644         (mostlyclean): Do not delete temporary source copies.
11645         * configure.ac: Delete all references to BUILD_PREFIX and
11646         BUILD_PREFIX_1.
11647         * configure: Regenerate.
11648
11649         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
11650         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
11651         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
11652         with #ifndef GENERATOR_FILE so that nothing from those headers
11653         is used.
11654
11655         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
11656
11657 2004-08-16  Adam Nemet  <anemet@lnxw.com>
11658
11659         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
11660
11661 2004-08-16  Andrew Pinski  <apinski@apple.com>
11662
11663         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
11664         extraneous semicolon.
11665
11666 2004-08-16  Devang Patel  <dpatel@apple.com>
11667
11668         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
11669         * print-tree.c (print_node): Print DECL_PRESERVE_P.
11670         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
11671         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
11672         * target.h (struct gcc_target): New member, mark_decl_preserved.
11673         * hooks.c (hook_void_charptr): Rename to ...
11674         (hook_void_constcharptr): ... new name.
11675         * hooks.h (hook_void_charptr): Rename to ..
11676         (hook_void_constcharptr): ... new name.
11677         * tree.h (DECL_PRESERVE_P): New #define.
11678         (struct tree_decl): New member, preserve_flag.
11679         * varasm.c (assemble_start_function): Mark decl preserved.
11680         (assemble_variable): Same.
11681         * darwin.c (darwin_mark_decl_preserved): New function.
11682         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
11683         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
11684         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
11685
11686 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11687
11688         * c-decl.c (grokdeclarator): Allow for function definition where
11689         innermost declarator has attributes.
11690
11691 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
11692
11693         * except.c (get_exception_filter, build_post_landing_pads,
11694         dw2_build_landing_pads): Use target-specific mode for 'filter'.
11695         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
11696         * target.h (eh_return_filter_mode): New field added.
11697         * targhooks.c (default_eh_return_filter_mode): Defined.
11698         * targhooks.h (default_eh_return_filter_mode): Declared.
11699         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
11700
11701 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11702
11703         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
11704         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
11705         * configure: Regenerate.
11706
11707 2004-08-16  Stan Shebs  <shebs@apple.com>
11708
11709         Basic support for 64-bit Darwin.
11710         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11711         (machopic_legitimize_pic_address): Similarly, plus use Pmode
11712         instead of SImode.
11713         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
11714         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
11715         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
11716         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
11717         (PROCESSOR_DEFAULT64): Define.
11718         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
11719         Darwin.
11720         * config/rs6000/rs6000.md: Include darwin.md.
11721         (builtin_setjmp_receiver): Add DImode case.
11722         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
11723         Darwin.
11724         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
11725         (rs6000_emit_move): Add DImode case to Darwin bits.
11726         (machopic_output_stub): Use .quad if 64-bit.
11727         * invoke.texi: Document -m32 and -m64.
11728
11729 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
11730
11731         * doc/extend.texi (AltiVec builtins): Document additional differences
11732         from the Motorola AltiVec PIM.
11733
11734 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11735
11736         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
11737         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
11738         (struct tree_common): Update public_flag documentation.
11739
11740 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11741
11742         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11743         Check for artificial variables, not is_gimple_tmp_var.
11744         * tree-ssa-live.c (var_union): Likewise.
11745
11746 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11747
11748         * calls.c (load_register_parameters): Remove spurious FIXME token.
11749
11750 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
11751
11752         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
11753         (c-lang.o): Depend on c-objc-common.h.
11754         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
11755         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
11756         * c-lang.c: Include c-objc-common.h.
11757         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
11758         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
11759         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
11760         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
11761         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
11762         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
11763         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
11764         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
11765         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
11766         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11767         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
11768         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
11769         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11770         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
11771         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
11772         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
11773         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
11774         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
11775         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
11776         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
11777         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
11778         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
11779         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
11780         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
11781         Move to c-objc-common.h.
11782         * c-objc-common.c: Include c-objc-common.h.
11783         * c-objc-common.h: New file.
11784
11785 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
11786             Andrew Pinski  <pinskia@physics.uc.edu>
11787
11788         PR target/14931
11789         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
11790         style.
11791
11792 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11793
11794         * tree.h (build_int_cst): New.
11795         (build_int_2): Remove.
11796         * tree.c (build_int_2): Remove.
11797         (build_int_cst): New.
11798         (make_vector_type, build_common_tree_nodes,
11799         build_common_tree_nodes_2): Use build_int_cst.
11800         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11801         expand_builtin_strpbrk, expand_builtin_fputs,
11802         build_string_literal, expand_builtin_printf,
11803         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
11804         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
11805         fold_builtin_isdigit, simplify_builtin_strstr,
11806         simplify_builtin_strpbrk, fold_builtin_fputs,
11807         simplify_builtin_sprintf): Use build_int_cst.
11808         * c-common.c (start_fname_decls, fix_string_type,
11809         c_common_nodes_and_builtins, c_init_attributes,
11810         shorten_compare): Likewise.
11811         * c-decl.c (complete_array_type,
11812         check_bitfield_type_and_width): Likewise.
11813         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11814         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
11815         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11816         * c-typeck.c (really_start_incremental_init, push_init_level,
11817         set_nonincremental_init_from_string): Likewise.
11818         * calls.c (load_register_parameters): Likewise.
11819         * convert.c (convert_to_pointer): Likewise.
11820         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11821         build_fn_info_type, build_ctr_info_value, build_gcov_info):
11822         Likewise.
11823         * except.c (init_eh, assign_filter_values, assign_filter_values):
11824         Likewise.
11825         * expmed.c (store_fixed_bit_field, extract_bit_field,
11826         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11827         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11828         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11829         * expr.c (convert_move, emit_group_load, emit_group_store,
11830         expand_assignment, store_constructor, store_field,
11831         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11832         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11833         invert_truthvalue, optimize_bit_field_compare,
11834         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11835         fold_div_compare, fold, fold_read_from_constant_string,
11836         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
11837         * function.c (assign_parm_setup_block): Likewise.
11838         * stmt.c (shift_return_value, expand_end_case_type,
11839         estimate_case_costs): Likewise.
11840         * stor-layout.c (layout_type, initialize_sizetypes,
11841         set_min_and_max_values_for_integral_type): Likewise.
11842         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11843         reset_evolution_in_loop): Likewise.
11844         * tree-chrec.h (build_polynomial_chrec): Likewise.
11845         * tree-complex.c (build_replicated_const): Likewise.
11846         * tree-eh.c (honor_protect_cleanup_actions,
11847         lower_try_finally_onedest, lower_try_finally_copy,
11848         lower_try_finally_switch): Likewise.
11849         * tree-mudflap.c (mf_build_string, mx_register_decls,
11850         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11851         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11852         * tree-pretty-print.c (dump_generic_node): Likewise.
11853         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11854         Likewise.
11855         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11856         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11857         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11858         Likewise.
11859
11860         * config/alpha/alpha.c (alpha_initialize_trampoline,
11861         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
11862         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11863         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11864         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11865         * config/i860/i860.c (i860_va_start): Likewise.
11866         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11867         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11868         mips_gimplify_va_arg_expr): Likewise.
11869         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11870         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11871         add_compiler_branch_island): Likewise.
11872         * config/s390/s390.c (s390_va_start): Likewise.
11873         * config/sh/sh.c (sh_va_start): Likewise.
11874         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11875         Likewise.
11876         * config/xtensa/xtensa.c (xtensa_va_start,
11877         xtensa_gimplify_va_arg_expr): Likewise.
11878
11879         * objc/objc-act.c (build_objc_string_object,
11880         build_objc_symtab_template, init_def_list, init_objc_symtab,
11881         init_module_descriptor, generate_static_references,
11882         build_selector_translation_table, get_proto_encoding,
11883         build_typed_selector_reference, build_selector_reference,
11884         build_next_objc_exception_stuff,
11885         build_method_prototype_list_template, generate_descriptor_table,
11886         generate_protocols, build_protocol_initializer,
11887         build_ivar_list_template, build_method_list_template,
11888         build_ivar_list_initializer, generate_ivars_list,
11889         generate_dispatch_table, generate_protocol_list,
11890         build_category_initializer, build_shared_structure_initializer,
11891         generate_shared_structures, handle_impent,
11892         generate_objc_image_info): Use build_int_cst.
11893
11894 2004-08-15  Ben Elliston  <bje@au.ibm.com>
11895
11896         * vec.h: Comment improvements.
11897
11898 2004-08-14  Roger Sayle  <roger@eyesopen.com>
11899
11900         * c-common.c (shorten_compare, pointer_int_sum,
11901         c_common_truthvalue_conversion, boolean_increment): Replace calls
11902         to build with calls to buildN.
11903         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
11904         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
11905         gimplify_switch_stmt): Likewise.
11906         * c-typeck.c (default_function_array_conversion,
11907         build_component_ref, build_array_ref, build_function_call,
11908         pointer_diff, build_unary_op, build_conditional_expr,
11909         build_compound_expr, build_modify_expr, c_finish_goto_label,
11910         c_finish_goto_ptr, c_finish_return, c_finish_loop,
11911         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
11912         build_binary_op): Likewise.
11913
11914 2004-08-15  Steven Bosscher  <stevenb@suse.de>
11915
11916         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
11917
11918 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11919
11920         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
11921         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
11922         * fixinc/fixincl.x: Rebuilt.
11923
11924 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
11925
11926         * config/mips/mips-protos.h (mips_symbolic_constant_p)
11927         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
11928         (mips_small_data_pattern_p): Declare.
11929         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
11930         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11931         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
11932         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
11933         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
11934         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
11935         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
11936         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
11937         (pc_or_label_operand, call_insn_operand, move_operand)
11938         (consttable_operand, symbolic_operand, general_symbolic_operand)
11939         (global_got_operand, local_got_operand, stack_operand)
11940         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
11941         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
11942         (mips_small_data_pattern_p): Replace previous small_data_pattern
11943         predicate.  Turn into a bool () (rtx) function.
11944         * config/mips/predicates.md: New file.
11945         * config/mips/mips.md: Include it.  Use the target-independent
11946         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
11947         trap_comparison_operator and equality_op to equality_operator.
11948         Replace uses of small_int with the equivalent const_arith_operand.
11949         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
11950         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
11951         to fcc_reload_operand.
11952         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
11953
11954 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11955
11956         PR libstdc++/17005 partial fix.
11957         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
11958         except when generating ANSI/C89 code.
11959
11960 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
11961
11962         * c-common.c (shorten_compare): Use force_fit_type directly.
11963
11964 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
11965             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
11966             Dave Korn  <dk@artimi.com>
11967
11968         * doc/install.texi (Building): Avoid duplicate reference to GNU
11969         make requirement.
11970         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
11971
11972 2004-08-14  Richard Henderson  <rth@redhat.com>
11973
11974         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
11975         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
11976
11977 2004-08-13  Richard Henderson  <rth@redhat.com>
11978
11979         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
11980         for constant_call_address_operand.
11981         (call_value_pop_1, call_value_1): Likewise.
11982         (sibcall_value_1, call_value_1_rex64): Likewise.
11983
11984 2004-08-13  James E Wilson  <wilson@specifixinc.com>
11985
11986         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
11987         Correct mode from SFmode to DFmode.
11988
11989 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
11990
11991         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
11992         __cstring_object and __image_info sections with the no_dead_strip
11993         attribute.
11994
11995 2004-08-13  Roger Sayle  <roger@eyesopen.com>
11996             David Billinghurst  <David.Billinghurst@riotinto.com>
11997
11998         PR libgfortran/15930
11999         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
12000         * fixinc/fixincl.x: Regenerate.
12001         * fixinc/tests/base/internal/math_core.h: New file.
12002
12003 2004-08-13  Richard Henderson  <rth@redhat.com>
12004
12005         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
12006         (dbxout_function_end): Remove ifdefs for it.
12007         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
12008
12009 2004-08-13  Richard Henderson  <rth@redhat.com>
12010
12011         * Makefile.in (insn-preds.o): Depend on TREE_H.
12012         * genpreds.c (write_insn_preds_c): Include tree.h.
12013         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
12014         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
12015         const48_operand, and_operand, or_operand, mode_width_operand,
12016         mode_mask_operand, mul8_operand, const0_operand,
12017         hard_fp_register_operand, hard_int_register_operand,
12018         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
12019         samegp_function_operand, direct_call_operand, small_symbolic_operand,
12020         global_symbolic_operand, call_operand, symbolic_operand,
12021         dtp16_symbolic_operand, dtp32_symbolic_operand,
12022         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
12023         gottp_symbolic_operand, alpha_comparison_operator,
12024         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
12025         signed_comparison_operator, alpha_fp_comparison_operator,
12026         divmod_operator, fix_operator, aligned_memory_operand,
12027         unaligned_memory_operand, reg_or_unaligned_mem_operand,
12028         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
12029         reg_no_subreg_operand, addition_operation): Move to predicates.md.
12030         (reg_or_const_int_operand): Remove.  Replace all users with
12031         reg_or_cint_operand.
12032         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
12033         (resolve_reload_operand): Split out of aligned_memory_operand.
12034         * config/alpha/alpha-protos.h: Update for exports.
12035         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
12036         * config/alpha/alpha.md: Include predicates.md.
12037         * config/alpha/predicates.md: New file.
12038
12039 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
12040
12041         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
12042         fields with a pointer to the instruction definition.
12043         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
12044         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
12045         (write_attr_case, write_const_num_delay_slots): Update accordingly.
12046         (write_attr_case, write_const_num_delay_slots): Write the name of
12047         an insn next to its case statement.
12048         * genoutput.c (data): Add a filename field.
12049         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
12050         (output_insn_data): Print the location of each insn definition.
12051         * genrecog.c (write_action): Print the name of an insn above
12052         the statement that returns its code.
12053
12054 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
12055
12056         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
12057         * config/libgloss.h: Likewise.
12058         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
12059         * c4x/c4x-modes.def: Likewise.
12060         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
12061         (c4x_rptb_nop_p): Likewise.
12062         (c4x_rptb_valid_p): Likewise.
12063         (c4x_rptb_insert): Likewise.
12064         (c4x_address_conflict): Likewise.
12065         * config/c4x/c4x.md: Likewise.
12066         * config/frv/frv.md: Likewise.
12067         * config/i386/athlon.md: Likewise.
12068         * config/i386/i386.md: Likewise.
12069         * config/i386/predicates.md: Likewise.
12070         * config/ia64/ia64.c: Likewise.
12071         * config/ia64/itanium1.md: Likewise.
12072         * config/ia64/itanium2.md: Likewise.
12073         * config/iq2000/iq2000.md: Likewise.
12074         * config/mcore/mcore.c: Likewise.
12075         * config/mips/mips.c: Likewise.
12076         * config/mips/r3900.h: Likewise.
12077         * config/mips/sb1.md: Likewise.
12078         * config/pa/milli64.S: Likewise.
12079         * config/pa/pa.c: Likewise.
12080         * config/pa/pa.h: Likewise.
12081         * config/rs6000/8540.md: Likewise.
12082
12083 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
12084
12085         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
12086
12087 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
12088
12089         * sh.md (cbranch define_delay) Use cond_delay_slot for
12090         non-anulled condition too.
12091
12092 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
12093
12094         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
12095         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
12096         any_parallel_operand, lmw_operation, stmw_operation,
12097         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
12098         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
12099         any_parallel_operand.
12100         (return_and_restore_fpregs_{si,di}): Same.
12101
12102 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
12103
12104         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
12105         if pred->singleton != PARALLEL, issue a warning and pretend it was.
12106         Also issue a warning for any predicate we don't know about.
12107
12108 2004-08-12  Richard Henderson  <rth@redhat.com>
12109
12110         * config/i386/i386.c (internal_label_prefix): Export.
12111         (internal_label_prefix_len, struct ix86_address,
12112         ix86_decompose_address, maybe_get_pool_constant,
12113         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
12114         memory_address_length): Export.
12115         (any_fp_register_operand, fp_register_operand,
12116         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
12117         x86_64_general_operand, x86_64_szext_general_operand,
12118         x86_64_nonmemory_operand, x86_64_movabs_operand,
12119         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
12120         x86_64_zext_immediate_operand, const_int_1_31_operand,
12121         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
12122         tls_symbolic_operand, global_dynamic_symbolic_operand,
12123         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
12124         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
12125         constant_call_address_operand, const0_operand, const1_operand,
12126         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
12127         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
12128         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
12129         general_no_elim_operand, nonmemory_no_elim_operand,
12130         index_register_operand, q_regs_operand, flags_reg_operand,
12131         non_q_regs_operand, zero_extended_scalar_load_operand,
12132         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
12133         ix86_comparison_operator, ix86_carry_flag_operator,
12134         fcmov_comparison_operator, promotable_binary_operator,
12135         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
12136         mult_operator, div_operator, arith_or_logical_operator,
12137         memory_displacement_operand, cmpsi_operand, long_memory_operand,
12138         aligned_operand): Move to predicates.md as define_predicates.
12139         (tls_symbolic_operand_1): Remove.
12140         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
12141         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
12142         (legitimize_address): Merge tls_symbolic_operand contents.
12143         (ix86_expand_move): Likewise.
12144         * config/i386/i386-protos.h: Update for exports.
12145         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
12146         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
12147         * config/i386/i386.md: Include predicates.md.
12148         * config/i386/predicates.md: New file.
12149
12150 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
12151
12152         PR c++/16924
12153         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
12154         SYMBOL_REF_DECL.
12155         (i386_pe_mark_dllimport): Likewise.
12156         (i386_pe_encode_section_info): Likewise, when overriding
12157         dllimport attribute.
12158
12159 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
12160
12161         * configure.ac: When testing for flex, nm, ar, and bison, check
12162         that they will actually be built.
12163         * configure: Regenerate.
12164
12165 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
12166
12167         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
12168         (MOVE_MAX_PIECES): Define.
12169
12170 2004-08-12  Devang patel  <dpatel@apple.com>
12171
12172         * dbxout.c (dbxout_begin_prologue): New function.
12173         (dbx_debug_hooks): Use new begin prologue hook.
12174         (dbxout_function_end): Emit N_ENSYM.
12175         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
12176
12177 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
12178
12179         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
12180         argument is float*.
12181
12182         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
12183         for vec_dss.
12184
12185         * doc/extend.texi (AltiVec builtins): Fix description for recent
12186         changes.  Update operation list to match current support.
12187
12188 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
12189
12190         * config/s390/s390.c (struct s390_frame_layout): New struct as element
12191         of struct machine_function.
12192         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
12193         changed all uses.
12194         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
12195         changed all uses.
12196         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
12197         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
12198         (s390_frame_area, s390_register_info): New functions.
12199         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
12200         for base register.
12201         (s390_return_addr_rtx, s390_return_address_offset)
12202         (s390_va_start, s390_gimplify_va_arg)
12203         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
12204         layouts.
12205         (s390_frame_info): Functionality partly moved to s390_register_info.
12206         Made adaptions for new stack layout.
12207         (save_gprs, restore_gprs): Changed meaning of second parameter and
12208         adapted all callers.
12209
12210         * config/s390/s390.h (s390_backchain_string): New global variable.
12211         (MASK_BACKCHAIN): Removed definition.
12212         (TARGET_BACKCHAIN): Changed check.
12213         (TARGET_KERNEL_BACKCHAIN): New macro.
12214         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
12215         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
12216         "kernel-backchain".
12217         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
12218
12219         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
12220         as condition.  Adjusted for new stack layout.
12221
12222         * doc/invoke.texi: Added documentation for new option
12223         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
12224         "-mno-backchain".
12225
12226 2004-08-12  Paul Brook  <paul@codesourcery.com>
12227
12228         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
12229         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
12230
12231 2004-08-12  David Daney  <ddaney@avtrex.com>
12232
12233         * java/gcj.texi:  Add subsection on signal usage.
12234
12235 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
12236
12237         * expr.c (move_by_pieces): Set alignment for move to minimum of
12238         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
12239         alignment, but not less than the original alignment.
12240         (move_by_pieces_ninsns): Same.
12241         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
12242         (store_by_pieces_1): Same.
12243
12244 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
12245
12246         PR tree-optimization/16867
12247         * tree.c (is_global_var): New function.
12248         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
12249         Call is_global_var.
12250         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
12251         Update all users.
12252         (is_global_var): Declare.
12253         * tree-dfa.c (dump_variable): Display global and addressable
12254         attributes.
12255         (add_referenced_var): Clarify documentation when marking
12256         variables call-clobbered.
12257         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
12258         instead of needs_to_live_in_memory.
12259         (mark_call_clobbered): If the variable is a tag, mark it
12260         DECL_EXTERNAL.
12261         * tree-gimple.c (is_gimple_reg): Don't check for
12262         TREE_ADDRESSABLE.
12263         (is_gimple_non_addressable): Likewise.
12264         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
12265         needs to be marked call-clobbered.
12266         (setup_pointers_and_addressables): Call is_global_var instead
12267         of needs_to_live_in_memory.
12268         * tree-ssa-dce.c (need_to_preserve_store): Remove.
12269         Update all users with is_global_var.
12270         (mark_stmt_if_obviously_necessary): Fix processing of aliased
12271         stores.  Don't check the virtual definitions.  Rather, check
12272         whether the store is going into global memory.
12273         (find_obviously_necessary_stmts): Get the symbol from the PHI
12274         result.
12275         * tree-ssa-operands.c (get_call_expr_operands): Do not add
12276         clobbering may-defs if the call does not have side effects.
12277
12278 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
12279
12280         PR c++/16276
12281         * output.h (default_function_rodata_section,
12282         default_no_function_rodata_section): New prototypes.
12283         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
12284         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
12285         (TARGET_ASM_OUT): Add it.
12286         * varasm.c (default_function_rodata_section,
12287         default_no_function_rodata_section): New functions.
12288         * final.c (final_scan_insn): Call
12289         targetm.asm_out.function_rodata_section instead of
12290         readonly_data_section.
12291         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
12292         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12293         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12294         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12295         Likewise.
12296         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12297         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12298         Likewise.
12299         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12300         Likewise.
12301         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12302         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12303         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
12304
12305 2004-08-12  Paul Brook  <paul@codesourcery.com>
12306
12307         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
12308         frame info.
12309         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
12310         DWARF2_UNWIND_INFO.
12311
12312 2004-08-12  Ben Elliston  <bje@au.ibm.com>
12313
12314         PR target/16286
12315         * config/rs6000/altivec.h: Change vector to __vector throughout.
12316         (Except for the `vector' macro itself).
12317
12318 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
12319
12320         * genpreds.c: Add capability to generate predicate bodies as
12321         well as function prototypes.  Write function prototypes for
12322         the generic predicates too.
12323         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
12324         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
12325         (write_match_code, write_predicate_expr, write_one_predicate_function)
12326         (parse_option): New functions.
12327         (output_predicate_decls): Delete.
12328         (main): Read the machine description, process DEFINE_PREDICATE or
12329         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
12330         as appropriate.
12331
12332         * genrecog.c (struct decision_test): Replace index with
12333         struct pred_data pointer.
12334         (next_index): Remove, unused.
12335         (pred_table, preds, special_mode_pred_table): Delete.
12336         (compute_predicate_codes, process_define_predicate): New functions.
12337         (validate_pattern, add_to_sequence, write_switch): Update for
12338         new data structures.
12339         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12340         Check both error_count and have_error.
12341
12342         * gensupport.c (in_fname, first_predicate): New globals.
12343         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
12344         (predicate_table, last_predicate, old_pred_table)
12345         (old_special_pred_table): New statics.
12346         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
12347         (add_predicate, init_predicate_table): New functions.
12348         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12349         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
12350         it or max_include_len.  Call init_predicate_table.
12351         (read_rtx): Run the predicate queue after the attribute queue
12352         but before all the others.
12353         * gensupport.h (in_fname, struct pred_data, first_predicate)
12354         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
12355         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
12356         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
12357         * dummy-conditions.c: Don't include bconfig.h, system.h,
12358         coretypes.h, tm.h, or system.h.  Do include stddef.h.
12359         Duplicate declaration of struct c_test from gensupport.h.
12360
12361         * Makefile.in (OBJS-common): Add insn-preds.o.
12362         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
12363         (insn-preds.c, insn-preds.o): New rules.
12364         (s-preds): Also generate insn-preds.c.
12365         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
12366         Update dependencies.
12367         (print-rtl.o, print-rtl1.o): Correct dependencies.
12368
12369         * recog.h: Delete prototypes of predicate functions.
12370
12371         * doc/md.texi (Predicates): New section with complete
12372         documentation of operand/operator predicates.  Remove some
12373         incomplete documentation of predicates from other places.
12374         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
12375         PREDICATE_CODES; indicate that both are deprecated in favor
12376         of define_predicate/define_special_predicate.
12377
12378         * config/ia64/ia64.c: All predicate function definitions moved
12379         to ia64.md, except
12380         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
12381         (ia64_expand_load_address, ia64_expand_move):
12382         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
12383
12384         * config/ia64/ia64.md: All predicates now defined here.
12385         (symbolic_operand): Is now a special predicate.
12386
12387         * config/ia64/ia64.h: Declare ia64_section_threshold.
12388         (PREDICATE_CODES): Delete.
12389
12390 2004-08-12  Richard Henderson  <rth@redhat.com>
12391
12392         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
12393         * c-semantics.c (add_stmt): Set it.
12394         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
12395         before instantiating a variable sized type.
12396
12397 2004-08-12  Richard Henderson  <rth@redhat.com>
12398
12399         * stor-layout.c (round_up, round_down): Move ...
12400         * fold-const.c (round_up, round_down): ... here.  Use
12401         multiple_of_p to avoid any arithmetic at all.
12402
12403 2004-08-12  Richard Henderson  <rth@redhat.com>
12404
12405         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
12406         (gimplify_init_ctor_preeval_1): New.
12407         (gimplify_init_ctor_preeval): New.
12408         (gimplify_init_ctor_eval): New.
12409         (gimplify_init_constructor): Use them.  Always gimplify the LHS
12410         object first.
12411
12412 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
12413
12414         (This patch is part of merge of objc-improvements-branch
12415         into mainline.)
12416
12417         * doc/frontends.texi: Mention Objective-C++ in addition to
12418         Objective-C.
12419         * doc/install.texi: Add 'obj-c++' to list of configurable
12420         languages.
12421         * doc/invoke.texi: Rename Objective-C option headings to
12422         indicate they also apply to Objective-C++.  List file
12423         extensions for Objective-C++ sources.  Mention that
12424         ObjC and ObjC++ compilations may also use C and C++ options,
12425         respectively.  Point users to doc/standards.texi for
12426         further info on ObjC and ObjC++.
12427         * doc/sourcebuild.texi: Mention the objcp/ directory and
12428         the Objective-C++ sources it contains.
12429         * doc/standards.texi: Update link to Apple ObjC site;
12430         add link to gcc readings.html WWW doc.
12431
12432 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
12433
12434         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
12435         and 2004-07-14 changes.
12436
12437 2004-08-12  Paul Brook  <paul@codesourcery.com>
12438
12439         * doc/invoke.texi: Fix typo.
12440
12441 2004-08-11 Devang Patel  <dpatel@apple.com>
12442
12443         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
12444         and -no_dead_strip_inits_and_terms.
12445         (LINK_SPEC): Same.
12446         * doc/invoke.texi (Darwin Options): Document -dead_strip and
12447         -no_dead_strip_inits_and_terms.
12448
12449 2004-08-11  Paul Brook  <paul@codesourcery.com>
12450
12451         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
12452         (arm_load_pic_register): ... to this.
12453         * config/arm/arm.c (arm_finalize_pic): Rename ...
12454         (arm_load_pic_register): ... to this.  Always output insns at the
12455         current location.  Load via low reg in thumb mode.
12456         (arm_expand_prologue): Call arm_load_pic_register.
12457         (thumb_expand_prologue): Ditto.
12458         * config/arm/arm.h (FINALIZE_PIC): Remove.
12459         * config/arm/arm.md (builtin_setjmp_receiver): Call
12460         arm_load_pic_register.
12461
12462 2004-08-11  Paul Brook  <paul@codesourcery.com>
12463
12464         * arm.c (thumb_force_lr_save): Add prototype.
12465         (thumb_compute_save_reg_mask): New function.
12466         (thumb_find_work_register): New function.
12467         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
12468         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
12469         Don't clobber r3 when removing pretend args.
12470         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
12471         (thumb_output_function_prologue): Use new functions.
12472         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
12473         * arm.h (THUMB_REG_PUSHED_P): Remove.
12474
12475 2004-08-11  James E Wilson  <wilson@specifixinc.com>
12476
12477         PR rtl-optimization/16490
12478         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
12479         global_live_at_end for new basic block if already set for other blocks.
12480
12481 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
12482
12483         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
12484
12485         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
12486         (mfcr rlwinm rlwinm patterns): Set length to 12.
12487
12488 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
12489
12490         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
12491         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
12492         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
12493         (start_ssa_stmt_operands): Delete.
12494         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
12495         struct stmt_operands_d.
12496         (build_ssa_operands): New extern entry point.
12497         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
12498         building code, replace with create_ssa_artficial_load_stmt().
12499         * tree-ssa-operands.c (struct voperands_d): Delete.
12500         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
12501         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
12502         (free_uses, free_defs, free_vuses, free_v_may_defs,
12503         free_v_must_defs): Remove dealloc parameter.
12504         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
12505         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
12506         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
12507         vector comparisons, ssa_name reuse, and allocations here.
12508         (verify_start_operands): Delete.
12509         (finalize_ssa_stmt_operands): Set new operands by calling finalize
12510         routines.
12511         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
12512         (append_def, append_usei): Simplify to simple accumulation.
12513         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
12514         duplicates and simple accumulation.
12515         (free_ssa_operands): Free vectors in a stmt_operand structure.
12516         (build_ssa_operands): New. Create a new stmt_operand structure from
12517         a stmt and an old set of stmt_operands.
12518         (get_stmt_operands): Simplify and call build_ssa_operands.
12519         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
12520         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
12521         add_call_read_ops): Don't pass prev_vops around anymore.
12522         (note_addressable): Return if no stmt annotation.
12523         (copy_virtual_operands): Access v_may_def operands through a struct.
12524         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
12525         hash tables without treating the stmt as a real stmt.
12526         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
12527         v_may_def def and use through a struct instead of 2 array elements.
12528         (struct v_may_def_optype_d): Use v_may_def_operand_type.
12529         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
12530
12531 2004-08-11  Nick Clifton  <nickc@redhat.com>
12532
12533         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
12534         this funciton's behaviour.  Return true when the current function
12535         has a section attribute and -mlong-calls is in effect.
12536         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
12537         short-call marker when -mlong-calls is in effect and the function
12538         has a section attribute.
12539
12540 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
12541
12542         * stmt.c (expand_return): If asked to return the RESULT_DECL,
12543         just call expand_value_return on result_rtl.
12544
12545 2004-08-10  Richard Henderson  <rth@redhat.com>
12546
12547         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
12548         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
12549         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
12550         (add_location_or_const_value_attribute): ... not here.  Use
12551         loc_descriptor_from_tree if possible.
12552         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
12553         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
12554         values specially.
12555         (loc_descriptor_from_tree): New.  Update callers.
12556         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
12557         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
12558         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
12559         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
12560         and BUILT_IN_STACK_RESTORE.
12561         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
12562         * stmt.c (expand_stack_alloc): Remove.
12563         * tree-mudflap.c (mx_register_decls): Don't look for
12564         BUILT_IN_STACK_ALLOC.
12565         * tree-nested.c (convert_local_reference): Likewise.
12566         * tree.h (DECL_VALUE_EXPR): New.
12567
12568 2004-08-10  Richard Henderson  <rth@redhat.com>
12569
12570         * stor-layout.c (round_up): Check for 0/1 before dividing.
12571         (round_down): Likewise.
12572
12573         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
12574
12575 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
12576
12577         * config.gcc (arm*-*-eabi*): New target.
12578         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
12579         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12580         * expmed.c (expand_divmod): Try a two-valued divmod function as a
12581         last resort.
12582         * gthr.h: Remove bogus tokens at end of #pragma.
12583         * optabs.c (expand_twoval_binop_libfunc): New function.
12584         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
12585         (prepare_float_lib_cmp): Try reversing the condition.
12586         (debug_optab_libfuncs): New function.
12587         * optabs.h (expand_twoval_binop_libfunc): Declare.
12588         * config/arm/arm.c (arm_init_libfuncs): New function.
12589         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
12590         (TARGET_INIT_LIBFUNCS): Define it.
12591         * config/arm/arm.h (TARGET_BPABI): New macro.
12592         * config/arm/arm-protos.h
12593         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
12594         * config/arm/bpabi.S: New file.
12595         * config/arm/bpabi.c: Likewise.
12596         * config/arm/bpabi.h: Likewise.
12597         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
12598         (__aeabi_drsub): Likewise.
12599         (__aeabi_dsub): Likewise.
12600         (__aeabi_dadd): Likewise.
12601         (__aeabi_ui2d): Likewise.
12602         (__aeabi_i2d): Likewise.
12603         (__aeabi_f2d): Likewise.
12604         (__aeabi_dmul): Likewise.
12605         (__aeabi_ddiv): Likewise.
12606         (__aeabi_cdrcmple): Likewise.
12607         (__aeabi_cdcmpeq): Likewise.
12608         (__aeabi_cdcmple): Likewise.
12609         (__aeabi_dcmpeq): Likewise.
12610         (__aeabi_dcmplt): Likewise.
12611         (__aeabi_dcmple): Likewise.
12612         (__aeabi_dcmpge): Likewise.
12613         (__aeabi_dcmpgt): Likewise.
12614         (__aeabi_dcmpun): Likewise.
12615         (__aeabi_d2iz): Likewise.
12616         (__aeabi_d2uiz): Likewise.
12617         (__aeabi_d2f): Likewise.
12618         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
12619         (__aeabi_frsub): Likewise.
12620         (__aeabi_fsub): Likewise.
12621         (__aeabi_fadd): Likewise.
12622         (__aeabi_ui2f): Likewise.
12623         (__aeabi_i2f): Likewise.
12624         (__aeabi_fmul): Likewise.
12625         (__aeabi_fdiv): Likewise.
12626         (__aeabi_cfrcmple): Likewise.
12627         (__aeabi_cfcmpeq): Likewise.
12628         (__aeabi_cfcmple): Likewise.
12629         (__aeabi_fcmpeq): Likewise.
12630         (__aeabi_fcmplt): Likewise.
12631         (__aeabi_fcmple): Likewise.
12632         (__aeabi_fcmpge): Likewise.
12633         (__aeabi_fcmpgt): Likewise.
12634         (__aeabi_fcmpun): Likewise.
12635         (__aeabi_f2iz): Likewise.
12636         (__aeabi_f2uiz): Likewise.
12637         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
12638         (__aeabi_uidivmod): New function or alias.
12639         (__aeabi_idivmod): Likewise.
12640         (__aeabi_idiv0): Likewise.
12641         (__aeabi_ldiv0): Likewise.
12642         (__aeabi_llsr): Likewise.
12643         (__aeabi_lasr): Likewise.
12644         (__aeabi_llsl): Likewise.
12645         (bpabi.S): Include it.
12646         * config/arm/libgcc-bpabi.ver: New file.
12647         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
12648         (LINK_SPEC): Remove.
12649         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
12650         __aeabi_ulcmp.
12651         * config/arm/t-bpabi: New file.
12652         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
12653         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12654
12655 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
12656
12657         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
12658         * config/rs6000/rs6000.md (clrmemsi): New pattern.
12659         * config/rs6000/rs6000.c (expand_block_clear): New function.
12660         (expand_block_move): Convert alignment to bits.  Use SImode and
12661         HImode for unaligned addresses if not STRICT_ALIGNMENT.
12662
12663 2004-08-10  Caroline Tice  <ctice@apple.com>
12664
12665         * varasm.c (unlikely_section_label): New global variable.
12666         (unlikely_text_section_name): New global variable.
12667         (text_section):  Remove alignment statement.
12668         (unlikely_text_section): Remove alignment statement; use
12669         unlikely_section_label rather than hard-coded string.
12670         (assemble_start_function): Initialize unlikely_section_label and
12671         unlikely_text_section_name;  make sure cold section is properly
12672         aligned at start of function; output unlikely_section_label if
12673         appropriate.
12674
12675 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
12676
12677         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
12678         * config/s390/s390.c (s390_canonicalize_comparison): New function.
12679         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
12680         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
12681         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
12682         ("*tmqi_mem"): Remove SUBREG from pattern.
12683         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
12684         ("*andsi3_cconly"): Likewise.
12685
12686 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
12687
12688         PR target/16909
12689         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
12690
12691 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
12692
12693         * doc/sourcebuild.texi (compat testing): Document available test
12694         framework commands.  Use the preferred spelling of DejaGnu.
12695
12696 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
12697
12698         * lambda.h: Add matrix type, and prototypes for remainder of
12699         matrix and vector functions.
12700         (lambda_vector_mult_const): New function.
12701         (lambda_vector_negate): Ditto.
12702         (lambda_vector_add): Ditto.
12703         (lambda_vector_add_mc): Ditto.
12704         (lambda_vector_copy): Ditto.
12705         (lambda_vector_zerop): Ditto.
12706         (lambda_vector_equal): Ditto.
12707         (lambda_vector_min_nz): Ditto.
12708         (lambda_vector_first_nz): Ditto.
12709         (lambda_vector_matrix_mult): Ditto.
12710         * lambda-mat.c: New file.
12711         * Makefile.in (lambda-mat.o): New.
12712
12713 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
12714
12715         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
12716         after linking stmt into the program.
12717         (bsi_remove): Don't call modify_stmt.
12718         * tree-complex.c (update_complex_assignment,
12719         expand_complex_comparison): Call modify_stmt after changing the stmt.
12720         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
12721         removing the stmt.
12722         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
12723         the stmt, and only if needed.
12724         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
12725         expression.
12726         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
12727         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
12728         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
12729         (eliminate_redundant_computations): Don't pass an annotation. Call
12730         modify_stmt rather than setting the annotation directly.
12731         (record_equivalences_from_stmt): Remove unused local 'j'.
12732         (cprop_operand): Take a stmt rather than an annotation as a parameter.
12733         Call modify_stmt.
12734         (cprop_into_stmt): Pass stmt rather than annotation.
12735         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
12736         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
12737         modify_stmt.
12738         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
12739
12740 2004-08-10  Jason Merrill  <jason@redhat.com>
12741
12742         PR middle-end/16948
12743         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
12744         the RESULT_DECL.
12745
12746 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
12747
12748         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
12749         hash function.
12750
12751 2004-08-10  Roger Sayle  <roger@eyesopen.com>
12752
12753         * config/mips/mips.md: New reciprocal square root patterns that
12754         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
12755
12756 2004-08-10  Paul Brook  <paul@codesourcery.com>
12757
12758         * config/arm/arm-protos.h (arm_set_return_address,
12759         thumb_set_return_address): Add prototypes.
12760         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
12761         * config/arm/arm.c (arm_compute_func_type,
12762         use_return_insn, arm_compute_save_reg0_reg12_mask,
12763         arm_compute_save_reg_mask, arm_output_function_prologue,
12764         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
12765         current_function_calls_eh_return.
12766         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
12767         old eh code.
12768         (arm_set_return_address, thumb_set_return_address): New functions.
12769         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
12770         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
12771         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
12772         (epilogue): Use the stackadj register.
12773         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
12774
12775 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
12776
12777         PR target/3144
12778         * expr.c (move_by_pieces_ninsns): Add max_size argument.
12779         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
12780         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
12781         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
12782         but using MOVE_RATIO.
12783         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
12784         (can_store_by_pieces): Change max_size type to unsigned int.
12785         (store_by_pieces_1): Likewise.  Pass max_size to
12786         move_by_pieces_ninsns.
12787         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
12788         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
12789         to move_by_pieces_ninsns.
12790         (STORE_BY_PIECES_P): Define.
12791         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
12792         to move_by_pieces_ninsns.
12793         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
12794
12795         * config/i386/i386.h (CLEAR_RATIO): Define.
12796
12797 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12798
12799         * expr.c (expand_expr_real_1): Add back code that was not dead.
12800
12801 2004-08-09  Andrew Pinski  <apinski@apple.com>
12802
12803         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
12804         which is found to be compatible before returning the aliasing set.
12805
12806 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
12807
12808         * ggc-zone.c (struct alloc_zone): Add statistics counters.
12809         (always_collect): New flag.
12810         (ggc_alloc_zone_1): Update statistics support.  Don't include
12811         overhead in allocated counter.
12812         (sweep_pages): Update allocated counter for large pages.  Don'y
12813         include overhead.
12814         (ggc_collect_1): Always collect.
12815         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
12816         whether to collect.
12817         (SCALE, LABEL): New macros.
12818         (ggc_print_statistics): Add statistics support.
12819
12820 2004-08-09  Roger Sayle  <roger@eyesopen.com>
12821
12822         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
12823         (init_expmed): Fix potential overrun problem with "all.reg".
12824         (expand_sdiv2_pow2): Add an alternate implementation for signed
12825         division, if the target provides a suitable conditional move insn.
12826
12827 2004-08-09  Paul Brook  <paul@codesourcery.com>
12828         Richard Henderson  <rth@redhat.com>
12829
12830         * unwind-dw2.c (uw_install_context_1): Update target saved stack
12831         pointer.
12832
12833 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
12834
12835         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
12836         Check DATA limit only if there's no AS limit.  Ignore insanely
12837         low DATA limits.
12838         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
12839         but take care that the AS limit isn't overrun.
12840         * doc/invoke.texi: Update documentation of min-heapsize parameter.
12841
12842 2004-08-09  Jeff Law  <law@redhat.com>
12843
12844         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
12845         (tree-ssa-threadupdate.o): Add dependencies.
12846         * tree-ssa-threadupdate.c: New file.
12847         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
12848         (rewrite_vars_out_of_ssa): Remove prototype.
12849         (cleanup_tree_cfg): Returns a bool.
12850         * tree.h (thread_through_all_blocks): Prototype.
12851         * tree-outof-ssa.c  (SSANORM_*): Move into here.
12852         (remove_ssa_form): Now static.
12853         (rewrite_vars_out_of_ssa): Kill.
12854         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
12855         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
12856         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
12857         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
12858         anything was changed.
12859         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
12860         from the PHI's annotation rather than the edge associated with
12861         the new argument.
12862         * tree-ssa-dom.c (redirection_edges): Kill.
12863         (redirect_edges_and_update_ssa_graph): Kill.
12864         (tree_ssa_dominator_optimize): Do not reset forwardable flag
12865         for blocks anymore.  Do not initialize redirection_edges.
12866         Call thread_through_all_blocks.  Simplify code for cleanup
12867         of the CFG and iterating.  No longer call cleanup_tree_cfg
12868         outside the iteration loop.
12869         (thread_across_edge): No longer mess with forwardable blocks.
12870
12871 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
12872
12873         * explow.c (memory_address): Use memory_address_p.
12874         * recog.c (general_operand): Likewise.
12875         * regrename.c: No need to define REG_OK_STRICT.
12876
12877 2004-08-09  Steven Bosscher  <stevenb@suse.de>
12878
12879         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
12880         New timers.
12881         * gcse.c: Include timevar.h.
12882         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
12883         and global_copy_prop_count.
12884         (local_const_prop_count, local_copy_prop_count): New static globals.
12885         (gcse_main): Set the right timevar for each pass.
12886         (cprop_jump): Increment global_const_prop_count when a constant is
12887         propagated.  Add "GLOBAL" to dump output.
12888         (cprop_insn): Increment global_const_prop_count when a constant is
12889         propagated, or global_copy_prop_count when a copy is propagated.
12890         (do_local_cprop): Likewise for local_const_prop_count and
12891         local_copy_prop_count.
12892         (one_cprop_pass): Initialize const/cprop counters to zero.
12893         Print out results of local and global const/cprop separately.
12894         (bypass_block): Break over-length line.
12895         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
12896         for bb-reorder.o and tracer.o.
12897
12898 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12899
12900         * Makefile.in (GTFILES): Remove stmt.c
12901         (stmt.o): Do not depend on gt-stmt.h.
12902         * emit-rtl.c (emit_line_note): Do not call
12903         set_file_and_line_for_stmt.
12904         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
12905         do everything.
12906         * function.c (free_after_parsing): Do not free STMT field.
12907         (allocate_struct_function): Do not call init_stmt_for_function.
12908         (assign_stack_temp_for_type): Do not accept values of keep
12909         other than 0 or 1.
12910         (init_temp_slots): Do not initialize removed variables.
12911         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
12912         and X_VAR_TEMP_SLOT_LEVEL fields.
12913         * rtl.h (set_file_and_line_for_stmt): Remove.
12914         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
12915         struct stmt_status, cond_stack, case_stack, nesting_stack,
12916         nesting_depth, emit_locus, set_file_and_line_for_stmt,
12917         same_case_target_p, init_stmt_for_function, emit_nop,
12918         expand_start_cond, expand_start_elseif, expand_start_else,
12919         expand_elseif, expand_end_cond): Remove.
12920         (preserve_subexpressions_p): Remove references to CFUN->STMT.
12921         (expand_start_case, expand_end_case_type): Remove, merge into...
12922         (expand_case): ... this one, including other bits from
12923         expand_expr_real_1.  Inline same_case_target_p.  Turn members
12924         of CASE_STACK into local variables.
12925         (emit_case_bit_tests): Inline same_case_target_p.
12926         (add_case_node): Add HEAD argument, return new head of the list,
12927         do not handle default label here.
12928         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
12929         expand_start_elseif, current_nesting_level, expand_start_case,
12930         expand_end_case_type, expand_end_case, add_case_node,
12931         init_stmt_for_function, expand_elseif): Remove prototypes.
12932         (expand_case): Add prototype.
12933
12934 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12935
12936         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
12937
12938 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12939
12940         * expr.c (var_rtx): Remove.
12941         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
12942         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
12943         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
12944         Abort.
12945         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
12946         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
12947         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
12948
12949 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
12950         Ayal Zaks <zaks@il.ibm.com>
12951
12952         * common.opt (freschedule-modulo-scheduled-loops): New flag.
12953         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
12954         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
12955         when -freschedule-modulo-scheduled-loops flag is not specified.
12956         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
12957         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
12958         More accurate placing of insn in row of partial schedule.
12959         (ps_insn_find_column): New function.
12960         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
12961         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
12962         (schedule_region): Use sched_is_disabled_for_current_region_p.
12963         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
12964
12965 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12966
12967         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
12968         change.
12969
12970 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
12971
12972         * config/i386/i386.c (ix86_expand_clrmem): Properly call
12973         gen_strset for 64bit target.
12974
12975 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
12976
12977         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
12978
12979 2004-08-07  Jason Merrill  <jason@redhat.com>
12980
12981         Make return in memory explicit.
12982         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
12983         (assign_parm_find_data_types): Remove code for old front end
12984         invisible reference handling.
12985         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
12986         (expand_function_end): Likewise.
12987         * gimplify.c (gimplify_return_expr): Handle a dereferenced
12988         RESULT_DECL.
12989         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
12990         (declare_return_variable): Handle DECL_BY_REFERENCE.
12991         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
12992         (cp_genericize_r): Use convert_from_reference.
12993         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
12994         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
12995
12996         * c-common.c (c_warn_unused_result): Check TREE_USED before
12997         warning about a CALL_EXPR with an unused value.
12998
12999 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
13000
13001         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
13002         to the compiler.  Use -fshort-wchar by default.
13003
13004 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
13005
13006         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
13007         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
13008         threshhold.
13009         * doc/invoke.texi (param): Document min-crossjump-insns.
13010
13011 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
13012
13013         PR c/13282
13014         * c.opt (Wmissing-field-initializers): New option.
13015         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
13016         * c-typeck.c (pop_init_level): Guard the missing field warning with
13017         warn_missing_field_initializers rather than extra_warnings.
13018         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
13019         some of the explanation from...
13020         (-Wextra): ...here.  Say that the missing field warning can be
13021         seperately controlled by -Wmissing-field-initializers.
13022
13023 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
13024
13025         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
13026         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
13027         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
13028         * tree.def (ENTRY_VALUE_EXPR): Remove.
13029
13030 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
13031
13032         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
13033         the places where it is actually needed.  Don't use repz; stosb
13034         for -Os with sufficiently small constant sizes.
13035         For sufficiently small repz; stos{l,q} repeat counts use a sequence
13036         of stos{l,q} instructions instead.
13037
13038 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13039
13040         PR tree-optimization/16807
13041         * loop-iv.c (dump_iv_info): Dump invariants correctly.
13042         (iv_subreg, iv_extend): Express value of invariant purely in
13043         base field.
13044
13045 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
13046
13047         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
13048         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
13049
13050 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
13051
13052         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
13053         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
13054         pre_dec_operand.
13055         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
13056         pattern until reload is finished to allow better code generation
13057         and split them completely into separate instrunctions.
13058         (*andsi3_split): New pattern.
13059
13060 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
13061
13062         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
13063         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
13064         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13065         * tree.h (handle_dll_attribute): Declare.  Test
13066         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13067         * c-common.h (c_determine_visibility): Declare.
13068         * c-common.c (c_determine_visibility): New function.
13069         * c-decl.c (finish_decl): Use it.
13070         (finish_function): Likewise.
13071         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
13072         zero, by default.  Use #if, not #ifdef, to test it.
13073         * config/arm/arm.c (arm_attribute_table): Use
13074         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
13075         #if.
13076         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
13077         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13078         to 1.
13079         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
13080         * config/i386/i386.c (ix86_attribute_table): Use
13081         handle_dll_attribute for dllimport/dllexport.  Test
13082         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13083         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
13084         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13085         it to 1.
13086         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
13087         with #if.
13088         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13089         it to 1.
13090         * doc/extend.texi (dllexport): Clarify and correct documentation.
13091         (dllimport): Likewise.
13092         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
13093         handle_dll_attribute.
13094
13095 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13096
13097         * tree-ssa-loop-manip.c: New file.
13098         * Makefile.in (tree-ssa-loop-manip.o): Add.
13099         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
13100         Declare.
13101         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
13102         form.
13103         (tree_ssa_loop_done): Verify loop closed ssa form.
13104         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
13105
13106 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13107
13108         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
13109         pa_asm_output_aligned_local): New functions.
13110         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
13111         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
13112         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
13113         pa_asm_output_aligned_common.
13114         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13115         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
13116         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
13117         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13118         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
13119         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
13120         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13121         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
13122         common data.
13123
13124 2004-08-05  Andrew Pinski  <apinski@apple.com>
13125
13126         * objc/objc-act.c (build_objc_string_object): Mark the address
13127         expression as constant.
13128
13129 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
13130
13131         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
13132         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
13133         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
13134
13135 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13136
13137         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
13138         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
13139         out, and associated obsolete comments.
13140
13141 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
13142
13143         * tree.h (force_fit_type): Return a tree, take three flags.
13144         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
13145         TREE_CONSTANT_OVERFLOW here.
13146         (int_const_binop, const_binop): Adjust.
13147         (size_int_type): Do sign extension here.
13148         (fold_convert_const, optimize_bit_field_compare,
13149         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
13150         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
13151         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
13152
13153 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13154
13155         PR tree-optimization/16864
13156         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
13157         for ssa names without default_def.
13158
13159 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
13160
13161         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
13162         frame pointer, restore eax with an ebp-relative address.
13163
13164 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
13165
13166         PR 14516
13167         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
13168         * c-common.h (make_rtl_for_local_static): Delete.
13169         * c-decl.c (shadow_tag_warned): Clean up comment.
13170         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
13171         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
13172         * c-semantics.c (make_rtl_for_local_static): Delete.
13173         * expr.c (init_block_move_fn): Use set_user_assembler_name.
13174         (init_block_clear_fn): Likewise.
13175         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
13176         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
13177         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
13178         * tree.h (make_decl_rtl): Remove second parameter.
13179         (set_user_assembler_name): New.
13180         * varasm.c (set_user_assembler_name): New.
13181         (make_decl_rtl): Remove second parameter.  Update callers in many
13182         files.
13183
13184 2004-08-05  Adam Nemet  <anemet@lnxw.com>
13185
13186         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
13187         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
13188         to LynxOS 4.0.
13189         * gthr-lynx.h: New file.
13190         * config/lynx-ng.h: Remove file.
13191         * config/lynx.h: Update to LynxOS 4.0.
13192         * config/t-lynx: New file.
13193         * config/i386/lynx-ng.h: Remove file.
13194         * config/i386/lynx.h: Update to LynxOS 4.0.
13195         * config/rs6000/lynxbase.h: Remove file.
13196         * config/rs6000/lynx.h: Update to LynxOS 4.0.
13197         * config/rs6000/t-lynx: New file.
13198         * doc/install.texi (Options specification): Remove reference to
13199         LynxOS from systems where --with-gnu-as makes a difference.
13200
13201 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13202
13203         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
13204         __UINTMAX_TYPE__.
13205         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
13206         __INTMAX_MAX__.
13207         (c_cpp_builtins): Call it.
13208         * doc/cpp.texi: Update.
13209
13210 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
13211
13212         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
13213         cost.
13214
13215 2004-08-04  Jan Hubicka  <jh@suse.cz>
13216
13217         * basic-block.h (profile_staus): New global variable.
13218         * cfg.c (profile_status): Declare.
13219         (check_bb_profile): Break out from ....; use profile_status
13220         (dump_flow_info): ... here.
13221         * cfgbuild.c (find_basic_blocks): Set profile_status.
13222         * cfgexpand.c (tree_expand_cfg): Likewise.
13223         * predict.c (estimate_probability): Likewise.
13224         * profile.c (branch_prob): Likewise.
13225         * tree-cfg.c (build_tree_cfg): Likewise.
13226         (dump_function_to_file): Use check_bb_profile.
13227         * tree-pretty-print (dump_bb_header): Likewise.
13228         * tree-profile.c (do_tree_profiling): Cleanup.
13229
13230 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
13231
13232         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
13233         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
13234         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
13235         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
13236         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
13237         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
13238         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
13239         (ggc-none.o, errors.o): Move rule to generators section;
13240         correct dependencies.
13241         (min-insn-modes.o): Move rule to generators section; remove
13242         unnecessary explicit command; correct dependencies.
13243         (print-rtl.o, print-rtl1.o): Correct dependencies.
13244         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
13245         (mostlyclean): Update.
13246
13247         * errors.c: Include bconfig.h not config.h.  Correct comment.
13248         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
13249         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
13250         * print-rtl.c: Don't include tm_p.h.
13251
13252         * rtl.h: Move forward-decl of struct function down where it's
13253         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
13254         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
13255
13256 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13257             Jeff Law  <law@redhat.com>
13258
13259         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
13260         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
13261         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
13262         manipulate the duplicated ssa names.
13263         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
13264         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
13265         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
13266         New functions.
13267         (release_ssa_name): Do not release ssa names that may have multiple
13268         definitions.
13269         * tree.h (release_ssa_name_force, mark_for_rewrite,
13270         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
13271         marked_ssa_names): Declare.
13272         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
13273         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
13274         Update call to rewrite_ssa_into_ssa.
13275
13276 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
13277
13278         * defaults.h (TARGET_DECLSPEC): New macro.
13279         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
13280         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
13281         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
13282         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
13283         __declspec support.
13284         (TARGET_DECLSPEC): Define.
13285         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
13286         __declspec support.
13287         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
13288         __declspec support.
13289         (TARGET_DECLSPEC): Define.
13290         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
13291         __declspec support.
13292         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
13293         support.
13294         * doc/tm.texi (TARGET_DECLSPEC): Document.
13295
13296         * doc/extend.texi: Fix typo in comment.
13297
13298 2004-08-04  Paul Brook  <paul@codesourcery.com>
13299
13300         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
13301         (TARGET_CXX): Use it.
13302         * target.h (struct gcc_target): Add cdtor_returns_this.
13303         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
13304         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
13305         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
13306
13307 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
13308
13309         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
13310         low/high pair. Do range checking directly.
13311         (interpret_integer): Adjust.
13312
13313 2004-08-04  Nick Clifton  <nickc@redhat.com>
13314
13315         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
13316         GCC ABI.
13317         * doc/invoke.texi: Document this new switch and also the -mrenesas
13318         switch.
13319
13320 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
13321
13322         * cfglayout.c (insn_locators_initialize): Update the current
13323         location before initializing a location.
13324
13325 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13326
13327         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
13328         (dbxout_function_end): Return after emitting the "Lscope" symbol
13329         under the same conditions that this function formerly wasn't called.
13330         Add explanatory comments.
13331
13332         PR 14860
13333         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
13334         on the new decl.
13335
13336         PR 13956
13337         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
13338         functions, broken out of dbxout_block.
13339         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
13340         stabs too, if it contains symbols.  Use the begin_label and
13341         the Lscope label (emitted by dbxout_function_end) for the
13342         range of this block.
13343
13344 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13345
13346         * doc/install.texi: Update autoconf version requirements.
13347
13348 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13349
13350         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
13351         * recog.c (general_operand, immediate_operand, nonmemory_operand)
13352         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
13353         * regclass.c (record_reg_classes): Likewise.
13354         * reload.c (find_reloads): Likewise.
13355         * reload1.c (reload): Likewise.
13356
13357 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13358
13359         * gensupport.c (init_md_reader_args_cb): Renamed from
13360         init_md_reader_args.  Add third option, callback function for
13361         parsing program-specific options.  Add diagnosis of incorrect
13362         number of input files.
13363         (init_md_reader): Fold into init_md_reader_args_cb.
13364         (init_md_reader_args): Now a thin wrapper around
13365         init_md_reader_args_cb.
13366         * gensupport.h: Update prototypes.
13367
13368         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
13369         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
13370         * genrecog.c: No need to diagnose lack of an input file;
13371         init_md_reader_args will handle it.
13372         * genconditions.c: Likewise, and use init_md_reader_args.
13373         * genconstants.c: Likewise, and no need to call read_md_rtx.
13374
13375 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13376
13377         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
13378         declarations.
13379
13380 2004-08-03  Mike Stump  <mrs@apple.com>
13381
13382         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
13383         for frameworks.
13384         * doc/invoke.texi (Darwin Options): Update to reflect above.
13385
13386 2004-08-03  Roger Sayle  <roger@eyesopen.com>
13387
13388         PR middle-end/16790
13389         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
13390         truncations, not just global truncations.
13391
13392 2004-08-03  Andrew Pinski  <apinski@apple.com>
13393
13394         PR bootstrap/16865
13395         * loop-iv.c (simplify_using_assignment): Initialize lhs.
13396
13397 2004-08-03  Paul Brook  <paul@codesourcery.com>
13398
13399         * gcc/doc/install.texi: Document MPFR requirement.
13400
13401 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
13402
13403         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
13404         and mmap() explicitly instead of relying on preset autoconf cache
13405         variables.
13406         * configure: Regenerate.
13407
13408 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13409
13410         PR target/16570
13411         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
13412         to tmake_file.
13413         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
13414         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
13415         to tmake_file.
13416
13417         * config/i386/t-gmm_malloc: New file.
13418         * config/i386/t-pmm_malloc: Likewise.
13419
13420         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
13421
13422 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13423             Tanguy Fautrà <tfautre@pandora.be>
13424
13425         * config/i386/pmm_malloc.h: New file.
13426
13427 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
13428
13429         * config/i386/gmm_malloc.h: New file.
13430
13431 2004-08-03  Dale Johannesen  <dalej@apple.com>
13432
13433         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
13434         * c-common.c: Include opts.h.
13435         (c_common_get_alias_set): Fix check for a single input file.
13436         * toplev.c: Remove current_file_decl.
13437         * tree.h: Ditto.
13438
13439 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
13440
13441         * config.gcc (arm*-*-symbianelf*): New target.
13442         * config/arm/symbian.h: New file.
13443
13444         * gthr-gnat.c: Add visibility #pragmas.
13445         * gthr-gnat.h : Likewise.
13446         * gthr.h: Likewise.
13447         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
13448         (__ffsDI2): Likewise.
13449         (__clzSI2): Likewise.
13450         (__ctzSI2): Likewise.
13451         (__ctzDI2): Likewise.
13452         (__popcountSI2): Likewise.
13453         (__popcountDI2): Likewise.
13454         (__paritySI2): Likewise.
13455         (__parityDI2): Likewise.
13456         * libgcc2.h: Add visibility #pragmas.
13457         (__clzDI2): Add prototype.
13458         (__clzSI2): Likewise.
13459         (__ctzSI2): Likewise.
13460         (__ffsDI2): Likewise.
13461         (__ffsSI2): Likewise.
13462         (__ctzDI2): Likewise.
13463         (__popcountSI2): Likewise.
13464         (__popcountDI2): Likewise.
13465         (__paritySI2): Likewise.
13466         (__parityDI2): Likewise.
13467         * unwind-dw2-fde.h: Add visibility #pragmas.
13468         * unwind.h: Likewise.
13469
13470 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
13471             Dale Johannesen  <dalej@apple.com>
13472             Roger Sayle  <roger@eyesopen.com>
13473
13474         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
13475         constants more accurately.  Adjust costs for FMA instructions.
13476         Add cases for most logical and float operations.  Recurse into
13477         most operands.
13478
13479 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13480
13481         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
13482
13483 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
13484
13485         * ra-build.c (conflicts_between_webs): For webs that cross a call add
13486         conflicts to regs_invalidated_by_call.
13487
13488 2004-08-03  Paul Brook  <paul@codesourcery.com>
13489
13490         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
13491
13492 2004-08-03  Jan Hubicka  <jh@suse.cz>
13493
13494         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
13495         ARRAY_REF argument.
13496
13497 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13498
13499         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
13500         arm968es, arm10e, arm1020e, arm1022e.
13501         * invoke.texi: Update list of ARM cores.
13502         * arm-tune.md: Regenerate.
13503
13504 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
13505
13506         * arm/gentune.sh: New file.
13507         * arm/t-arm: New file.
13508         * arm/arm-tune.md: New file (autogenerated).
13509         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
13510         * arm.md (attribute tune): Delete.  Include arm-tune.md.
13511
13512 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
13513
13514         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
13515         penultimate parameter.  All callers adjusted.
13516         (struct prefix_list): Remove used_flag_ptr.
13517         (find_a_file): Do not set *pl->used_flag_ptr.
13518         (warn_B, warn_std_ptr): Remove.
13519
13520 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
13521             Mostafa Hagog <mustafa@il.ibm.com>
13522
13523         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
13524
13525 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
13526
13527         * dwarf2out.c (output_call_frame_info): Don't change data format
13528         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
13529         label.  Use 'true' not '1'.
13530         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
13531         required.
13532
13533 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13534
13535         * gdbinit.in: Reflect previous changes to rtunion_def.
13536
13537 2004-08-02  Roger Sayle  <roger@eyesopen.com>
13538
13539         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
13540         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
13541
13542 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13543
13544         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
13545         vec_p_reserve.
13546         * langhooks.h (lang_hooks::builtin_function): Rename parameter
13547         from "class" to "bt_class".
13548
13549 2004-08-02  Paul Brook  <paul@codesourcery.com>
13550
13551         PR rtl-optimization/15068
13552         * flow.c (init_propagate_block_info): Check condition is reversible.
13553
13554 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13555
13556         * gengtype.h (options::info): Change type to const char *.
13557         (enum gc_used_enum): Move out of struct type scope.
13558         * gengtype.c (create_option): Convert initializer for option::info to
13559         appropiate type.
13560         (adjust_field_type, walk_type, write_func_for_structure,
13561         write_root, write_roots): Remove pointless cast.
13562
13563 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
13564
13565         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
13566
13567 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13568
13569         * rtl.h (union rtunion_def): Have all members  start with the
13570         prefix "rt_".
13571         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
13572         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
13573         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
13574         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
13575         access.
13576         * gengtype.c (adjust_field_rtx_def): Likewise.
13577         * rtlanal.c (loc_mentioned_in_p): Likewise.
13578
13579 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
13580
13581         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
13582         Replace uses of mips/elf64.h with mips/elf.h
13583         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
13584         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
13585         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
13586         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
13587         (HANDLE_SYSV_PRAGMA): Delete.
13588         (ASM_OUTPUT_DEF): Fix formatting.
13589         * config/mips/elf64.h: Delete.
13590
13591 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
13592
13593         * config/ia64/ia64.c (got_symbolic_operand): Do require a
13594         symbol+offset operand to have its offset be zero mod 0x3fff
13595         when GOT entries are in use.  Clarify logic in SYMBOL_REF
13596         case.  Clarify comments.
13597         (ia64_expand_load_address): Split a symbol+offset load when
13598         the offset is nonzero mod 0x3fff, not 0x1fff.
13599
13600 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
13601
13602         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
13603         if trying to *store* to a non-offsettable address.
13604         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
13605         a nonoffsettable address.
13606         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
13607         Clean up.
13608         (movti_string): Don't move GPRs to a nonoffsettable address.
13609         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
13610
13611 2004-08-02  Ben Elliston  <bje@au.ibm.com>
13612
13613         PR target/16155
13614         * config/rs6000/altivec.h: Replace typeof with __typeof__.
13615
13616 2004-08-01  Richard Henderson  <rth@redhat.com>
13617
13618         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
13619         variable sized types.
13620
13621 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13622
13623         * doc/invoke.texi: In the MIPS options section, remove the passage
13624         saying that -mexplicit-relocs is usually disabled for -mabicalls
13625         -fno-unit-at-a-time.
13626         * config/mips/mips.c (override_options): Remove the code that enforced
13627         this rule.
13628
13629 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13630
13631         * config/mips/mips.md (cprestore): Provide two alternatives, one for
13632         an in-range offset and one for an out-of-range offset.  Wrap the latter
13633         in .set macro/.set nomacro if it's inside a .set nomacro block.
13634
13635 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13636
13637         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
13638         (mips_restore_gp): Declare.
13639         * config/mips/mips.c (mips_add_offset): Add a scratch register
13640         argument.  Reimplement in rtl only, reusing MIPS16 logic from
13641         mips_output_mi_thunk.
13642         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
13643         to mips_add_offset.
13644         (mips_gp_save_slot): Delete.
13645         (mips_restore_gp): New function.
13646         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
13647         * config/mips/mips.md (exception_receiver): Turn into a
13648         define_insn_and_split.  Use mips_restore_gp to do the split.
13649         (call_internal, call_value_internal, call_value_multiple_internal): Use
13650         mips_restore_gp to restore $gp.
13651
13652 2004-07-31  Andrew Pinski  <apinski@apple.com>
13653
13654         PR other/16842
13655         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
13656
13657 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13658
13659         * c-decl.c (diagnose_mismatched_decls): Give error for external
13660         redeclaration of identifier declared with no linkage, not just
13661         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
13662         error for redeclaration with no linkage.
13663
13664 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
13665             Fariborz Jahanian <fjahanian@apple.com>
13666
13667         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
13668         non-offsettable addresses even for DImode.
13669         (rs6000_split_multireg_move): Cope with non-offsettable addresses
13670         being moved into multiple GPRs.
13671
13672         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
13673         to 64.
13674         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
13675         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
13676         to 128.
13677         * config/rs6000/darwin-ldouble.c (isless): New macro.
13678         (inf): New macro.
13679         (nonfinite): New macro.
13680         (FPKINF): Delete.
13681         (_xlqadd): Completely rewrite.
13682         (_xlqmul): Correct overflow handling.
13683         (_xlqdiv): Correct overflow handling.
13684         * config/rs6000/darwin-ldouble-format: New file.
13685
13686 2004-07-30  Roger Sayle  <roger@eyesopen.com>
13687             Richard Henderson  <rth@redhat.com>
13688
13689         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
13690         9 into the equivalent lea instruction.
13691
13692 2004-07-30  Richard Henderson  <rth@redhat.com>
13693
13694         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
13695         with DECL_INITIAL if fb_lvalue.
13696         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
13697         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
13698         with <Cxxx>.
13699         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
13700
13701 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13702
13703         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
13704         pointer escapes through a function call, assume that the
13705         callee will dereference it.
13706         (add_pointed_to_var): Assume that VALUE is always an
13707         ADDR_EXPR.
13708         (collect_points_to_info_r): Only call add_pointed_to_var if
13709         the value is an ADDR_EXPR.
13710
13711 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13712
13713         * tree-ssa-alias.c (create_alias_map_for): Do not get the
13714         alias set of the inner type of ARRAY_TYPEs.
13715
13716 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13717
13718         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
13719         setting a non-register to UNDEFINED right before the call to
13720         set_lattice_value.
13721
13722 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13723
13724         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
13725
13726 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13727
13728         * tree-ssa.c (verify_flow_sensitive_alias_info): When
13729         comparing points-to sets of different pointers, make sure the
13730         second pointer is actually referenced in the code.
13731
13732 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
13733
13734         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
13735         (got_symbolic_operand): Remove unreachable code.
13736         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
13737         setjmp_operand; add entry for tls_symbolic_operand.
13738         * config/ia64/ia64-protos.h: Remove all prototypes of
13739         predicate functions.
13740
13741 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
13742
13743         * c-common.h (lang_post_pch_load): New variable.
13744         * c-pch.c (lang_post_pch_load): Define it.
13745         (c_common_read_pch): Use it.
13746         * cgraphunit.c (record_call_1): Give the front end a chance to
13747         record additional needed entities when a variable is marked as
13748         needed.
13749         * tlink.c (recompile_files): Robustify.
13750         (scan_linker_output): If a symbol is assigned to a file,
13751         but after recompilation is not present there, issue an error
13752         message.
13753
13754 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13755
13756         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
13757         Take orig_loop argument and pass it to set_level.
13758         (schedule_sm): Pass the correct orig_loop to force_move_till.
13759
13760 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13761
13762         * cfgloop.c (update_latch_info): Update dominator of the new block.
13763         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
13764         info.
13765         * dominance.c (verify_dominators): Check that the dominance tree is
13766         connected.
13767         (recount_dominator): Ignore unreachable blocks.
13768         (iterate_fix_dominators): Cleanup old dominance information before
13769         recomputing it.
13770
13771 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13772
13773         * tree-ssa-operands.c (get_expr_operands): Revert changes
13774         to ADDR_EXPR processing introduced by:
13775             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13776             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
13777
13778 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
13779
13780         * doc/implement-c.texi: Add C90 subclause references.  Point to
13781         preprocessor documentation instead of duplicating it.  Add points
13782         only present in C90.  Fill in documentation for all points.
13783
13784 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13785
13786         * pa.c (output_movb): Correct typo.
13787
13788 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
13789
13790         * ra.h (single_reg_in_regclass): Declare.
13791         * ra.c (single_reg_in_regclass): Define.
13792         (first_hard_reg): New.
13793         (init_ra): Initialize single_reg_in_regclass.
13794         * ra-colorize.c (ok_class): New.
13795         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
13796
13797 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
13798
13799         * gcov-io.h: Allow zero tag as EOF indicator.
13800         (gcov_is_eof): Remove.
13801         (gcov_truncate): Remove.
13802         * gcov-io.c (gcov_seek): Always SEEK_SET.
13803         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
13804         EOF tag.
13805         * coverage.c (read_counts_file): Don't use gcov_is_eof.
13806         * gcov-dump.c (dump_file): Likewise.
13807         * gcov.c (read_graph_file, read_count_file): Likewise.
13808
13809         * c-decl.c (complete_array_type): Don't gratuitously copy
13810         maxindex.  Check it always has a type.
13811
13812 2004-07-29  Steven Bosscher  <stevenb@suse.de>
13813
13814         * rtl.c (currently_expanding_to_rtl): New.
13815         * rtl.h (currently_expanding_to_rtl): Export it.
13816         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
13817
13818         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
13819         inliner hack.
13820         * config/sh/sh.c: Replace rtx_equal_function_value_matters
13821         with currently_expanding_to_rtl.
13822         * config/sh/sh.md: Likewise.
13823         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
13824
13825 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13826
13827         Introduce sh2a support.
13828         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13829         * config.gcc: Build multilibs for sh2a and sh2a-single by
13830         default.
13831         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
13832         default.  Split their tests out of the corresponding SH4
13833         multilibs.
13834         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
13835         multilibs for SH2a.
13836         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13837         * config.gcc: Handle sh2a multilibs and cpu selection.
13838         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
13839         * config/sh/t-mlib-sh2a: New.
13840         * config/sh/t-mlib-sh2a-nofpu: New.
13841         * config/sh/t-mlib-sh2a-single: New.
13842         * config/sh/t-mlib-sh2a-single-only: New.
13843         2004-07-09  Nick Clifton  <nickc@redhat.com>
13844         Issue 43400
13845         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
13846         -ml and -m2a are used together.
13847         2004-03-23  DJ Delorie  <dj@redhat.com>
13848         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
13849         when we have a double-sized FPU.
13850         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13851         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
13852         is set.
13853         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
13854         -msh2a-single and -msh2a-single-only
13855         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13856         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
13857         is set.
13858         2004-02-20  DJ Delorie  <dj@delorie.com>
13859         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
13860         2004-02-20  Fred Fish <fnf@redhat.com>,
13861         Corinna Vinschen <vinschen@redhat.com>
13862         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
13863         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
13864         2004-02-18  DJ Delorie  <dj@redhat.com>
13865         * config/sh/sh.c (broken_move): Add support for movi20.
13866         * config/sh/sh.h: Likewise.
13867         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
13868         * config/sh/sh.md (udivsi3_sh2a): New.
13869         (udivsi3): Call it.
13870         (divsi3_sh2a): New.
13871         (divsi3): Call it.
13872         (mul_r): New.
13873         (ashlsi3_sh2a): New.
13874         (ashrsi3_sh2a): New.
13875         (lshrsi3_sh2a): New.
13876         (movsi_i): Disable for sh2a.
13877         (movsi_ie): Add movi20.
13878         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
13879         sh2a, for -m2a-nofpu mode.
13880         2004-02-13  DJ Delorie  <dj@redhat.com>
13881         * config/sh/lib1funcs.asm: Handle double vs single better.
13882         * config/sh/sh.h: Likewise.
13883         2004-02-09  DJ Delorie  <dj@redhat.com>
13884         * config/sh/crt1.asm: Add support for sh2a.
13885         * config/sh/elf.h: Likewise.
13886         * config/sh/lib1funcs.asm: Likewise.
13887         * config/sh/sh.c: Likewise.
13888         * config/sh/sh.md: Likewise.
13889         * config/sh/sh.h: Likewise.
13890         * config/sh/t-sh: Likewise.
13891
13892 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13893
13894         * config/frv/frv.md (movqi_internal, movhi_internal,
13895         movsi_internal): Add backup alternatives for memory inputs.
13896
13897 2004-07-28  Matt Austern  <austern@apple.com>
13898
13899         * config/darwin.c (darwin_one_byte_bool): New global variable.
13900         * config/darwin.h (darwin_one_byte_bool): Declare.
13901         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
13902         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
13903         value of darwin_one_byte_bool.
13904         * doc/invoke.texi: Document -mone-byte-bool flag.
13905
13906 2004-07-28  Eric Christopher  <echristo@redhat.com>
13907
13908         * c-common.c (c_common_unsafe_for_reeval): Delete.
13909         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
13910         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
13911         * calls.c (fix_unsafe_tree): Delete.
13912         (expand_call): Delete code which used above.
13913         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
13914         * expr.c (expand_expr_real_1): Ditto.
13915         * fold-const.c (non_lvalue): Ditto.
13916         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13917         (lhd_unsafe_for_reeval): Ditto.
13918         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
13919         * langhooks.h (unsafe_for_reeval): Ditto.
13920         (unsave_expr_now): Adjust comment.
13921         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
13922         (estimate_num_insns_1): Ditto.
13923         * tree-pretty-print.c (dump_generic_node): Ditto.
13924         * tree.c (expr_align): Ditto.
13925         (unsave_expr): Delete.
13926         (unsafe_for_reeval): Ditto.
13927         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
13928         * tree.def (UNSAVE_EXPR): Delete.
13929         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13930
13931 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
13932
13933         * tree.h (enum tls_model): Move ...
13934         * coretypes.h: ... here.
13935
13936 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
13937
13938         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
13939
13940 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13941
13942         * cse.c (validate_canon_reg): New function, split out from...
13943         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
13944
13945 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13946
13947         * tree-ssa-alias.c (maybe_create_global_var): Don't just
13948         return if .GLOBAL_VAR has been created.
13949
13950 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13951
13952         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
13953         every variable that may have aliases, not just tags.
13954
13955 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
13956
13957         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
13958         move_from_CR_eq_bit.
13959         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
13960
13961
13962         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
13963         e500_flip_eq_bit.
13964
13965         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
13966         output_e500_flip_eq_bit.
13967
13968         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
13969         output_e500_flip_eq_bit.
13970         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
13971         output_e500_flip_eq_bit.
13972         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
13973         (print_operand): case D.  Get to EQ bit.
13974
13975 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
13976
13977         * gcov.c (function_summary): Add missing \n.
13978
13979 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13980
13981         Introduce sh4a support.
13982         * config.gcc: Handle sh4a multilibs and cpu selection.
13983         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
13984         * config/sh/t-mlib-sh4a: New.
13985         * config/sh/t-mlib-sh4al: New.
13986         * config/sh/t-mlib-sh4a-nofpu: New.
13987         * config/sh/t-mlib-sh4a-single: New.
13988         * config/sh/t-mlib-sh4a-single-only: New.
13989         2004-02-20  DJ Delorie  <dj@redhat.com>
13990         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
13991         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
13992         2003-08-22  Eric Christopher  <echristo@redhat.com>
13993         * config/sh/sh4a.md: Update for chip errata.
13994         2003-08-07  Eric Christopher  <echristo@redhat.com>
13995         * config/sh/sh4a.md: New file. sh4a processor description.
13996         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
13997         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
13998         of -m4a-nofpu.
13999         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
14000         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
14001         * doc/invoke.texi (SH Options): Document -m4al.
14002         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
14003         * config/sh/sh.c (expand_block_move): Remove commented-out code
14004         checked in by mistake.
14005         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
14006         single elements from SFmode vectors.
14007         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
14008         register.
14009         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
14010         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
14011         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
14012         sh_fsca_int2sf): Remove variable declarations.
14013         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
14014         sh_fsca_int2sf): New functions.
14015         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
14016         sh_fsca_int2sf_rtx): New static variables.
14017         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
14018         sh_fsca_int2sf): Declare.
14019         * config/sh/sh.md: Adjust.
14020         * doc/invoke.texi (SH Options): Document new options.
14021         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
14022         compatibility from SH4 code.
14023         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
14024         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
14025         early.
14026         (memory_movsrc_operand): Renamed to...
14027         (unaligned_load_operand): ... this.  Simplified.
14028         * config/sh/sh.h (PREDICATE_CODES): Adjust.
14029         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
14030         input operand to SImode, and adjust the others.  Introduce
14031         post-increment by peephole.
14032         * config/sh/sh.c (expand_block_move): Give the target address the
14033         same mode as the temp reg.
14034         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
14035         copying.
14036         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
14037         Introduce support for SH4a.
14038         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
14039         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
14040         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
14041         sh_fsca_int2sf): New.
14042         (sh_init_builtins): Initialize them.
14043         (print_operand): Support `d'.
14044         (expand_block_move): Use movua if src is misaligned.
14045         (memory_movsrc_operand): New.
14046         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
14047         and one of the SH4 macros.
14048         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
14049         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
14050         SELECT_SH4A_SINGLE): New.
14051         (TARGET_NONE): Add SH4A_BIT.
14052         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
14053         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
14054         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
14055         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
14056         (enum processor_type): Added PROCESSOR_SH4A.
14057         (PREDICATE_CODES): Add memory_movsrc_operand.
14058         * config/sh/sh.md: Removed unused variables.
14059         (attr cpu): Add sh4a.
14060         (attr type): Add movua, fsrra and fsca.
14061         (prefetch): New, for SH4.
14062         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
14063         (toggle_sz): Set type to fp.
14064         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
14065         (movua, extv, extzv): New.
14066         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
14067         and 4a-single-only.
14068
14069 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14070
14071         * tree-optimize.c (init_tree_optimization_passes): Schedule
14072         pass_may_alias right after the program is renamed into SSA.
14073         * tree-pass.h (PROP_alias): Define.
14074         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
14075         * tree-sra.c (pass_sra): Likewise.
14076         * tree-ssa-ccp.c (pass_ccp): Likewise.
14077         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
14078         * tree-ssa-dce.c (pass_dce): Likewise.
14079         * tree-ssa-dom.c (pass_dominator): Likewise.
14080         * tree-ssa-dse.c (pass_dse): Likewise.
14081         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
14082         * tree-ssa-loop-ch.c (pass_ch): Likewise.
14083         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
14084         * tree-ssa-pre.c (pass_pre): Likewise.
14085         * tree-tailcall.c (pass_tail_recursion): Likewise.
14086         * tree-ssa.c (pass_redundant_phi): Likewise.
14087         * tree-ssa-alias.c (aliases_computed_p): Remove.
14088         Update all users.
14089         (init_alias_info): Do not mark all type tags for renaming
14090         unconditionally.
14091         Clear may_aliases from every symbol.
14092         (setup_pointers_and_addressables): If a pointer has not been
14093         dereferenced and it had a type tag, clear it and mark the old
14094         tag for renaming.
14095
14096 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14097
14098         PR tree-optimization/16705
14099         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
14100         .GLOBAL_VAR.
14101
14102 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14103
14104         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
14105         check.
14106
14107         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
14108         don't make another one.
14109
14110         PR optimization/15077
14111         * function.h (struct function): Add field saved_static_chain_decl.
14112         Fix comment for static_chain_decl.
14113         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
14114         * tree-inline.h (save_body): Add new arg.
14115         * tree-optimize.c (tree_rest_of_compilation): Handle saving
14116         static_chain_decl.
14117
14118 2004-07-27  Richard Henderson  <rth@redhat.com>
14119
14120         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
14121         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
14122         is_gimple_addressable.
14123         * tree-gimple.c (is_gimple_addressable): Rename from
14124         is_gimple_addr_expr_arg; accept INDIRECT_REF.
14125         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
14126         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
14127         rename to is_gimple_addressable.
14128
14129 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
14130
14131         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
14132
14133 2004-07-27  Richard Henderson  <rth@redhat.com>
14134
14135         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
14136         before rounding.
14137
14138 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
14139
14140         * libgcc2.c: Change all conditionals testing
14141         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
14142         * libgcc2.h: Likewise.
14143         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
14144         TYPE_PRECISION of float80_type to 80.
14145         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
14146         of fpreg_type and float80_type to 80.
14147         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
14148         * config/m68k/netbsd-elf.h:
14149         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
14150         to evaluate to 80 whenever they would formerly have evaluated to 96.
14151         * config/i386/sco5.h: Remove unnecessary redefinition of
14152         LONG_DOUBLE_TYPE_SIZE.
14153         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
14154         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
14155         XFmode, with a bitsize of 80.  Update commentary.
14156         * config/ia64/ia64-modes.def: Likewise.
14157         * config/m68k/m68k-modes.def: Likewise.
14158
14159 2004-07-27  Steven Bosscher  <stevenb@suse.de>
14160
14161         * cfgexpand.c (tree_expand_cfg): Fix comment.
14162
14163         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
14164         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
14165         Remove.
14166         (prepare_function_start): Don't set rtx_equal_function_value_matters.
14167         * integrate.c (copy_rtx_and_substitute): Don't test for it.
14168         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
14169         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
14170         here again.  Update leading comment.
14171         * rtl.c (rtx_equal_function_value_matters): Remove.
14172         (rtx_equal_p): Don't test for it.
14173         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
14174         Likewise.
14175
14176         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
14177         * rtl.c (note_insn_name): Likewise.
14178         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
14179         * final.c (final_scan_insn): Likewise.
14180
14181         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
14182         * passes.c (rest_of_handle_eh): Do it here.
14183
14184         * stmt.c (struct nesting): Remove struct nesting block member.
14185         (struct stmt_status): Remove x_block_start_count field.
14186         (current_block_start_count): Remove.
14187
14188 2004-07-27  Brian Booth  <bbooth@redhat.com>
14189
14190         * tree-optimize.c (register_one_dump_file): Update condition that uses
14191         static_pass_number.
14192         (dup_pass_1): Replace with...
14193         (next_pass_1): This.
14194         (NEXT_PASS): Call next_pass_1.
14195         (DUP_PASS): Remove.
14196         (init_tree_optimization_passes): Remove uses of DUP_PASS.
14197         (execute_one_pass): Update condition that uses
14198         static_pass_number.
14199         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
14200         integer.
14201
14202 2004-07-27  Nick Clifton  <nickc@redhat.com>
14203
14204         * config/m32r/m32r.c: Include integrate.h in order to get the
14205         prototype for get_hard_reg_initial_val().
14206
14207         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
14208         and tidy up indentation.
14209         (final_presence_set): Use absence_set instead, so that if there is
14210         nothing in the "o" pipe the "s" pipe can be scheduled.
14211
14212 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
14213
14214         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
14215         don't have PT_VARS nor PT_MALLOC set.
14216         Clear name tag from pointers that have not been dereferenced.
14217         (set_pt_anything, set_pt_malloc): Forward declare.
14218         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
14219         not type compatibility when determining if a pointer can be
14220         copy propagated.
14221
14222 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
14223
14224         * expr.h (canonicalize_condition, get_condition): Add an int argument.
14225         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
14226         it to check whether the condition is still valid at the jump insn.
14227         * ifcvt.c (noce_get_condition): Likewise.
14228         (noce_get_alt_condition): Update call to canonicalize_condition.
14229         * loop-iv.c (simplify_using_initial_values): Update call to
14230         get_condition.  Remove FIXME.
14231         (check_simple_exit): Update call to get_condition.
14232         * loop-unswitch.c (may_unswitch_on): Likewise.
14233         * loop.c (check_dbra_loop): Likewise.
14234         (canonicalize_condition, get_condition): Add an argument to say whether
14235         the condition must still be valid at INSN.
14236         (get_condition_for_loop): Update call to get_condition.  Require that
14237         the condition be valid at INSN.
14238         * predict.c (estimate_probability): Update call to get_condition.
14239         Remove unused earliest parameter.
14240         (expected_value_to_br_prob): Update call to canonicalize_condition.
14241
14242 2004-07-26  Eric Christopher  <echristo@redhat.com>
14243
14244         * tree-dfa.c (add_referenced_var): Register initializers of global
14245         variables.
14246
14247 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
14248
14249         * config/i386/i386.c (function_arg): Always treat 8-
14250         and 16-byte wide vectors the same, even if MMX/SSE
14251         are disabled.
14252         (contains_128bit_aligned_vector_p): Add comment.
14253
14254 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
14255
14256         * ra.h (enum node_type): Rename to:
14257         (enum ra_node_type).
14258         * ra-colorize.c: Likewise.
14259
14260 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
14261
14262         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
14263         after simplifying the jump.
14264
14265 2004-06-26  Richard Henderson  <rth@redhat.com>
14266
14267         * calls.c (combine_pending_stack_adjustment_and_call): Make
14268         preferred_unit_stack_boundary argument unsigned.  Make
14269         unadjusted_alignment unsigned.
14270         (expand_call): Make preferred_stack_boundary and
14271         preferred_unit_stack_boundary variables unsigned.
14272         * function.c (assign_stack_local_1): Make alignment unsigned.
14273         * function.h (struct function): Make stack_alignment_needed,
14274         preferred_stack_boundary unsigned.
14275         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
14276         (ix86_compute_frame_layout): Make stack_alignment_needed,
14277         preferred_alignment variables unsigned.
14278         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
14279
14280 2004-07-26  Tom Tromey  <tromey@redhat.com>
14281
14282         * tree.h: Fix typo in comment.
14283
14284 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
14285
14286         PR bootstrap/12804
14287         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
14288         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
14289         (ggc_free): Remove incorrect freeing.
14290         (sweep_pages): Advance PP for large pages.  Fix indentation.
14291
14292 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
14293
14294         PR rtl-optimization/16643
14295         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
14296         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
14297         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
14298         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
14299         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
14300         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14301         * rtl.h (tracer): Add a flags parameter.
14302         * tracer.c (tracer): Pass it to cfg_layout_initialise.
14303         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
14304         (rest_of_handle_reorder_blocks): Update calls to tracer and
14305         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
14306         (rest_of_handle_tracer): Pass 0 to tracer.
14307         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
14308
14309 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
14310
14311         PR target/16239
14312         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
14313         f->f.
14314
14315 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
14316
14317         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
14318         (BINFO_BASE_ACCESS): Adjust.
14319         (BINFO_BASE_ACCESS_APPEND): New.
14320         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
14321         * dbxout.c (dbxout_type): Adjust binfo access accessing.
14322         * dwarf2out.c (gen_member_die): Likewise.
14323         * tree-dump.c (deque_and_dump): Likewise.
14324
14325 2004-07-26  Falk Hueffner  <falk@debian.org>
14326
14327         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
14328         costs.
14329
14330 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14331
14332         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
14333         value off of the stack if TARGET_USE_FFREEP.
14334
14335 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14336
14337         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
14338         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
14339         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
14340         check on invocation of XRESIZEVEC ().
14341
14342 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14343
14344         * c-common.c (disable_builtin_function): Rename variable n to
14345         new_disabled_builtin.
14346         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
14347         Rename local variable old to old_decl.
14348         * gensupport.c (shift_output_template): Rename parameter old to src.
14349         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
14350         old_rtx and newx to new_rtx.
14351
14352 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14353
14354         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
14355         of c-pragma.h.
14356         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
14357         enum cpp_ttype.
14358         * c-lex.c: Likewise.
14359
14360 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14361
14362         * fold-const.c (constant_boolean_node): Make extern.
14363         (make_range): Wrap long lines.
14364         (fold_cond_expr_with_comparison): Remove unnecessary call to
14365         pedantic_non_lvalue.  Add missing calls to fold_convert.
14366         (fold_truthop): Add missing calls to fold_convert.
14367         (fold): Likewise.
14368         * tree.h (constant_boolean_node): Add prototype here.
14369         * builtins.c (expand_builtin_strncmp): Add missing calls to
14370         fold_convert.
14371         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
14372         Call fold_convert and constant_boolean_node to correct types.
14373         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
14374         missing call to fold_convert to correct types.
14375
14376 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
14377             Brian Ryner  <bryner@brianryner.com>
14378
14379         PR c++/9283
14380         PR c++/15000
14381         * c-common.c (c_common_attribute_table): Allow
14382         handle_visibility_attribute to be called for types.
14383         (handle_visibility_attribute) When given a type, set the visibility
14384         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
14385         so that we can check later whether the attribute was present. Added
14386         warning if attribute applied to non class type.
14387         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
14388         decls and checking that they are consistent.
14389         * common.opt: Added -fvisibility.
14390         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
14391         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
14392         * flags.h, tree.h: Added assorted support defines for overall patch
14393         * opts.c: Added parsing support for -fvisibility.
14394         * tree.c (build_decl): Set visibility for all decls to be whatever
14395         is in force at that time.
14396         * varasm.c (default_binds_local_p_1): Reworked logic determining
14397         when to make a symbol locally bound.
14398         * doc/invoke.texi: Added documentation for -fvisibility and
14399         -fvisibility-inlines-hidden.
14400
14401 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14402
14403         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
14404         * c-common.c: Add missing casts from void * to other types.
14405         * c-decl.c: Likewise.
14406         * c-format.c: Likewise.
14407         * c-lex.c: Likewise.
14408         * c-pragma.c: Likewise.
14409         * c-typeck.c: Likewise.
14410         * defaults.h: Likewise.
14411         * genconstants.c: Likewise.
14412         * gengtype-lex.l: Likewise.
14413         * genmodes.c: Likewise.
14414         * read-rtl.c: Likewise.
14415         * rtl.c: Likewise.
14416
14417 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14418
14419         * bitmap.c: Use type-safe memory allocation macros from libiberty.
14420         * c-common.c: Likewise.
14421         * c-decl.c: Likewise.
14422         * c-lang.c: Likewise.
14423         * c-lex.c: Likewise.
14424         * c-opts.c: Likewise.
14425         * c-parse.in: Likewise.
14426         * c-typeck.c: Likewise.
14427         * genconditions.c: Likewise.
14428         * gengtype-lex.l: Likewise.
14429         * gengtype-yacc.y: Likewise.
14430         * gengtype.c: Likewise.
14431         * genmodes.c: Likewise.
14432         * gensupport.c: Likewise.
14433         * read-rtl.c: Likewise.
14434         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
14435         htab_find_slot().
14436
14437 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14438
14439         * c-decl.c (groktypename, groktypename_in_param_context): Rename
14440         variable typename to type_name.
14441         * c-lex.c (interpret_float): Likewise.
14442
14443 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14444
14445         * convert.c (convert_to_real, convert_to_integer,
14446         convert_to_complex): Replace calls to build with calls to buildN.
14447         * coverage.c (tree_coverage_counter_ref): Likewise.
14448         * dojump.c (do_jump): Likewise.
14449         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
14450         * emit-rtl.c (component_ref_for_mem_expr,
14451         set_mem_attributes_minus_bitpos): Likewise.
14452         * explow.c (update_nonlocal_goto_save_area): Likewise.
14453         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
14454         expand_mult_add): Likewise.
14455         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
14456         store_constructor, get_inner_reference, expand_expr_real_1,
14457         try_casesi, try_tablejump): Likewise.
14458         * function.c (expand_function_start): Likewise.
14459         * stmt.c (emit_case_bit_tests, expand_end_case_type,
14460         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
14461         * stor-layout.c (place_union_field, layout_type): Likewise.
14462         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
14463         * varasm.c (copy_constant): Likewise.
14464
14465 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14466
14467         * c-common.c: Rename all identifiers named `new'.
14468         * c-decl.c: Likewise.
14469         * gensupport.c: Likewise.
14470         * simplify-rtx.c: Likewise.
14471         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
14472         with XNEW().
14473         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
14474         with XNEWVEC().
14475
14476 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14477
14478         PR c/15360
14479         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
14480         declarations until after calling pushdecl.
14481         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
14482         "extern" and not on whether the declaration is initialized.
14483
14484 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14485
14486         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
14487         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
14488         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
14489         "cpplib.h", "c-pragma.h", "c-common.h".
14490         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
14491         (solaris_register_pragmas): New functions.
14492         * config/sol2-protos.h: New file.
14493         * config/sol2.c: New file.
14494         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
14495         (REGISTER_TARGET_PRAGMAS): New macros.
14496         (solaris_pending_aligns, solaris_pending_inits)
14497         (solaris_pending_finis): New variables.
14498         * config/t-sol2 (sol2-c.o): Update dependencies.
14499         (sol2.o): New rule.
14500         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
14501         SUBTARGET_INSERT_ATTRIBUTES.
14502         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
14503         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14504         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14505         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14506         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14507         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14508         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14509         * config/sparc/sparc.c (sparc_attribute_table): New.
14510         (TARGET_INSERT_ATTRIBUTES): Define in terms of
14511         SUBTARGET_INSERT_ATTRIBUTES.
14512         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
14513         is defined.
14514         * doc/extend.texi (Solaris Pragmas): New section.
14515
14516 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14517
14518         * c-common.c: Rename all identifiers named `class' to `cl'.
14519         * c-common.h: Likewise.
14520         * c-parse.in: Likewise.
14521         * c-typeck.c: Likewise.
14522         * genmodes.c: Likewise.
14523         * real.c: Likewise.
14524         * real.h: Likewise.
14525         * recog.c: Likewise.
14526         * recog.h: Likewise.
14527         * regrename.c: Likewise.
14528         * tree.h: Likewise.
14529         * c-common.c (builtin_function_2): Change type of 5th parameter from
14530         int to enum built_in_function. Change type of 8th parameter from int
14531         to bool.
14532         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
14533         with GGC_CNEW().
14534         * c-typeck.c (convert_arguments): Change type of formal_prec from
14535         int to unsigned int.
14536         * genmodes.c (blank_mode): Make a few negative constants unsigned.
14537         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
14538         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
14539         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
14540         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
14541         iterator to for_all_modes () instead of an enum because enums can't
14542         be incremented in C++.
14543
14544
14545 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14546
14547         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
14548         hard registers.
14549
14550 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14551
14552         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
14553         Handle ARRAY_RANGE_REF like ARRAY_REF.
14554
14555 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14556
14557         * c-typeck.c (digest_init): Don't allow arrays of signed or
14558         unsigned variants of wchar_t to be initialized by wide string
14559         constants.  Do allow arrays of enumerated types compatible with
14560         wchar_t to be initialized by wide string constants.  Refine tests
14561         distinguishing wide and narrow strings and arrays.  Give specific
14562         error for arrays of other integer types initialized by string
14563         constants.
14564         (output_init_element, process_init_element): Check for
14565         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
14566         initializing with string constants.
14567
14568 2004-07-25  Richard Henderson  <rth@redhat.com>
14569
14570         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
14571         on the RESULT_DECL.
14572         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
14573         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
14574         DECL_IGNORED_P to new decl.
14575
14576 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
14577
14578         * config/ia64/ia64.c (general_xfmode_operand)
14579         (destination_xfmode_operand): Delete.
14580         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
14581         * config/ia64/ia64.md (*movxf_internal): Use general_operand
14582         and destination_operand.
14583
14584 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14585
14586         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
14587         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
14588
14589 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14590             Zack Weinberg  <zack@codesourcery.com
14591
14592         PR 16684
14593         * c-decl.c (diagnose_mismatched_decls): Don't issue a
14594         redundant-declaration warning the first time a builtin is
14595         declared explicitly.
14596
14597 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14598
14599         * tree.h (staticp): Change return type to bool.
14600
14601 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14602
14603         * c-common.c (c_staticp): Last episode of the staticp saga.
14604
14605 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14606
14607         * c-common.h (c_staticp): Change return type from int to bool.
14608         * tree.c (staticp): Likewise.
14609         * langhooks.h (staticp): Likewise.
14610
14611 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14612
14613         * langhooks-def.h (lhd_staticp): Change return type from int to
14614         bool in prototype to match definition.
14615
14616 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14617
14618         * system.h (bool, true, false): Don't redefine as preprocessor macros
14619         in C++.
14620
14621 2004-07-24  Roger Sayle  <roger@eyesopen.com>
14622
14623         * expmed.c (init_expmed): A signed modulus by a power of two is
14624         considered cheap if its less than or equal to four instructions.
14625
14626 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14627
14628         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
14629         GGC_CNEWVAR): New macros.
14630
14631 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14632
14633         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
14634         lists.
14635         * c-decl.c: Likewise.
14636         * c-format.c: Likewise.
14637         * c-lex.c: Likewise.
14638         * c-opts.c: Likewise.
14639         * c-pragma.c: Likewise.
14640         * c-typeck.c: Likewise.
14641         * gencheck.c: Likewise.
14642         * genconditions.c: Likewise.
14643         * genconfig.c: Likewise.
14644         * genflags.c: Likewise.
14645         * gengtype.c: Likewise.
14646         * gensupport.c: Likewise.
14647         * ggc-none.c: Likewise.
14648         * langhooks.c: Likewise.
14649         * statistics.h: Likewise.
14650         * stub-objc.c: Likewise.
14651         * java/decl.c: Likewise.
14652
14653 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
14654
14655         * config/m68k/m68k.c (output_scc_di): Fix coding style.
14656         (symbolic_operand): Fix prototype.
14657         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
14658         * config/m68k/m68k.md: Add constants for registers a0 and sp and
14659         use them, change from the "{...}" syntax to the simpler {...}
14660         syntax.
14661         (*cfv4_extendqisi2): Fix destination predicate.
14662         * config/m68k/m68k-protos.h: Remove various declarations also
14663         generated via PREDICATE_CODES.
14664
14665 2004-07-23  Mike Stump  <mrs@apple.com>
14666
14667         * c-typeck.c (convert_for_assignment): Tightened up pointer
14668         converstions that differ in signedness.
14669
14670 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14671
14672         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
14673
14674 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14675
14676         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
14677         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
14678
14679         * gimplify.c (gimplify_compound_lval): Check for no handled
14680         operations, rather than checking for explicit list of nodes.
14681         (is_gimple_addr_expr_arg_or_indirect): New function.
14682         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
14683         redundant setting of TREE_INVARIANT.
14684         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
14685         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
14686
14687 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
14688
14689         PR tree-optimization/16688
14690         PR tree-optimization/16689
14691         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
14692         unnecessary initialization of 'tag'.
14693         (get_tmt_for): Check that the new type tag has the same alias
14694         set as the pointed-to type.
14695         (group_aliases): Only regular variables need to be removed
14696         from the alias set of a name tag.
14697         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
14698         propagation if the two types are not compatible.
14699         (merge_alias_info): Rename from replace_ssa_names_ann.
14700         Add more checking.
14701         (replace_exp_1): If both arguments are SSA_NAMEs, check that
14702         the propagation can be done.
14703         Only call merge_alias_info on pointers.
14704         (propagate_value): Likewise.
14705         * tree-ssa-copyrename.c: Include langhooks.h.
14706         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
14707         to do the merging.
14708         Do not coalesce variables with incompatible types.
14709         (rename_ssa_copies): Call replace_ssa_name_symbol.
14710         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
14711         the same type as the underlying _DECL.
14712         * tree-ssanames.c (replace_ssa_name_symbol): New function.
14713         * tree.h (replace_ssa_name_symbol): Declare.
14714
14715 2004-07-23  Richard Henderson  <rth@redhat.com>
14716
14717         PR c++/16277
14718         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
14719         unshare it properly.
14720         (gimplify_modify_expr_rhs): Push assignment from a conditional into
14721         the conditional for all non-register types.
14722
14723 2004-07-23  Richard Henderson  <rth@redhat.com>
14724
14725         * expr.c (expand_expr_real_1): Don't handle non-local variables.
14726         * expr.h (fix_lexical_addr): Remove.
14727         * function.c (NEED_SEPARATE_AP): Remove.
14728         (fix_lexical_addr): Remove.
14729         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
14730         not null decl_function_context.
14731         (create_alias_vars): Likewise.
14732         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
14733         (simple_goto_p): Likewise.
14734         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
14735         * tree-ssa-ccp.c (get_default_value): Likewise.
14736         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14737         * tree.c (needs_to_live_in_memory): Likewise.
14738         * tree-flow-inline.h (may_be_aliased): Move...
14739         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
14740         when TREE_STATIC variables may be addressable.
14741
14742 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
14743
14744         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
14745
14746 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14747
14748         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
14749         bitmap contents if GENERATOR_FILE is defined.
14750         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
14751         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
14752
14753 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
14754
14755         * c-decl.c (start_function): Form composite type of function types
14756         rather than copying type from previous prototype declaration.
14757
14758 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
14759
14760         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
14761         the const qualifier for the second argument in the C++ functions.
14762
14763         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
14764         specific pointer types.
14765
14766         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
14767         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
14768         for vector bool and/or vector pixel, add C++ and C missing support.
14769         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
14770         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
14771         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
14772         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
14773         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
14774         missing C++ and C support for vector bool and/or vector pixel.
14775         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
14776         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
14777         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
14778         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
14779         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
14780         C++ and C types used for vector bool and/or vector pixel.
14781         (vec_st, vec_stl): Add C++ support for vector pixel.
14782         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
14783         (vec_all_ne): Add C++ support for vector pixel.
14784
14785         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
14786         (vec_vmulesb): Add missing C++ function.
14787         (vec_perm): Fix type of third argument in C++ function.
14788         (vec_vsum4shs): Fix C++ function name.
14789         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
14790         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
14791         argument passed to the error handler in C macro.
14792         (vec_nmsub): Remove extra parens around argument names in C macro.
14793         (vec_packpx): Add missing parens in C macro.
14794
14795 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14796
14797         * machmode.def: Remove vector modes.
14798         * config/alpha/alpha-modes.def: Add supported vector modes.
14799         * config/arm/arm-modes.def: Likewise.
14800         * config/frv/frv-modes.def: Likewise.
14801         * config/i386/i386-modes.def: Likewise.
14802         * config/rs6000/rs6000-modes.def: Likewise.
14803         * config/sh/sh-modes.def: Likewise.
14804
14805 2004-07-23  Matthias Klose  <doko@debian.org>
14806
14807         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
14808         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
14809         * config.h: Regenerate.
14810         * configure: Likewise.
14811
14812 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
14813
14814         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
14815         generated SYMBOL_REFs for labels.
14816         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
14817         Change prototype.
14818         (machopic_stub_name): Remove.
14819         (machopic_indirection_name): New function.
14820         (machopic_mcount_stub_name): Likewise.
14821         (machopic_classify_name): Remove.
14822         (machopic_function_base_sym): New function.
14823         (machpoic_classify_symbol): Likewise.
14824         (machopic_classify_ident): Remove.
14825         (machopic_define_ident): Likewise.
14826         (machopic_define_name): Likewise.
14827         (machopic_name_defined_p): Likewise.
14828         (machopic_ident_defined_p): Likewise.
14829         (darwin_strip_name_encoding): Likewise.
14830         (machopic_define_symbol): New function.
14831         * config/darwin.c (hashtab.h): Include.
14832         (machopic_defined_list): Remove.
14833         (machopic_classify_ident): Likewise.
14834         (machopic_classify_name): Likewise.
14835         (machopic_ident_defined_p): Likewise.
14836         (machopic_define_ident): Likewise.
14837         (machopic_define_name): Likewise.
14838         (machopic_symbol_defined_p): New function.
14839         (machopic_classify_symbol): Likewise.
14840         (machopic_data_defined_p): Use machopic_classify_symbol.
14841         (machopic_define_symbol): New function.
14842         (machopic_function_base_sym): New function.
14843         (machopic_non_lazy_pointers): Remove.
14844         (machopic_non_lazy_ptr_name): Likewise.
14845         (machopic_stubs): Likewise.
14846         (machopic_stub_name): Likewise.
14847         (NON_LAZY_POINTER_SUFFIX): New macro.
14848         (STUB_SUFFIX): Likewise.
14849         (machopic_indirection): New structure.
14850         (machopic_indirections): New variable.
14851         (machopic_indirection_hash): New function.
14852         (machopic_indirection_eq): Likewise.
14853         (machopic_indirection_name): Likewise.
14854         (machopic_mcount_stub_name): New function.
14855         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
14856         hash table.
14857         (machopic_indirect_data_reference): Rework to use new functions.
14858         (machopic_indirect_call_target): Likewise.
14859         (machopic_legitimize_pic_address): Likewise.
14860         (machopic_output_indirection): New function.
14861         (machopic_finish): Use it.
14862         (machopic_operand_p): Rework to use new functions.
14863         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
14864         (darwin_strip_name_encoding): Remove.
14865         (update_non_lazy_ptrs): Remove.
14866         (update_stubs): Likewise.
14867         (darwin_non_lazy_pcrel): Use new functions.
14868         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14869         (ASM_OUTPUT_LABELREF): Likewise.
14870         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14871         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
14872         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
14873         (TARGET_STRIP_NAME_ENCODING): Do not use
14874         darwin_strip_name_encoding.
14875         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
14876         darwin_strip_name_encoding.
14877         * config/i386/darwin.h (FUNCTION_PROFILER): Use
14878         machopic_mcount_stub_name.
14879         * config/i386/i386.c (x86_output_mi_thunk): Use
14880         machopic_indirection_name, not machopic_stub_name.
14881         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
14882         machopic_function_base_sym.
14883         (print_operand): Use machopic_classify_symbol.
14884         (rs6000_emit_prologue): Use machopic_function_base_sym.
14885         (output_profile_hook): Do not use machopic_stub_name.
14886         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
14887
14888 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14889
14890         PR c/7284
14891         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
14892         as multiplication.
14893
14894 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14895
14896         * doc/implement-c.texi: New file.
14897         * doc/extend.texi (C Implementation): Move to there.
14898         * doc/gcc.texi: Include implement-c.texi.
14899         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
14900
14901 2004-07-22  Jason Merrill  <jason@redhat.com>
14902
14903         * integrate.c (copy_decl_for_inlining): Remove invisible reference
14904         handling.
14905         * tree-inline.c (setup_one_parameter): Likewise.
14906
14907 2004-07-22  Brian Booth  <bbooth@redhat.com>
14908
14909         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
14910         (substitute_and_fold): Propigate into VUSE operands when possible.
14911         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
14912         (cp_lattice_meet): Handle merging of latticevalues when
14913         UNKNOWN_VAL is present.
14914         (visit_stmt): Visit assignments with V_MUST_DEFs.
14915         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
14916         (ccp_fold): Deal with RHS' that are constant and virtual.
14917         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
14918         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
14919         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
14920         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
14921         computing immediate uses.
14922         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
14923         transition.
14924         (replace_vuse_in): New function.
14925         (likely_value): Add check of vuse operands.
14926         (get_default_value): Set the default value of virtually defined
14927         variables to UKNOWN_VAL instead of VARYING.
14928
14929 2004-07-22  Richard Henderson  <rth@redhat.com>
14930
14931         * expr.c (emit_push_insn): Don't use set_mem_attributes.
14932
14933 2004-07-22  Richard Henderson  <rth@redhat.com>
14934
14935         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
14936         variables due to conditional compilation.
14937
14938 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14939
14940         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
14941         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
14942         Release SSA names that have been re-renamed.
14943         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
14944         variable.
14945         * tree-ssa-alias.c (init_alias_info): If aliases have been
14946         computed before, clear existing alias information.
14947         (create_name_tags): Do no fixup PT_ANYTHING pointers.
14948         If the new name tag for a pointer is different than the one it
14949         had before, mark the old tag for renaming.
14950         (replace_may_alias): New function.
14951         (group_aliases): Call it.
14952         (setup_pointers_and_addressables): Always call get_tmt_for.
14953         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
14954         once.
14955         (set_pt_anything): New local function.
14956         (set_pt_malloc): New local function.
14957         (merge_pointed_to_info): Don't merge pointed-to variables from
14958         the original pointer if the destination is pointing to an
14959         unknown location.
14960         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
14961         (add_pointed_to_var): Do not add a variable to the points-to
14962         set if the pointer is already pointing to anywhere.
14963         (collect_points_to_info_r): If the defining statement is a PHI
14964         node, only merge pointed-to information if the argument has
14965         already been visited.
14966         (get_tmt_for): Only create a new tag if the pointer didn't
14967         have one already.
14968         (dump_alias_info): Emit more information.
14969         (dump_points_to_info_for): Likewise.
14970         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
14971         try to get the annotation of an SSA_NAME.
14972         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
14973         alias sets when checking is enabled.
14974         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
14975         (eliminate): Mark basic blocks that will need
14976         EH information cleaned up.
14977         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
14978         predecessor.
14979         Initialize need_eh_cleanup.
14980         (fini_pre): Call tree_purge_all_dead_eh_edges and
14981         cleanup_tree_cfg if needed.
14982         Free need_eh_cleanup.
14983         * tree-ssa.c (verify_ssa_name): New function.
14984         (verify_def): Call it.
14985         Re-arrange to avoid printing too many error messages.
14986         (verify_use): Likewise.
14987         (verify_phi_args): Likewise.
14988         (verify_flow_insensitive_alias_info): New function.
14989         (verify_flow_sensitive_alias_info): New function.
14990         (verify_alias_info): New function.
14991         (verify_ssa): Call verify_alias_info.
14992         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
14993         program.
14994         Re-arrange to avoid printing too many error messages.
14995         * tree-ssanames.c (make_ssa_name): Clear
14996         SSA_NAME_IN_FREE_LIST.
14997         (release_ssa_name): Never release a default definition.
14998         (release_defs): New function.
14999         * tree.h: Declare it.
15000         * tree-ssa-dce.c (remove_dead_stmt): Call it.
15001
15002 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
15003
15004         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
15005         If true, do a depth-first search.  Do a breadht-first search,
15006         otherwise.
15007         (walk_use_def_chains): Add new argument IS_DFS.
15008         Update all users.
15009         * tree-flow.h (walk_use_def_chains): Update prototype.
15010
15011 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
15012
15013         * config/cris/cris.md: Tweak formatting.
15014         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
15015         (mover2side, moverside, movemside, movei, op3, andu): Replace
15016         live define_peephole:s with define_peephole2 near-equivalents.
15017         Delete the rest.
15018         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
15019         word-size modes.
15020         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
15021         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
15022         "*mov_sidesi_mem" respectively.
15023
15024 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
15025
15026         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
15027         (gimplify_build1): Move from tree-complex.c do_unop.
15028         (gimplify_build2): Move from tree-complex.c do_binop.
15029         (gimplify_build3): New.
15030         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
15031         Adjust throughout to call the functions above.
15032         * tree-flow.h: Declare the functions above.
15033         * tree-nested.c (gimplify_val): Rename to...
15034         (tsi_gimplify_val): ... this.
15035
15036         * Makefile.in (tree_complex.o): Update dependencies.
15037         (stor-layout.o): Depend on regs.h.
15038         * c-common.c (handle_vector_size_attribute): Update for
15039         vector types without corresponding vector modes.
15040         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
15041         a corresponding vector mode is not available.
15042         * print-tree.c (print_node): Print nunits for vector types
15043         * regclass.c (have_regs_of_mode): New.
15044         (init_reg_sets_1): Initialize it and use it instead
15045         of allocatable_regs_of_mode.
15046         * regs.h (have_regs_of_mode): Declare it.
15047         * stor-layout.c (layout_type): Pick a mode for vector types.
15048         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
15049         build_replicated_const, do_unop, do_binop, do_plus_minus,
15050         do_negate, expand_vector_piecewise, expand_vector_parallel,
15051         expand_vector_addition, expand_vector_operations_1,
15052         expand_vector_operations, tree_lower_operations,
15053         pass_lower_vector_ssa, pass_pre_expand): New.
15054         (expand_complex_operations, pass_lower_complex): Remove.
15055         * tree-optimize.c (init_tree_optimization_passes): Adjust
15056         pass ordering for changes in tree-complex.c.
15057         * tree-pass.h: Declare new passes.
15058         * tree.c (finish_vector_type): Remove.
15059         (make_vector_type): New.
15060         (build_vector_type_for_mode, build_vector_type): Rewritten.
15061         * tree.def (VECTOR_TYPE): Document where the number of
15062         subparts is stored.
15063         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
15064         (make_vector): Remove declaration.
15065
15066 2004-07-21  Richard Henderson  <rth@redhat.com>
15067
15068         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
15069         TREE_THIS_VOLATILE, may_aliases, or optimization level.
15070         (remove_useless_vars): Dump debugging info.
15071         (expand_used_vars): Move ...
15072         * cfgexpand.c (expand_used_vars): ... here.  Make static.
15073         * tree-flow-inline.h (set_is_used): New.
15074         (set_default_def): Use get_var_ann.
15075         * tree-flow.h: Update decls.
15076         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
15077         (create_ssa_var_map): Use it.
15078         * tree-ssa.c (set_is_used): Remove.
15079
15080 2004-07-22  Ben Elliston  <bje@au.ibm.com>
15081
15082         * gdbinit.in: Set a breakpoint on internal_error.
15083
15084 2004-07-21  Richard Henderson  <rth@redhat.com>
15085
15086         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
15087         to create a new basic block.
15088
15089 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15090
15091         PR c/15052
15092         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
15093         return type on function definitions.  Move other warnings for
15094         qualified return type to -Wreturn-type.  Do not condition any such
15095         warnings on -pedantic.  Update comments.
15096         (start_function): Only copy function type from previous prototype
15097         declaration if return types are compatible.
15098         * c-typeck.c (function_types_compatible_p): Don't condition
15099         warning for incompatibility of volatile qualifiers on the return
15100         type on -pedantic.  Update comment.
15101         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
15102
15103 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15104
15105         * c-typeck.c (set_init_index): Require designator to be of integer
15106         type.
15107
15108 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15109
15110         PR c/11250
15111         * c-parse.in (init): Change to exprtype.
15112         (primary): Set original_code for STRING to STRING_CST.
15113         Call maybe_warn_string_init for compound literals.
15114         (initdcl, notype_initdcl): Call maybe_warn_string_init.
15115         (initval): Update.
15116         * c-tree.h (maybe_warn_string_init): New.
15117         (pop_init_level, process_init_element): Use struct c_expr.
15118         (struct c_expr): Update comment.
15119         * c-typeck.c (maybe_warn_string_init): New function.
15120         (digest_init): Call it.  Additional parameter strict_string.  All
15121         callers changed.
15122         (output_init_element): Likewise.
15123         (struct constructor_stack): Use struct c_expr for
15124         replacement_value.
15125         (really_start_incremental_init, push_init_level): Update.
15126         (pop_init_level): Update.  Return struct c_expr.
15127         (process_init_level): Update.  Take struct c_expr argument.
15128
15129 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
15130
15131         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
15132         commit.
15133
15134 2004-07-21  Eric Christopher  <echristo@redhat.com>
15135
15136         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
15137         removal.
15138         * c-decl.c (pop_scope): Ditto.
15139         * calls.c (expand_call): Remove call to current_nesting_level,
15140         update comment accordingly. Remove calls to expand_start_target_temps
15141         and expand_end_target_temps.
15142         * cfgexpand.c (construct_init_block): Remove call to
15143         expand_start_bindings_and_block.
15144         (construct_exit_block): Remove call to expand_end_bindings.
15145         * expr.c (safe_from_p): Remove BIND_EXPR handling.
15146         (expand_expr_real_1): Ditto. Fix formatting.
15147         (expand_vars): Delete.
15148         * stmt.c (POPSTACK): Remove block_stack.
15149         (stmt_status): Remove x_block_stack.
15150         (block_stack): Delete.
15151         (expand_start_bindings_and_block): Ditto.
15152         (expand_start_target_temps): Ditto.
15153         (expand_end_target_temps): Ditto.
15154         (current_nesting_level): Ditto.
15155         (warn_about_unused_variables): Ditto.
15156         (expand_end_bindings): Ditto.
15157         * tree.h: Remove declarations for above.
15158
15159 2004-07-21  Steven Bosscher  <stevenb@suse.de>
15160
15161         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
15162         * rtl.c (note_insn_name): Likewise.
15163         * print-rtl.c (print_rtx): Don't print it.
15164         * cfgrtl.h (can_delete_note_p): Don't handle it.
15165         (rtl_delete_block): Likewise.
15166         * passes.c (rest_of_handle_guess_branch_prob): Remove.
15167         (rest_of_compilation): Don't call it.
15168         * predict.c (process_note_predictions, process_note_prediction,
15169         note_prediction_to_br_prob): Remove.
15170         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
15171         * stmt.c (return_prediction): Remove.
15172         (expand_value_return): Don't call it.  Don't add prediction
15173         notes for return statements.
15174
15175 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
15176
15177         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
15178         once.
15179
15180 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
15181
15182         * c-common.c (vector_types_convertible_p): Use vector types'
15183         TYPE_SIZE and TREE_TYPE instead of their mode.
15184         * convert.c (convert_to_integer): Likewise.
15185         (convert_to_vector): Likewise.
15186         * fold-const.c (fold_convert): Likewise.
15187         * varasm.c (output_constant): Likewise.
15188         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
15189         Allow a VECTOR_TYPE initializer to be made of several vectors.
15190         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
15191         of cleared and need_to_clear, and use fold_convert.
15192         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
15193         integer vectors.
15194
15195 2004-07-20  Richard Henderson  <rth@redhat.com>
15196
15197         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
15198         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
15199
15200 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
15201
15202         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
15203         enormous cost if not TARGET_HARD_MUL.
15204
15205 2004-07-20  Andrew Pinski  <apinski@apple.com>
15206
15207         PR target/16557
15208         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
15209         (ASM_SPEC): here.
15210
15211 2004-07-21  Paul brook  <paul@codesourcery.com>
15212
15213         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
15214
15215 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15216
15217         * fold-const.c (operand_equal_p): Temporarily support NULL args.
15218         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
15219         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
15220
15221 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
15222
15223         * rtl.h (plus_constant): Delete.
15224         (plus_constant_wide): Rename to plus_constant.
15225         (plus_constant_for_output_wide): Delete vestigial prototype.
15226         (GEN_INT): Remove unnecessary cast.
15227         * tree.h (build_int_2, size_int_type): Delete.
15228         (build_int_2_wide): Rename to build_int_2.
15229         (size_int_wide): Rename to size_int_kind.
15230         (size_int_type_wide): Rename to size_int_type.
15231         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
15232         Remove unnecessary cast.
15233         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
15234         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
15235         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
15236         (size_int_type_wide): Rename size_int_type.
15237         (int_const_binop): Use size_int_type.
15238         * c-lex.c (interpret_integer): Use build_int_2.
15239         * final.c (split_double): Remove unnecessary casts.
15240         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
15241
15242 2004-07-20  Richard Henderson  <rth@redhat.com>
15243
15244         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
15245         (gimplify_compound_lval): Use is_gimple_tmp_reg.
15246         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
15247         (is_gimple_tmp_reg): New.
15248         * tree-gimple.h (is_gimple_tmp_reg): Declare.
15249
15250 2004-07-20  Richard Henderson  <rth@redhat.com>
15251
15252         * tree-pretty-print.c (dump_generic_node): Dump
15253         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
15254
15255 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
15256
15257         * tree-mudflap.c (mf_set_options_fndecl): New tree.
15258         (mudflap_init): Set it.
15259         (mudflap_register_call): Remove __mf_init call.
15260         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
15261         to pass "-ignore-reads" option to libmudflap if needed.
15262
15263 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
15264
15265         PR c++/14607
15266         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
15267         (MAKE_DECL_ONE_ONLY): Undefine.
15268         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
15269         readonly_data, one_only_data_section, forget_section): New prototypes.
15270         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
15271         functions.
15272         (pa_select_section): Add one-only (COMDAT) support.
15273         * pa.h (struct machine_function): Define.
15274         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
15275         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
15276         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
15277         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
15278         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
15279         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
15280         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
15281         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
15282         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
15283         for EXTRA_SECTION_FUNCTIONS.
15284         * doc/install.texi: Update binutils requirements.
15285
15286 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
15287
15288         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
15289         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
15290         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
15291         size_t.
15292         (struct VEC): Use unsigned for num and alloc.
15293         * vec.c (struct vec_prefix): Likewise.
15294         (vec_o_reserve): Adjust.
15295
15296         * dbxout.c (dbxout_type): Fix printf format.
15297
15298         * tree.h (binfo_member): Remove.
15299         * tree.c (binfo_member): Remove.
15300
15301 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
15302
15303         * tree.h: Include vec.h
15304         (DEF_VEC_P(tree)): New type.
15305         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
15306         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
15307         (BINFO_LANG_SLOT): Remove.
15308         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
15309         (struct tree_binfo): Turn base_binfos into a trailing
15310         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
15311         (binfo_lang_slots): Remove.
15312         * tree.c (binfo_lang_slots): Remove.
15313         (make_tree_binfo_stat): Take a base binfo count, not a
15314         lang slot count.  Adjust.
15315         * Makefile.in (TREE_H): Add vec.h
15316         * alias.c (record_component_aliases): Adjust BINFO access.
15317         * dbxout.c (dbxout_type): Likewise.
15318         * dwarf2out.c (gen_member_die): Likewise.
15319         * sdbout.c (sdbout_one_type): Likewise.
15320         * tree-dump.c (deque_and_dump): Likewise.
15321         * config/i386/i386.c (classify_argument,
15322         contains_128bit_aligned_vector_p): Likewise.
15323         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
15324         * doc/c-tree.texi (Classes): Update BINFO documentation.
15325
15326 2004-07-20  Steven Bosscher  <stevenb@suse.de>
15327
15328         * c-common.h (check_case_value): Remove prototype.
15329         (c_add_case_label): Adjust prototype.
15330         * c-common.c (check_case_value): Make static.
15331         (check_case_bounds): New function.
15332         (c_add_case_label): Use it.  Take new argument orig_type.
15333         * c-typeck.c (struct c_switch): New orig_type field.
15334         (c_start_case): Set it.
15335         (do_case): Pass it to c_add_case_label.
15336         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
15337         cases from here.  Add the labels in reverse order.
15338         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
15339         (add_case_node): Return nothing, don't check for duplicate cases.
15340         Insert new case nodes in a list, not in an AVL tree.
15341         (expand_end_case_type): Don't turn a case tree into a case list.
15342         (case_tree2list): Remove.
15343         * tree.h (add_case_node): Adjust prototype.
15344
15345 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
15346
15347         * genattr.c (struct range, struct function_unit,
15348         write_units, extend_range, init_range): Remove them.
15349         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15350         Output "#define INSN_SCHEDULING" here.
15351         * genattrtab.c (struct range, struct function_unit_op,
15352         struct function_unit, struct dimension, enum operator,
15353         operate_exp, expand_units, simplify_knowing,
15354         encode_units_mask, simplify_by_exploding,
15355         find_and_mark_used_attributes, unmark_used_attributes,
15356         add_values_to_cover, increment_current_value,
15357         test_for_current_value, simplify_with_current_value,
15358         simplify_with_current_value_aux, gen_unit,
15359         write_unit_name, write_function_unit_info,
15360         write_complex_function, write_toplevel_expr,
15361         find_single_value, extend_range): Remove.
15362         (write_attr_get): Do not handle common_av->value
15363         being an FFS.
15364         (struct attr_desc): Remove func_units_p and blockage_p.
15365         (write_attr_valueq): Do not handle them.
15366         (find_attr): Do not clear them.
15367         (make_internal_attr): Do not initialize them.
15368         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15369         * sched-vis.c (init_target_units, insn_print_units,
15370         init_block_visualization, print_block_visualization,
15371         visualize_scheduled_insns, visualize_no_unit,
15372         visualize_stall_cycles, visualize_alloc,
15373         visualize_free, target_units, get_visual_tbl_length,
15374         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
15375         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
15376         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
15377         * haifa-sched.c (blockage_range, clear_units,
15378         schedule_unit, actual_hazard, potential_hazard,
15379         insn_unit, unit_last_insn, unit_tick,
15380         actual_hazard_this_instance, potential_hazard,
15381         schedule_unit, max_insn_queue_index_value): Remove.
15382         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
15383         max_insn_queue_index.
15384         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
15385         * doc/md.texi (Processor pipeline description): Remove
15386         references to old pipeline descriptions.
15387         (Automaton pipeline description): Merge with the above.
15388         (Old pipeline description, Comparison of the two descriptions):
15389         Remove.
15390
15391         * bt-load.c (migrate_btr_def): Remove references to
15392         use_pipeline_interface.
15393         * haifa-sched.c (insn_cost, schedule_insn,
15394         schedule_block, advance_one_cycle, sched_init,
15395         queue_to_ready, sched_finish): Likewise.
15396         * modulo-sched.c (sms_schedule, advance_one_cycle,
15397         ps_has_conflicts): Likewise.
15398         * sched-rgn.c (init_ready): Likewise.
15399         (debug_dependencies): Likewise, and remove an "if (1)".
15400         * target.h (use_dfa_pipeline_interface): Remove.
15401         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15402         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15403         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15404         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15405         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15406         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15407         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15408         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15409         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15410         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15411         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15412         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15413         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15414         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15415         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15416         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15417         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15418         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15419         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15420
15421 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15422
15423         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
15424
15425 2004-07-19  Jeff Law  <law@redhat.com>
15426
15427         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
15428         (get_eq_expr_value): Use it.  Simplify slightly.
15429
15430 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
15431
15432         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
15433         (umulsidi3_32bit_r4000): Likewise.
15434
15435 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
15436
15437         * vec.h: Propagate location information properly.
15438         (VEC_T_iterate): Add result pointer parameter.
15439         (VEC_T_space): New.
15440         (VEC_T_reserve): Use it.
15441
15442 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
15443
15444         * Makefile.in (c-format.o): Depend on c-format.h.
15445         * c-format.h: New file.
15446         (struct format_char_info): Add CHAIN member.
15447         * c-format.c: Move some types and constants to c-format.h.
15448         (format_type_error): Set to -1.
15449         (struct function_format_info): Use an int for format_type.
15450         (decode_format_type): Return an int.  Return format_type_error
15451         on error.
15452         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
15453         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
15454         (scan_char_table, time_char_table, monetary_char_table): Initialize
15455         CHAIN to NULL.
15456         (n_format_types): New variable.
15457         (check_format_info_main): Handle CHAIN in format_char_info.
15458         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
15459         TARGET_N_FORMAT_TYPES.
15460         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
15461         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
15462         * config/sol2-c.c: New file.
15463         * config/t-sol2: New file.
15464         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
15465         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
15466         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
15467
15468         * doc/extend.texi (Target Format Checks): New section.
15469         (Function Attributes): Mention it.
15470         * doc/invoke.texi: Mention target format checks.
15471         * doc/sourcebuild.texi: Mention target format checks.
15472         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
15473         TARGET_FORMAT_TYPES.
15474
15475 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
15476
15477         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
15478         added.
15479         * config/s390/s390.c (regclass_map initializer): Register 35 added to
15480         ADDR_REGS.
15481         (load_multiple_operation, store_multiple_operation): Removed
15482         pointless sanity check.
15483         (s390_decompose_address): Added check for return_address_pointer_rtx.
15484         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
15485         (s390_return_address_offset): New function.
15486         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
15487         (FRAME_REGNO_P): Added check for register 35.
15488         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
15489         REG_ALLOC_ORDER): Appended entry for register 35.
15490         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
15491         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
15492         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
15493         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
15494         is eliminable using stack pointer or hard frame pointer.
15495         (REGISTER_NAMES): Added name for register 35.
15496         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
15497         pointless sanity check.
15498
15499 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15500
15501         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
15502         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
15503         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
15504         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
15505         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
15506         (fold_relational_const): Tidy up handling of floating point
15507         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
15508         transformation; fold_relational_const assumes constant operands.
15509
15510 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
15511
15512         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
15513         directory.
15514
15515 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
15516
15517         * c-tree.h (struct c_expr): Define.
15518         (C_SET_EXP_ORIGINAL_CODE): Remove.
15519         (parser_build_binary_op, build_compound_expr): Update prototypes.
15520         * c-parse.in (%union): Add exprtype.
15521         (FUNC_NAME): Mark as ttype.
15522         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
15523         exprtype.
15524         (expr): Update.  Define directly in terms of expr_no_commas
15525         instead of using nonnull_exprlist.
15526         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
15527         offsetof_member_designator, typespec_nonreserved_nonattr, init,
15528         initval, designator, component_declarator,
15529         component_notype_declarator, enumerator, array_declarator,
15530         condition, exexpr, switch_statement, stmt_nocomp, stmt,
15531         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
15532         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
15533         where appropriate.
15534         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
15535         * c-common.c (c_common_truthvalue_conversion): Don't check
15536         C_EXP_ORIGINAL_CODE.
15537         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
15538         Don't use C_EXP_ORIGINAL_CODE.
15539         (default_conversion, default_function_array_conversion): Don't use
15540         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
15541         (internal_build_compound_expr): Merge into build_compound_expr.
15542         (build_compound_expr): Take two operands instead of a TREE_LIST.
15543         * objc/objc-act.c (get_super_receiver): Update calls to
15544         build_compound_expr.
15545
15546 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
15547
15548         * config/sh/sh.c (sh_use_dfa_interface): Remove.
15549         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
15550         hook_int_void_1.
15551         * config/sh/sh.md: Extract pipeline descriptions
15552         into separate files.
15553         * config/sh/sh1.md: New file, extracted from sh.md.
15554         * config/sh/sh4.md: New file, extracted from sh.md.
15555         * config/sh/shmedia.md: New file, extracted from sh.md
15556         and rewritten using new-style pipeline description.
15557
15558 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
15559
15560         * config/pa/pa.md: Delete the two remaining define_peephole
15561         patterns.
15562
15563 2004-07-18  Steven Bosscher  <stevenb@suse.de>
15564             Joseph S. Myers  <jsm@polyomino.org.uk>
15565
15566         * c-common.c (c_common_truthvalue_conversion): Don't warn if
15567         TREE_NO_WARNING is set.
15568
15569 2004-07-18  Roger Sayle  <roger@eyesopen.com>
15570
15571         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
15572         simplify_builtin_strncmp): Delete.
15573         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
15574         Change argument to accept an arglist instead of an "exp".  Assume
15575         that the return type is always integer_type_node.  Copy missing
15576         transformations from their now obsolete simplify_builtin_*
15577         equivalents.
15578         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
15579         fold_builtin_strcmp and fold_builtin_strncmp.
15580         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
15581         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
15582         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
15583
15584 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
15585
15586         * Makefile.in (tree-alias-common.o): Update dependencies.
15587
15588 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
15589
15590         * cfgloop.c (flow_loop_nested_p): Fix comment.
15591
15592 2004-07-17  Jason Merrill  <jason@redhat.com>
15593
15594         PR c++/16115
15595         * stor-layout.c (relayout_decl): New fn.
15596         * tree.h: Declare it.
15597         (DECL_BY_REFERENCE): New macro.
15598
15599 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
15600
15601         * libgcc2.c (__enable_execute_stack): New symbol.
15602         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
15603         and declare __enable_execute_stack.
15604         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
15605         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
15606         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15607         ENABLE_EXECUTE_STACK.
15608         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
15609         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15610         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15611         ENABLE_EXECUTE_STACK.
15612         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15613         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
15614         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15615         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15616         ENABLE_EXECUTE_STACK.
15617         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15618         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15619         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15620         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15621         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
15622         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15623         (sparc64_initialize_trampoline): Likewise.
15624         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
15625
15626 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15627
15628         * langhooks.h (builtin_function): New langhook.
15629         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
15630         (LANG_HOOKS_INITIALIZER): Update.
15631         * tree.h (builtin_function): Remove.
15632         * doc/tm.texi: Update.
15633         * c-tree.h (builtin_function): Declare.
15634         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
15635         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
15636         config/ia64/ia64.c, config/iq2000/iq2000.c,
15637         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
15638         config/stormy16/stormy16.c: All callers of builtin_function
15639         changed.
15640
15641 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
15642
15643         PR target/16556
15644         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
15645         Remove white space after the backslash.
15646
15647 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
15648
15649         PR rtl-optimization/16294
15650         * resource.c (return_insn_p): New predicate.
15651         (mark_target_live_regs): Use it.  Special-case return insns.
15652         (init_resource_info): Use it.  Don't scan the epilogue past
15653         a return.
15654
15655 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15656
15657         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
15658         destroy dominance information.
15659         * passes.c (rest_of_handle_loop2):  Free dominance information.
15660         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
15661         jump threading.
15662         (thread_jumps): Update dominance information and remove unreachable
15663         blocks.
15664         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
15665         information and remove the unreachable block.
15666
15667 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
15668
15669         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
15670
15671 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
15672
15673         * doc/sourcebuild.texi: Remove libf2c entry.
15674
15675 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
15676
15677         * config/i386/i386.md (movv16qi_internal): Fix typo.
15678
15679 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15680
15681         * final.c (final_scan_insn): Fix broken commit from previous
15682         patch.
15683
15684 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15685
15686         * c-typeck.c (parser_build_binary_op): Condition warnings for
15687         X<=Y<=Z on -Wparentheses instead of -Wextra.
15688         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
15689         supported for C only.
15690
15691 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15692
15693         * cfgcleanup.c (try_simplify_condjump): Don't remove line
15694         notes to avoid unreachable code warnings.
15695         * toplev.c (backend_init): Don't emit line notes for
15696         unreachable code warnings.
15697
15698         * combine.c (distribute_notes): Don't distribute a
15699         REG_VTABLE_REF note.
15700         * final.c (final_scan_insn): Don't handle it.
15701         * rtl.c (reg_note_name): Remove it.
15702         * rtl.h (enum reg_node): Dito.
15703
15704         * emit-rtl.c (force_line_numbers, restore_line_number_status):
15705         Remove.
15706         * rtl.h (force_line_numbers, restore_line_number_status):
15707         Remove prototypes.
15708
15709         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
15710         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
15711         (using_eh_for_cleanups): Also moved here.
15712
15713         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
15714         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
15715         to expand_start_case and add_case_node.
15716         * stmt.c (struct nesting): Cleanup unused fields condition_code,
15717         last_unconditional_cleanup, nominal_type, printname, and
15718         line_number_status.
15719         (struct fixup_goto): Remove.
15720         (struct stmt_status): Remove x_goto_fixup_chain field.
15721         (goto_fixup_chain): Remove.
15722         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
15723         pushcase, pushcase_range): Remove.
15724         (expand_start_bindings_and_block): Don't set unused fields in
15725         the nesting stack.
15726         (expand_start_case, add_case_node): Cleanup unused formal arguments.
15727         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
15728         instead of emit_jump_if_reachable.
15729         (emit_case_nodes): Likewise.
15730         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
15731         static.
15732         (update_eh_label): Work around left-over exception handing regions.
15733         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
15734         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
15735         (pass_cleanup_cfg_post_optimizing): New pass.
15736         (init_tree_optimization_passes): Run the new pass after all
15737         optimizations.
15738         * tree.h (pushcase, pushcase_range): Remove prototypes.
15739         (expand_start_case, add_case_node): Update prototypes.
15740
15741 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
15742
15743         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
15744
15745 2004-07-16  Richard Henderson  <rth@redhat.com>
15746
15747         * builtins.c (std_expand_builtin_va_arg): Remove.
15748         (expand_builtin_va_arg): Remove.
15749         * expr.h: Don't declare them.
15750         * gimplify.c (mark_decls_volatile_r): Remove.
15751         (copy_if_shared_r): Don't call it.
15752         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
15753         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
15754         * gimple-low.c (lower_stmt): Likewise.
15755         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
15756         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
15757         * tree-ssa-operands.c (get_expr_operands): Likewise.
15758         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
15759         EXPAND_BUILTIN_VA_ARG.
15760         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
15761         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
15762         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
15763         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15764
15765 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15766
15767         * tree-ssa-pre.c (insert_aux): Break out if we hit
15768         a critical edge.
15769
15770 2004-07-16  Richard Henderson  <rth@redhat.com>
15771
15772         * basic-block.h (remove_fake_exit_edges): Declare.
15773         * cfganal.c (remove_fake_predecessors): Rename from
15774         remove_fake_successors; iterate over predecessors.
15775         (remove_fake_exit_edges): New.
15776         * cfgcleanup.c (try_optimize_cfg): Use it.
15777         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
15778         * predict.c (estimate_probability): Likewise.
15779         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
15780         * tree-cfg.c (make_edges): Likewise.
15781         * tree-ssa-pre.c (fini_pre): Likewise.
15782         * profile.c (instrument_edges): Don't remove_fake_edges.
15783         (branch_prob): Do it earlier here.
15784
15785 2004-07-16  Richard Henderson  <rth@redhat.com>
15786
15787         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
15788         switchification wrt CONSTRUCTOR.  Document the reason.
15789
15790 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
15791
15792         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
15793         that prevented descriptive __mf_check source location strings.
15794
15795 2004-07-16  Richard Henderson  <rth@redhat.com>
15796
15797         * tree-def (WITH_SIZE_EXPR): New.
15798         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
15799         * expr.c (expand_expr_real_1): Likewise.
15800         * gimplify.c (maybe_with_size_expr): New.
15801         (gimplify_arg, gimplify_modify_expr): Use it.
15802         (gimplify_modify_expr_to_memcpy): Take size parameter.
15803         (gimplify_modify_expr_to_memset): Likewise.
15804         (gimplify_expr): Handle WITH_SIZE_EXPR.
15805         * tree-alias-common.c (find_func_aliases): Likewise.
15806         * tree-eh.c (tree_could_trap_p): Likewise.
15807         (tree_could_throw_p): Likewise.
15808         * tree-gimple.c (is_gimple_lvalue): Likewise.
15809         (get_call_expr_in): Likewise.
15810         * tree-inline.c (estimate_num_insns_1): Likewise.
15811         (expand_calls_inline): Likewise.
15812         * tree-nested.c (convert_call_expr): Likewise.
15813         * tree-pretty-print.c (dump_generic_node): Likewise.
15814         * tree-sra.c (sra_walk_expr): Likewise.
15815         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
15816         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
15817         * tree-ssa-operands.c (get_expr_operands): Likewise.
15818         * tree-tailcall.c (find_tail_calls): Likewise.
15819
15820         * calls.c (expand_call): Reset old_stack_allocated after
15821         calling emit_stack_restore.
15822
15823 2004-07-16  Richard Henderson  <rth@redhat.com>
15824
15825         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
15826         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15827         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15828         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
15829         copy_res_decl_for_inlining.
15830
15831         * tree-inline.c (declare_return_variable): New modify_dest argument.
15832         Use it as the return value, when possible or manditory.  Handle
15833         TREE_ADDRESSABLE types.
15834         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
15835         replacement of CALL_EXPR.
15836
15837 2004-07-16  Richard Henderson  <rth@redhat.com>
15838
15839         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
15840         * gimple-low.c (expand_var_p): Don't check it.
15841         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
15842         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
15843         * tree-ssa-operands.c (add_stmt_operand): Likewise.
15844         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
15845         (find_referenced_vars): Don't call them.
15846         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
15847
15848 2004-07-16  Richard Henderson  <rth@redhat.com>
15849
15850         * function.c (pass_by_reference): True for all variable sized types.
15851
15852 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
15853
15854         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
15855         * tree-pretty-print.c: Include tree-chrec.h.
15856         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
15857         and POLYNOMIAL_CHREC nodes.
15858
15859 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
15860
15861         * builtins.c (expand_builtin_stpcpy): Do not create temporary
15862         reg with VOIDmode.
15863
15864 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15865
15866         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
15867
15868 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
15869
15870         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
15871         to BASE_REGNUM.
15872         * config/s390/s390.c: Likewise.
15873         * config/s390/s390.h: Likewise.
15874
15875 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15876
15877         * config/mips/mips.md (addsi3, adddi3): Remove special handling
15878         of $sp adds.  Remove REGNO checks from mips16 patterns.
15879
15880 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15881
15882         * config/mips/mips.md: Delete outdated comment.
15883
15884 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15885
15886         * config/mips/mips.c (get_float_compare_codes): Delete.
15887         (mips_emit_compare): New function, mostly extracted from
15888         get_float_compare_codes and gen_conditional_branch.
15889         (gen_conditional_branch, gen_conditional_move): Use it.
15890
15891 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15892
15893         * genautomata.c (add_vect): Speedup by using integers as
15894         bit-vectors for walking through the comb_vect and finding
15895         a match.
15896
15897 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15898
15899         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
15900         operand is an uns_arith_operand; use subtraction otherwise.
15901         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
15902         not just arith_operands.
15903
15904 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15905
15906         * config/mips/mips-protos.h (gen_int_relational): Delete.
15907         (mips_emit_scc): Declare.
15908         * config/mips/mips.c (internal_test): Delete.
15909         (sle_operand, sleu_operand): New functions.
15910         (map_test_to_internal_test, gen_int_relational): Delete.
15911         (mips_emit_binary, mips_relational_operand_ok_p)
15912         (mips_emit_int_relational, mips_zero_if_equal)
15913         (mips_emit_scc): New functions.
15914         (gen_conditional_branch): Rework to use mips_emit_int_relational.
15915         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
15916         sleu_operand.
15917         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
15918         (sltu, sleu): Use mips_emit_scc.
15919         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
15920         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
15921         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
15922
15923 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15924
15925         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
15926
15927 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15928
15929         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
15930         (*sne_[sd]i): Likewise sne_[sd]i_zero.
15931         (*sgt_[sd]i): ...and sgt_[sd]i.
15932         (*slt_[sd]i): ...and slt_[sd]i.
15933         (*sgtu_[sd]i): ...and sgtu_[sd]i.
15934         (*sltu_[sd]i): ...and sltu_[sd]i.
15935         (*sleu_[sd]i): ...and sleu_[sd]i_const.
15936         Name previously unnamed mips16 patterns.  Formatting fixes.
15937
15938 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15939
15940         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
15941         (branch_type): Delete.
15942         (gen_conditional_branch, gen_conditional_move)
15943         (mips_gen_conditional_trap): Update after name change.  Get the
15944         comparison mode from cmp_operands[0].
15945         * config/mips/mips.h (cmp_type, branch_type): Delete.
15946         (cmp_operands): Renamed from branch_cmp.
15947         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
15948         name change.  Don't set branch_type.
15949         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
15950         mode class of cmp_operands[0] rather than branch_type.  Update after
15951         name change.
15952
15953 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15954
15955         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
15956         of 0...255 to 0 when inside a SET.
15957
15958 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15959
15960         * config/mips/mips.md: Remove mips16 define_peepholes.
15961
15962 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15963
15964         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
15965         (fini_pre): Remove fake edges.
15966
15967 2004-07-15  Richard Henderson  <rth@redhat.com>
15968
15969         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
15970         (get_indirect_ref_operands, get_call_expr_operands): ... these.
15971
15972 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15973
15974         * vec.h (VEC_address): New function.
15975
15976 2004-07-14  Jason Merrill  <jason@redhat.com>
15977
15978         PR middle-end/15885
15979         * gimplify.c (gimplify_arg): New fn, split out from...
15980         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
15981
15982 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15983
15984         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
15985         generate code which is generated by pushqi1 now
15986         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
15987
15988 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15989
15990         * combine.c (simplify_set): match the mode of the constant 0 with
15991         the tested operand to match the compare behaviour and the
15992         simplify_relational_operation() expectation.
15993
15994 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15995
15996         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
15997         ("bordered"): Same.
15998
15999 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
16000
16001         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
16002         unconditionally.
16003         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
16004
16005 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
16006
16007         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
16008         calls in mips16 code.
16009
16010 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
16011
16012         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
16013         the destination of the li as well as for the neg.
16014
16015 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
16016
16017         g++/15861
16018         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
16019         * cgraph.h: Update declaration.
16020         * c-decl.c (build_cdtor): Update call with default priority.
16021         * coverage.c (create_coverage): Ditto.
16022         * tree-mudflap.c (mf_init_fndecl): New tree.
16023         (mudflap_init): Set it.
16024         (mudflap_register_call): Arrange to call __mf_init before the first
16025         __mf_register call.
16026         (mudflap_finish_file): Mark the mudflap static initializer as extra
16027         high priority, to beat all C++ static constructors.
16028
16029 2004-07-15  Jeff Law  <law@redhat.com>
16030
16031         * loop.c (check_insn_for_givs): Restore check for code labels that was
16032         accidentally deleted by a recent checkin.
16033
16034 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
16035
16036         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
16037         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
16038
16039 2004-07-14  Richard Henderson  <rth@redhat.com>
16040
16041         * print-tree.c (print_node): Fix casts last change.
16042
16043 2004-07-15  Paul Brook  <paul@codesourcery.com>
16044
16045         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
16046         to TARGET_UNWIND_INFO.
16047         * except.c (output_function_exception_table): Ditto.
16048         * except.h: Ditto.
16049         * opts.c (decode_options): Ditto.
16050         * passes.c (rest_of_handle_final): Ditto.
16051         * final.c (final_start_function): Ditto.
16052         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
16053         target hook.
16054         * targhooks.h (default_unwind_emit): Declare.
16055         * targhooks.c (default_unwind_emit): New function.
16056         * target-def.h: Define and use TARGET_UNWIND_EMIT.
16057         * target.h (struct gcc_target): Add unwind_emit.
16058         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
16059         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
16060         Remove IA64_UNWIND_EMIT.
16061         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
16062
16063 2004-07-14  Richard Henderson  <rth@redhat.com>
16064
16065         * print-tree.c (print_node): Handle SSA_NAME.
16066
16067 2004-07-14  James E Wilson  <wilson@specifixinc.com>
16068
16069         PR target/16325
16070         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
16071         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
16072
16073 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
16074
16075         * expr.c (expand_assignment): Reenable bitfield += optimizations.
16076         Use alias set 0 for memory, do proper mode calculations and adjust
16077         address for memories.
16078
16079 2004-07-14  Per Bothner  <per@bothner.com>
16080
16081         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
16082         structure with extra column field.
16083         * tree.c (expand_location):  Also fill in column field.
16084         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
16085         gets confused by the two conditionally-compiled definitions.
16086
16087 2004-07-14  Eric Christopher  <echristo@redhat.com>
16088
16089         * calls.c (expand_call): Fix typo in comment.
16090
16091 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
16092
16093         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
16094         comparision of TFmode.
16095
16096 2004-07-14  Richard Henderson  <rth@redhat.com>
16097
16098         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
16099         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
16100         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
16101         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
16102         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
16103         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
16104         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
16105         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
16106         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
16107
16108 2004-07-14  Mike Stump  <mrs@apple.com>
16109
16110         * config/darwin.h (WINT_TYPE): Define to be int to match
16111         system header files.
16112
16113 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
16114
16115         * config/xtensa/xtensa.c (function_arg_advance): Check for args
16116         that must be passed in the stack.
16117         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
16118         arguments if the size is not a constant.
16119
16120 2004-07-14  Per Bothner  <per@bothner.com>
16121
16122         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
16123         instead of EXPR_LOCUS in a boolean context, which is always true
16124         if --enable-mapped-location.
16125         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
16126
16127 2004-07-14  Richard Henderson  <rth@redhat.com>
16128
16129         * dominance.c (struct dom_info): Add fake_exit_edge.
16130         (init_dom_info): Allocate it.
16131         (free_dom_info): Free it.
16132         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
16133         in two passes.
16134         (calc_idoms): Honor fake_exit_edge.
16135
16136 2004-07-13  Jason Merrill  <jason@redhat.com>
16137
16138         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
16139         (rhs_test_for): New fn.
16140         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
16141         * tree-gimple.h: Declare them.
16142         * gimplify.c (gimplify_modify_expr): Use the new fns.
16143
16144 2004-07-14  Richard Henderson  <rth@redhat.com>
16145
16146         * config/arm/arm-protos.h (arm_va_arg): Remove.
16147         * config/arm/arm.c (arm_va_arg): Remove.
16148         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
16149         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
16150
16151 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16152
16153         * pa.c (fix_range): New function to mark a range(s) of registers as
16154         fixed registers.
16155         (override_options): Call fix_range if the -mfixed-range option string
16156         is not empty.
16157         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
16158         * doc/invoke.texi (-mfixed-range): Document new option.
16159
16160 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
16161
16162         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
16163         for TARGET_64BIT.
16164         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
16165
16166 2004-07-14  Roger Sayle  <roger@eyesopen.com>
16167
16168         * expmed.c (expand_sdiv_pow2): New function to expand signed division
16169         by a positive power of two, split out from expand_divmod.  Provide
16170         an alternate implementation when shifts are expensive.  Lower the
16171         threshold for using a branchless implementation to BRANCH_COST >= 2.
16172         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
16173
16174 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16175
16176         * tree-dfa.c (make_rename_temp): *Really* work just
16177         like create_tmp_var if called while outside SSA form.
16178
16179 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
16180
16181         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
16182         for division by zero.
16183         ("umodsi3"): Likewise.
16184
16185 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
16186
16187         * config/mips/mips.c (mips_output_move): When generating mips16 code,
16188         force loads of negative constants to be split.
16189         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
16190         Generalize SImode li/neg splitter to cope with other modes.
16191
16192 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16193
16194         * expmed.c: Remove more references to QUEUED in the comments.
16195         * expr.c: Likewise.
16196
16197 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
16198
16199         Revert:
16200         2004-07-13  Richard Henderson  <rth@redhat.com>
16201         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
16202         correctly.
16203
16204 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16205
16206         * tree-dfa.c (make_rename_temp): Work just like
16207         create_tmp_var if called while outside SSA form.
16208
16209 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16210
16211         * expr.c (enqueue_insn, finish_expr_for_function,
16212         protect_from_queue, queued_subexp_p, mark_queue,
16213         emit_insns_enqueued_after_mark, emit_queue,
16214         expand_increment): Remove.
16215         (store_constructor): Expand increment as an assignment.
16216         (expand_expr_real_1 <case PREINCREMENT_EXPR,
16217         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
16218         case POSTDECREMENT_EXPR>): Abort.
16219         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
16220         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
16221         protect_from_queue, emit_queue, queued_subexp_p): Remove.
16222         * function.h (pending_chain, x_pending_chain): Remove.
16223         * rtl.def (QUEUED): Remove.
16224
16225         * emit-rtl.c (copy_insn_1, copy_most_rtx,
16226         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
16227         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
16228         encode_units_mask): Likewise.
16229         * local-alloc.c (equiv_init_varies_p): Likewise.
16230         * rtl.c (copy_rtx): Likewise.
16231         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
16232         * simplify-rtx.c (simplify_gen_subreg): Likewise.
16233         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
16234
16235         * builtins.c (expand_builtin, expand_builtin_apply,
16236         expand_builtin_mathfn, expand_builtin_mathfn_2,
16237         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
16238         Remove calls to emit_queue and protect_from_queue.
16239         * calls.c (expand_call, precompute_arguments,
16240         precompute_register_parameters, rtx_for_function_call,
16241         store_one_arg): Likewise.
16242         * dojump.c (do_compare_and_jump, do_jump): Likewise.
16243         * explow.c (memory_address): Likewise.
16244         * expmed.c (clear_by_pieces_1, clear_storage,
16245         clear_storage_via_libcall, emit_group_load,
16246         emit_group_store, emit_store_flag,
16247         expand_expr_real_1, store_by_pieces,
16248         store_constructor, store_expr, try_casesi,
16249         try_tablejump): Likewise.
16250         * function.c (expand_pending_sizes): Likewise.
16251         * optabs.c (emit_cmp_and_jump_insns,
16252         emit_conditional_add, emit_conditional_move,
16253         expand_fix, expand_float, prepare_cmp_insn): Likewise.
16254         * stmt.c (emit_case_bit_tests,
16255         expand_asm_expr, expand_computed_goto,
16256         expand_decl_init, expand_end_case_type,
16257         expand_end_stmt_expr, expand_expr_stmt_value,
16258         expand_return, expand_start_case,
16259         optimize_tail_recursion): Likewise.
16260         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
16261         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
16262
16263 2004-07-14  Ben Elliston  <bje@au.ibm.com>
16264
16265         * vec.h: Comment fix.
16266
16267 2004-07-13  Richard Henderson  <rth@redhat.com>
16268
16269         * target.h (struct gcc_target): Add calls.pass_by_reference.
16270         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
16271         * function.c (pass_by_reference): Use the hook.
16272         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
16273         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
16274         (hook_pass_by_reference_must_pass_in_stack): New.
16275         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
16276         (alpha_pass_by_reference): New.
16277         (TARGET_PASS_BY_REFERENCE): New.
16278         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16279         * config/arc/arc.c (arc_pass_by_reference): New.
16280         (TARGET_PASS_BY_REFERENCE): New.
16281         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16282         (FUNCTION_ARG_CALLEE_COPIES): True.
16283         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
16284         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
16285         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
16286         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16287         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16288         * config/cris/cris.c (cris_pass_by_reference): New.
16289         (TARGET_PASS_BY_REFERENCE): New.
16290         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
16291         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
16292         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16293         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
16294         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16295         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
16296         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
16297         (frv_function_arg_pass_by_reference): Remove.
16298         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16299         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
16300         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
16301         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
16302         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16303         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
16304         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
16305         (ia64_pass_by_reference): Rename from
16306         ia64_function_arg_pass_by_reference.
16307         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16308         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16309         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
16310         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
16311         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
16312         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16313         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16314         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
16315         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
16316         (m32r_pass_by_reference): Adjust prototype.  Make static.
16317         Handle mode sizes correctly.
16318         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16319         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
16320         (m68hc11_function_arg_pass_by_reference): Remove.
16321         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16322         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16323         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
16324         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16325         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
16326         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
16327         (mips_va_arg): Use pass_by_reference.
16328         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
16329         Handle mode sizes correctly.
16330         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16331         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16332         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
16333         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
16334         (mmix_pass_by_reference): Rename from
16335         mmix_function_arg_pass_by_reference.
16336         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16337         (FUNCTION_ARG_CALLEE_COPIES): True.
16338         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
16339         (mn10300_pass_by_reference): New.
16340         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16341         (FUNCTION_ARG_CALLEE_COPIES): True.
16342         * config/pa/pa.c (pa_pass_by_reference): New.
16343         (TARGET_PASS_BY_REFERENCE): New.
16344         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16345         (FUNCTION_ARG_CALLEE_COPIES): True.
16346         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
16347         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
16348         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
16349         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16350         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
16351         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
16352         (s390_pass_by_reference): Rename from
16353         s390_function_arg_pass_by_reference.
16354         (s390_function_arg_advance): Don't query pass-by-ref.
16355         (s390_function_arg): Likewise.
16356         (s390_gimplify_va_arg): Use pass_by_reference.
16357         (s390_call_saved_register_used): Likewise.
16358         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16359         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
16360         (shcompact_byref, sh_pass_by_reference): New.
16361         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16362         (SHCOMPACT_BYREF): Remove.
16363         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
16364         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
16365         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
16366         (sparc_gimplify_va_arg): Use pass_by_reference.
16367         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16368         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16369         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
16370         (v850_pass_by_reference): New.
16371         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16372         (FUNCTION_ARG_CALLEE_COPIES): True.
16373         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
16374         FUNCTION_ARG_PASS_BY_REFERENCE docs.
16375
16376 2004-07-14  Richard Henderson  <rth@redhat.com>
16377             Richard Sandiford  <rsandifo@redhat.com>
16378
16379         * config/mips/mips-protos.h (mips_va_arg): Delete.
16380         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
16381         * config/mips/mips.c: Include tree-gimple.h.
16382         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
16383         (mips_arg_info): Remove special handling of must_pass_in_stck args.
16384         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
16385         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
16386
16387 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
16388
16389         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
16390         arguments for COND_EXPR in big-endian adjustment code.
16391
16392 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16393
16394         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
16395         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
16396         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
16397         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
16398
16399 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16400
16401         PR tree-optimization/16443
16402         * tree-ssa-alias.c: Add more description for
16403         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
16404         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
16405         clobbering of call-clobbered and addressable variables.  If
16406         there are any before aliases have been computed, add them.
16407
16408 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16409
16410         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
16411         verification.
16412
16413 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
16414
16415         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
16416         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
16417         to the same type.
16418
16419 2004-07-13  Per Bothner  <per@bothner.com>
16420
16421         * collect2.c (main):  Handle --no-demangle and --demangle flags.
16422
16423 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
16424
16425         * Makefile.in (OBJS-common): Add tree-data-ref.o.
16426         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
16427         (tree-data-ref.o): New rule.
16428         * lambda.h: New file.
16429         * tree-data-ref.c: New file.
16430         * tree-data-ref.h: New file.
16431         * tree.c (int_cst_value, tree_fold_gcd): New functions.
16432         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
16433
16434 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16435
16436         PR target/13926
16437         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
16438         * config/sparc/sparc.c (output_ubranch): New function.
16439         * config/sparc/sparc.md (jump pattern): Use it.
16440
16441 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16442
16443         PR target/16494
16444         * config/sparc/sparc.c (output_cbranch): Properly guard
16445         the code handling far branches with TARGET_V9.
16446         * config/sparc/sparc.md (length attribute): Document the
16447         side-effect of having a length greater or equal to 3.
16448
16449 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16450             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
16451
16452         PR target/15186
16453         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
16454         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
16455
16456 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16457             Martin Sebor  <sebor@roguewave.com>
16458
16459         PR target/12602
16460         * doc/invoke.texi (SPARC options): Document -threads
16461         and -pthreads on Solaris.
16462
16463 2004-07-13  Richard Henderson  <rth@redhat.com>
16464
16465         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
16466         by reference.
16467         (ind_gimplify_va_arg_expr): Remove.
16468         * tree.h (ind_gimplify_va_arg_expr): Remove.
16469         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
16470         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
16471         argsp to be null.
16472
16473         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
16474         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
16475         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
16476         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
16477         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
16478
16479 2004-07-13  Richard Henderson  <rth@redhat.com>
16480
16481         * function.c (pass_by_reference): New.
16482         (assign_parm_find_data_types): Use it.
16483         * calls.c (initialize_argument_information): Likewise.
16484         (emit_library_call_value_1): Likewise.
16485         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16486         * function.h (pass_by_reference): Declare.
16487
16488 2004-07-13  Richard Henderson  <rth@redhat.com>
16489
16490         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
16491         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
16492         * expr.h (MUST_PASS_IN_STACK): Remove.
16493         * system.h (MUST_PASS_IN_STACK): Poison.
16494         * tree.h (must_pass_in_stack_var_size): Declare.
16495         (must_pass_in_stack_var_size_or_pad): Declare.
16496         * calls.c (must_pass_in_stack_var_size): New.
16497         (must_pass_in_stack_var_size_or_pad): Rename from
16498         default_must_pass_in_stack.
16499         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
16500         (TARGET_MUST_PASS_IN_STACK): New.
16501         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
16502         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
16503         (TARGET_MUST_PASS_IN_STACK): New.
16504         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
16505         * config/frv/frv.c (frv_must_pass_in_stack): New.
16506         (TARGET_MUST_PASS_IN_STACK): New.
16507         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
16508         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
16509         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
16510         (ix86_must_pass_in_stack): Make static.
16511         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
16512         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
16513         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
16514         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
16515         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
16516         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
16517         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
16518         (mcore_must_pass_on_stack): Remove.
16519         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
16520         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
16521         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
16522         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
16523         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
16524         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
16525         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
16526         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
16527         (TARGET_MUST_PASS_IN_STACK): New.
16528         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
16529         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
16530         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
16531         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
16532         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
16533         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
16534         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
16535         MUST_PASS_IN_STACK.
16536
16537         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
16538         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
16539         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
16540         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
16541         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
16542         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
16543         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
16544         config/xtensa/xtensa.c: Use target hook.
16545
16546 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
16547
16548         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
16549         * configure: Rebuilt.
16550
16551 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16552
16553         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
16554         * config/mips/mips.h (mips_reg_names): Don't declare.
16555         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
16556         (TARGET_NAME_REGS): Delete.
16557         (TARGET_SWITCHES): Remove -mrnames.
16558         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
16559         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
16560         in REGISTER_NAMES.
16561         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
16562         (override_options): Remove handling of TARGET_NAME_REGS.
16563
16564 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16565
16566         * config/mips/mips.h (TARGET_*): Boolify.
16567
16568 2004-07-12  Nick Clifton  <nickc@redhat.com>
16569
16570         * config.gcc: Add sh-*-symbianelf target.
16571         * config/sh/sh.c: Add new target macros:
16572         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
16573         TARGET_CXX_IMPORT_EXPORT_CLASS.
16574         (sh_file_start): Create a definition of the .directive section.
16575         (sh_attribute): Add dllimport and dllexport attributes.
16576         * config/sh/symbian-pre.h: New file.
16577         * config/sh/symbian-post.h: New file.
16578         * config/sh/symbian.c: New file. Contains Symbian specific
16579         functions.
16580         * config/sh/sh-protos.h: Add prototypes for new functions
16581         provided by symbian.c.
16582         * config/sh/t-symbian: New file.
16583         * doc/extend.texi: Document support for dllimport and dllexport
16584         attributes by the sh-symbianelf target.
16585
16586 2004-07-12  James E Wilson  <wilson@specifixinc.com>
16587
16588         * Makefile.in (AR): Use @AR@ not ar.
16589         (NM): New.
16590         (AR_FOR_TARGET): Use $(AR) not ar for native.
16591         (NM_FOR_TARGET): Use $(NM) not nm for native.
16592         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
16593         * configure: Regenerate.
16594
16595 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
16596
16597         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
16598         special case.
16599         (ashldi3_sp64): Likewise.
16600
16601 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16602
16603         PR target/16477
16604         * pa.c (function_arg): Update comment.
16605         * pa.h (BLOCK_REG_PADDING): Define.
16606
16607 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16608
16609         PR tree-optimization/16461
16610         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
16611         arguments of phi nodes.
16612
16613 2004-07-12  Devang Patel  <dpatel@apple.com>
16614
16615         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
16616
16617 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
16618
16619         * function.c (expand_function_start): Ensure r_save is in Pmode.
16620         * calls.c (prepare_call_address): Ensure static_chain_value is
16621         in Pmode.
16622         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
16623         r_save_area are in Pmode.
16624         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
16625         fnaddr, and static_chain are in Pmode.
16626
16627 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
16628
16629         PR target/16445
16630         * config/ia64/ia64.c (bundling): Don't count ignored insns.
16631
16632 2004-07-12  Richard Henderson  <rth@redhat.com>
16633
16634         * target.h (struct gcc_target): Move gimplify_va_arg_expr
16635         next to build_builtin_va_list.
16636         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
16637         * builtins.c (gimplify_va_arg_expr): Likewise.
16638         * gimplify.c (copy_if_shared_r): Likewise.
16639
16640 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
16641
16642         * passes.c (rest_of_decl_compilation): Don't defer call of
16643         assemble_variable if its DECL_RTL is already set.
16644
16645 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
16646
16647         * cfgloop.h (struct loop): Add nb_iterations field.
16648         (current_loops): Declare.
16649         * tree-chrec.c (chrec_not_analyzed_yet,
16650         chrec_dont_know, chrec_known, count_ev_in_wider_type,
16651         chrec_contains_symbols_defined_in_loop): Remove the temporary
16652         hooks.
16653         * tree-flow-inline.h (loop_containing_stmt): New function.
16654         * tree-scalar-evolution.c: Add implementation.
16655         * tree-scalar-evolution.h: Add declarations.
16656
16657 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
16658
16659         PR rtl-optimization/15921
16660         * Makefile.in (global.o): Add recog.h.
16661
16662         * global.c (recog.h): Add the include-clause.
16663         (bb_info): New member earlyclobber.
16664         (allocate_bb_info, free_bb_info): Initialize/finish the new
16665         member.
16666         (earlyclobber_regclass, earlyclobber_regclass_length): The new
16667         global variables.
16668         (check_earlyclobber, regclass_intersect,
16669         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
16670         New functions.
16671         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
16672         (make_accurate_live_analysis): Modify pavin.
16673
16674 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
16675
16676         * tree-cfg.c (find_taken_edge): Statically compute the truth
16677         value of a predicate comparing an SSA_NAME to itself.
16678
16679 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16680
16681         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
16682         rs6000 doesn't have shift-and-add or shift-and-sub instructions
16683         by returning the cost of a multiplication plus an addition.
16684
16685 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
16686
16687         PR tree-optimization/14107
16688         * gimplify.c (gimplify_return_expr): Accept a
16689         RETURN_EXPR with an error argument.
16690         * tree-optimize.c (init_tree_optimization_passes):
16691         Run pass_warn_function_return at -O0.
16692
16693 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16694
16695         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
16696         index entry.
16697
16698 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
16699
16700         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
16701         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16702         * config/mips/3000.md: Add copyright notice.  Remove automota and
16703         function units; use generic ones instead.  Only define reservations
16704         for things that are different from generic.md.  Extend each clause
16705         to include r3900.
16706         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
16707         * config/mips/mips.md: Include them. Remove define_function_units.
16708         (alu, imuldiv): New automata and units.
16709
16710 2004-07-12  Ben Elliston  <bje@au.ibm.com>
16711
16712         * doc/invoke.texi (Optimize Options): Document -frename-registers
16713         not being enabled by default at -O3.
16714
16715 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16716
16717         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
16718         floating point additions, to keep real immediate constant positive.
16719         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
16720         into X + C, and leave positive real constants as X - C.
16721
16722 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16723
16724         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
16725
16726 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16727
16728         PR tree-optimization/15654
16729         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
16730
16731 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16732
16733         * builtins.c (fold_builtin_fputs): Don't bother converting the
16734         return type to integer_type_node, as we've already checked that
16735         the result will be ignored.
16736
16737         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
16738         that signed addition, subtraction, multiplication, division,
16739         remainder, negation and absolute value may potentially trap.
16740
16741         * fold-const.c (fold_ignored_result): New function to strip
16742         non-side-effecting tree nodes from an expression whose result
16743         is ignored.
16744         (fold_convert): Call fold_ignored_result when casting a value
16745         to VOID_TYPE.
16746         (omit_one_operand):  Call fold_ignored_result on the "omitted"
16747         operand when building a COMPOUND_EXPR.
16748         (pedantic_omit_one_operand): Likewise.
16749         * tree.h (fold_ignored_result): Prototype here.
16750         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
16751         when we're going to ignore the result.
16752
16753 2004-07-11  Richard Henderson  <rth@redhat.com>
16754
16755         PR tree-opt/16383
16756         * tree-ssa-ccp.c (fold_stmt_r): Split out...
16757         * tree.c (fields_compatible_p, find_compatible_field): ... new.
16758         * tree.h (fields_compatible_p, find_compatible_field): Declare.
16759         * tree-sra.c (sra_hash_tree): Hash fields by offset.
16760         (sra_elt_eq): Use fields_compatible_p.
16761         (generate_one_element_ref): Use find_compatible_field.
16762
16763 2004-07-11  Richard Henderson  <rth@redhat.com>
16764
16765         PR tree-opt/16422
16766         * tree-sra.c (generate_one_element_init): New.
16767         (generate_element_init): Use it.
16768         (scalarize_init): Push/pop gimplify context around it.
16769         (find_new_referenced_vars_1, find_new_referenced_vars): New.
16770         * gimplify.c (gimplify_expr): Allow SSA_NAME.
16771
16772 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16773
16774         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
16775         combine.c's combine_insn_cost.
16776         * rtl.h (insn_rtx_cost): Prototype here.
16777         * combine.c (combine_insn_cost): Delete function.
16778         (combine_validate_cost): Update callers of combine_insn_cost to
16779         call insn_rtx_cost instead.
16780         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
16781         requesting the rtx_cost of call and/or jump instructions.
16782
16783         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
16784         rtx_cost directly.  Don't request/use the cost of call or jump
16785         instructions.  Return -1 if the cost of any instruction can't be
16786         determined (or the BB contains a function call).
16787         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
16788         -1 (i.e. can't determine the cost of any instruction or the basic
16789         block contains a subroutine call).
16790         (find_if_case_2): Likewise.
16791
16792 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16793
16794         * rs6000.c (struct processor_costs): Change semantics of fields to
16795         include the COST_N_INSNS scaling, and update all initializers.
16796         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
16797         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
16798         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
16799         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
16800
16801 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16802
16803         * LANGUAGES: Remove obsolete information.
16804
16805 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16806
16807         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
16808         SIGBUS signal frames, the PSW address points *to* the faulting
16809         instruction, not after it.
16810
16811 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16812
16813         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
16814         added to TLS symbol addresses.
16815
16816 2004-07-11  Richard Henderson  <rth@redhat.com>
16817
16818         * expmed.c (init_expmed): Use stack-local structures for
16819         temporary rtl.  Don't recognize shifts.
16820
16821 2004-07-11  Richard Henderson  <rth@redhat.com>
16822
16823         * expr.c (store_expr): Don't fiddle subreg promotion for types
16824         with precision smaller than the mode.
16825
16826 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16827
16828         * tree.h (all_types_permanent): Remove.
16829
16830 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16831
16832         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
16833         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
16834         * langhooks.c (lhd_clear_binding_stack): Remove.
16835         * langhooks-def.h (lhd_clear_binding_stack,
16836         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16837         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
16838         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
16839         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16840         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
16841         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16842         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
16843         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16844         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
16845         * tree.h (poplevel): Don't declare.
16846         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
16847         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16848         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
16849         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16850         Remove.
16851
16852 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16853
16854         PR tree-optimization/16437
16855         * c-common.c (shorten_compare): Don't mark result of conversion to
16856         narrower signed type as overflowing.
16857         * fold-const.c (decode_field_reference): Determine whether
16858         signedness comes from outer type using precision rather than size.
16859
16860 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16861
16862         * configure.ac:  Alphabetize --enable-checking list, add
16863         missing valgrind entry.
16864         * configure:  Regenerate.
16865
16866 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16867
16868         * doc/install.texi (Testing):  Fix syntax in "make check" example.
16869
16870 2004-07-10  James E Wilson  <wilson@specifixinc.com>
16871
16872         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
16873
16874 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16875
16876         PR rtl-optimization/16001
16877         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
16878         niter_expr.
16879
16880 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
16881
16882         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
16883
16884 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
16885             James Morrison  <phython@gcc.gnu.org>
16886
16887         * doc/contrib.texi (Contributors): Add gfortran contributors and
16888         fix a couple of typos.
16889
16890 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16891
16892         PR rtl-optimization/15387
16893         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
16894         to incoming args space correctly.
16895
16896 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16897
16898         * pa.c (output_indirect_call): Only use %r2 as the link register in
16899         indirect calls with the long PA 2.0 pc-relative branch.
16900
16901 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
16902
16903         * config/i386/i386.c (override_options): Pick a 64-bit CPU
16904         for the default tuning if TARGET_64BIT.
16905
16906 2004-07-10  Richard Henderson  <rth@redhat.com>
16907
16908         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
16909         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
16910
16911 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
16912
16913         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
16914         * expmed.c (store_bit_field, extract_bit_field): Remove last
16915         argument.
16916         * builtins.c (expand_builtin_signbit): Adjust callers.
16917         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
16918         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
16919         * ifcvt.c (noce_emit_move_insn): Likewise.
16920         * stmt.c (expand_return): Likewise.
16921         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
16922         store_field, expand_expr_real_1): Likewise.
16923
16924 2004-07-10  Richard Henderson  <rth@redhat.com>
16925
16926         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
16927
16928 2004-07-09  Mike Stump  <mrs@apple.com>
16929
16930         * config/darwin.c (no_dead_strip): Add.
16931         (HAVE_DEAD_STRIP): Add.
16932         (darwin_emit_unwind_label): Ensure that we don't dead code strip
16933         the .eh label.
16934
16935 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16936
16937         * tree-ssa-loop-im.c: New file.
16938         * Makefile.in (tree-ssa-loop-im.o): Add.
16939         * cfgloop.c (superloop_at_depth): New function.
16940         * cfgloop.h (superloop_at_depth): Declare.
16941         * common.opt (ftree-lim): New flag.
16942         * expr.c (array_ref_up_bound): New function.
16943         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
16944         * timevar.def (TV_LIM): New timevar.
16945         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
16946         computing immediate uses of a phi node.
16947         * tree-flow.h (struct tree_ann_common_d): Add aux field.
16948         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
16949         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
16950         * tree-pass.h (pass_lim): Declare.
16951         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
16952         functions.
16953         (pass_lim): New pass structure.
16954         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
16955         * tree.c (in_array_bounds_p): New function.
16956         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
16957         (in_array_bounds_p, array_ref_up_bound): Declare.
16958         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
16959         * doc/passes.texi (tree-ssa-loop-im.c): Document.
16960
16961 2004-07-09  Richard Henderson  <rth@redhat.com>
16962
16963         * builtins.c (expand_builtin_stpcpy): Don't modify len.
16964
16965         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
16966         with prejudice.
16967
16968 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
16969
16970         * flags.h: Delete redundant prototypes that are being generated
16971         in options.h from common.opt.
16972         * common.opt: Add in the expository comments formerly in flags.h.
16973
16974 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16975
16976         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
16977         available for use only when TARGET_MMX/_SSE is set, and check for
16978         variable argument function if any register count is non-zero.
16979         (function_arg): Correctly suppress repeated warnings for passing SSE
16980         vectors are arguments without SSE enabled.
16981         (ix86_function_arg_boundary): Without SSE enabled, the use of what
16982         would be SSE register modes does no longer influence the alignment.
16983
16984 2004-07-09  Richard Henderson  <rth@redhat.com>
16985
16986         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
16987         Always align upward to arg boundary.  Use size_in_bytes/round_up.
16988         Maintain type-correctness of constants.
16989         * stor-layout.c (round_up, round_down): Special-case powers of 2.
16990
16991 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16992
16993         * config/sparc/sparc.c (*_costs): Scale instruction costs
16994         by COSTS_N_INSNS.
16995         (sparc_rtx_costs): Adjust as appropriate.
16996
16997 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16998
16999         * config/i386/mm3dnow.h: New.
17000         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
17001
17002 2004-07-09  Richard Henderson  <rth@redhat.com>
17003
17004         * simplify-rtx.c (simplify_const_relational_operation): Only
17005         look at bounds of scalar integers.
17006
17007 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17008
17009         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
17010
17011 2004-07-09  Andrew Pinski  <apinski@apple.com>
17012
17013         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
17014         always referenced.
17015         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
17016         UOBJC_METACLASS_decl.
17017
17018 2004-07-09  James E Wilson  <wilson@specifixinc.com>
17019
17020         PR target/16364
17021         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
17022         do return a parallel if hfa_mode == XFmode and mode == TImode.
17023
17024 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17025
17026         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
17027         permissible for unary plus.
17028
17029 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17030
17031         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
17032         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
17033         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
17034         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
17035         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
17036         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
17037         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
17038         (BUILTIN_xxxIMAX): New.
17039         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
17040         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
17041         BUILT_IN_PARITYIMAX.
17042
17043 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
17044
17045         * config/sparc/sparc.h (processor_costs): Define.
17046         (sparc_costs): Declare.
17047         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
17048         hypersparc_costs, sparclet_costs, ultrasparc_costs,
17049         ultrasparc3_costs): New.
17050         (sparc_override_options): Set sparc_costs as appropriate.
17051         (sparc_rtx_costs): Use sparc_costs instead of messy
17052         conditionals.
17053
17054 2004-07-09  Steven Bosscher  <stevenb@suse.de>
17055
17056         * doc/md.texi (Processor pipeline description): Mention that
17057         the old pipeline description is deprecated.
17058
17059         * config/rs6000/7450.md (automaton ppc7450): Split up, move
17060         mciu_7450 function unit to...
17061         (automaton ppc7450mciu): ...new automaton.
17062
17063         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
17064         (schedule_block): Don't consider inserting bubbles.
17065         (sched_init): Don't initialize DFA bubbles.
17066         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
17067         TARGET_SCHED_DFA_BUBBLE): Remove.
17068         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
17069         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
17070         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
17071
17072         * stmt.c (conditional_context): Remove prototype.
17073         * tree.h (conditional_context): Remove.
17074         * tree-cfg.c (pre_insert_on_edge): Remove.
17075
17076         * c-common.h (c_expand_asm_operands): Remove prototype.
17077         * c-typeck.c (c_expand_asm_operands): Remove.
17078
17079 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17080
17081         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
17082         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
17083         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
17084         and V8QI are class SSE. All sufficiently small remaining vector modes
17085         must be passed in one or two integer registers.
17086         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
17087         returned in memory.
17088         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
17089         __builtin_ia32_pmuludq128 have non-uniform argument and return types
17090         and must thus be handled explicitly.
17091         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
17092         MMX and XMM regs.
17093         (movv8qi_internal, movv4hi_internal, movv2si_internal,
17094         movv2sf_internal): Permit moving between MMX and XMM registers (since
17095         MMX areguments and return values are passed in XMM registers).
17096         (sse2_umulsidi3): Correct type and mode.
17097
17098 2004-07-09  Richard Henderson  <rth@redhat.com>
17099
17100         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
17101
17102 2004-07-09  Eric Christopher  <echristo@redhat.com>
17103
17104         * config/rs6000/40x.md: Split into two automatons.
17105
17106 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
17107             Andrew Pinski  <apinski@apple.com>
17108
17109         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
17110         on when we have more than one input file.
17111         (c_common_parse_file): Restore loop over all input files.
17112         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
17113
17114         * c-decl.c (set_type_context): New function.
17115         (pop_scope): Use it to set context of types.  When we
17116         encounter a TYPE_DECL, set the context of the attached type too.
17117         (pop_file_scope): Don't call cpp_undef_all here.
17118         (diagnose_mismatched_decls): Do not complain about a second
17119         definition of an 'extern inline' function if it's not in the
17120         same translation unit.  Do not complain about inline
17121         declaration after use if the use was in a different
17122         translation unit.
17123         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
17124         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
17125         the external scope.
17126         (pushdecl_top_level): Likewise.
17127         (grokdeclarator): Clarify what is going on with setting
17128         DECL_EXTERNAL on function types, a little.
17129         (c_write_global_declarations): Don't do anything if
17130         -fsyntax-only or errors have been encountered.
17131
17132 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
17133
17134         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
17135
17136 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17137
17138         PR target/16459
17139         * pa.c (output_indirect_call): Use %r2 as the link register when
17140         calling $$dyncall with a pc-relative branch.
17141
17142 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
17143
17144         * doc/install.texi (Binaries): Mention OpenPKG.
17145
17146 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
17147
17148         Fix PR tree-optimization/15555
17149         * tree-dfa.c (dump_variable): If the variable is a pointer
17150         SSA_NAME, also dump its points-to information.
17151         * tree-flow.h (struct ptr_info_def): Add field
17152         is_dereferenced.
17153         (dump_points_to_info_for): Declare.
17154         (debug_points_to_info_for): Declare.
17155         * tree-optimize.c (init_tree_optimization_passes): Add a
17156         second alias analysis pass after DOM2.
17157         Move pass_del_pta to a later spot.
17158         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
17159         create a name tags when we find a dereferenced pointer.  Just
17160         mark the pointer dereferenced.
17161         (collect_points_to_info_for): Move code to clear points-to
17162         information to create_name_tags.
17163         (create_name_tags): New function.
17164         (compute_flow_sensitive_aliasing): Call it.
17165         (setup_pointers_and_addressables): Mark type tags for renaming
17166         here instead of ...
17167         (create_memory_tag): ... here.
17168         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
17169         (dump_points_to_info_for): Declare extern.
17170         (debug_points_to_info_for): New function.
17171
17172 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
17173
17174         * config/arc/arc.md: Switch to DFA-based scheduler description.
17175         * config/arc/arc.c: Switch to DFA-based scheduler description.
17176
17177 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17178
17179         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
17180         pointer.
17181
17182 2004-07-09  Richard Henderson  <rth@redhat.com>
17183
17184         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
17185         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17186         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
17187         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
17188
17189         * config/v850/v850-protos.h (v850_va_arg): Remove.
17190         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17191         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
17192         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
17193         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
17194         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
17195
17196 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17197
17198         PR target/12133
17199         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
17200         and DImode to use +/-4k offset.
17201
17202 2004-07-09  Richard Henderson  <rth@redhat.com>
17203
17204         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
17205         Remove.
17206         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17207         (xstormy16_gimplify_va_arg_expr): Rewrite from
17208         xstormy16_expand_builtin_va_arg.
17209         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
17210
17211         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
17212         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
17213
17214         * config/sh/sh-protos.h (sh_va_arg): Remove.
17215         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17216         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
17217         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
17218
17219         * config/pa/pa-protos.h (hppa_va_arg): Remove.
17220         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17221         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
17222         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
17223
17224         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
17225         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17226         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
17227         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
17228
17229 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17230
17231         * config/sparc/sparc.md (return): Rewrite length formula.
17232         * config/sparc/sparc.c (output_return): Pass 1 as 5th
17233         argument to final_scan_insn when in a delay slot.
17234         (output_sibcall): Likewise.
17235
17236 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17237
17238         * arm.c (arm_cpp_interwork): New variable.
17239         (arm_override_options): Set it if TARGET_INTERWORK was on the command
17240         line.
17241         * arm.h (arm_cpp_interwork): Declare it.
17242         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
17243         __THUMB_INTERWORK__ in the preprocessor.
17244
17245 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
17246
17247         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
17248
17249 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17250
17251         PR target/16416
17252         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
17253         Override default settings to account for -m32 and -m64.
17254
17255 2004-07-08  Randolph Chung  <tausq@debian.org>
17256
17257         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
17258
17259 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
17260
17261         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
17262         before comparing it as such.
17263
17264 2004-07-08  Richard Henderson  <rth@redhat.com>
17265
17266         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
17267         temporary.  Use bit arithmetic to align.
17268
17269 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
17270
17271         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
17272         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
17273         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
17274         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
17275         add_labels_and_missing_jumps, find_jump_block,
17276         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
17277         Likewise.
17278         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
17279         link_btr_uses, move_btr_def): Likewise.
17280         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
17281         expand_builtin_expect_jump): Likewise.
17282         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
17283         * calls.c (expand_call, emit_library_call_value_1): Likewise.
17284         * cfganal.c (forwarder_block_p): Likewise.
17285         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
17286         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
17287         find_bb_boundaries): Likewise.
17288         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
17289         merge_blocks_move_predecessor_nojumps,
17290         merge_blocks_move_successor_nojumps, insns_match_p,
17291         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
17292         try_optimize_cfg): Likewise.
17293         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
17294         * cfglayout.c (skip_insns_after_block, label_for_bb,
17295         record_effective_endpoints, insn_locators_initialize,
17296         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
17297         * cfgmainloop.c (create_loop_notes): Likewise.
17298         * cfgrtl.c (delete_insn, delete_insn_chain,
17299         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
17300         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
17301         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
17302         redirect_branch_edge, force_nonfallthru_and_redirect,
17303         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
17304         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
17305         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
17306         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
17307         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
17308         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
17309         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
17310         * combine.c (combine_instructions, can_combine_p, try_combine,
17311         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
17312         distribute_notes, distribute_links, insn_cuid): Likewise.
17313         * cse.c (fold_rtx, cse_insn, cse_around_loop,
17314         invalidate_skipped_block, cse_set_around_loop,
17315         cse_end_of_basic_block, cse_main, cse_basic_block,
17316         cse_condition_code_reg): Likewise.
17317         * cselib.c (cselib_process_insn): Likewise.
17318         * ddg.c (create_ddg): Likewise.
17319         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
17320         Likewise.
17321         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
17322         gen_label_die, dwarf2out_var_location): Likewise.
17323         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
17324         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
17325         last_call_insn, active_insn_p, next_label, prev_label,
17326         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
17327         add_insn_before, remove_insn, add_function_usage_to,
17328         reorder_insns, find_line_note, remove_unnecessary_notes,
17329         emit_insn_after_1, classify_insn): Likewise.
17330         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
17331         connect_post_landing_pads, sjlj_mark_call_sites,
17332         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
17333         can_throw_internal, can_throw_external, set_nothrow_function_flags,
17334         convert_to_eh_region_ranges): Likewise.
17335         * explow.c (optimize_save_area_alloca): Likewise.
17336         * expr.c (expand_expr_real): Likewise.
17337         * final.c (insn_current_reference_address, compute_alignments,
17338         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
17339         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
17340         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
17341         propagate_block_delete_insn, propagate_one_insn,
17342         init_propagate_block_info, propagate_block, libcall_dead_p,
17343         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
17344         Likewise.
17345         * function.c (instantiate_virtual_regs, reorder_blocks_1,
17346         expand_function_start, expand_function_end, contains,
17347         thread_prologue_and_epilogue_insns,
17348         reposition_prologue_and_epilogue_notes): Likewise.
17349         * gcse.c (constprop_register, bypass_conditional_jumps,
17350         insert_insn_end_bb, gcse_after_reload): Likewise.
17351         * genemit.c (gen_expand, gen_split): Likewise.
17352         * genpeep.c (gen_peephole, main): Likewise.
17353         * global.c (build_insn_chain): Likewise.
17354         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
17355         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
17356         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
17357         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
17358         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
17359         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
17360         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
17361         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
17362         dead_or_predicable): Likewise.
17363         * integrate.c (try_constants): Likewise.
17364         * jump.c (rebuild_jump_labels, cleanup_barriers,
17365         purge_line_number_notes, init_label_info, mark_all_labels,
17366         squeeze_notes, get_label_before, get_label_after,
17367         reversed_comparison_code_parts, simplejump_p, pc_set,
17368         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
17369         delete_barrier, delete_prior_computation, delete_computation,
17370         delete_related_insns, delete_for_peephole, redirect_jump):
17371         Likewise.
17372         * lcm.c (optimize_mode_switching): Likewise.
17373         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
17374         Likewise.
17375         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
17376         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
17377         * loop-iv.c (simplify_using_assignment): Likewise.
17378         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
17379         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
17380         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
17381         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
17382         check_insn_for_givs, check_final_value, update_giv_derive,
17383         basic_induction_var, product_cheap_p, check_dbra_loop,
17384         loop_insn_first_p, last_use_this_basic_block,
17385         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
17386         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
17387         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
17388         sms_schedule_by_order): Likewise.
17389         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
17390         * postreload.c (reload_cse_simplify_operands, reload_combine,
17391         reload_cse_move2add): Likewise.
17392         * predict.c (can_predict_insn_p, estimate_probability,
17393         expected_value_to_br_prob, process_note_predictions): Likewise.
17394         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
17395         * profile.c (branch_prob): Likewise.
17396         * ra-build.c (live_out_1, livethrough_conflicts_bb,
17397         detect_webs_set_in_cond_jump): Likewise.
17398         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
17399         ra_print_rtl_with_bb): Likewise.
17400         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
17401         * recog.c (next_insn_tests_no_inequality, find_single_use,
17402         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
17403         * reg-stack.c (next_flags_user, record_label_references,
17404         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
17405         compensate_edge, convert_regs_1): Likewise.
17406         * regclass.c (scan_one_insn): Likewise.
17407         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
17408         regmove_optimize, fixup_match_1, single_set_for_csa,
17409         combine_stack_adjustments_for_block): Likewise.
17410         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
17411         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
17412         find_equiv_reg): Likewise.
17413         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
17414         reload_as_needed, emit_input_reload_insns, do_output_reload,
17415         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
17416         Likewise.
17417         * reorg.c (find_end_label, emit_delay_sequence,
17418         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
17419         get_jump_flags, rare_destination, mostly_true_jump,
17420         try_merge_delay_insns, redundant_insn, own_thread_p,
17421         fill_simple_delay_slots, fill_slots_from_thread,
17422         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
17423         dbr_schedule): Likewise.
17424         * resource.c (find_basic_block, next_insn_no_annul,
17425         find_dead_or_set_registers, mark_target_live_regs): Likewise.
17426         * rtl.h (RTX_PREV): Likewise.
17427         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
17428         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
17429         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
17430         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
17431         tablejump_p, computed_jump_p, insns_safe_to_move_p,
17432         find_first_parameter_load, can_hoist_insn_p): Likewise.
17433         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
17434         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
17435         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
17436         schedule_ebbs): Likewise.
17437         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
17438         is_conditionally_protected, can_schedule_ready_p,
17439         add_branch_dependences, debug_dependencies): Likewise.
17440         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
17441         Likewise.
17442         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
17443         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
17444         set_dominates_use, ujump_to_loop_cont): Likewise.
17445         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
17446         * varasm.c (output_constant_pool_1): Likewise.
17447
17448 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17449
17450         * tree-scalar-evolution.c: New file.
17451         * tree-scalar-evolution.h: New file.
17452         * tree-ssa-loop-niter.c: New file.
17453         * Makefile.in (SCEV_H): New.
17454         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
17455         * cfgloop.h (struct loop): Add bounds field.
17456         * tree-flow.h (struct tree_niter_desc): New type.
17457         (number_of_iterations_cond, number_of_iterations_exit,
17458         loop_niter_by_eval, find_loop_niter_by_eval,
17459         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
17460         free_numbers_of_iterations_estimates): Declare.
17461         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
17462         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
17463         * doc/invoke.texi (max-iterations-to-track): Document.
17464
17465 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
17466
17467         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
17468         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
17469         (MODE_AFTER): Add cast appropriately.
17470         * config/sh/sh.md (movdi splitter): Likewise.
17471         (casesi_worker_2): Add const qualifier appropriately.
17472         (eh_return): Remove unused variable.
17473         (insv): Initialize v;
17474
17475 2004-07-08  Richard Henderson  <rth@redhat.com>
17476
17477         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
17478         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17479         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
17480         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
17481         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
17482
17483         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
17484         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17485         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
17486         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
17487
17488         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
17489         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17490         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
17491         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
17492
17493         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
17494         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17495         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
17496         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
17497
17498         * config/i860/i860-protos.h (i860_va_arg): Remove.
17499         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17500         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
17501         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
17502
17503 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17504
17505         * system.h: Prototype getpagesize if missing.
17506         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
17507         * configure: Regenerate.
17508         * config.in: Regenerate.
17509
17510 2004-07-08  Richard Henderson  <rth@redhat.com>
17511
17512         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
17513         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17514         (fr30_gimplify_va_arg_expr): New.
17515         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
17516         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
17517
17518 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
17519
17520         PR target/16414
17521         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
17522         of asm_noperands result.
17523
17524 2004-07-08  Richard Henderson  <rth@redhat.com>
17525
17526         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
17527         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17528         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
17529         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
17530
17531 2004-07-08  Richard Henderson  <rth@redhat.com>
17532
17533         * builtins.c (ind_gimplify_va_arg_expr): New.
17534         * tree.h (ind_gimplify_va_arg_expr): Declare.
17535         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
17536
17537 2004-07-08  Jan Beulich  <jbeulich@novell.com>
17538
17539         * expmed.c (extract_bit_field): Correct condition to use vec_extract
17540         patterns also on vector elements other than the first one.
17541         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
17542         break statements.
17543
17544 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
17545
17546         * config/rs6000/darwin-ldouble.c: Correct reference
17547         to the Linnainmaa paper.
17548
17549 2004-07-08  Richard Henderson  <rth@redhat.com>
17550
17551         * config/arc/arc-protos.h (arc_va_arg): Remove.
17552         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17553         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
17554         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
17555
17556         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
17557         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17558         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
17559         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
17560
17561 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17562
17563         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
17564
17565 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17566
17567         * c-decl.c (static_ctors, static_dtors): Make static.
17568         (pop_file_scope): Call c_common_write_pch and
17569         cgraph_finalize_compilation_unit here.
17570         (build_cdtor): Moved here from c-objc-common.c; simplify.
17571         (c_write_global_declarations_1): Clarify comment.
17572         (c_write_global_declarations): Close the external scope before
17573         doing anything else.  Call build_cdtor, cgraph_optimize, and
17574         mudflap_finish_file here.
17575         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
17576         Clarify comment.
17577         * c-objc-common.c: No need to include cgraph.h.
17578         (build_cdtor): Moved to c-decl.c.
17579         (c_objc_common_finish_file): Delete.
17580         * c-tree.h: Update to match.
17581         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
17582         (generate_static_references): Set TREE_USED before calling finish_decl.
17583         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
17584         on the static_instances_decl.
17585
17586 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17587
17588         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
17589         decls when there is only one input translation unit.
17590         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
17591         change of 2004-07-05; do not treat declarations with
17592         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
17593         * opts.c (cur_in_fname): Delete.
17594         * opts.h: Likewise.
17595         * tree.c: Revert changes of 2004-07-05; no special treatment
17596         for TRANSLATION_UNIT_DECLs.
17597         * Makefile.in (tree.o): Update dependencies.
17598
17599 2004-07-08  Roger Sayle  <roger@eyesopen.com>
17600
17601         * builtins.c (fold_builtin_strcpy): Merge functionality from
17602         simplify_builtin_strcpy.  Add additional len argument.  No longer
17603         static.  Remove function prototype.
17604         (fold_builtin_strncpy): Likewise integrate functionality from
17605         simplify_builtin_strncpy.  Add additional slen argument.  No
17606         longer static.  Remove function prototype.
17607         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
17608         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
17609         types of "ignore" and "unlocked" parameters to bool.
17610         (fold_builtin_1):  Add additional ignore argument.  Call renamed
17611         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
17612         builtins.  Update arguments to fold_builtin_strncpy and
17613         fold_builtin_strcpy.  Add function prototype.
17614         (fold_builtin): Add additional Boolean ignore argument to pass
17615         to fold_builtin_1.
17616         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
17617         and fold_builtin_strncpy instead of simplify_builtin_fputs,
17618         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
17619
17620         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
17621         simplify_builtin_strncpy): Delete function prototypes.
17622         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
17623         fold_builtin_strncpy): Add function prototypes here.
17624         (fold_builtin): Update function prototype with new "bool ignore".
17625
17626         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
17627         (ccp_fold_builtin):  Update call to fold_builtin.  Call
17628         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
17629         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
17630         simplify_builtin_strncpy respectively.
17631         * fold-const.c (fold): Update call to fold_builtin.
17632
17633 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17634
17635         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
17636         to strcpy.
17637
17638         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
17639         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
17640         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
17641         * calls.c: Remove ifdefs of macros above.
17642         * functions.c: Likewise.
17643         * expr.c: Likewise.
17644
17645 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17646
17647         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
17648         (arch attribute): Delete.
17649         (current_function_calls_alloca attribute): Rename into calls_alloca.
17650         (calls_eh_return): New attribute.
17651         (leaf_function): Likewise.
17652         (length attribute): Fix formula for sibcalls.
17653         (return insn): Correctly compute the 'length' attribute.
17654         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
17655
17656 2004-07-08  Richard Henderson  <rth@redhat.com>
17657
17658         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
17659         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
17660         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
17661         * tree-eh.c (lower_eh_constructs_1): Likewise.
17662         * tree-sra.c (sra_walk_modify_expr): Likewise.
17663         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17664         (eliminate_unnecessary_stmts): Likewise.
17665         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17666         * tree-tailcall.c (optimize_tail_call): Likewise.
17667         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
17668
17669 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17670             Jakub Jelinek  <jakub@redhat.com>
17671
17672         * config/i386/i386.c (override_options): Enable
17673         SSE prefetches with -mtune, as long as we are
17674         compiling for i686 or higher.  All i686 processors
17675         accept SSE prefetches as NOPS, some i586's don't.
17676
17677 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17678
17679         PR target/10567
17680         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
17681
17682 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17683
17684         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
17685         the handling of clobbering ASM_EXPRs.
17686
17687 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17688
17689         PR target/16430
17690         * config/sparc/sparc.c (function_value): In 64-bit mode,
17691         return the aggregates larger than 16 bytes like unions.
17692
17693 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17694
17695         PR target/16199
17696         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
17697         'temp' is zero, generate new pseudos as needed and emit the
17698         sequence of insns in single-assignment form.  Resync comments
17699         with code.
17700         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
17701         function before reload.
17702
17703 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
17704
17705         * vec.c (vec_assert_fail): Remove duplicate 'function'.
17706
17707         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
17708
17709         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
17710         Allocation is signed.
17711         (VEC_reserve): Return flag, allocation is signed.
17712
17713 2004-07-08  Richard Henderson  <rth@redhat.com>
17714
17715         * tree-ssa-ccp.c (fold_stmt): Get type directly from
17716         OBJ_TYPE_REF_OBJECT.
17717
17718 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
17719             Neil Booth  <neil@daikokuya.co.uk>
17720
17721         PR c/2511
17722         PR c/3325
17723         * c-decl.c (finish_struct): Ensure bit-fields are given the
17724         correct type.
17725         * c-common.c (c_common_signed_or_unsigned_type): For C, require
17726         the precision to match as well as the mode.
17727         * expr.c (reduce_to_bit_field_precision): New function.
17728         (expand_expr_real_1): Reduce expressions of bit-field type to
17729         proper precision.
17730         * langhooks.h (reduce_bit_field_operations): New hook.
17731         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
17732         Define.
17733         * c-lang.c, objc/objc-lang.c
17734         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
17735         * objc/objc-act.c (check_ivars): Convert types to bit-field types
17736         before checking.
17737         * tree.c (build_nonstandard_integer_type): New function.
17738         * tree.h (build_nonstandard_integer_type): New prototype.
17739         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
17740         conversions between integer and boolean types as useless.
17741
17742 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17743
17744         * c-common.c (c_common_nodes_and_builtins): Do not
17745         create __builtin_ptrdiff_t and __builtin_size_t.
17746
17747 2004-07-08  Andrew Pinski  <apinski@apple.com>
17748
17749         * Makefile.in (libbackend.o): Add -combine to the gcc
17750         command line.
17751
17752 2004-07-08  Nick Clifton  <nickc@redhat.com>
17753
17754         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
17755         Set to -Os.
17756
17757 2004-07-08  Richard Henderson  <rth@redhat.com>
17758
17759         * except.c (expand_eh_region_start, expand_eh_region_end,
17760         expand_eh_handler, expand_eh_region_end_cleanup,
17761         expand_start_all_catch, expand_start_catch, expand_end_catch,
17762         expand_end_all_catch, expand_eh_region_end_allowed,
17763         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
17764         expand_eh_region_end_fixup): Remove.
17765         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
17766         cleanups, outer_cleanups, label_chain, exception_region.
17767         (struct goto_fixup): Remove stack_level, cleanup_list_list.
17768         (struct label_chain): Remove.
17769         (struct stmt_status): Remove x_stack_block_stack.
17770         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
17771         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
17772         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
17773         end_cleanup_deferral, last_cleanup_this_contour,
17774         containing_blocks_have_cleanups_or_stack_level,
17775         any_pending_cleanups): Remove.
17776         (expand_null_return_1): Take no arguments.
17777         (expand_label, expand_naked_return, expand_return,
17778         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
17779         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
17780         expand_end_case_type): Don't use any of them.
17781         * calls.c (expand_call): Likewise.
17782         * dojump.c (do_jump): Likewise.
17783         * function.c (expand_function_end): Likewise.
17784         * expr.c (store_expr, expand_expr_real_1): Likewise.
17785         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
17786         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
17787         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
17788         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
17789         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
17790         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
17791         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
17792         for WITH_CLEANUP_EXPR.
17793         (gimple_push_cleanup): Likewise.
17794         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
17795         * print-tree.c (print_node): Likewise.
17796         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
17797         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
17798         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
17799         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
17800         (GOTO_SUBROUTINE_EXPR): Remove.
17801         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
17802         (DECL_TOO_LATE): Remove.
17803         * except.h, tree.h: Update decls.
17804
17805 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17806
17807         * explow.c (optimize_save_area_alloca): Do not accept parameters.
17808         * passes.c (rest_of_handle_final): Handle symout.
17809         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
17810         Push timevar here.
17811         (rest_of_handle_sched): Break out SMS.  Remove ifs for
17812         flag_schedule_insns and flag_modulo_sched.
17813         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
17814         collect at the end.
17815         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
17816         (rest_of_handle_partition_blocks, rest_of_handle_sms,
17817         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
17818         rest_of_handle_mode_switching, rest_of_handle_jump,
17819         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
17820         rest_of_handle_jump2, rest_of_handle_postreload,
17821         rest_of_handle_flow2, rest_of_clean_state,
17822         rest_of_handle_shorten_branches,
17823         rest_of_handle_prologue_epilogue,
17824         rest_of_handle_branch_target_load_optimize): New.
17825         (rest_of_compilation): Call the above.  Remove ggc_collect
17826         calls moved to rest_of_handle_*.
17827         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
17828
17829         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
17830         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
17831         * except.h (set_nothrow_function_flags): Update comment.
17832         * function.c (current_function_nothrow): Remove.
17833         * output.h (current_function_nothrow): Remove.
17834         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
17835         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
17836
17837 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17838
17839         PR bootstrap/16326
17840         * reorg.c: Revert 2004-06-30 change.
17841         (find_end_label): If HAVE_epilogue and !HAVE_return,
17842         return 0 instead of creating a label at the end of the insn chain.
17843         (optimize_skip): Account for the failure mode of find_end_label.
17844         (fill_simple_delay_slots): Likewise.
17845         (fill_slots_from_thread): Likewise.
17846         (relax_delay_slots): Likewise.
17847
17848 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17849
17850         * tree-flow.h (addressable_vars): Declare.
17851         * tree-ssa-alias.c (addressable_vars): Define.
17852         (setup_pointers_and_addressables): Add addressable variables
17853         to addressable_vars.
17854         * tree-ssa-operands.c (get_stmt_operands): Move
17855         handling of ASM_EXPRs ...
17856         (get_asm_expr_operands): ... here.
17857         When the ASM_EXPR clobbers memory, also clobber addressable
17858         variables.
17859         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
17860         (delete_tree_ssa): Reset addressable_vars.
17861
17862 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17863             Richard Henderson  <rth@redhat.com>
17864
17865         * varasm.c (assemble_variable): Use assemble_zeros for
17866         zero-initialized variables.
17867         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
17868         for SECCAT_BSS and SECCAT_TBSS.
17869
17870 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17871
17872         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
17873
17874         * expmed.c (emit_store_flag): Also special-case double-word
17875         (in-)equality comparison against -1.
17876
17877         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
17878         passing arguments the containers for which are registers.
17879
17880         * calls.c (emit_library_call_value_1): Use mode of function parameter
17881         rather than that of argument since constants have none.
17882
17883 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17884
17885         Introduce H8SX support.
17886         * expr.c (expand_strcpy): Renamed and moved to...
17887         * builtins.c (expand_movstr): ... here.  Tweak.
17888         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
17889         computed or has side effects.
17890         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
17891         unused, or if mempcpy fails.  Adjust the return value in the
17892         latter case.  Use movstr if everything else fails.
17893         * doc/md.texi (movstr): Document.
17894         (movmemM, clrmemM): Fix explanation of memory block operands.
17895         * config/h8300/h8300.md (stpcpy): Renamed to...
17896         (movstr): ... this.  Adjust.
17897         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17898         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
17899         movmem* and clrstr* to clrmem*.
17900         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
17901         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
17902         GENERAL_REGS, always.
17903         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
17904         getting the stack pointer as addr.
17905         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
17906         from general_operand_dst.
17907         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
17908         variant of...
17909         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
17910         instead of requiring it to match only before reload.
17911         (stpcpy_internal_normal): New, normal-mode variant of...
17912         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
17913         `D' instead of requiring it to match only before reload.
17914         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
17915         mode argument.
17916         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
17917         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
17918         h8300_get_index.
17919         * config/h8300/h8300.md (attr type): Add call.
17920         (attr can_delay): If type is call, set it no.
17921         (call, call_value): Set type to call.
17922         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
17923         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
17924         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
17925         * tree.c (get_narrower): Don't narrow integral types into
17926         non-integral types.
17927         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
17928         frame_size *before* the first use.
17929         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
17930         on input.
17931         (peephole2): Don't widen instructions that push SP.  Move
17932         decrement of SP to the end of all stm-generating peepholes.
17933         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17934         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
17935         and OR to set it to all ones.
17936         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17937         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
17938         (call, call_value): Set can_delay to "no".
17939         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
17940         * config/h8300/h8300.md (extzv): Make subreg check more robust.
17941         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17942         * config/h8300/h8300.md (*brabit): Remove.
17943         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
17944         zero_extract.  Use bit_memory_operand as the predicate for
17945         operand 1 and 'WU' as the constraint.  Check the difference
17946         between the base length and the final one when deciding which
17947         type of branch to use.
17948         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17949         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
17950         Use convert_move to extend the result for TARGET_H8300SX.  Check
17951         for QImode memory references.  Optimize the case where the
17952         destination is a paradoxical subreg.
17953         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17954         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
17955         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
17956         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
17957         * config/h8300/h8300.md: Include mova.md
17958         (length_table): Add mova and mova_zero.
17959         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
17960         after all constant addresses for '%R', '%X', '%T' and '%S'.
17961         (h8300_mova_length): New function.
17962         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
17963         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
17964         dependencies for s-config, etc.
17965         * config/h8300/gemova.sh: New file.
17966         * config/h8300/mova.md: Generated.
17967         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
17968         * config/h8300/h8300.c (h8300_bitfield_length): New.
17969         (nibble_operand): Adjust.
17970         (h8300_binary_length): Handle conditional binary op.
17971         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
17972         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
17973         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
17974         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
17975         constraints.  WU is introduced as a variant of U that requires a
17976         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
17977         * config/h8300/h8300.md (attr type): Added bitbranch.
17978         (attr length_table): Added bitfield and bitbranch.
17979         (attr length): Compute bitbranch length.
17980         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
17981         least-significant bit of a byte.
17982         (brabit, brabc, brabs): New.
17983         (insv, extzv): Emit bfst and bfld on H8300SX.
17984         (bfld, bfst, seq, sne): New.
17985         (bstzhireg, cmpstz, bstz, bistz): New.
17986         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
17987         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
17988         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
17989         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
17990         (h8sx_unary_memory_operator): New function.
17991         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
17992         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
17993         * config/h8300/h8300.md: Add peepholes to combine reloads and
17994         arithmetic insns.
17995         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17996         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
17997         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
17998         (and?i, ior?i, xor?i): Likewise.
17999         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
18000         * config/h8300/h8300.c: Move enums and prototypes to head of file.
18001         Various whitespace fixes.
18002         (h8300_constant_length): New function, split out from...
18003         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
18004         (h8300_classify_operand): Use IN_RANGE.
18005         (h8300_classify_operand): Use h8300_constant_length.
18006         (h8300_short_move_mem_p): Tighten size check.
18007         (h8sx_mergeable_memrefs_p): Tighten equality check.
18008         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
18009         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
18010         for -msx.
18011         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
18012         * config/h8300/crtn.asm: Likewise.
18013         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
18014         if __H8300SX__ is defined.
18015         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
18016         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
18017         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
18018         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
18019         addresses as mode-dependent.
18020         * config/h8300/h8300.c (print_operand_address): Update call to
18021         h8300_get_index.
18022         (h8300_get_index): Take a mode argument.  Rework to fix an
18023         earlier misunderstanding.
18024         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
18025         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
18026         into a register if TARGET_H8300SX.
18027         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
18028         TARGET_H8300SX.  Also disable related define_splits.
18029         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
18030         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
18031         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
18032         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
18033         * config/h8300/h8300.h (OK_FOR_Z): New macro.
18034         (EXTRA_CONSTRAINT_STR): Check it.
18035         * config/h8300/h8300.c (h8300_classify_operand): Accept null
18036         class arguments.
18037         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
18038         * config/h8300/h8300.md (length_table): Add mov_imm4.
18039         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
18040         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
18041         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
18042         be a label.
18043         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
18044         * config/h8300/h8300.c (h8300_reorg): New function.
18045         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18046         * config/h8300/h8300.md (length): Subtract the length of the
18047         delay slot from (pc) when checking the range of forward branches.
18048         (delay_slot, can_delay): New attributes.
18049         (define_delay): Add bra/s handling.
18050         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
18051         (jump): Add delayed-branch handling.
18052         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
18053         * expr.c (expand_strcpy): New function.
18054         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
18055         (expand_builtin_stpcpy): Likewise.
18056         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
18057         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
18058         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
18059         handling to improve register allocation for -fno-omit-frame-pointer.
18060         (h8sx_split_movmd): Delete, moving er6 handling into...
18061         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
18062         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
18063         (movmd): Add calls to copy_rtx.
18064         (movmd_internal): In the second alternative, allow the initial and
18065         final destination registers to be different .  Update the splitter
18066         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
18067         instead of h8sx_split_movmd.
18068         (stpcpy, movsd): New expanders.
18069         (movsd_internal): New define_insn.
18070         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
18071         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
18072         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
18073         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
18074         and DESTINATION_REGS.
18075         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
18076         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
18077         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
18078         (h8300_move_ratio): Declare.
18079         (MOVE_RATIO): Use it.
18080         * config/h8300/h8300.c (h8300_move_ratio): New variable.
18081         (h8300_init_once): Initialize it.
18082         (h8300_reg_class_from_letter): New function.
18083         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
18084         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
18085         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
18086         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
18087         (movstrsi, movmd): New expanders.
18088         (movmd_internal): New insn.
18089         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
18090         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
18091         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
18092         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
18093         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
18094         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18095         * config/h8300/h8300.c (nibble_operand): Fix warning.
18096         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
18097         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
18098         (movsf_h8300h): Disable for TARGET_H8300SX.
18099         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18100         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
18101         h8300_stm_parallel and h8300_return_parallel.
18102         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
18103         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
18104         h8300_stm_parallel, h8300_return_parallel): New functions.
18105         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
18106         if TARGET_H8300SX.  Use h8300_push_pop.
18107         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
18108         and final pop when generating h8sx code.  Always emit some form
18109         of return insn.
18110         * config/h8300/h8300.md: Don't enforce register alignment in
18111         stm peepholes if TARGET_H8300SX.
18112         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
18113         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
18114         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
18115         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18116         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
18117         (MULTILIB_DIRNAMES): Add a directory for it.
18118         (MULTILIB_MATCHES): Delete.
18119         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
18120         * final.c (walk_alter_subreg): Handle addresses with subregs
18121         inside a ZERO_EXTEND or AND.
18122         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
18123         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
18124         if TARGET_H8300SX.
18125         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
18126         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
18127         @(dd,Rn.w) and @(dd,ERn.L).
18128         (h8300_displacement_size): Take the whole address as argument.
18129         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
18130         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
18131         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
18132         (h8sx_mergeable_memrefs_p): Declare.
18133         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
18134         (HAVE_PRE_INCREMENT): Likewise.
18135         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
18136         addresses for TARGET_H8300SX,
18137         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
18138         and POST_DEC.
18139         (movb_length_table, movl_length_table): New tables.
18140         (movw_length_table): Define to movb_length_table.
18141         (h8300_displacement_size): New, split out from...
18142         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
18143         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
18144         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
18145         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
18146         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
18147         (compute_plussi_length, compute_plussi_cc): Update accordingly.
18148         (h8sx_unary_shift_operator): Get the mode from the operator.
18149         (binary_shift_operator): Likewise.
18150         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
18151         a memory reference, check whether the reference is offsettable.
18152         (length_table): Add movb, movw and movl.
18153         (movqi): Add new h8sx pattern.  Don't force one operand to be a
18154         register when generating h8sx code.
18155         (movhi, movsi, movsf): Likewise.
18156         (movstrictqi): Use the length_table attribute.
18157         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
18158         (addqi3): Split into a define_expand and define_insn.  Don't accept
18159         memory operands in the expander.  Use h8300_operands_match_p to
18160         check for matching operands in the define_insn.
18161         (subqi3, negqi2, one_cmplqi2): Likewise.
18162         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
18163         in any patterns that are unused in h8sx code.  In the h8sx patterns,
18164         use h8300_operands_match_p to check whether operands match.
18165         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
18166         one_cmpl[hs]i3): Likewise.
18167         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
18168         in the expander.
18169         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
18170         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
18171         (h8300_insn_length_from_table): Add a second parameter.
18172         (output_h8sx_shift): Declare.
18173         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
18174         (EXTRA_CONSTRAINT): Replace with...
18175         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
18176         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
18177         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
18178         and h8sx_binary_shift_operator.
18179         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
18180         for TARGET_H8300SX.
18181         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
18182         (bit_memory_operand, fix_bit_operand): Likewise.
18183         (h8300_length_table_for_insn): Remove.
18184         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
18185         instructions.
18186         (h8300_short_immediate_length, h8300_binary_length): New functions.
18187         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
18188         (output_plussi): Use sub to add negative constants.
18189         (compute_plussi_length): Adjust accordingly.
18190         (h8sx_single_shift_type): New enum.
18191         (h8sx_single_shift, h8sx_unary_shift_operator,
18192         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
18193         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
18194         single h8sx instruction.  Return false in this case.
18195         * config/h8300/h8300.md (length_table): Add short_immediate.
18196         (length): Pass the operand array to h8300_insn_length_from_table.
18197         (adjust_length): Assume "no" for insns with a length_table attribute.
18198         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
18199         (*addhi3_h8300hs): Don't use for h8sx.
18200         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
18201         and sub.w #xx:3.
18202         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
18203         1's predicate to nonimmediate_operand.  Only skip default expansion
18204         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
18205         for single h8sx shift instructions.
18206         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
18207         * config/h8300/h8300.c (nibble_operand): Split out of...
18208         (reg_or_nibble_operand): ... this.
18209         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
18210         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
18211         umulhisi3): Introduce expand, and introduce separate insns for
18212         sign- or zero-extended REG and already-extended CONST_INT.
18213         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
18214         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
18215         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
18216         (subhi3): Likewise.  Don't accept immediates for operand 1.
18217         Remove the early clobber from second alternative of the h8300s pattern.
18218         (subsi3): Generalize for h8sx.  Force operand 2 into a register
18219         on plain h8300 targets.
18220         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
18221         (subsi3_h8300h): Generalize for h8sx.
18222         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
18223         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
18224         * config/h8300/h8300.c (reg_or_nibble_operand): New.
18225         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
18226         (TARGET_H8300SXMUL): New.
18227         (CONST_OK_FOR_P): New.
18228         (CONST_OK_FOR_LETTER_P): Adjust.
18229         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
18230         umulhisi3): Accept 4-bit immediate on H8SX.
18231         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
18232         (udivsi3, divhi3, udivsi3, divsi3): New.
18233         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
18234         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
18235         * config/h8300/h8300.h (OK_FOR_Q): New macro.
18236         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
18237         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
18238         Add ADDRESSOF to the bit_operand entry.
18239         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
18240         (h8300_src_operand): Likewise.
18241         (bit_operand): Check nonimmediate_operand rather than general_operand.
18242         Accept any nonimmediate_operand in h8sx code.
18243         (h8300_and_costs): Initialize operands[1].
18244         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
18245         (h8300_operand_class): New enum.
18246         (h8300_length_table): New typedef.
18247         (addb_length_table, addw_length_table, addl_length_table,
18248         logicl_length_table): New tables.
18249         (logicb_length_table, logicw_length_table): New macros.
18250         (h8300_classify_operand, h8300_length_from_table,
18251         h8300_length_table_for_insn, h8300_unary_length,
18252         h8300_insn_length_from_table): New functions.
18253         (output_plussi): Only use adds and subs for register destinations.
18254         Disable redundant clause.
18255         (compute_plussi_cc): Likewise.
18256         (compute_plussi_length): Likewise.  Use h8300_length_from_table
18257         to work out the length of an insn.
18258         (output_logical_op): Only use narrower immediate instructions
18259         if the destination is a register.
18260         (compute_logical_op_cc): Likewise.
18261         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
18262         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
18263         * config/h8300/h8300.md (length_table): New attribute.
18264         (length): When an instruction has a length_table attribute, use
18265         h8300_insn_length_from_table to calculate its default length.
18266         (cmpqi): Use h8300_dst_operand for the first operand and
18267         h8300_src_operand for the second.
18268         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
18269         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
18270         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
18271         iorsi3, xorhi3, xorsi3): Likewise.
18272         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
18273         so that it allows any combination of operands for TARGET_H8300SX.
18274         (iorqi3, xorqi3): Likewise.
18275         (cmpqi): Use the length_table attribute.
18276         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
18277         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
18278         (cmpqi): Add 'Q' constraint.
18279         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
18280         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
18281         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
18282         * config/h8300/h8300.h (MASK_H8300SX): New macro.
18283         (TARGET_H8300S): True for both -ms and -msx.
18284         (TARGET_H8300SX): New macro.
18285         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
18286         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
18287         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
18288         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
18289         [Temporary change.]
18290         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
18291         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
18292         16-bit pointers and 32-bit ints.
18293         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
18294         CONST_DOUBLE with mode no wider than SImode.
18295         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
18296         output operand.
18297         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
18298         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
18299         or SUBREG thereof.
18300         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
18301         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
18302         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
18303
18304 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
18305
18306         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
18307
18308 2004-07-07  Per Bothner  <per@bothner.com>
18309
18310         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
18311
18312 2004-07-07  Mike Stump  <mrs@apple.com>
18313
18314         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
18315         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
18316         (machopic_finish): Likewise.
18317
18318 2004-07-07  Richard Henderson  <rth@redhat.com>
18319
18320         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
18321         through any value-preserving cast.
18322
18323 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
18324
18325         * function.c (assign_parm_find_data_types): Call
18326         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
18327
18328 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18329
18330         * tree-cfg.c (group_case_labels): Remove case labels that have
18331         the same target as the default case.
18332
18333 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18334
18335         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
18336         regardless of DECL_LANG_SPECIFIC being present or not.
18337         * tree.h (DECL_NUM_STMTS): Purge.
18338
18339 2004-07-07  Andrew Pinski  <apinski@apple.com>
18340
18341         * configure: Regenerate with the right autoconf.
18342
18343 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
18344
18345         * ifcvt.c (total_bb_rtx_cost): New function.
18346         (find_if_case_1): Compare rtx_cost of basic block to cost of
18347         BRANCH_COST insns.
18348         (find_if_case_2): Same.
18349
18350 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
18351
18352         PR target/10567
18353         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
18354         (output_return): Likewise.
18355         (output_sibcall): Abort if !flag_delayed_branch.
18356         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
18357         (emit_and_preserve): New function.
18358         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
18359         indirect jump to the thunked-to function if !flag_delayed_branch.
18360         * config/sparc/sparc.md (delayed_branch): New attribute.
18361         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
18362         attribute to compute the length of the insn.
18363         (goto_handler_and_restore): Likewise.
18364
18365 2004-07-07  Andrew Pinski  <apinski@apple.com>
18366
18367         PR tree-optimization/15777
18368         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
18369
18370         * expr.c (expand_expr_real_1): Fix formating.
18371         BUFFER_REF and IN_EXPR are dead.
18372         * fold-const.c (non_lvalue): BUFFER_REF is dead.
18373         * tree-inline.c (estimate_num_insns_1): Likewise.
18374         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
18375         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
18376         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
18377
18378 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18379
18380         * collect2.c (dump_file): Don't call cplus_demangle if
18381         HAVE_LD_DEMANGLE is defined.
18382         (main): Pass "--demangle" to ld if no_demangle is not 0 and
18383         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
18384         if HAVE_LD_DEMANGLE is defined.
18385
18386         * configure.ac (--with-demangler-in-ld): Added
18387         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
18388         --with-demangler-in-ld is used.
18389         * config.in: Regenerated.
18390         * configure: Likewise.
18391
18392 2004-07-07  Roger Sayle  <roger@eyesopen.com>
18393
18394         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
18395         for simple floating point operations "fp", double precision
18396         multiplication "dmul", and single and double precision division
18397         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
18398         (ppc630_cost): New table split from ppc620_cost, to distinguish
18399         differences in floating point latencies.
18400         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
18401         (rs6000_rtx_costs): Add support for single and double precision
18402         floating point addition, subtraction, multiplication, division,
18403         fused-multiply-add, fused-multiply-sub, negation, absolute value
18404         and negative absolute value.  Tweak MEM case to use prefered idiom.
18405
18406 2004-07-07  Richard Henderson  <rth@redhat.com>
18407
18408         * tree-flow-inline.h (may_propagate_copy): Move...
18409         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
18410         attempt to copy between types requiring conversion.
18411         * tree-flow.h (may_propagate_copy): Update decl.
18412         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
18413
18414 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
18415
18416         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
18417         from -mtune= option.
18418
18419 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
18420
18421         * builtins.c: Rename movstr*, except for movstrict*, to
18422         movmem* and clrstr* to clrmem*.
18423         * expr.c: Likewise.
18424         * expr.h: Likewise.
18425         * genopinit.c: Likewise.
18426         * integrate.c: Likewise.
18427         * local-alloc.c: Likewise.
18428         * optabs.c: Likewise.
18429         * optabs.h: Likewise.
18430         * config/alpha/alpha.h: Likewise.
18431         * config/alpha/alpha.md: Likewise.
18432         * config/arm/arm-protos.h: Likewise.
18433         * config/arm/arm.c: Likewise.
18434         * config/arm/arm.md: Likewise.
18435         * config/avr/avr.md: Likewise.
18436         * config/c4x/c4x.c: Likewise.
18437         * config/c4x/c4x.md: Likewise.
18438         * config/frv/frv.md: Likewise.
18439         * config/i386/i386-protos.h: Likewise.
18440         * config/i386/i386.c: Likewise.
18441         * config/i386/i386.h: Likewise.
18442         * config/i386/i386.md: Likewise.
18443         * config/i860/i860.c: Likewise.
18444         * config/i860/i860.md: Likewise.
18445         * config/ip2k/ip2k.md: Likewise.
18446         * config/ip2k/libgcc.S: Likewise.
18447         * config/ip2k/t-ip2k: Likewise.
18448         * config/m32r/m32r.c: Likewise.
18449         * config/m32r/m32r.md: Likewise.
18450         * config/mcore/mcore.md: Likewise.
18451         * config/mips/mips.c: Likewise.
18452         * config/mips/mips.md: Likewise.
18453         * config/ns32k/ns32k.c: Likewise.
18454         * config/ns32k/ns32k.h: Likewise.
18455         * config/ns32k/ns32k.md: Likewise.
18456         * config/pa/pa.c: Likewise.
18457         * config/pa/pa.md: Likewise.
18458         * config/pdp11/pdp11.h: Likewise.
18459         * config/pdp11/pdp11.md: Likewise.
18460         * config/rs6000/rs6000.c: Likewise.
18461         * config/rs6000/rs6000.md: Likewise.
18462         * config/s390/s390-protos.h: Likewise.
18463         * config/s390/s390.c: Likewise.
18464         * config/s390/s390.md: Likewise.
18465         * config/sh/lib1funcs.asm: Likewise.
18466         * config/sh/sh.c: Likewise.
18467         * config/sh/sh.md: Likewise.
18468         * config/sh/t-sh: Likewise.
18469         * config/sparc/sparc.h: Likewise.
18470         * config/vax/vax.md: Likewise.
18471         * config/xtensa/xtensa.c: Likewise.
18472         * config/xtensa/xtensa.md: Likewise.
18473         * doc/invoke.texi: Likewise.
18474         * doc/md.texi: Likewise.
18475         * doc/rtl.texi: Likewise.
18476
18477 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
18478
18479         PR target/16407
18480         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
18481         * config/mips/mips.c (mips_declare_common_object): New function,
18482         mostly split out from...
18483         (mips_output_aligned_decl_common): ...here.
18484         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
18485         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
18486         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
18487         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
18488
18489 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18490
18491         PR c/16392
18492         * function.c (assign_parms): Fix typo from previous change.
18493
18494 2004-07-07  Jason Merrill  <jason@redhat.com>
18495
18496         PR c++/15815
18497         * doc/extend.texi (C++ Interface): Correct information and
18498         discourage use.
18499
18500 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
18501
18502         PR target/16130
18503         PR target/16142
18504         PR target/16143
18505         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
18506         insn.
18507
18508 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18509
18510         PR target/1679.
18511         * config/m32r/m32r.c (m32r_function_symbol): New function:
18512         Generate a symbol name RTX with the correct m32r specific flags
18513         set.
18514         (block_move_call): Use new function to generate correct symbol.
18515         * config/m32r/m32r-protos.h: Add prototype for new funcion.
18516         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
18517         function.
18518
18519 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18520
18521         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
18522         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
18523         TYPE_BINFO_BASETYPE): Remove.
18524         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
18525         to ...
18526         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
18527         here.
18528         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
18529         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
18530         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
18531         (struct tree_binfo): Rename base_types to base_binfos.
18532         * alias.c (record_component_aliases): Adjust BINFO macros.
18533         * dbxout.c (dbxout_type): Likewise.
18534         * dwarf2out.c (gen_member_die): Likewise.
18535         * sdbout.c (sdbout_one_type): Likewise.
18536         * tree-dump.c (deque_and_dump): Likewise.
18537         * config/i386/i386.c (classify_argument,
18538         contains_128bit_aligned_vector_p): Likewise.
18539
18540 2004-07-07  Nick Clifton  <nickc@redhat.com>
18541
18542         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
18543         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
18544
18545 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18546
18547         * vec.h: Fix the example use.
18548
18549 2004-07-06  Richard Henderson  <rth@redhat.com>
18550
18551         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
18552         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
18553         * tree-inline.c (copy_body_r, setup_one_parameter,
18554         initialize_inlined_parameters, expand_call_inline,
18555         declare_inline_vars): Don't check it.
18556         (expand_calls_inline): Remove old version, rename new version
18557         from gimple_expand_calls_inline.
18558         * tree-optimize.c (execute_gimple): Remove.
18559         (pass_gimple): Don't run anything.
18560
18561 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18562
18563         * doc/sourcebuild.texi: Use semicolons instead of commas in
18564         section title.
18565
18566 2004-07-06  Richard Henderson  <rth@redhat.com>
18567
18568         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
18569         (sra_walk_modify_expr, scan_init): Likewise.
18570         (generate_element_zero): Check visited before scanning children.
18571         (generate_element_init): Set visited on error.
18572         (scalarize_init): Handle generate_element_init failure similar
18573         to use_block_copy.
18574
18575 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18576
18577         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
18578         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
18579
18580 2004-07-06  Richard Henderson  <rth@redhat.com>
18581
18582         * config/i386/i386.c (legitimize_pic_address): Make static.
18583         (legitimize_address): Handle CONST with TLS operand.
18584         (ix86_expand_move): Don't call legitimize_pic_address directly.
18585         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
18586
18587 2004-07-06  Roger Sayle  <roger@eyesopen.com>
18588
18589         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
18590         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
18591         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
18592         is currently executed unconditionally, i.e. not in "else_bb".
18593
18594 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18595
18596         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
18597         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18598         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
18599         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18600         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
18601         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18602         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
18603         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18604         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
18605         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18606         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
18607         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18608         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
18609         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18610         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
18611         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18612
18613 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18614
18615         * dojump.c (do_jump): REFERENCE_EXPR is dead.
18616         * expr.c (expand_expr_real_1): Ditto.
18617         * tree-inline.c (estimate_num_insns_1): Ditto.
18618         * tree-pretty-print.c (dump_generic_node): Ditto.
18619         (op_symbol): Ditto.
18620         * tree.def: Ditto.
18621
18622 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18623
18624         * tree-ssa-pre.c (reference_node_pool): New pool.
18625         (find_or_generate_expression): Class 'r' is okay too.
18626         (create_value_expr_from): Ditto.
18627         (add_to_sets): LHS should not include vuses.
18628         (eliminate): Ditto.
18629         (compute_avail): Reverse ordering of tests.
18630         Valuize INDIRECT_REF as well.
18631
18632 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
18633
18634         PR rtl-optimization/16380
18635         * loop.c (check_dbra_loop): Sink comparison instructions if they
18636         do something other than set cc0.
18637
18638 2004-07-06  James E Wilson  <wilson@specifixinc.com>
18639
18640         * doc/interface.texi (longjmp and automatic variables): Delete
18641         paragraph recommending taking the address of a variable.
18642
18643 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18644
18645         * vec.h (VEC_embedded_alloc): Remove.
18646         (VEC_embedded_size, VEC_embedded_init): New.
18647         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
18648         MEM_STAT_INFO.
18649         (VEC_truncate): New.
18650         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
18651         (vec_embedded_alloc): Remove.
18652         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
18653         (vec_embedded_alloc): Remove.
18654
18655 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
18656
18657         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
18658         (gt-langhooks.h): Remove.
18659
18660 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
18661
18662         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
18663
18664 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
18665
18666         * config/sparc/sparc.c (get_pc_symbol): Rename into
18667         add_pc_to_pic_symbol.
18668         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
18669         (load_pic_register): Account for previous changes.
18670         Use reg_names.  Don't create the label twice.
18671         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
18672         UNSPEC_LOAD_PCREL_SYM.
18673         (get_pc): Rename into load_pcrel_sym.  Add predicate to
18674         operands.  Remove condition.
18675
18676 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18677
18678         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
18679         RECORD, UNION & QUAL_UNION is actually a binfo.
18680
18681         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
18682         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
18683         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
18684         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
18685         * dwarf2out.c (add_data_member_location_attribute): Likewise.
18686         (gen_inheritance_die): Likewise.
18687         * tree-dump.c (deque_and_dump): Likewise.
18688         * doc/c-tree.texi (Binfos): Add under reconstruction note.
18689
18690 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18691
18692         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18693         Define.
18694         * config/mcore/mcore.md: Model memory latency with a simple DFA
18695         pipeline description instead of a define_function_unit.
18696
18697 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18698
18699         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
18700         * langhooks.h (var_mod_type_p): Likewise.
18701         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
18702         * expr.c (count_type_elements): Properly handle return from
18703         array_type_nelts and properly test for overflow.
18704         * gimplify.c (gimplify_init_constructor): Properly handle return
18705         from array_type_nelts.
18706         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
18707         * integrate.c (copy_decl_for_inlining): Correct comments.
18708         * tree-inline.c (remap_decl): Update comments, remove dead code,
18709         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
18710         (remap_type): Only remap if variably modified by vars in function
18711         being inlined.
18712         (copy_body_r): Use compatible_type langhooks to see when can fold.
18713         (setup_one_parameter): Don't remap type.
18714         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
18715         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
18716         compute TREE_INVARIANT for decl case.
18717         (find_var_from_fn): New function.
18718         (variably_modified_type_p): Add arg and call new function.
18719         * tree.h (variably_modified_type_p): Add extra arg.
18720
18721 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
18722
18723         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
18724         (goto_handler_and_restore_v9): Delete disabled insn.
18725         (goto_handler_and_restore_v9_sp64): Likewise.
18726
18727 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18728
18729         * calls.c (load_register_parameters): Call expand_shift instead
18730         of expand_binop with ashl_optab (or other shift optab) directly.
18731         * expr.c (emit_group_load, emit_group_store): Likewise.
18732         * function.c (assign_parm_setup_block): Likewise.
18733         * stmt.c (shift_return_value): Likewise.
18734
18735 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
18736
18737         * expr.c (expand_assignment): Disable the bitfield += optimizations.
18738
18739 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18740
18741         * doc/sourcebuild.texi: Revert previous patch.
18742
18743 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18744
18745         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
18746         TARGET_MEM_FUNCTIONS.
18747         * system.h: Poison TARGET_MEM_FUNCTIONS.
18748         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
18749         bcmp_libfunc, bzero_libfunc): Remove.
18750         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
18751         bzero_libfunc.
18752         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
18753         * doc/standards.texi: Don't mention calling BSD string functions.
18754         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
18755         * config/vax/t-memfuncs: New.
18756         * config/memcmp.c, config/memcpy.c, config/memmove.c,
18757         config/memset.c: New.
18758         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
18759         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
18760         vax/t-memfuncs.
18761         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
18762         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
18763         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
18764         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
18765         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
18766         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
18767         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
18768         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
18769         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
18770         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
18771
18772 2004-07-05  Richard Henderson  <rth@redhat.com>
18773
18774         * function.c (assign_parm_setup_reg): Properly rename variables in
18775         FUNCTION_ARG_CALLEE_COPIES section.
18776
18777 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18778
18779         * tree-mudflap.c: Include cgraph.h.
18780         (mf_init_extern_trees): Rename to mudflap_init.  Export.
18781         Rewrite to create synthetic declarations instead of looking
18782         up declarations from mf-runtime.h.
18783         (mf_make_builtin, mf_make_cache_struct_type): New functions.
18784         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
18785         Correct commentary.
18786         (execute_mudflap_function_decls, mudflap_register_call):
18787         Don't call mf_init_extern_trees.
18788         (mudflap_finish_file): Use cgraph_build_static_cdtor.
18789
18790         * tree-mudflap.h: Update prototypes.
18791         * c-mudflap.c: Delete file.
18792         * c-common.c: Include tree-mudflap.h.
18793         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
18794         * Makefile.in: Remove all references to c-mudflap.o.
18795         Update dependencies.
18796
18797 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18798
18799         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
18800         displacements with the spatial-locality cache-control completer.
18801
18802 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18803
18804         * langhooks.c: Don't include gt-langhooks.h.
18805         (var_labelno): Delete.
18806         (lhd_set_decl_assembler_name): Do not append a distinguishing
18807         number to file-scope internal-linkage declarations for the first
18808         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
18809         the declaration itself (if at block scope), or its containing
18810         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
18811         number.
18812
18813         * opts.c (cur_in_fname): New global.
18814         * opts.h: Declare it.
18815         * tree.c: Include opts.h.
18816         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
18817         DECL_UID equal to cur_in_fname.
18818         (copy_node_stat): Do not change DECL_UID when copying a
18819         TRANSLATION_UNIT_DECL.
18820         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
18821         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
18822
18823         * c-decl.c (c_static_assembler_name): Delete.
18824         * c-tree.h (c_static_assembler_name): Delete prototype.
18825         * c-lang.c, objc/objc-lang.c: Don't override
18826         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
18827
18828         * Makefile.in (tree.o): Update dependencies.
18829         (GTFILES): Remove langhooks.c.
18830
18831 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18832
18833         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
18834         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
18835         Normalize "X % C" as "X % -C" for signed modulus and negative C.
18836         Optimize "X % -Y" as "X % Y" for signed modulus.
18837         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
18838         into "((unsigned) X % Y) == 0".
18839
18840 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18841
18842         * sourcebuild.texi (Config Fragments): Use @comma{} in
18843         cross-reference to section title.
18844
18845 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18846
18847         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
18848         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
18849         (gimplify_target_expr, gimplify_expr): Likewise.
18850         (copy_if_shared_r): No longer need special case for BIND_EXPR.
18851         (unshare_body, unvisit_body): Only look at nested if BODY_P is
18852         whole function.
18853         (gimplify_compound_lval): See if we can strip any useless conversion.
18854         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
18855         from RHS, not LHS.
18856         (gimplify_modify_expr_to_memset): Likewise.
18857         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
18858         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
18859         (declare_inline_vars): Likewise.
18860         (walk_type_fields): New function.
18861         (walk_tree): Use it.
18862         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
18863
18864         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
18865         (sra_walk_modify_expr): Allow init function to fail.
18866         (scan_init): Now returns bool.
18867         (generate_element_init): If can't understand INIT, return false.
18868         (scalarize_init): Return false if generate_element_init does.
18869
18870         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
18871         print bounds.
18872
18873         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
18874         bounds if bounds aren't constant.
18875
18876         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
18877
18878         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
18879         to type hooks; remove bogus PARAMS.
18880
18881 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18882
18883         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
18884         * dwarf2out.c (add_data_member_location_attribute): Check for
18885         TREE_BINFO.
18886         * tree.c (tree_node_kinds): Add "binfos".
18887         (binfo_lang_slots): New.
18888         (make_node_stat): Add TREE_BINFO.
18889         (make_tree_binfo_stat): New.
18890         (tree_node_structure): Add TREE_BINFO.
18891         * tree.def (TREE_BINFO): New.
18892         * tree.h (REC_OR_UNION_CHECK): Rename to ...
18893         (RECORD_OR_UNION_CHECK): ... here.
18894         (NOT_RECORD_OR_UNION_CHECK): New.
18895         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
18896         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
18897         RECORD_OR_UNION_CHECK.
18898         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
18899         (TYPE_LANG_SLOT_1): New.
18900         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
18901         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
18902         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
18903         (BINFO_ELTS): Remove.
18904         (BINFO_LANG_SLOT): New.
18905         (struct tree_binfo): New.
18906         (binfo_lang_slots): Declare.
18907         (enum tree_node_structure_enum): Add TS_BINFO.
18908         (union tree_node): Add binfo.
18909         (make_tree_binfo_stat): Declare.
18910         (make_tree_binfo): New.
18911         (enum tree_node_kind): Add binfo_kind.
18912
18913         * objc/objc-act.c (start_class, objc_declare_protocols,
18914         start_protocols): Use TYPE_LANG_SLOT_1.
18915         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
18916         to ...
18917         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
18918         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
18919         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
18920         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
18921
18922 2004-07-05  Steven Bosscher  <stevenb@suse.de>
18923
18924         * rtl.h (struct rtx_def): Remove the integrated flag.
18925         Use the return_val flag for MEM_SCALAR_P.
18926         Reshuffle and update flags in CLEAR_RTX_FLAGS.
18927
18928 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
18929
18930         PR target/16357
18931         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
18932         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
18933         move_by_pieces.
18934
18935 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
18936
18937         * var-tracking.c: Fix some comments.
18938         (frame_stack_adjust): New.
18939         (vt_stack_adjustments): Init stack_adjust of entry block to
18940         minus stack adjustment of function prologue.
18941         (adjust_stack_reference): Do not adjust if adjustment == 0.
18942         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
18943         (emit_notes_in_bb): Likewise.
18944         (vt_add_function_parameters): Do not adjust locations of
18945         function arguments.
18946         (vt_initialize): Compute the stack adjustment of function
18947         prologue and offset the initial "location" of frame_base_decl
18948         from the stack pointer after prologue.
18949
18950 2004-07-04  Richard Henderson  <rth@redhat.com>
18951
18952         * function.c (struct assign_parm_data_all): New.
18953         (struct assign_parm_data_one): New.
18954         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
18955         assign_parm_find_data_types, assign_parms_setup_varargs,
18956         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
18957         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
18958         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
18959         assign_parm_setup_block, assign_parm_setup_reg,
18960         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
18961         (assign_parms): ... here.
18962
18963 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
18964
18965         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
18966         now are bitmap_set_t's.
18967         (bitmap_insert_into_set): No point in inserting the value if
18968         it's invariant.
18969         (bitmap_set_contains): New function.
18970         (bitmap_set_replace_value): Add comment on why we do it
18971         this way.
18972         (set_contains): Removed.
18973         (bitmap_set_subtract_from_value_set): New name of
18974         set_subtract now that it's arguments are two different
18975         types of sets.
18976         Update callers.
18977         (bitmap_find_leader): Change algorithm used.
18978         (find_or_generate_expression): Update use of functions for new
18979         bitmap sets.
18980         (create_expression_by_pieces): Ditto.
18981         (insert_aux): Ditto.
18982         (insert): Ditto.
18983         (add_to_sets): Ditto.
18984         (init_pre): Ditto.
18985         (execute_pre): Ditto.
18986         (compute_avail): Ditto.
18987         Also ignore virtual phis.
18988
18989 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18990
18991         * combine.c (simplify_comparison): Fix comment typo.
18992
18993 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
18994
18995         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
18996         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
18997         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
18998         (output_restore): Change parameter from 'insn' to 'pat'.
18999         (output_return): Adjust call to output_restore.
19000         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
19001         Adjust call to output_restore.
19002
19003 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
19004
19005         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
19006         and assert system is bsd.
19007
19008 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
19009
19010         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
19011         (TARGET_SWITCHES): Remove -mdebugc.
19012         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
19013         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
19014         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
19015         (sle_[sd]i_reg): Delete.
19016
19017 2004-07-04  Steven Bosscher  <stevenb@suse.de>
19018
19019         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
19020         Define.
19021         * config/iq2000/iq2000.md: Translate old pipeline description to an
19022         equivalent new one.
19023
19024 2004-07-04  Roger Sayle  <roger@eyesopen.com>
19025
19026         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
19027         Ensure the replacement rhs is valid gimple before performing
19028         the substitution.  Return false if these sanity checks fail.
19029         (fold_stmt): Only set changed to true, if set_rhs returns true.
19030         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
19031         succeeds.
19032
19033 2004-07-04  Richard Henderson  <rth@redhat.com>
19034
19035         PR c/16348
19036         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
19037
19038 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
19039
19040         * configure.ac (ranlib_flags): New variable.
19041         * Makefile.in (RANLIB_FLAGS): New variable.
19042         (libbackend.a): Use it.
19043         * configure: Regenerated.
19044
19045 2004-07-04  Roger Sayle  <roger@eyesopen.com>
19046
19047         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
19048         a "sign mask" instead of using ashr_optab directly.
19049
19050 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
19051
19052         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
19053         * doc/cppopts.texi: Clarify processing of command-line defines.
19054
19055 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
19056
19057         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
19058
19059 2004-07-04  Richard Henderson  <rth@redhat.com>
19060
19061         * rtl.def (ADDRESSOF): Remove.
19062         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
19063         (find_base_term, memrefs_conflict_p): Likewise.
19064         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
19065         (fold_rtx, cse_insn, set_live_p): Likewise.
19066         * dwarf2out.c (mem_loc_descriptor): Likewise.
19067         (add_location_or_const_value_attribute): Likewise.
19068         * emit-rtl.c (copy_insn_1): Likewise.
19069         * explow.c (memory_address): Likewise.
19070         * expmed.c (store_split_bit_field): Likewise.
19071         * expr.c (expand_expr_real_1): Likewise.
19072         * function.c (instantiate_decl
19073         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
19074         * genrecog.c (preds, validate_pattern): Likewise.
19075         * integrate.c (copy_rtx_and_substitute): Likewise.
19076         * recog.c (general_operand, register_operand): Likewise.
19077         (memory_address_p): Likwise.
19078         * reload1.c (eliminate_regs, elimination_effects): Likewise.
19079         * rtl.c (copy_rtx): Likewise.
19080         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
19081         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
19082         * rtlhooks.c (gen_lowpart_general): Likewise.
19083         * stmt.c (expand_asm_operands): Likewise.
19084         * web.c (entry_register, replace_ref, web_main): Likewise.
19085         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
19086         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
19087         * config/arm/arm.c (thumb_rtx_costs): Likewise.
19088         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
19089         * config/frv/frv.c (move_destination_operand, move_source_operand,
19090         condexec_dest_operand, condexec_source_operand,
19091         condexec_memory_operand): Likewise.
19092         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
19093         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
19094         (destination_xfmode_operand): Likewise.
19095         * config/mips/mips.h (PREDICATE_CODES): Likewise.
19096         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
19097         * config/s390/s390.c (general_s_operand): Likewise.
19098         * config/s390/s390.md (mov*): Likewise.
19099         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
19100
19101         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
19102         * expr.c (expand_expr_real_1): Likewise.
19103         * stmt.c (expand_decl): Likewise.
19104         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
19105
19106         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
19107         postponed_insns, put_var_into_stack, put_reg_into_stack,
19108         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
19109         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
19110         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
19111         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
19112         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
19113         purge_bitfield_addressof_replacements, purge_addressof_replacements,
19114         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
19115         struct insns_for_mem_walk_info, insns_for_mem_walk,
19116         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
19117         setjmp_protect_args): Remove.
19118         (push_function_context_to): Don't handle var_refs_queue.
19119         (pop_function_context_from, free_after_compilation): Likewise.
19120         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
19121         (assign_parms, allocate_struct_function): Likewise.
19122         (use_register_for_decl): New.
19123         (expand_function_end): Don't setjmp_protect.
19124         * function.h (struct emit_status): Update commentary.
19125         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
19126         (max_parm_reg, parm_reg_stack_loc): Remove.
19127         * passes.c (DFI_addressof): Remove.
19128         (dump_file_info): Remove addressof.
19129         (rest_of_handle_addressof): Remove.
19130         (rest_of_compilation): Don't call it.
19131         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
19132         * stmt.c (expand_decl): Use use_register_for_decl.
19133         * tree.h: Update decls.
19134         * web.c (mark_addressof): Remove.
19135         * doc/invoke.texi (-dF): Remove.
19136
19137 2004-07-03  Richard Henderson  <rth@redhat.com>
19138
19139         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
19140         instead of gen_mem_addressof.
19141         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
19142         TImode output register.
19143
19144 2004-07-03  Richard Henderson  <rth@redhat.com>
19145
19146         PR tree-optimization/16341
19147         * tree-sra.c (sra_walk_function): Increment to next stmt before
19148         processing the current stmt.
19149         (sra_insert_after): Always use BSI_SAME_STMT.
19150
19151 2004-07-03  Richard Henderson  <rth@redhat.com>
19152
19153         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
19154         fp plus with minus.
19155
19156 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19157
19158         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
19159         with tree_int_cst_equal.
19160
19161 2004-07-03  Andreas Schwab  <schwab@suse.de>
19162
19163         * config/ia64/ia64.md: Define new attribute "empty".
19164         (prologue_use, nop_x, insn_group_barrier): Set it.
19165
19166         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
19167         skip over "empty" insns.
19168
19169 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19170
19171         * tree-inline.c (initialize_inlined_parameters): Pass proper function
19172         context to gimplify_body.
19173         (walk_tree): Don't walk into types twice.
19174         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
19175
19176         * tree-sra.c (generate_element_init): Remove any useless conversions.
19177
19178         * gimplify.c (gimplify_conversion): Remove stripping useless
19179         conversions from here.
19180         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
19181         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
19182         Unshare before substituting PLACEHOLDER_EXPR.
19183         (gimplify_modify_expr_to_memset): Likewise.
19184         Pass address of TO to memset, not TO itself.
19185         (gimplify_init_constructor): Make copy of OBJECT so we have it each
19186         time we make an expression (to match a PLACEHOLDER_EXPR).
19187
19188         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
19189         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
19190         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
19191         * tree-ssa-dom.c (local_fold): Likewise.
19192
19193         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
19194         * langhooks.h (strct lang_hooks): New field type_max_size.
19195         * function.c (assign_temp): Call it.
19196
19197 2004-07-03  Steven Bosscher  <stevenb@suse.de>
19198
19199         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
19200         * config/sh/sh.md: Convert the SH1 pipeline description to
19201         a DFA model.
19202
19203 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
19204
19205         * c-decl.c (struct c_binding): Remove contour field; add
19206         depth, invisible, nested fields.
19207         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
19208         (B_IN_EXTERNAL_SCOPE): New convenience macros.
19209         (bind): Add invisible and nested arguments. Initialize
19210         new fields of struct c_binding; adjust loop scanning for
19211         insertion point.
19212         (free_binding_and_advance): Clear structure with memset.
19213         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
19214         in file scope, even if it's in external scope too.
19215         (pushdecl): Adjust to match.  Create invisible file-scope
19216         declarations for block-scope forward declarations of static functions.
19217         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
19218         (undeclared_variable, lookup_label, declare_label, define_label)
19219         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
19220         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
19221         (store_parm_decls_oldstyle): Adjust to match.
19222         (diagnose_mismatched_decls): Correct handling of linkage clashes.
19223         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
19224
19225         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
19226         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
19227
19228 2004-07-02  Richard Henderson  <rth@redhat.com>
19229
19230         * c-decl.c (grokdeclarator): Don't frob current_function_decl
19231         around variable_size.
19232         (set_decl_nonlocal): Remove.
19233         (store_parm_decls): Add stmts for pending sizes.
19234         * calls.c (calls_function, calls_function_1): Remove.
19235         (precompute_arguments): Don't call it.
19236         * cfgexpand.c (set_save_expr_context): Remove.
19237         (tree_expand_cfg): Don't call it.
19238         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
19239         (dwarf2out_finish): Likewise.
19240         * expr.c (emit_block_move): Adjust addresses to BLKmode.
19241         (store_constructor): Don't pre-evaluate SAVE_EXPR.
19242         (safe_from_p): Don't queue SAVE_EXPRs.
19243         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
19244         or build plain VAR_DECLs.
19245         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
19246         (fold): Likewise.
19247         (fold_checksum_tree): Don't special-case SAVE_EXPR.
19248         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
19249         (put_var_into_stack): Don't handle SAVE_EXPR.
19250         (gen_mem_addressof): Likewise.
19251         * function.h (struct function): Remove x_save_expr_regs.
19252         (save_expr_regs): Remove.
19253         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
19254         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
19255         * stor-layout.c (variable_size): Don't set it.
19256         (force_type_save_exprs, force_type_save_exprs_1): Remove.
19257         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
19258         all callers.  Don't set SAVE_EXPR_CONTEXT.
19259         * tree-inline.h (remap_save_expr): Update decl.
19260         * tree.c (save_expr): Update build size.
19261         (first_rtl_op): Don't handle SAVE_EXPR.
19262         (unsave_expr_1, contains_placeholder_p): Likewise.
19263         (decl_function_context): Likewise.
19264         * tree.def (SAVE_EXPR): Remove args 1 and 2.
19265         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
19266         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
19267
19268 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19269
19270         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
19271         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
19272         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
19273         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
19274         some first-person references and patronizing comments.  Based on
19275         printed manual.
19276         * doc/invoke.texi: Don't reference fortran@gnu.org.
19277         * doc/trouble.texi (Warning when a non-void function value is
19278         ignored): Rewrite.  From Russ Allbery and Chris Devers.
19279
19280 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
19281
19282         * tree-ssa-pre.c (bitmap_set_t): New.
19283         (bb_value_sets): avail_out is now a bitmap_set_t.
19284         (bitmap_find_leader): New function.
19285         (bitmap_value_insert_into_set): Ditto.
19286         (bitmap_set_copy): Ditto.
19287         (bitmap_value_replace_in_set): Ditto.
19288         (bitmap_set_contains_value): Ditto.
19289         (bitmap_set_new): Ditto.
19290         (bitmap_set_pool): New pool.
19291         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
19292         (insert_aux): Ditto.
19293         (add_to_sets): Ditto.
19294         (compute_avail): Ditto
19295         (eliminate): Ditto.
19296         (init_pre): Ditto.
19297         (fini_pre): Ditto.
19298         (execute_pre): Ditto.
19299
19300 2004-07-02  Roger Sayle  <roger@eyesopen.com>
19301
19302         * config/rs6000/rs6000.c (struct processor_costs): New structure
19303         used to hold instruction latencies/sizes for processor types.
19304         (rs6000_cost): New global variable pointing to current CPU's costs.
19305         (rs6000_override_options): Initialize rs6000_cost to point to the
19306         appropriate cost table based upon rs6000_cpu and optimize_size.
19307         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
19308         timings inline.
19309
19310 2004-07-02  Richard Henderson  <rth@redhat.com>
19311
19312         * expmed.c (make_tree): Don't use SET_DECL_RTL.
19313
19314 2004-07-02  Steven Bosscher  <stevenb@suse.de>
19315
19316         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
19317
19318 2004-07-01  Richard Henderson  <rth@redhat.com>
19319
19320         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
19321         (alpha_gp_save_rtx): Use assign_stack_local instead of
19322         gen_mem_addressof.
19323
19324 2004-07-01  Richard Henderson  <rth@redhat.com>
19325
19326         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
19327         (alpha_rtx_cost_data): Update to match.
19328         (alpha_rtx_cost_size): New.
19329         (alpha_rtx_costs): Honor optimize_size.
19330
19331 2004-07-01  Richard Henderson  <rth@redhat.com>
19332
19333         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
19334         * cfgexpand.c (tree_expand_cfg): Do it here.
19335         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
19336         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
19337         * config/mips/mips.c (mips_output_mi_thunk): And here.
19338         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
19339         * config/sh/sh.c (sh_output_mi_thunk): And here.
19340         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
19341
19342 2004-07-01  Richard Henderson  <rth@redhat.com>
19343
19344         * tree.def (RTL_EXPR): Remove.
19345         * c-typeck.c (lvalue_p): Don't handle it.
19346         * expr.c (safe_from_p): Likewise.
19347         (expand_expr_real_1): Likewise.
19348         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
19349         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
19350         * gengtype.c (adjust_field_tree_exp): Likewise.
19351         * stmt.c (warn_if_unused_value): Likewise.
19352         * tree-gimple.c (recalculate_side_effects): Likewise.
19353         * tree-pretty-print.c (dump_generic_node): Likewise.
19354         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
19355         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
19356         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
19357
19358         * stmt.c (struct stmt_status): Remove x_last_expr_type,
19359         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
19360         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
19361         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
19362         all the bits that tracked last_expr.
19363         (expand_end_bindings): Don't track last_expr.
19364         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
19365         (clear_last_expr): Remove.
19366         (expand_asm): Don't call it.
19367         (expand_asm_operands, expand_end_cond): Likewise.
19368         (expand_naked_return, expand_null_return_1): Likewise.
19369         * c-typeck.c (c_begin_compound_stmt): Likewise.
19370         * cfgexpand.c (expand_block): Use expand_expr_stmt.
19371         * expr.c (expand_expr_real_1): Likewise.
19372         * tree.h: Update prototypes.
19373
19374         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
19375         (struct emit_status): Remove sequence_rtl_expr.
19376         (struct function): Remove x_rtl_expr_chain.
19377         (seq_rtl_expr, rtl_expr_chain): Remove.
19378         * function.c (struct temp_slot): Remove rtl_expr.
19379         (assign_stack_temp_for_type): Don't set it.
19380         (free_temp_slots, pop_temp_slots): Don't check it.
19381         (free_after_compilation): Don't clear x_rtl_expr_chain.
19382         (fixup_var_refs): Don't search it.
19383         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
19384         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
19385         or seq_rtl_expr.
19386         (push_topmost_sequence): Likewise.
19387         (end_sequence, init_emit): Likewise.
19388         (start_sequence_for_rtl_expr): Remove.
19389         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
19390         * rtl.h (preserve_rtl_expr_result): Remove.
19391
19392 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
19393
19394         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
19395         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
19396         typos.
19397
19398 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19399
19400         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
19401         (STANDARD_STARTFILE_PREFIX_2): Define.
19402         (standard_startfile_prefix_1): Initialize to
19403         STANDARD_STARTFILE_PREFIX_1.
19404         (standard_startfile_prefix_2): Initialize to
19405         STANDARD_STARTFILE_PREFIX_2.
19406         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
19407         (STANDARD_STARTFILE_PREFIX_1): Define.
19408         (STANDARD_STARTFILE_PREFIX_2): Define.
19409         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
19410         (STANDARD_STARTFILE_PREFIX_2): Document.
19411
19412 2004-07-01  Richard Henderson  <rth@redhat.com>
19413
19414         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
19415         in order to disable scalarization.  Instead set a flag and wait
19416         for a candidate decl.
19417
19418 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19419
19420         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
19421         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
19422         Use terminology "testsuite" and "enumerated".
19423
19424 2004-07-01  Richard Henderson  <rth@redhat.com>
19425
19426         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
19427         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
19428         (initial_return_save): Likewise.
19429         (flush_queued_reg_saves): Remap register numbers.
19430         (dwarf2out_return_reg): Likewise.
19431
19432 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19433
19434         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
19435
19436         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
19437         access functions for lower bound and element size and only output
19438         if lower bound nonzero or element size not same as that of type.
19439         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
19440
19441 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19442
19443         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
19444
19445 2004-07-01  Per Bothner  <per@bothner.com>
19446
19447         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
19448
19449 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
19450
19451         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
19452         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
19453         first operand.  Don't optimize if the bitfield is volatile.
19454
19455 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19456
19457         * c-pretty-print.c (pp_c_postfix_expression): Handle
19458         floating-point comparison operators.
19459         (pp_c_expression): Pass floating-point comparison
19460         operators to pp_c_postfix_expression.
19461
19462 2004-07-01  Roger Sayle  <roger@eyesopen.com>
19463
19464         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
19465         rtx_cost instead of "had_mult" to determine whether the transformed
19466         expression is cheaper than the original.
19467
19468 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
19469
19470         * alias.c (get_alias_set, canon_rtx, get_addr,
19471         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
19472         Use MEM_P.
19473         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
19474         expand_builtin): Likewise.
19475         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
19476         Likewise.
19477         * combine.c (can_combine_p, combinable_i3pat, try_combine,
19478         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
19479         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
19480         record_dead_and_set_regs_1, get_last_value_validate,
19481         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
19482         * cse.c (check_dependence, canon_hash, equiv_constant,
19483         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
19484         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
19485         count_reg_usage): Likewise.
19486         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
19487         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
19488         cselib_record_sets): Likewise.
19489         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
19490         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
19491         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
19492         * df.c (df_uses_record): Likewise.
19493         * dojump (do_jump): Likewise.
19494         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
19495         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
19496         decl_start_label): Likewise.
19497         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
19498         operand_subword, change_address_1, make_safe_from): Likewise.
19499         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
19500         stabilize, force_not_mem): Likewise.
19501         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
19502         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
19503         * expr.c (convert_move, convert_modes, emit_block_move,
19504         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
19505         emit_move_insn_1, expand_assignment, store_expr,
19506         store_constructor_field, store_constructor, store_field,
19507         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
19508         Likewise.
19509         * final.c (cleanup_subreg_operands, alter_subreg,
19510         get_mem_expr_from_op): Likewise.
19511         * flow.c (notice_stack_pointer_modification_1,
19512         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
19513         Likewise.
19514         * function.c (mark_temp_addr_taken, preserve_temp_slots,
19515         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
19516         optimize_bit_field, flush_addressof, purge_addressof_1,
19517         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
19518         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
19519         keep_stack_depressed): Likewise.
19520         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
19521         noce_process_if_block, find_memory): Likewise.
19522         * integrate.c (subst_constants, allocate_initial_values): Likewise.
19523         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
19524         update_equiv_regs): Likewise.
19525         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
19526         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
19527         * optabs.c (expand_abs, emit_unop_insn): Likewise.
19528         * passes.c (rest_of_handle_final): Likewise.
19529         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
19530         move2add_note_store): Likewise.
19531         * ra-build.c (detect_remat_webs): Likewise.
19532         * ra-debug.c (dump_static_insn_cost): Likewise.
19533         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
19534         * recog.c (validate_change, apply_change_group, cancel_changes,
19535         validate_replace_rtx_1, general_operand, register_operand,
19536         nonmemory_operand, push_operand, pop_operand, memory_operand,
19537         indirect_operand, asm_operand_ok, offsettable_memref_p,
19538         offsettable_nonstrict_memref_p, constrain_operands,
19539         store_data_bypass_p): Likewise.
19540         * reg-stack.c (subst_stack_regs_pat): Likewise.
19541         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
19542         copy_cost, reg_scan_mark_refs): Likewise.
19543         * regmove.c (optimize_reg_copy_3, stack_memref_p,
19544         combine_stack_adjustments_for_block): Likewise.
19545         * regrename.c (copyprop_hardreg_forward_1): Likewise.
19546         * reload.c (can_reload_into, push_reload, decompose, immune_p,
19547         find_reloads, find_reloads_address, find_reloads_address_1,
19548         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
19549         find_equiv_reg): Likewise.
19550         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
19551         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
19552         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
19553         delete_address_reloads): Likewise.
19554         * resource.c (mark_referenced_resources): Likewise.
19555         * rtlanal.c (get_jump_table_offset, count_occurrences,
19556         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
19557         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
19558         num_sign_bit_copies1): Likewise.
19559         * rtlhooks.c (gen_lowpart_general): Likewise.
19560         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
19561         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
19562         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
19563         sdbout_global_decl): Likewise.
19564         * simplify-rtx.c (simplify_subreg): Likewise.
19565         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
19566         expand_anon_union_decl, expand_end_case_type): Likewise.
19567         * unroll.c (calculate_giv_inc): Likewise.
19568         * var-tracking.c (stack_adjust_offset_pre_post,
19569         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
19570         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
19571         vt_add_function_parameters): Likewise.
19572         * varasm.c (make_var_volatile, notice_global_symbol,
19573         assemble_external, decode_addr_const, mark_weak,
19574         default_encode_section_info): Likewise.
19575
19576 2004-07-01  Steven Bosscher  <stevenb@suse.de>
19577
19578         * stmt.c (check_seenlabel): Remove.
19579         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
19580
19581 2004-07-01  Richard Henderson  <rth@redhat.com>
19582
19583         * function.h (struct function): Remove x_function_call_count.
19584         (function_call_count): Remove.
19585         * calls.c (expand_call): Don't set it.
19586         * integrate.c (copy_rtx_and_substitute): Likewise.
19587
19588         * function.h (struct function): Remove x_cleanup_label.
19589         (cleanup_label): Remove.
19590         * stmt.c (expand_value_return): Don't use it.
19591         * function.c (free_after_compilation): Don't set it.
19592         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
19593         * cfgexpand.c (tree_expand_cfg): Update call.
19594         * tree.h (expand_function_start): Update decl.
19595
19596 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19597
19598         PR c/1027
19599         * c-lang.c (c_initialize_diagnostics): Move from here ...
19600         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
19601         (c_tree_printer): Use pretty-printer to format %T.
19602         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
19603         before '*' if not C++.
19604         (pp_c_direct_abstract_declarator): Don't try to print array upper
19605         bound for flexible array members.
19606         * c-tree.h: Include "diagnostic.h".
19607         (c_initialize_diagnostics): Declare.
19608         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
19609         * c-format.c (format_type_warning): New function.  Improve
19610         diagnostics for incorrect format argument types.
19611         (check_format_types): Use it.  Add two parameters.  Use the
19612         TYPE_MAIN_VARIANT of wanted_type.
19613         (check_format_info_main): Pass new parameters to
19614         check_format_types.
19615         (struct format_wanted_type): Update comment.
19616
19617 2004-07-01  Nick Clifton  <nickc@redhat.com>
19618
19619         * target.h (struct gcc_target): Add new field to struct cxx:
19620         import_export_class.
19621         * target-def.h (TARGET_CXX): Initialise the new field.
19622         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
19623         the new field.
19624         * doc/tm.texi: Document the new target hook.
19625
19626 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19627
19628         * builtins.c (fold_builtin_classify): Fix typo.
19629
19630 2004-07-01  Richard Henderson  <rth@redhat.com>
19631
19632         * function.c (identify_blocks, identify_blocks_1): Remove.
19633         * function.h (identify_blocks): Remove.
19634         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
19635
19636 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19637
19638         * builtins.c (fold_builtin_classify): New.
19639         (fold_builtin_unordered_cmp): Fix commentary.
19640         (fold_builtin): Use it.
19641         * builtins.def: Define builtins for isnan,
19642         isnanf, isnanl, finite, finitef, finitel,
19643         isinf, isinff, isinfl.
19644
19645 2004-07-01  Richard Henderson  <rth@redhat.com>
19646
19647         * function.h (struct function): Remove dont_emit_block_notes.
19648         * gimple-low.c (lower_function_body): Don't set it.
19649         * cfgexpand.c (expand_block): Don't check it.
19650         * cfglayout.c (insn_locators_initialize): Likewise.
19651         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
19652         * passes.c (rest_of_compilation): Likewise.
19653         * stmt.c (expand_start_bindings_and_block): Likewise.
19654         (expand_end_bindings): Likewise.
19655
19656 2004-07-01  Richard Henderson  <rth@redhat.com>
19657
19658         * cgraph.h (cgraph_build_static_cdtor): Declare.
19659         * cgraphunit.c (cgraph_build_static_cdtor): New.
19660         * c-objc-common.c (build_cdtor): Use it.
19661         * coverage.c (create_coverage): Likewise.
19662         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
19663         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
19664
19665 See ChangeLog.11 for earlier changes.