OSDN Git Service

PR target/15286
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-28  Ulrich Weigand  <uweigand@de.ibm.com>
2
3         PR target/15286
4         * final.c (alter_subreg): Compute correct offset to use with
5         paradoxical SUBREGs of memory operands.
6         * recog.c (general_operand): Allow paradoxical SUBREGs of
7         memory operands after reload.
8         * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg
9         has failed when passed a hard register.
10
11 2004-10-28  Aldy Hernandez  <aldyh@redhat.com>
12
13         * function.c (assign_parm_setup_block): Handle parallels correctly.
14
15 2004-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
16
17         * final.c (shorten_branches): Initialize flags structure.
18
19 2004-10-28  Nathan Sidwell  <nathan@codesourcery.com>
20
21         * tree.c (int_cst_node, int_cst_hash_table): New variables.
22         (init_ttree): Initialize them.
23         (int_cst_hash_hash, int_cst_hash_eq): New hashing functions.
24         (build_int_cst_wide): Use hash table for oversized integers.
25
26 2004-10-28  Nick Clifton  <nickc@redhat.com>
27
28         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define
29         begin_label.
30
31 2004-10-27  Richard Henderson  <rth@redhat.com>
32
33         PR middle-end/18163
34         * expr.c (emit_group_load): Don't go force temporary for memory
35         or concat source.
36         (emit_group_store): Similarly.
37
38 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
39
40         PR other/18186
41         * common.opt (--param): Fix spelling of parameter.
42
43 2004-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
44
45         PR tree-opt/17529
46         * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>:
47         Don't fold statement.
48         <case ASM_EXPR>: Fold the statement.
49
50 2004-10-28  Kazu Hirata  <kazu@cs.umass.edu>
51
52         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
53         <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION.
54
55 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
56
57         * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi,
58         doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi,
59         doc/libgcc.texi, doc/md.texi, doc/passes.texi,
60         doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting.
61
62 2004-10-28  Joseph S. Myers  <jsm@polyomino.org.uk>
63
64         * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi,
65         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put
66         punctuation outside quotes.
67
68 2004-10-27  David Mosberger  <davidm@hpl.hp.com>
69             James E Wilson  <wilson@specifixinc.com>
70
71         PR target/13158
72         * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on
73         sibcall alloc instruction.
74         (process_set): Handle sibcall alloc instruction.
75
76 2004-10-27  Geoffrey Keating  <geoffk@apple.com>
77
78         * config/rs6000/rs6000.c (rs6000_attribute_table): Add
79         SUBTARGET_ATTRIBUTE_TABLE.
80         * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import.
81         (SUBTARGET_ATTRIBUTE_TABLE): Define.
82         * config/darwin.c (darwin_handle_weak_import_attribute): New.
83         (HAVE_DEAD_STRIP): Delete.
84         (no_dead_strip): Don't test HAVE_DEAD_STRIP.
85         * config/darwin-protos.h (darwin_handle_weak_import_attribute):
86         Prototype.
87
88         * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document.
89
90         * config/darwin.h (GTHREAD_USE_WEAK): Define.
91
92 2004-10-28  Ben Elliston  <bje@au.ibm.com>
93
94         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New.
95         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise.
96         * params.h (SRA_MAX_STRUCTURE_SIZE): New.
97         (SRA_FIELD_STRUCTURE_RATIO): Likewise.
98         * tree-sra.c: Include "params.h".
99         (decide_block_copy): Use new parameters.
100         * doc/invoke.texi (Optimize Options): Document new SRA pass
101         parameters sra-max-structure-size and sra-field-structure-ratio.
102
103 2004-10-27  Nicolas Pitre <nico@cam.org>
104
105         * config/arm/ieee754-df.S (floatdidf): Fix regression with big values.
106
107 2004-10-27  Zdenek Dvorak  <dvorakz@suse.cz>
108
109         PR tree-optimization/18048
110         * fold-const.c (try_move_mult_to_index): New function.
111         (fold): Use try_move_mult_to_index.
112         * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates.
113         * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce
114         an all-ones unsigned constant without extra bits.
115         * tree.c (build_low_bits_mask): New function.
116         * tree.h (build_low_bits_mask): Declare.
117
118 2004-10-27  David Edelsohn  <edelsohn@gnu.org>
119
120         PR target/17956
121         * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to
122         final condition.
123         (minsf3): Same.
124         (maxdf3): Same.
125         (mindf3): Same.
126
127 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
128
129         * tree-cfg.c (thread_jumps): Speed up by reordering the two
130         conditions for entering basic blocks into worklist.
131
132 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
133
134         * tree-cfg.c (thread_jumps): Speed up by pretending to have
135         ENTRY_BLOCK_PTR in worklist.
136
137 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
138
139         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
140         <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through.
141
142 2004-10-27  Daniel Berlin <dberlin@dberlin.org>
143         
144         Fix PR tree-optimization/17133
145         
146         * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
147         def kill operand.
148
149         * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
150         (get_v_must_def_result_ptr): Modify for new structure of
151         v_must_defs array.
152         (get_v_must_def_kill_ptr): New.
153         (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
154         (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
155         (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
156         (op_iter_init): Initialize new mustu members.
157         (op_iter_next_mustdef): New function.
158         (op_iter_init_mustdef): Ditto.
159
160         * tree-flow.h (rewrite_def_def_chains): New function.
161
162         * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
163         (ssa_mark_def_sites): Ditto.
164         (rewrite_stmt): Ditto.
165         (ssa_rewrite_stmt): Ditto.
166         (rewrite_blocks): Factor out from rewrite_into_ssa.
167         (mark_def_block_sites): Ditto.
168         (rewrite_def_def_chains): New function, just rewrites def-def
169         chains without phi node insertion.
170
171         * tree-pass.h (TODO_fix_def_def_chains): New todo flag.
172
173         * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.       
174
175         * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
176         they include the rhs now.
177
178         * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
179         V_MUST_DEF_RESULT. 
180
181         * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
182         Update callers.
183         (mark_really_necessary_kill_operand_phis): New function.
184         (perform_tree_ssa_dce): Call it.
185         (pass_dce): Add TODO_fix_def_def_chains.
186         (pass_cd_dce): Ditto.
187
188         * tree-ssa-loop-im.c (determine_max_movement): Look at kills as
189         well.
190         (rewrite_mem_refs): Ditto.
191
192         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
193         as well.
194
195         * tree-ssa-operands.c (allocate_v_may_def_optype):
196         v_may_def_operand_type_t became v_def_use_operand_type_t.
197         (allocate_v_must_def_optype) Ditto.
198         (finalize_ssa_v_must_defs): Update for new operand type, as well
199         as setting the use portion as well.
200         (copy_virtual_operands): Copy the kill operand as well.
201         (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
202         V_MUST_DEF_RESULT. 
203
204         * tree-ssa-operands.h (v_may_def_operand_type): Renamed to
205         v_def_use_operand_type. 
206         (v_must_def_optype_d): Use v_def_use_operand_type.
207         (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
208         (V_MUST_DEF_KILL_*): New macros.
209         (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
210         members.
211         Rename existing must_i and num_v_must members to mustd_i and
212         num_v_mustd. 
213         (SSA_OP_VMUSTDEFKILL): New flag.
214         (SSA_OP_VIRTUAL_KILLS): New flag.
215         (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
216         (SSA_OP_ALL_KILLS): New flag.
217         (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
218
219         * tree-ssa.c (verify_ssa): Verify virtual kills as well.
220
221         * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
222         became V_MUST_DEF_RESULT.
223         (rename_variables_in_bb): Rename kill pointer as well.
224
225         * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
226         immediate uses.
227
228 2004-10-27  Richard Sandiford  <rsandifo@redhat.com>
229
230         * dbxout.c (dbxout_source_line): Move declaration of begin_label to
231         the block that needs it.
232
233 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
234
235         * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable
236         ATTRIBUTE_UNUSED.
237
238 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
239
240         * c-lex.c (cb_def_pragma): Clean up code for making location
241         palatable to diagnostic.c.
242
243 2004-10-27  Steven Bosscher  <stevenb@suse.de>
244
245         PR tree-optimization/17757
246         * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs
247         without any PHI arguments left.  Make sure the argument that
248         we're supposed to remove exists at all.
249
250 2004-10-27  Paul Brook  <paul@codesourcery.com>
251
252         * configure.ac: Don't test for [build] __cxa_atexit when building a
253         cross compiler.
254         * configure: Regenerate.
255
256 2004-10-27  Paul Brook  <paul@codeosurcery.com>
257
258         * configure.ac: Use build_exeext not host_exeext when lookin for
259         target tools.
260         * configure: Regenerate.
261
262 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
263
264         * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus.
265
266 2004-10-27  Andreas Krebbel  <krebbel1@de.ibm.com>
267             patch originally created by Kelley Cook  <kcook@gcc.gnu.org>
268
269         PR middle-end/14684
270         * opts.c (OPT_fprofile_generate): Default to -funroll-loops
271         to match -fprofile-use.
272
273 2004-10-27  Kazu Hirata  <kazu@cs.umass.edu>
274
275         * config/rs6000/rs6000.c: Fix a comment typo.
276
277 2004-10-27  Zack Weinberg  <zack@codesourcery.com>
278
279         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line
280         counter.
281
282 2004-10-27  Andreas Schwab  <schwab@suse.de>
283
284         * varasm.c (default_stabs_asm_out_destructor): Mark symbol as
285         unused.
286         (default_stabs_asm_out_constructor): Likewise.
287
288 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
289
290         * builtins.c (fold_builtin_unordered_cmp): Always bring both
291         operands to the same type.
292
293 2004-10-26  James E Wilson  <wilson@specifixinc.com>
294
295         PR target/18010
296         * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P.
297
298 2004-10-26  Zack Weinberg  <zack@codesourcery.com>
299
300         * dbxout.c: Include obstack.h.
301         (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in
302         default definition.
303         (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR):
304         Default-define here.
305         (DBX_CONTIN_LENGTH): Move definition with others.
306         (DBX_FINISH_STABS): New target macro.
307         (current_sym_code, current_sym_value, current_sym_addr)
308         (current_sym_nchars, CHARS, dbxout_continue)
309         (print_int_cst_octal, print_octal, print_wide_int)
310         (dbxout_prepare_symbol, dbxout_finish_symbol): Delete.
311         (stabstr_ob, stabstr_last_contin_point): New variables.
312         (NUMBER_FMT_LOOP): New improper macro.
313         (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label)
314         (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label)
315         (dbxout_stab_value_internal_label_diff, dbxout_stabd)
316         (dbxout_begin_stabn, dbxout_begin_stabn_sline)
317         (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc)
318         (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs)
319         (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O)
320         (stabstr_continue, DECL_ACCESSIBILITY_CHAR)
321         New functions and/or proper function-like macros.
322         (CONTIN): Use stabstr_continue, unconditionally.
323         (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED.
324         (dbxout_init): Initialize stabstr_ob.  Check
325         NO_DBX_MAIN_SOURCE_DIRECTORY.  Only write out the Ltext label
326         if it was used.  Use the new interfaces.
327         (dbxout_source_file): Remove file argument; always write to
328         asm_out_file.  Use the new interfaces.
329         (dbxout_type_method_1): Remove second argument which is always
330         DECL_ASSEMBLER_NAME of the first argument.  Use the new interfaces.
331         (dbxout_type_methods): Remove write-only variables.  Use the
332         new interfaces.
333         (dbxout_parms): Refactor to remove code duplicated in each of
334         several successive if-else-if blocks.  Use the new interfaces.
335         (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file)
336         (dbxout_source_line, dbxout_finish, dbxout_type_index)
337         (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name)
338         (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location)
339         (dbxout_symbol_name, dbxout_reg_parms, dbxout_args)
340         (dbx_output_lbrac, dbx_output_rbrac, dbxout_block):
341         Use the new interfaces.
342         * Makefile.in (dbxout.o): Update dependencies.
343
344         * defaults.h: Don't define ASM_STABD_OP.
345         * output.h: Prototype new dbxout_* interfaces.
346         * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL.
347         * varasm.c: Don't define ASM_STABS_OP.
348         (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor):
349         Use the new dbxout.c interfaces.  Call sorry if neither
350         DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined.
351
352         * xcoffout.h: Don't define ASM_STABS_OP.
353         (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS.
354         (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete.
355         (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define.
356         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to
357         do { ... } while (0) idiom.
358
359         * config/alpha/alpha.c (num_source_filenames): Export.
360         * config/alpha/alpha.h (num_source_filenames): Declare.
361         (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
362         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
363         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
364         Always use .debugsym.  Update commentary.
365         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces.
366         (SDB_OUTPUT_SOURCE_LINE): Add missing newline.
367         * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC):
368         Use new interfaces.
369         * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h.
370         (macho_branch_islands): Use new interfaces.
371
372         * doc/tm.texi: Update.
373
374 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
375
376         * expr.c (emit_group_store): Do not treat floats as BLKmode.
377         (emit_group_load): Same.
378
379 2004-10-26  Joseph S. Myers  <jsm@polyomino.org.uk>
380
381         * c-parse.in (datadef): Use pedwarn rather than error and warning
382         for diagnostic in case of no declaration specifiers.
383
384 2004-10-26  Richard Sandiford  <rsandifo@redhat.com>
385
386         PR bootstrap/15747
387         * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been
388         reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh
389         can be used to work around this.
390
391 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
392
393         * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500
394         doubles.
395
396 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
397
398         * stmt.c (expand_case): Update a comment.
399
400 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
401
402         * stmt.c (expand_case): Put an assertion that index_expr is
403         never INTEGER_CST.  Don't special case for constant
404         index_expr.
405
406 2004-10-26  Andrew Pinski  <pinskia@physics.uc.edu>
407
408         PR 18162
409         * c-parse.in (designator): Finish with a semi-colon.
410
411 2004-10-26  Fariborz Jahanian <fjahanian@apple.com>
412
413         * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting
414         into rotlsi3.
415
416 2004-10-26  Kazu Hirata  <kazu@cs.umass.edu>
417
418         * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with
419         a default case only.
420
421 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
422
423         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for
424         e500 doubles.
425         (spe_build_register_parallel): New.
426         (rs6000_spe_function_arg): Handle e500 doubles.
427         (function_arg): Same.
428         (spe_func_has_64bit_regs_p): Same.
429         (rs6000_function_value): Same.
430         (rs6000_libcall_value): Same.
431         (legitimate_lo_sum_address_p): Return false for e500 doubles.
432
433         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500
434         doubles.
435         (DATA_ALIGNMENT): Same.
436         (CANNOT_CHANGE_MODE_CLASS): Same.
437
438 2004-10-26  Aldy Hernandez  <aldyh@redhat.com>
439
440         * expr.c (emit_group_load): Handle floats.
441         (emit_group_store): Same.
442
443 2004-10-26  Nathan Sidwell  <nathan@codesourcery.com>
444
445         * c-lex.c (get_nonpadding_token): Remove.
446         (c_lex_with_flags): Push timevar and eat padding here.  Improve
447         stray token diagnostic.
448         (lex_string): Replace logic with switch statement, eat padding
449         token here.
450
451 2004-10-26  Geoffrey Keating  <geoffk@apple.com>
452
453         PR 18149
454         * config/i386/darwin.h (ASM_SPEC): Undef it before defining.
455
456 2004-10-25  Geoffrey Keating  <geoffk@apple.com>
457
458         * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches
459         to 'non-weak'.
460         (MAKE_DECL_ONE_ONLY): Set DECL_WEAK.
461         (ASM_MAKE_LABEL_LINKONCE): Delete.
462         (ASM_WEAKEN_DECL): New.
463         (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY.
464         (ASM_DECLARE_FUNCTION_NAME): Likewise.
465         (TEXT_SECTION_ASM_OP): Add a tab.
466         (DATA_SECTION_ASM_OP): Likewise.
467         (SECTION_FUNCTION): Add a tab.  Use fputs.  Don't call
468         data_section on every section change.
469         (EXTRA_SECTIONS): Add a bunch of new extra sections.
470         (EXTRA_SECTION_FUNCTIONS): Likewise.
471         (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
472         (JCR_SECTION_NAME): Define.
473         (TARGET_SECTION_TYPE_FLAGS): Don't define.
474         * config/darwin.c (darwin_encode_section_info): A symbol is defined
475         in this file if it is not weak.
476         (textcoal_section): Delete.
477         (datacoal_section): Delete.
478         (darwin_make_decl_one_only): Delete.
479         (machopic_select_section): Handle functions.
480         (darwin_asm_named_section): Add a tab.
481         (darwin_section_type_flags): Delete.
482         (darwin_unique_section): Delete contents.
483         (darwin_emit_unwind_label): Add a tab.  Make decls weak if
484         DECL_WEAK is set.
485         * config/darwin-protos.h (darwin_section_type_flags): Delete.
486         (darwin_make_decl_one_only): Delete.
487         (text_coal_section): New.
488         (text_unlikely_section): New.
489         (text_unlikely_coal_section): New.
490         (const_coal_section): New.
491         (data_coal_section): New.
492         (const_data_coal_section): New.
493         * varasm.c (function_section): Honour
494         USE_SELECT_SECTION_FOR_FUNCTIONS.
495         * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when
496         TARGET_USES_WEAK_UNWIND_INFO is in effect.
497         * dbxout.c (dbxout_source_file): Don't change sections while
498         a function is being output.
499
500 2004-10-25  David Ayers  <d.ayers@inode.at>
501
502         * c-common.h: Remove RID_ID.
503         * c-parse.in: Remove OBJECTNAME and references to RID_ID.
504         (typespec_reserved_attr): Add rule for TYPENAME
505         non_empty_protocolrefs.
506         (yylexname): Remove special handling of RID_ID.
507
508 2004-10-25  James E Wilson  <wilson@specifixinc.com>
509
510         * doc/invoke.texi (-fcrossjumping): Not enabled at -O.
511
512 2004-10-25  Joseph S. Myers  <jsm@polyomino.org.uk>
513
514         PR c/16667
515         * c-parse.in (array_designator): New.
516         (designator): Use it.
517         (initelt): Only permit array_designator without '=', not ".foo".
518
519 2004-10-25  Kenneth Zadeck <zadeck@naturalbridge.com>
520         * gcc/Makefile.in: removed ggc for cgraphunit.
521         * gcc/cgraph.c.dump_cgraph_node: removed static var analysis.
522         * gcc/cgraph.h: removed static var analysis data structures and calls.
523         * gcc/cgraphunit.c:
524         cgraph_mark_local_and_external_functions:changed name to
525                 cgraph_mark_local_functions
526         (print_order,convert_UIDs_in_bitmap,new_static_vars_info,
527         cgraph_reset_static_var_maps,get_global_static_vars_info,
528         get_global_statics_not_read,get_global_statics_not_written,searchc,
529         cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var,
530         check_lhs_var,get_asm_expr_operands,process_call_for_static_vars,
531         scan_for_static_refs,cgraph_characterize_statics_local,
532         clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics):
533         removed.
534         (cgraph_optimize,init_cgraph): removed calls to static vars analysis
535         * gcc/tree-dfa.c find_referenced_vars: removed call to static vars
536         analysis
537         * gcc/tree-flow.h static_vars_info: removed
538         * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops):
539         removed calls to static vars analysis.
540         get_call_expr_operands: removed callee variable.
541
542 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
543
544         * cfg.c (unchecked_make_edge, redirect_edge_succ,
545         redirect_edge_pred): Use VEC_safe_push instead of
546         VEC_safe_insert.
547         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
548
549 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
550
551         * cfgloopmanip.c (loopify): Take two more arguments true_edge
552         and false_edge.
553         * cfgloop.h: Adjust the corresponding prototype.
554         * loop-unswitch.c (unswitch_loop): Adjust a call to loopify.
555         * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise.
556
557 2004-10-25  Jakub Jelinek  <jakub@redhat.com>
558
559         * dwarf2out.c (rtl_for_decl_location): Avoid segfault if
560         DECL_INCOMING_RTL is NULL.
561
562 2004-10-25  Steven Bosscher  <stevenb@suse.de>
563
564         * timevar.def (TV_FIND_REFERENCED_VARS): New.
565         * tree-dfa.c (pass_referenced_var): Use it.
566
567 2004-10-25  Roger Sayle  <roger@eyesopen.com>
568             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
569
570         * cse.c: Change encoding of quantity numbers to avoid undefined
571         pointer arithmetic on qty_table.
572         (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative.
573         (get_cse_reg_info): Initialize reg_qty to a unique negative value.
574         (new_basic_block): Assign "real" quantity numbers from zero.
575         (delete_reg_equiv): Do nothing if quantity is invalid.  Reset the
576         REG_QTY to its unique negative value.
577         (merge_equiv_classes): Calculate need_rehash if quantity is valid.
578         (cse_main): Don't include max_reg when determining max_qty.
579         (cse_basic_block): Avoid subtracting a large offset from qty_table,
580         which causes undefined C99 behaviour.  Only allocate needed memory.
581
582 2004-10-25  Kazu Hirata  <kazu@cs.umass.edu>
583
584         * stmt.c (expand_case): Remove an obsolete comment.
585
586 2004-10-25  Andrew Pinski  <pinskia@physics.uc.edu>
587
588         PR middle-end/17407
589         * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call
590         layout_type as it is already done by build_array_type.
591         * tree.c (build_array_type): Layout the type even
592
593 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
594
595         * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0.
596
597 2004-10-25  Alexandre Oliva  <aoliva@redhat.com>
598
599         * config/frv/frv.md (movdi, movdf): Handle wide-constant splits
600         with wider-than-32-bit HOST_WIDE_INTs.
601
602 2004-10-25  David Billinghurst <David.Billinghurst@riotinto.com>
603
604         * config/mips/mips.c(mips_output_filename): Remove unused
605         array ltext_label_name
606
607 2004-10-24  Geoffrey Keating  <geoffk@geoffk.org>
608
609         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define.
610
611 2004-10-25  Ben Elliston  <bje@au.ibm.com>
612
613         * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output.
614
615 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
616
617         * predict.c (predict_loops): Call scev_finalize instead of
618         scev_reset.
619
620 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
621
622         * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h,
623         config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md,
624         config/sh/ushmedia.h, config/sparc/elf.h,
625         config/sparc/sp64-elf.h: Update copyright.
626
627 2004-10-24  Kazu Hirata  <kazu@cs.umass.edu>
628
629         * stmt.c (expand_case): Handle the default label outside of
630         the for loop.  Remove code to handle a missing default label.
631
632 2004-10-23  Kazu Hirata  <kazu@cs.umass.edu>
633
634         * dbxout.c (dbxout_function_decl): Don't use
635         DBX_OUTPUT_FUNCTION_END.
636         * system.h: Poison DBX_OUTPUT_FUNCTION_END.
637         * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove.
638
639 2004-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
640
641         PR middle-end/17967
642         * tree-cfg.c (remove_usless_stmts_cond):  Don't Fold statement.
643
644 2004-10-23  Daniel Berlin  <dberlin@dberlin.org>
645
646         * tree-ssa-dom.c (record_equality): Use loop depth to determine
647         which way to record the equality as well.
648         (loop_depth_of_name): New function.
649
650 2004-10-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
651
652         PR middle-end/17793
653         * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look
654         through the operand if it is a useless type conversion.
655
656 2004-10-23  Ben Elliston  <bje@au.ibm.com>
657
658         * cfg.c (remove_edge): Use VEC_unordered_remove.
659         (redirect_edge_succ): Likewise.
660         (redirect_edge_pred): Likewise.
661         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
662
663 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
664
665         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR
666         beyond its end.
667
668 2004-10-22  Eric Christopher  <echristo@redhat.com>
669
670         * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode
671         saves.
672
673 2004-10-22  Aldy Hernandez  <aldyh@redhat.com>
674
675         * config/rs6000/spe.md (spe_extendsfdf2): New.
676         (movdf_e500_double): New.
677         (spe_truncdfsf2): New.
678         (spe_absdf2): New.
679         (spe_nabsdf2): New.
680         (spe_negdf2): New.
681         (sub_adddf3): New.
682         (spe_subdf3): New.
683         (spe_muldf3): New.
684         (spe_floatsidf2): New.
685         (spe_floatunssidf2): New.
686         (fix_truncdfsi2): New.
687         (spe_fixuns_truncdfsi2): New.
688
689         * config/rs6000/rs6000.md (truncdfsf2): Change to expander.
690         (fpr_truncdfsf2): New.
691         (negdf2): Change to expander.
692         (fpr_negdf2): New.
693         (fpr_nabsdf2): Name pattern.
694         (adddf3): Change to expander.
695         (fpr_adddf3): Nem.
696         (subdf3): Change to expander.
697         (fpr_subdf3): New.
698         (muldf3): Change to expander.
699         (fpr_muldf3): New.
700         (divdf3): Change to expander.
701         (fpr_divdf3): New.
702         (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE.
703         (cmpdf): Allow for TARGET_E500_DOUBLE.
704
705 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
706
707         * c-semantics.c (re_push_stmt_list): Remove.
708         * c-common.h: Remove the corresponding prototype.
709
710 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
711
712         * stmt.c (asm_op_is_mem_input): Remove.
713         * tree.h: Remove the corresponding prototype.
714
715 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
716
717         * tree-gimple.c (is_gimple_constructor_elt): Remove.
718         * tree-gimple.h: Remove the corresponding prototype.
719
720 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
721
722         * varasm.c (get_pool_mode_for_function, get_pool_offset):
723         Remove.
724         * rtl.h: Remove the corresponding prototypes.
725
726 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
727
728         * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
729         edge information when we commit ourselves to threading a
730         particular jump.
731
732 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
733
734         * tree-cfg.c (thread_jumps): Speed up by putting basic blocks
735         into worklist instead of their indexes.
736
737 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
738
739         * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,
740         final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def,
741         lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c,
742         pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c,
743         tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c,
744         tree-scalar-evolution.c, tree-ssa-dom.c,
745         tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
746         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c,
747         tree-vectorizer.c, vec.h: Fix comment formatting.
748
749 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
750
751         * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h,
752         libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright.
753
754 2004-10-22  Kazu Hirata  <kazu@cs.umass.edu>
755
756         * config/ptx4.h, config/mcore/mcore-pe.h,
757         config/rs6000/eabi.h, config/vax/elf.h: Update copyright.
758
759 2004-10-22  Peter Barada <peter@the-baradas.com>
760
761         * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro.
762         * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow
763         renaming of non-live registers in interrupt functions.
764         * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype.
765
766 2004-10-22  Zdenek Dvorak  <dvorakz@suse.cz>
767
768         * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible.
769         Use integer for loop counter.
770         (num_ending_zeros): New function.
771         (number_of_iterations_cond): Use num_ending_zeros.
772
773 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
774
775         * config.gcc: Add support for --enable-e500_double.
776
777         * config/rs6000/e500-double.h: New file.
778
779         * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and
780         TARGET_E500_DOUBLE.
781
782         * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and
783         TARGET_E500_DOUBLE.
784
785         * config/rs6000/linuxspe.h: Same.
786
787         * doc/invoke.texi (Option Summary): Document new options for
788         mfloat-gprs.
789         (RS/6000 and PowerPC Options): Same.
790
791         * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New
792         function.
793         (rs6000_override_options): Use it.  Use
794         SUB3TARGET_OVERRIDE_OPTIONS.
795         Add 8548 to processor_target_table.
796         (rs6000_legitimate_address): Handle e500 doubles.
797         (rs6000_legitimize_address): Same.
798         (rs6000_legitimize_reload_address): Same.
799         (rs6000_hard_regno_nregs): Same.
800         (spe_func_has_64bit_regs_p): Same.
801         (emit_frame_save): Same.
802         (gen_frame_mem_offset): Same.
803         (rs6000_dwarf_register_span): Same.
804         (rs6000_generate_compare): Same.
805         (easy_fp_constant): Same.
806         (legitimate_offset_address_p): Same.
807
808         * config/rs6000/spe.md: (cmdfeq_gpr): New.
809         (tstdfeq_gpr): New.
810         (cmpdfgt_gpr): New.
811         (tstdfgt_gpr): New.
812         (tstdfgt_gpr): New.
813         (cmpdflt_gpr): New.
814         (tstdflt_gpr): New.
815         Add new constants.
816
817 2004-10-21  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
818
819         * config/arc/lib1funcs.asm (___umulsidi3): Fix typo.
820
821 2004-10-21  Zack Weinberg  <zack@codesourcery.com>
822
823         * dbxout.c: Remove unnecessary #undefs.
824         (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER)
825         (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole
826         definition into use sites.
827         (cwd): Make local to dbxout_init.
828         (dbxout_init): Restructure cwd-using logic for clarity.  Use
829         IS_DIR_SEPARATOR.
830         * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of
831         STABS_GCC_MARKER folded in here.
832         * system.h: Poison now-unused macros.
833         * doc/tm.texi: Remove documentation of now-unused macros.
834
835 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
836
837         PR c/17538
838         * c-opts.c (push_command_line_include): Use the current file
839         name instead of the main one.
840
841 2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
842
843         PR objc/17923
844         * tree.c (staticp): A CONST_DECL has static storage if either
845         TREE_STATIC or DECL_EXTERNAL is set.
846         * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
847         have null names.
848
849 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
850
851         * expr.c (store_expr): Remove dont_store_target.
852
853 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
854
855         * tree-cfg.c (thread_jumps): Speed up by using a worklist.
856
857 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
858
859         * tree-cfg.c (thread_jumps): Move a part of it to ...
860         (thread_jumps_from_bb): ... here.
861
862 2004-10-21  David Edelsohn  <edelsohn@gnu.org>
863
864         * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument.
865         * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE).
866
867 2004-10-21  Kazu Hirata  <kazu@cs.umass.edu>
868
869         * expr.c (store_expr): Clean up by renaming want_value to
870         call_param_p.
871
872 2004-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
873
874         * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't
875         fixup pc here.
876
877 2004-10-21  Aldy Hernandez  <aldyh@redhat.com>
878
879         PR 18004.
880         * expmed.c (store_bit_field): Pass original 'value' before
881         recursing.
882
883 2004-10-21  Nicolas Pitre <nico@cam.org>
884
885         * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling.
886         * config/arm/ieee754-df.S: Ditto.
887
888 2004-10-20  Zack Weinberg  <zack@codesourcery.com>
889
890         * dbxout.c (asmfile): Delete.  All uses changed to asm_out_file.
891         (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE):
892         Default to 0.
893         (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined.
894         When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit
895         an internal label and an N_SLINE .stabn whose value is the
896         difference between that label and the function entry label.
897         (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined,
898         but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a
899         label and an N_SO stab with an empty string referring to it.
900         (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead
901         of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE.
902         (dbxout_type_methods, dbxout_symbol): Remove #if 0 block.
903         (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this
904         macro is never defined.
905         * sdbout.c (sdbout_source_line_counter): Delete.
906         (PUT_SDB_SRC_FILE): Delete.  Uses replaced with sole definition.
907         (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes
908         only two arguments.
909         * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE.
910
911         * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs.
912         * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro
913         definitions (identical to default).
914         * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
915         * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h:
916         Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not
917         DBX_OUTPUT_MAIN_SOURCE_FILE_END.
918         * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h
919         * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h:
920         Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE.
921         * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno.
922         * config/alpha/alpha.c: Move declaration of num_source_filenames up.
923         (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE.
924         (sym_lineno): Delete.
925         (alpha_output_filename): Do not emit N_SOL stabs here.  Remove
926         now-unused variable.
927         (alpha_output_lineno): Delete.
928         * config/mips/mips-protos.h: Don't prototype mips_output_lineno.
929         * config/mips/mips.c (mips_output_filename): Don't use
930         ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here.
931         (mips_output_lineno): Delete.
932         (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE.
933         * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and
934         SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE.
935         * config/mips/mips.h: Likewise.  Don't define ASM_OUTPUT_FILENAME.
936         * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE.
937         * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE.
938         * config/mmix/mmix.h: Likewise.
939         * config/mmix/mmix.c (mmix_asm_output_source_line): Delete.
940         * config/mmix/mmix-protos.h: Don't prototype it.
941         * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE;
942         no need to #undef ASM_OUTPUT_SOURCE_LINE.
943         * config/arm/aout.h: Remove RISCiX-specific definition of
944         DBX_OUTPUT_MAIN_SOURCE_FILENAME.
945         * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not
946         ASM_OUTPUT_SOURCE_LINE.
947         * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to
948         DBX_OUTPUT_SOURCE_LINE.  Don't use current_function_func_begin_label.
949         * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END.
950
951         * doc/tm.texi: Update.
952
953 2004-10-20  Richard Henderson  <rth@redhat.com>
954
955         * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also.
956
957 2004-10-20  Kelley Cook  <kcook@gcc.gnu.org>
958
959         * configure.ac: Revert my previous patch.
960         * configure: Regenerate.
961
962 2004-10-20  Ben Elliston  <bje@au.ibm.com>
963
964         * config/rs6000/rs6000.c
965         (rs6000_va_start): Use build_va_arg_indirect_ref.
966         (rs6000_gimplify_va_arg): Likewise.
967
968 2004-10-20  Bryce McKinlay  <mckinlay@redhat.com>
969
970         PR java/15575
971         * configure.ac: Declare AM_LANGINFO_CODESET.
972         * aclocal.m4: Define AM_LANGINFO_CODESET.
973         * configure, config.in: Rebuilt.
974
975 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
976
977         * expr.c (store_expr): Remove code that is run when
978         want_value & 1 is nonzero.
979
980 2004-10-20  Mark Mitchell  <mark@codesourcery.com>
981
982         * gthr-posix.h (__gthread_active_p): Use __extension__ around cast
983         from function pointer to void *.
984
985 2004-10-20  Kaz Kojima  <kkojima@gcc.gnu.org>
986
987         PR target/18032
988         * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before
989         the frame pointer adjustment when exception handling is enabled.
990
991 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
992
993         * stor-layout.c: Fix a comment typo.
994
995 2004-10-20  Kazu Hirata  <kazu@cs.umass.edu>
996
997         * expr.c (store_field): Remove two arguments value_mode and
998         unsignedp.
999         (expand_assignment, store_constructor_field,
1000         expand_expr_real_1): Adjust calls to store_field.
1001
1002 2004-10-18  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
1003
1004         * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags.
1005
1006         PR target/17317
1007         * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P,
1008         REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid
1009         base and index register for loads.
1010
1011         * config/arc/t-arc: Fix multilib handling.
1012
1013 2004-10-20  Hans-Peter Nilsson  <hp@bitrange.com>
1014
1015         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1016         don't inspect BLOCK_FOR_INSN for barriers.
1017         * emit-rtl.c (emit_barrier_before): Revert last change.
1018         (emit_barrier_after, emit_barrier): Ditto.
1019
1020         * doc/extend.texi (Extended Asm): Warn and provide example
1021         solution for using a call-clobbered asm register.
1022         (Local Reg Vars): Similar.  Cross-reference example.
1023
1024 2004-10-19  Andrew Pinski  <pinskia@physics.uc.edu>
1025
1026         * tree-cfg.c (group_case_labels): Look at the second to last
1027         case statement for combing with the default case.
1028
1029 2004-10-19  Richard Hendeson  <rth@redhat.com>
1030
1031         PR 17962
1032         * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors.
1033
1034 2004-10-19  Richard Hendeson  <rth@redhat.com>
1035
1036         * builtins.c (expand_builtin_memmove): If fold_builtin_memmove
1037         succeeds, only expand the result.
1038
1039 2004-10-19  Richard Hendeson  <rth@redhat.com>
1040
1041         PR middle-end/17885
1042         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
1043         of INDIRECT_REF.
1044
1045 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1046
1047         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
1048         loop with goto.
1049
1050 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1051
1052         * expr.c (expand_assignment): Remove the last argument.
1053         Change the return type to void.
1054         * expr.h: Update the prototype of expand_assignment.
1055         * function.c (assign_parm_setup_reg): Update a call to
1056         expand_assignment.
1057         * stmt.c (expand_asm_expr): Likewise.
1058
1059 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
1060
1061         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
1062         unnecessary assignments to temp.  Return const0_rtx.
1063
1064 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1065
1066         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
1067
1068 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
1069
1070         * configure.ac (powerpc-*-darwin*): Require assembler to support
1071         .machine directive.
1072         * configure: Regenerate.
1073
1074 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1075
1076         * reload1.c (ior_hard_reg_set): Remove.
1077         (finish_spills): Use IOR_HARD_REG_SET instead of
1078         ior_hard_reg_set.
1079
1080 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1081
1082         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
1083         the currently visited word to right.
1084
1085 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1086
1087         PR middle-end/18045
1088         * expmed.c (expand_smod_pow2): Handle modes whose size
1089         is greater than that of HOST_WIDE_INT.
1090
1091 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
1092
1093         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
1094
1095 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1096             Roger Sayle  <roger@eyesopen.com>
1097
1098         PR middle-end/17813
1099         * dojump.c (discard_pending_stack_adjust): New function.
1100         (clear_pending_stack_adjust): Call it.
1101         * expr.h (discard_pending_stack_adjust): Declare it.
1102         * explow.c (emit_stack_save): Emit pending stack adjustments
1103         before saving the stack pointer.
1104         (emit_stack_restore): Discard pending stack adjustments before
1105         restoring the stack pointer.
1106
1107 2004-10-18  Richard Henderson  <rth@redhat.com>
1108
1109         * c-common.c (handle_mode_attribute): Allow scalar->vector
1110         type changes yet.
1111
1112 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1113
1114         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
1115         value to expand_assignment.
1116
1117 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1118
1119         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
1120         thread_jumps.
1121         (thread_jumps): Iterate until no new forwarder block arises.
1122
1123 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1124
1125         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
1126         (thread_jumps): Use forwardable as cache of
1127         tree_forwarder_block_p throughout the function.
1128
1129 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1130
1131         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
1132
1133 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
1134
1135         PR middle-end/15014
1136         PR middle-end/16973
1137         * tree-cfg.c (remove_bb): If we have a label expression in the
1138         basic block and the label we have taken the address, move the
1139         label expression to the basic block which is previous in the
1140         linked list.
1141         (tree_verify_flow_info): Fix printing out the label name of the
1142         problematic label expression.
1143
1144 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
1145
1146         PR rtl-optimization/18002
1147         * simplify-rtx.c (mode_signbit_p): Externalize function...
1148         * rtl.h (mode_signbit_p): ... to here.
1149         * combine.c (simplify_shift_const): Recognize PLUS signbit as
1150         canonical form of XOR signbit and move to outer op.
1151
1152 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1153
1154         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
1155         Update all callers.
1156         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
1157         Don't call fold_stmt more than once, use bsi_replace.
1158
1159 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
1160
1161         PR tree-optimization/17656
1162         * tree-ssa.c (replace_immediate_uses): When replacing a
1163         constant, if the call to fold_stmt produced a different
1164         statement, get an appropriate statement pointer by scanning
1165         STMT's basic block.
1166
1167 2004-10-18  Richard Henderson  <rth@redhat.com>
1168
1169         * pointer-set.c (hash1): Don't use libm functions in fallback case.
1170
1171 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
1172
1173         PR bootstrap/17684
1174         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
1175         (stage1-start): Remove and copy libunwind.a and
1176         libunwind*$(SHLIB_EXT) instead of libunwind*.
1177         (stage2-start): Likewise.
1178         (stage3-start): Likewise.
1179         (stage4-start): Likewise.
1180         (stageprofile-start): Likewise.
1181         (stagefeedback-start): Likewise.
1182
1183         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
1184         the shared library to be created and don't remove the existing
1185         shared library.
1186         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1187         * config/i386/t-nwld (SHLIB_LINK): Likewise.
1188         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1189         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1190         * config/sh/t-linux (SHLIB_LINK): Likewise.
1191         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1192         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1193         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1194         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1195
1196         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
1197         files.
1198
1199 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1200
1201         * basic-block.h (reg_set_iterator): New.
1202         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
1203         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
1204         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
1205         * caller-save.c (save_call_clobbered_regs): Adjust to the new
1206         style.
1207         * cfgcleanup.c (thread_jump): Likewise.
1208         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
1209         * conflict.c (conflict_graph_compute): Likewise.
1210         * flow.c (verify_local_live_at_start, update_life_info,
1211         initialize_uninitialized_subregs, propagate_one_insn,
1212         init_propagate_block_info, free_propagate_block_info,
1213         propagate_block, dump_regset): Likewise.
1214         * global.c (global_conflicts): Likewise.
1215         * graph.c (start_bb): Likewise.
1216         * local-alloc.c (update_equiv_regs): Likewise.
1217         * loop.c (load_mems): Likewise.
1218         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
1219         find_reg, finish_spills): Likewise.
1220         * resource.c (mark_target_live_regs): Likewise.
1221         * sched-deps.c (sched_analyze_insn): Likewise.
1222         * sched-rgn.c (sched-rgn.c): Likewise.
1223         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
1224
1225 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
1226
1227         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
1228         operand 1 instead of 2
1229
1230 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
1231
1232         * loop-unroll.c: Fix comment typos.
1233
1234 2004-10-18  Revital Eres  <eres@il.ibm.com>
1235
1236         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
1237         * loop-unroll.c: Include varray.h.
1238         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
1239         opt_info and expand it to support variable expansion.
1240         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
1241         expand it to support variable expansion.
1242         (pt_info_start_duplication): Rename si_info_start_duplication.
1243         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
1244         to the variable expansion optimization.
1245         (free_opt_info): Rename free_si_info.
1246         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
1247         expand_var_during_unrolling, insert_var_expansion_initialization,
1248         combine_var_copies_in_loop_exit, release_var_copies,
1249         get_expansion): New functions.
1250         (peel_loop_completely, unroll_loop_constant_iterations,
1251         unroll_loop_runtime_iterations, peel_loop_simple,
1252         unroll_loop_stupid): Change uses of struct si_info
1253         to struct opt_info
1254         and add uses of fvariable-expansion-in-unroller flag.
1255         * params.def: Add parameter to restrict the number of expansions.
1256         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
1257         the number of expansions.
1258         * common.opt: (fvariable-expansion-in-unroller): New flag.
1259         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
1260
1261 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
1262
1263         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1264         __GXX_MERGED_TYPEINFO_NAMES to 0.
1265
1266 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
1267
1268         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
1269         handle barriers in a bb by checking that it points to a NULL bb.
1270         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
1271         (emit_barrier_after, emit_barrier): Ditto.
1272
1273 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
1274
1275         * doc/extend.texi (Attribute Syntax): Clarify details of
1276         attributes on parameters.
1277
1278 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
1279
1280         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
1281         loop.
1282
1283 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1284
1285         Revert:
1286         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1287
1288         * c-typeck.c (default_function_array_conversion): Always create
1289         &a[0] for array types.
1290         (build_unary_op): Do not fold &a[x] into a + x.
1291
1292 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1293
1294         PR middle-end/17925
1295         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
1296         block if there is a goto with a locus.
1297
1298 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1299
1300         * config/elfos.h, config/gofast.h, config/interix.h,
1301         config/netbsd.h, config/svr3.h, config/vxworks.h,
1302         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
1303         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1304         config/alpha/netbsd.h, config/arm/arm-modes.def,
1305         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
1306         config/cris/aout.h, config/frv/frv-modes.def,
1307         config/i386/beos-elf.h, config/i386/gas.h,
1308         config/i386/i386-coff.h, config/i386/i386-modes.def,
1309         config/i386/linux.h, config/i386/linux64.h,
1310         config/i386/mingw32.h, config/i386/netbsd-elf.h,
1311         config/i386/netbsd64.h, config/i386/sco5.h,
1312         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
1313         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
1314         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
1315         config/mips/mips-modes.def, config/mips/sdb.h,
1316         config/mips/vr.h, config/mips/vxworks.h,
1317         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
1318         config/pa/pa32-linux.h, config/rs6000/40x.md,
1319         config/rs6000/7450.md, config/rs6000/8540.md,
1320         config/rs6000/linuxspe.h, config/rs6000/power4.md,
1321         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
1322         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
1323         config/s390/s390-modes.def, config/sh/elf.h,
1324         config/sh/sh-modes.def, config/sh/sh64.h,
1325         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
1326         config/stormy16/stormy16.md, config/v850/v850-protos.h,
1327         config/vax/vax.md: Update copyright.
1328
1329 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
1330
1331         * expr.c (expand_expr_real_1): Remove an obsolete comment.
1332
1333 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1334
1335         * c-typeck.c (default_function_array_conversion): Always create
1336         &a[0] for array types.
1337         (build_unary_op): Do not fold &a[x] into a + x.
1338
1339 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
1340
1341         * pointer-set.c (hash1): Use integer part of 2^64 / phi
1342         instead 2^32 / phi if long is 64-bit.
1343
1344 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1345
1346         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
1347         RID_PTRVALUE.
1348         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
1349         declarations.
1350         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
1351         __ptrextent__, __ptrvalue and __ptrvalue__.
1352         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
1353         entries.
1354
1355 2004-10-16  Dale Johannesen  <dalej@apple.com>
1356
1357         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
1358
1359 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1360
1361         PR tree-optimization/17766
1362         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
1363         (dom_info_available_p): Declare.
1364         * cfghooks.c (split_block, make_forwarder_block): Use
1365         dom_info_available_p.
1366         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
1367         free_dominance_info, verify_dominators): Ditto.
1368         (dom_info_available_p): New function.
1369         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
1370         (thread_jumps): Use dom_info_available_p.
1371         * tree-complex.c (expand_complex_div_wide): Ditto.
1372         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
1373
1374 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1375
1376         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
1377         (find_best_candidate): Take also important candidates into account.
1378         (find_optimal_iv_set): Initialize important_candidates bitmap.
1379
1380 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1381
1382         PR tree-optimization/17560
1383         * predict.c (tree_estimate_probability): Mark irreducible
1384         loops.
1385
1386 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
1387
1388         PR rtl-optimization/17723
1389         * cfgcleanup.c (merge_memattrs): Handle case when
1390         MEM_SIZE == NULL_RTX.
1391
1392 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
1393
1394         * toplev.c (dump_file_name): Change type to be const.
1395
1396 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1397
1398         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
1399         non_lvalue to stop something being a null pointer constant.
1400
1401 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
1402
1403         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
1404         available for TARGET_FPRS.
1405         (FUNCTION_VALUE_REGNO_P): Same.
1406
1407 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
1408
1409         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1410         -maltivec in same style as other ISA options.
1411
1412 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
1413
1414         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
1415         definition.
1416
1417 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1418
1419         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
1420         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
1421         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
1422         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
1423         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
1424         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
1425         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
1426         predict.def, predict.h, protoize.c, reload.h, resource.h,
1427         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
1428         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
1429         unwind-sjlj.c, value-prof.h: Update copyright.
1430
1431 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
1432
1433         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
1434
1435 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
1436
1437         * tree-optimize.c (execute_one_pass): Stop timer right after
1438         executing the pass.
1439
1440 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1441
1442         Revert:
1443         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1444         PR middle-end/17967
1445         Revert:
1446                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1447                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1448
1449 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1450
1451         * configure.ac: Add .machine power4 directive when testing for
1452         mfcr field.
1453         * configure: Regenerate.
1454
1455 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1456
1457         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
1458
1459 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1460
1461         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
1462         always.
1463
1464 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
1465
1466         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
1467         for 'f' if !TARGET_FPRS.
1468
1469 2004-10-14  Richard Henderson  <rth@redhat.com>
1470
1471         PR debug/14492
1472         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
1473
1474 2004-10-14  Richard Henderson  <rth@redhat.com>
1475
1476         PR c/17023
1477         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
1478         as error_mark_node.
1479         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
1480         instaed of current_function_decl non-null.
1481
1482 2004-10-14  Matt Austern  <austern@apple.com>
1483
1484         * pointer-set.c: New file, special-purpose hash table.
1485         * pointer-set.h: New file.
1486         * tree.h (struct pointer_set_t): Declare as opaque type.
1487         (tree_walk): Last argument is pointer_set_t* now.
1488         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
1489         (walk_type_fields):
1490         (walk_tree): Convert from htab_t to pointer_set_t for keeping
1491         track of which nodes have already been visited.
1492         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
1493         * cgraphunit.c (cgraph_create_edges): Likewise.
1494         (cgraph_characterize_statics_local): Likewise.
1495         * tree-dfa.c (collect_dfa_stats): Likewise.
1496         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
1497         pointer_set_t* now.
1498         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
1499         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
1500         of walk_subtrees is pointer_set_t* now.
1501         * Makefile.in (OBJS-common): add pointer-set.o
1502         (tree-inline.o): Depends on pointer-set.h
1503         (tree-dfa.o): Likewise
1504         (cgraphunit.o): Likewise
1505
1506 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
1507
1508         * config/rs6000/darwin.h (ASM_SPEC): Delete.
1509         (TARGET_ASM_FILE_START): Define.
1510         * config/darwin.h (ASM_SPEC): Define.
1511         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
1512         -mlong-double-128, it's the default.  Update comment about reason
1513         for force_cpusubtype_ALL.
1514         * config/rs6000/darwin-vecsave.asm: Supply .machine.
1515         * config/rs6000/darwin-world.asm: Likewise.
1516         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
1517         (symbolic_operand): Delete #if 0ed code.
1518
1519 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1520
1521         * stmt.c (add_case_node): Make sure that we have integer
1522         constant before calling tree_int_cst_compare.
1523
1524 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
1525
1526         PR middle-end/17967
1527         Revert:
1528                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
1529                 (remove_useless_stmts_1):  Fold trees we know how to fold.
1530
1531 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
1532
1533         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
1534         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
1535         -m64.
1536
1537 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
1538
1539         * reload.c (find_reloads): When reloading a PLUS with constant
1540         operand, make sure the constant is pushed to the constant pool
1541         if required.
1542         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
1543         reload bug workaround.
1544         (s390_expand_plus_operand): Likewise.
1545
1546 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
1547
1548         * opts.c (common_handle_option): Do not enable
1549         flag_speculative_prefetching for -fprofile-generate/use.
1550
1551 2004-10-14  Devang Patel  <dpatel@apple.com>
1552
1553         PR 17635
1554         * tree-if-conv.c (process_phi_nodes): Process latch block.
1555         (combine_blocks): Process latch block and update loop structure.
1556
1557 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
1558
1559         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
1560         (vect_update_ivs_after_vectorizer):
1561         (vect_transform_for_unknown_loop_bound):
1562         (tree_duplicate_loop_to_edge):
1563         (allocate_new_names):
1564         (rename_use_op):
1565         (rename_def_op):
1566         (rename_variables_in_bb):
1567         (free_new_names):
1568         (rename_variables_in_loop):
1569         (copy_phi_nodes):
1570         (update_phis_for_duplicate_loop):
1571         (update_phi_nodes_for_guard):
1572         (make_loop_iterate_ntimes):
1573         (tree_duplicate_loop_to_edge_cfg):
1574         (add_loop_guard):
1575         (vect_analyze_loop_with_symbolic_num_of_iters):
1576         (verify_loop_for_duplication):
1577         (vect_gen_niters_for_prolog_loop):
1578         (vect_update_niters_after_peeling):
1579         (vect_update_inits_of_dr):
1580         (vect_update_inits_of_drs):
1581         (vect_build_loop_niters):
1582         (vect_do_peeling_for_alignment): New functions.
1583         (vect_transform_loop): Add unknown and known but indivisible loop
1584         bound support; add peeling for unalignment support.
1585         (vect_analyze_loop_form): Support symbolic number of iterations.
1586         (vect_transform_loop_bound): New input parameter.
1587         (vect_get_loop_niters): Change input parameter type.
1588         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
1589         (vectorizable_store): Allow unaligned access.
1590         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
1591         (vect_analyze_data_refs_alignment): Allowed one unaligned
1592         store.
1593         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined
1594         to use tree.
1595         (LOOP_VINFO_INT_NITERS): New macro.
1596         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
1597         (do_peeling_for_alignment):
1598         (unaligned_drs): New members of _loop_vec_info.
1599         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
1600
1601 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
1602
1603         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
1604         (struct tree_string): Remove "const" qualifier for "str".
1605
1606 2004-10-14  Ira Rosen  <irar@il.ibm.com>
1607
1608         * tree-vectorizer.c (vect_analyze_data_refs): Call
1609         vect_get_base_and_bit_offset to get memory tag for array ref.
1610         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
1611
1612 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
1613
1614         * configure.ac: Use $LN_S for creating symlinks (not $LN).
1615         * configure: Regenerate.
1616
1617 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1618
1619         * doc/install.texi (*-*-solaris2*): Update with info about kernel
1620         patches to solve spurious testsuite failures.
1621
1622 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
1623
1624         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
1625         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
1626         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
1627         gcc_assert under ENABLE_CHECKING.
1628         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
1629         get_vectype_for_scalar_type).
1630
1631         (vect_get_vec_def_for_operand): Remove redundant variables.
1632         (vect_transform_loop): Likewise.
1633
1634 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
1635
1636         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
1637         global for -mcaller-super-interworking.
1638         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
1639         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
1640         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
1641         not need a frame pointer.
1642         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
1643         the soft frame pointer offset.
1644         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
1645         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
1646         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
1647         the stack.  Use frame_pointer_needed to choose between them.
1648         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
1649         (interwork_with_frame): New macro.
1650         (interwork): Add _interwork_{r7,r11}_call_via_rN().
1651
1652 2004-10-14  Ben Elliston  <bje@au.ibm.com>
1653
1654         PR other/17900
1655         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
1656         up the filename looking for a previous directory separator.
1657
1658 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
1659
1660         * c-tree.h (enum c_typespec_kind, struct c_typespec,
1661         parser_xref_tag): New.
1662         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
1663         typedef_p.
1664         (declspecs_add_type): Adjust prototypes.
1665         * c-parse.in (%union): Add tstype.
1666         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
1667         typespec_reserved_attr, typespec_nonreserved_nonattr,
1668         structsp_attr, structsp_nonattr): Change to tstype.  Update
1669         actions.
1670         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
1671         (declspecs_add_type): Update to take struct c_typespec argument.
1672         Set tag_defined_p and typedef_p as appropriate.
1673         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
1674         Update to return struct c_typespec.
1675         (shadow_tag_warned): Don't let empty declarations with qualifiers
1676         or storage class specifiers redeclare a tag if a previous
1677         declaration is visible.
1678
1679 2004-10-13  Richard Henderson  <rth@redhat.com>
1680
1681         PR debug/15860
1682         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
1683         for DECL_INCOMING_RTL.
1684
1685 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
1686
1687         PR target/17984
1688         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
1689         trunc_int_for_mode for constants used in shortened mode.
1690
1691 2004-10-13  Richard Henderson  <rth@redhat.com>
1692
1693         PR c/17384
1694         * c-common.c (handle_mode_attribute): Disallow mode changes that
1695         alter the CODE of the top-level type.
1696
1697         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
1698         integer from internal limits macros.
1699         * config/i386/mm3dnow.h (__v2sf): Fix base type.
1700
1701 2004-10-13  Richard Henderson  <rth@redhat.com>
1702
1703         PR debug/13841
1704         * function.c (instantiate_decl): Recurse for CONCAT.
1705
1706 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
1707
1708         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
1709         andi./andis.
1710         (anddi3): Same.
1711         (extzvdi_internal1): Add attribute "compare".
1712         (extzvdi_internal2): Same.
1713
1714 2004-10-12  Tom Tromey  <tromey@redhat.com>
1715
1716         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
1717
1718 2004-10-13  Dale Johannesen  <dalej@apple.com>
1719
1720         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
1721
1722 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
1723
1724         * toplev.c (compile_file): Call mudflap_finish_file from here ...
1725         * c-decl.c (c_write_global_declarations): ... instead of here ...
1726         * cp/decl.c (cp_finish_file): ... and here.
1727         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
1728
1729 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
1730
1731         * tree-ssa-dom.c (record_range): Free the element if we are not
1732         going to use it.
1733
1734 2004-10-13  Tom Tromey  <tromey@redhat.com>
1735
1736         PR java/15578:
1737         * gcc.c (option_map): Added --extdirs and --encoding.
1738
1739 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
1740
1741         PR target/14454
1742         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
1743         sparc_can_output_mi_thunk.
1744         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
1745         handling of vcall offset.
1746         (sparc_can_output_mi_thunk): New predicate.
1747         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
1748         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
1749         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
1750
1751         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
1752
1753         * config/sparc/sparc.md (movdi): Remove redundant test.
1754
1755 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
1756
1757         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
1758         TDF_IPA from -fdump-tree-*-all.
1759
1760 2004-10-13  Paul Brook  <paul@codesourcery.com>
1761
1762         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
1763         * config/arm/arm.c (thumb_find_work_register): Update comments.
1764         (arm_load_pic_register): Add argument for scratch register.
1765         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
1766         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
1767
1768 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
1769
1770         * tree-data-ref.c: Fix comment typos.
1771
1772 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
1773             Zdenek Dvorak  <dvorakz@suse.cz>
1774
1775         PR tree-optimization/17724
1776         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
1777
1778 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
1779
1780         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
1781         (altivec_builtin_mask_for_store): Likewise.
1782         (altivec_init_builtins): Use lang_hooks.builtin_function to
1783         create the decls for builtin_altivec_mask_for_load/store.
1784
1785 2004-10-13  Nick Clifton  <nickc@redhat.com>
1786
1787         * config/c4x/c4x.c: Remove inclusion of loop.h.
1788
1789 2004-10-12  Ben Elliston  <bje@au.ibm.com>
1790
1791         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
1792         (ei_container): New; renamed.
1793         (ei_start, ei_last): New macros.
1794         (ei_start_1, ei_last_1): Renamed from ei_start.
1795         (ei_last_1, ei_end_p): Use ei_container() where applicable.
1796         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
1797         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
1798
1799 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
1800
1801         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
1802         * cfgloop.c (initialize_loops_parallel_p): New.
1803         (flow_loops_find): Initialize the parallel_p field to true for all
1804         the loops.
1805         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
1806         (estimate_numbers_of_iterations_loop): Infers the loop bounds from
1807         the size of the data accessed in the loop.
1808         (struct nb_iter_bound): Moved...
1809         * cfgloop.h (struct nb_iter_bound): ... here.
1810         (estimated_nb_iterations, parallel_p): New fields in struct loop.
1811         (record_estimate): Declare extern here.
1812         * tree-chrec.c: Fix comments.
1813         (nb_vars_in_chrec): New function.
1814         * tree-chrec.h (nb_vars_in_chrec): Declared here.
1815         * tree-data-ref.c: Don't include lambda.h, that is already included
1816         in tree-data-ref.h.
1817         (tree_fold_divides_p): Don't check for integer_onep.
1818         (tree_fold_bezout): Removed.
1819         (gcd): New static duplicated function.
1820         (int_divides_p, dump_subscript): New.
1821         (dump_data_dependence_relation): Use dump_subscript.
1822         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations,
1823         estimate_niter_from_size_of_data): New.
1824         (analyze_array_indexes, analyze_array): Call
1825         estimate_niter_from_size_of_data during the detection of array
1826         references.  Pass in a pointer to the statement that contains the
1827         array reference.
1828         (all_chrecs_equal_p): New.
1829         (compute_distance_vector): Renamed compute_subscript_distance.
1830         Deal with multivariate conflict functions.
1831         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P,
1832         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
1833         (non_affine_dependence_relation): New.
1834         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
1835         analyze_siv_subscript, analyze_miv_subscript,
1836         analyze_overlapping_iterations, subscript_dependence_tester):
1837         Initialize and return last_conflicts function.
1838         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
1839         compute_overlap_steps_for_affine_1_2): New.
1840         (analyze_siv_subscript_affine_cst): Removed.
1841         (analyze_subscript_affine_affine): Disprove dependences based on the
1842         iteration domains.  Solve the univariate dependence case as before,
1843         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
1844         Implement the multivariate case of 2 versus 1 variables.
1845         (build_classic_dist_vector, build_classic_dir_vector): Implement some
1846         unhandled cases.
1847         (find_data_references_in_loop): Compute and initialize
1848         loop->estimated_nb_iterations and loop->parallel_p.
1849         (analyze_all_data_dependences): Modify the debug dump order.
1850         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
1851         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
1852         (SUB_LAST_CONFLICT, subscript->last_conflict,
1853         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
1854         DDR_AFFINE_P, DDR_SIZE_VECT): New.
1855         (find_data_references_in_loop, initialize_data_dependence_relation,
1856         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
1857
1858 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
1859
1860         * configure: Regenerate.
1861
1862 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
1863
1864         PR 17892
1865         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
1866         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
1867         and constant folding of floating point MULT_EXPR/PLUS_EXPR
1868         expressions.
1869
1870 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
1871
1872         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
1873         (s390_gimplify_va_arg): Likewise.
1874
1875 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
1876
1877         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
1878         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
1879         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
1880         * regclass.c (record_address_regs): Remove ifdef.  Use
1881         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1882         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
1883         definition.
1884         (scan_rtx_address, replace_oldest_value_addr): Use
1885         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
1886         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
1887         unnecessary definitions.
1888         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
1889         and MODE_BASE_REG_REG_CLASS.
1890         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
1891         (MODE_BASE_REG_REG_CLASS): Define.
1892         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
1893         (REG_MODE_OK_FOR_REG_BASE_P): Define.
1894         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
1895         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
1896
1897 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
1898
1899         * tree-ssa-alias.c (verify_name_tags): New function.
1900         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
1901         (verify_alias_info): Call verify_name_tags.
1902
1903 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
1904
1905         PR rtl-optimization/17931
1906         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
1907         ZERO_EXTRACT in it.
1908
1909 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
1910
1911         * arm.c (arm_print_operand): Use output_operand_lossage where possible
1912         rather than aborting.
1913
1914 2004-10-12  Paul Brook  <paul@coudesourcery.com>
1915
1916         * config.gcc: Add armv6{k,z,zk}
1917         * config/arm/arm-cores.def: Add arm1176 and mpcore.
1918         * config/arm/tune.md: Regenerate.
1919         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
1920         Define.
1921         (all_architectures): Add armv6k, armv6z, armv6zk.
1922         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
1923         * doc/invoke.texi: Document new arch and cpu values.
1924
1925 2004-10-12  Paul Brook  <paul@coodesourcery.com>
1926
1927         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
1928         meabi=4.
1929
1930 2004-10-12  Paul Brook  <paul@codesourcery.com>
1931
1932         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
1933         Handle negative constants.
1934
1935 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
1936
1937         PR c/17301
1938         * c-typeck.c (convert_arguments): Return error_mark_node if there
1939         are too few arguments.
1940         (build_function_call): Handle error_mark_node return from
1941         convert_arguments.
1942
1943 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
1944
1945         * configure.ac (symbolic_link): Replace with $LN_S.
1946         (Assembler/Linker): Hard link from gas and binutils trees.
1947         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
1948         * configure: Regenerate.
1949
1950 2004-10-12  Paul Brook  <paul@codesourcery.com>
1951
1952         * configure.ac: Don't look for host assembler when building a canadian
1953         cross.
1954         * configure: Regenerate.
1955
1956 2004-10-11  Roger Sayle  <roger@eyesopen.com>
1957
1958         PR other/17361
1959         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
1960         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
1961         line options for "-lang-asm" and if found allow any of the C-family
1962         front-end options.
1963         (c_common_handle_option): Remove last use of permit_fortran_options.
1964
1965 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1966
1967         * config/s390/s390.c (print_operand): Support 'S' format flag.
1968         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
1969         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
1970         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
1971         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
1972         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
1973         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
1974         ("*movstricthi"): Likewise.
1975         ("*load_multiple_di", "*load_multiple_si"): Likewise.
1976         ("*store_multiple_di", "*store_multiple_si"): Likewise.
1977         ("*sethiqisi", "*sethihisi"): Likewise.
1978         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
1979         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
1980         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
1981         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
1982         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
1983
1984         ("*tmhi_full"): Fix incorrect op_type attribute.
1985
1986         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
1987         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
1988         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
1989         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
1990
1991 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
1992
1993         PR middle-end/16266
1994         * function.c (temp_slots_at_level): Fix typo which creates too
1995         many temp stack slots levels.
1996
1997 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
1998
1999         * config/s390/s390.c (s390_trampoline_template): Generate shorter
2000         trampoline code.
2001         (s390_trampoline_instantiate): Adapt.
2002         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
2003
2004 2004-10-11  Roger Sayle  <roger@eyesopen.com>
2005
2006         PR middle-end/17657
2007         * stmt.c (add_case_node): Add additional type argument.  Declare
2008         as static to match prototype.  Convert the upper and lower bounds
2009         to the specified index type.  Optimize away case ranges/values
2010         that are outside the index type's bounds.  Truncate case ranges
2011         that span the index type's bounds.
2012         (expand_case): Avoid unnessary computation and memory allocation
2013         when index type is error_mark_node.  Pass index_type as required
2014         by change to add_case_node API.  No need to convert case range
2015         bounds to index_type, this is now done by add_case_node.
2016
2017 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
2018
2019         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
2020         * config/s390/s390.c (s390_offset_p): New function.
2021         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
2022         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
2023         transform Q->Q alternatives to *clc pattern.
2024         ("*clc"): Move.
2025         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
2026         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
2027         to transform Q->Q alternatives to *mvc pattern.
2028         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
2029         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
2030         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
2031         transform Q->Q alternatives to *nc pattern.
2032         ("*nc"): New insn.  New peephole to merge adjacent NCs.
2033         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
2034         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
2035         transform Q->Q alternatives to *oc pattern.
2036         ("*oc"): New insn.  New peephole to merge adjacent OCs.
2037         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
2038         transform Q->Q alternatives to *xc pattern.
2039         ("*xc"): New insn.  New peephole to merge adjacent XCs.
2040         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
2041
2042 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
2043
2044         * gimplify.c (gimple_push_condition): Make sure that we don't
2045         have any saved condition cleanup if we were at the top level.
2046
2047 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
2048
2049         * config/frv/frv.md (*adddi3_internal): Change name to...
2050         (adddi3): ...replacing the exisiting define_expand.  Combine
2051         alternatives.  Fix the range of the constant constraints ('J' instead
2052         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
2053         to extract the lower and upper halves of the DImode operands.
2054         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
2055         (adddi3_lower): Fix the range of the constant constraints and
2056         remove the bogus operands[2] check.
2057         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
2058         operand 2.  Use addxi to handle constant operands.
2059         (subdi3_lower, subdi3_upper): Don't handle constant operands.
2060
2061 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
2062
2063         * gengtype-lex.l: Add commented } & ) characters to unconfuse
2064         editor's paren matching. Allow #define inside a struct.
2065
2066 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
2067
2068         PR middle-end/17703
2069         part of PR c++/17657
2070         * fold-const.c (fold_build_cleanup_point_expr): New function.
2071         * tree.h (fold_build_cleanup_point_expr): Prototype.
2072
2073 2004-10-10  Eric Christopher  <echristo@redhat.com>
2074
2075         * dwarf2out.c: Move attribute to subprogram declaration
2076         instead of subroutine type.
2077
2078 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2079
2080         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
2081         hoist_insn_after, and hoist_insn_to_edge.
2082         * rtl.h: Remove the prototypes for reg_referenced_between_p,
2083         no_jumps_between_p, and insn_dependent_p.
2084         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
2085         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
2086         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
2087         hoist_insn_to_edge): Remove.
2088
2089 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2090
2091         PR c/17881
2092         * c-decl.c (grokparms): Don't warn for parameters of incomplete
2093         type in declarations that are not definitions except for the case
2094         of parameters of void type.
2095
2096 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
2097
2098         * tree-cfg.c: Fix comment typos.
2099
2100 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2101
2102         PR c/17301
2103         * builtins.c (expand_builtin_va_start): Check for too few
2104         arguments to va_start.
2105
2106 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
2107
2108         PR c/17189
2109         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
2110         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
2111         pedantic.
2112         * c-parse.in (component_decl): Don't pedwarn here for unnamed
2113         fields.
2114
2115 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
2116
2117         PR tree-optimization/17906
2118         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
2119         copy non-gimple reg arguments.
2120
2121 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2122
2123         PR rtl-optimization/17853
2124         * simplify-rtx.c (simplify_relational_operation): Correct comment.
2125         Reorganize handling of comparison operations with floating point
2126         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
2127         Likewise, introduce support for comparison operations with vector
2128         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
2129
2130         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
2131         * doc/tm.texi: Likewise.
2132
2133 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2134
2135         * regs.h (struct reg_info_def): Remove the last_node_uid and
2136         changes_mode fields.
2137         (REGNO_LAST_NOTE_UID): Don't define.
2138         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
2139         * regmove.c (copy_src_to_dest): Likewise.
2140
2141 2004-10-09  Roger Sayle  <roger@eyesopen.com>
2142
2143         PR middle-end/17894
2144         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
2145         relational comparison operator op needs to be swapped/reversed when
2146         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
2147
2148 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2149
2150         PR tree-opt/17902
2151         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
2152         instead of bsi_start.
2153         (value_replacement): Likewise.
2154         (abs_replacement): Likewise
2155
2156 2004-10-09  Steven Bosscher  <stevenb@suse.de>
2157
2158         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
2159         (expand_gimple_cond_expr, expand_gimple_tailcall,
2160         expand_gimple_basic_block): Use it to dump RTL for each stmt.
2161         (tree_expand_cfg): Announce full RTL function dump.
2162         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
2163         not the graph version.
2164         * tree-pretty-print.c (dump_generic_node): Allow empty statements
2165         in the arms of a COND_EXPR for lowered nodes.
2166
2167 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
2168
2169         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
2170         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
2171         strtoufix16, strtoufix32, strtoufix64): Declare.
2172
2173 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2174
2175         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
2176         for an out-of-range floating point constant.
2177         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
2178         warning if the target format does not support infinities.
2179
2180 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2181
2182         * emit-rtl.c (last_label_num, base_label_num): Remove.
2183         (max_label_num): Always return label_num.
2184         (set_new_last_label_num, restore_emit_status): Remove.
2185         (init_emit): Don't initialize last_label_num.
2186         * function.c (pop_function_context_from): Don't call
2187         restore_emit_status.
2188         * function.h: Remove the prototype for restore_emit_status.
2189         * rtl.h: Remove the prototype for set_new_last_label_num.
2190
2191 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2192
2193         * stmt.c (expand_decl_init): Remove.
2194         * tree.h: Remove the corresponding prototype.
2195
2196 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2197
2198         * integrate.c (try_constants, subst_constants, mark_stores):
2199         Remove.
2200         * integrate.h: Remove the prototype for try_constants.
2201
2202 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2203
2204         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
2205         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
2206         comments about its relevance to errors.
2207         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
2208
2209 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2210
2211         PR c/16999
2212         * c-ppoutput.c (cb_ident): Don't quote string as it is already
2213         quoted.
2214
2215 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
2216
2217         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
2218         reference_node_pool.
2219
2220 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2221
2222         * tree-cfg.c: Fix a comment typo.
2223
2224 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
2225
2226         * config/s390/s390.c (s390_register_info): Don't save fprs for
2227         -msoft-float.
2228         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
2229
2230 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
2231
2232         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
2233         (TARGET_DEFAULT): Use symbolic values.
2234         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
2235         (TARGET_DEFAULT): Use symbolic values.
2236         * config/s390/s390.c (s390_backchain_string): Initialize to
2237         TARGET_DEFAULT_BACKCHAIN.
2238
2239 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2240
2241         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
2242         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
2243         code.
2244         (expand_builtin_strcat): Accept a type parameter.
2245         (fold_builtin_mempcpy): Accept a type and endp parameter.
2246
2247         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
2248         Accept an `exp' instead of an `arglist'.
2249
2250 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
2251
2252         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
2253         reverting my 2004-09-07 patch to use build_int_cst.
2254
2255 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2256
2257         PR target/17245
2258         * config/sparc/sparc.c (input_operand): Remove redundant code
2259         for handling LO_SUM.
2260         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
2261         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
2262         Otherwise only accept it for TFmode if quad move insns are available.
2263
2264 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
2265
2266         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
2267         common cases will be caught earlier than others.
2268
2269 2004-10-08  Michael Matz  <matz@suse.de>
2270
2271         * loop-doloop.c (doloop_optimize): Extend count.
2272
2273 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2274
2275         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
2276         (prefetch): Convert to expander.
2277
2278 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2279
2280         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
2281         first argument of CALL.
2282         (tls_local_dynamic): Likewise.
2283
2284 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
2285
2286         * c-typeck.c (enum impl_conv): New.
2287         (convert_for_assignment): Use it.  Take tree for function called
2288         instead of its name.  Handle ObjC selectors for diagnostics at
2289         start of function.  Select diagnostic text within the function
2290         using full sentences for diagnsotics.  Use %qE to name functions
2291         in diagnostics.
2292         (convert_arguments, build_modify_expr,
2293         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
2294         callers to convert_for_assignment.
2295         (warn_for_assignment): Remove.
2296
2297 2004-10-08  Nick Clifton  <nickc@redhat.com>
2298
2299         * config/sh/symbian.c (symbian_possibly_export_base_class):
2300         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
2301         TYPE_CONTAINS_VPTR_P.
2302
2303 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
2304
2305         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
2306         fixed registers form all_used_regs. Update call_really_used_regs.
2307         (CALL_REALLY_USED_REGISTERS): Define.
2308         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
2309         with call_really_used_regs.
2310
2311 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
2312
2313         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
2314         for -profile as well as -p and -pg.
2315
2316 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
2317
2318         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
2319
2320 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2321
2322         * tree-cfg.c (tree_block_forwards_to): Remove.
2323         * tree-flow.h: Remove the corresponding prototype.
2324
2325 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2326
2327         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
2328         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
2329
2330 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
2331
2332         Radar 3813796
2333         * config/rs6000/rs6000.c (rs6000_generate_compare): When
2334         flag_trapping_math is in effect, don't generate subtract
2335         instructions.
2336
2337 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
2338
2339         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
2340         * config/s390/s390.c (s390_narrow_logical_operator): New function.
2341         (s390_extra_constraint_str): Add 'A' constraints.
2342         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
2343         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
2344         (CONSTRAINT_LEN): Likewise.
2345         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
2346         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
2347         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
2348         ("*iordi3"): Add OI alternative and splitter.
2349         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2350         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
2351         ("*xordi3"): Add XI alternative and splitter.
2352         ("*xorsi3", "*xorhi3"): Likewise.
2353
2354 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2355
2356         * config/mips/mips.c (mips_function_rodata_section): New function.
2357         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
2358
2359 2004-10-07  Devang Patel  <dpatel@apple.com>
2360
2361         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
2362         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
2363         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
2364         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
2365         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
2366         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
2367         UNSPEC_VCONDU_V16QI): New constant defines.
2368         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
2369         vconduv16qi): New patterns.
2370         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
2371         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
2372         (get_vec_cmp_insn): Same.
2373         (get_vsel_insn): Same.
2374         (rs6000_emit_vector_compare): Same.
2375         (rs6000_emit_vector_select): Same.
2376         (INSN_NOT_AVAILABLE): New.
2377
2378 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2379
2380         PR tree-optimization/17749
2381         * tree-tailcall.c (find_tail_calls): Check that parameter is
2382         a gimple_reg.
2383
2384 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2385
2386         * config/ia64/ia64.c: Fix a comment typo.
2387
2388 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2389
2390         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
2391
2392 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2393
2394         PR c++/17115
2395         * tree-inline.c (expand_call_inline): Do not warn for functions
2396         marked with attribute noinline.
2397
2398 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2399
2400         PR target/17862
2401         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
2402         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
2403
2404         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
2405         of 0 as 4th argument to pass_by_reference.
2406         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
2407
2408 2004-10-06  Eric Christopher  <echristo@redhat.com>
2409
2410         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
2411         attribute.
2412
2413 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2414
2415         PR target/17770
2416         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
2417
2418 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2419
2420         PR rtl-optimization/17791
2421         * loop-doloop.c (doloop_modify): Take number of iterations as
2422         argument.
2423         (doloop_optimize): Extend or shorten the number of iterations
2424         when changing mode of counter register.
2425         * loop-iv.c (lowpart_subreg): Export.
2426         * rtl.h (lowpart_subreg): Declare.
2427
2428 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
2429
2430         PR tree-optimization/17806
2431         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
2432         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
2433         flags moved to split_edge.
2434
2435 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2436
2437         PR middle-end/17835
2438         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
2439         before tentatively building the conditional move sequence.
2440
2441 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2442
2443         PR target/16815
2444         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
2445         check.
2446         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
2447         function_arg_padding.
2448
2449 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
2450
2451         PR bootstrap/17857
2452         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
2453
2454 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2455
2456         * hooks.c (hook_int_void_1, hook_void_int): Remove.
2457         * hooks.h: Remove the corresponding prototypes.
2458
2459 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2460
2461         PR middle-end/17849
2462         * tree-nested.c (walk_stmt_info): Add changed field.
2463         (convert_nonlocal_reference): Set changed to when we
2464         change a decl to unnested decl.
2465         <case ADDR_EXPR>: Instead of checking if the immediate part
2466         of the ADDR_EXPR changed, check the field changed.
2467         Use recompute_tree_invarant_for_addr_expr instead of unsetting
2468         TREE_INVARIANT.
2469         (convert_local_reference):  Set changed to when we
2470         change a decl to unnested decl.
2471         <case ADDR_EXPR>: Instead of checking if the immediate part
2472         of the ADDR_EXPR changed, check the field changed.
2473         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
2474
2475 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2476
2477         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2478         * dwarf2out.c (dwarf2out_init): Remove references to
2479         DWARF2_GENERATE_TEXT_SECTION_LABEL.
2480         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
2481         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
2482
2483 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
2484
2485         * c-typeck.c (convert_arguments): Take expression for called
2486         function rather than its name.  Handle ObjC selectors directly
2487         rather than relying on warn_for_assignment to do so.  Call warning
2488         directly rather than warn_for_assignment.  Use %qE in diagnostics.
2489         Say "argument" rather than "arg" in diagnostics.
2490         (build_function_call): Update call to convert_arguments.
2491
2492 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2493
2494         PR debug/17787
2495         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
2496         ENUMs specially instead of just saying we do.
2497
2498 2004-10-06  Eric Christopher  <echristo@redhat.com>
2499
2500         * dwarf2.h: Sync with include/elf/dwarf2.h
2501
2502 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2503
2504         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
2505         and TREE_VEC nodes.
2506
2507 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2508
2509         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
2510         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
2511
2512 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2513
2514         * lambda-code.c (compute_nest_using_fourier_motzkin): New
2515         function.
2516         (lambda_compute_auxillary_space): Split from here.
2517
2518 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
2519
2520         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
2521         * tree-flow.h: Add prototype.
2522         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
2523         expr_invariant_in_loop.
2524
2525 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
2526
2527         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2528         EXIT_BLOCK_PTR.
2529
2530 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
2531
2532         * config/s390/s390-protos.h (s_imm_operand): Remove.
2533         (s390_pool_operand): Add prototype.
2534         * config/s390/s390.c (general_s_operand): Remove.
2535         (s_imm_operand): Remove.
2536         (s_operand): Merge contents of general_s_operand.
2537         (s390_pool_operand): New function.
2538         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
2539         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
2540         ("*cmpdi_ccu"): Merge Q->Q alternative.
2541         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
2542         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
2543         ("*cli"): Remove.
2544         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
2545         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
2546         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
2547
2548 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
2549
2550         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
2551         call ia64_function_arg_boundary.
2552         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
2553         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
2554         (ia64_function_arg_advance): Do not put 128 bit floats into
2555         FP registers.
2556
2557 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2558
2559         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
2560         Accept an expression instead of an arglist.
2561         (expand_builtin_stpcpy): Accept an expression instead of an
2562         arglist.
2563
2564 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
2565
2566         PR target/16007
2567         * doc/install.texi (*-*-solaris2*): Mention potential problem
2568         with Sun assembler + GNU linker and C++ programs.
2569         Document status of binutils 2.15 release.
2570
2571 2004-10-06  Jan Hubicka  <jh@suse.cz>
2572
2573         * cse.c (cse_main): Kill push/pop context.
2574
2575 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
2576
2577         * pretty-print.c: Include tree.h.
2578         (pp_base_prepare_to_format): New function, logic from
2579         text_specifies_location.
2580         (pp_base_format_text): Use gcc_assert.
2581         * pretty-print.h (pp_prepare_to_format): New macro.
2582         (pp_base_prepare_to_format): Prototype.
2583         * diagnostic.c (text_specifies_location): Delete.
2584         (bug_report_request): Delete.
2585         (diagnostic_set_info): Don't call text_specifies_location.
2586         (diagnostic_action_after_output): Put text from
2587         bug_report_request inline here.  Use gcc_unreachable.
2588         (diagnostic_report_current_function): Fix comment.
2589         (diagnostic_report_diagnostic): Clarify logic for error recursion.
2590         Call pp_prepare_to_format before diagnostic_starter.
2591         (trim_filename): Use IS_DIR_SEPARATOR.
2592         (fatal_error, internal_error): Use gcc_unreachable.
2593         (error_recursion): Call diagnostic_action_after_output to
2594         issue the bug_report_request message and exit.
2595         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
2596
2597         * c-parse.in: Add list of diagnostic messages to insulate
2598         translation template from version of yacc/bison used to
2599         compile the grammar.
2600
2601 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
2602
2603         PR 16406
2604         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
2605
2606 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2607
2608         * basic-block.h: Remove the prototype for
2609         flow_preorder_transversal_compute.
2610         * cfganal.c (dfst_node): Remove.
2611         (flow_preorder_transversal_compute): Likewise.
2612         * rtl.h: Remove the prototype for get_jump_table_offset.
2613         * rtlanal.c (get_jump_table_offset): Remove.
2614
2615 2004-10-05  Richard Henderson  <rth@redhat.com>
2616
2617         PR 17756
2618         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
2619
2620 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2621
2622         PR bootstrap/17817
2623         * Makefile.in: Stage the build directory too.
2624
2625 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
2626
2627         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
2628
2629         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
2630         (frv_emit_move): Same.
2631
2632         * config/frv/frv.c (frv_emit_move): New.
2633         (frv_legitimize_address): New.
2634
2635         * config/frv/frv.md ("movsi"): Call frv_emit_move.
2636         ("movqi"): Same.
2637         ("movhi"): Same.
2638         ("movdi"): Same.
2639         ("movsf"): Same.
2640         ("movdf"): Same.
2641
2642 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2643
2644         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
2645         system headers.
2646
2647 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
2648
2649         * c-decl.c (pushdecl): When an extern declaration at block scope
2650         refers to a visible entity with internal linkage, use the old DECL
2651         rather than the new one.
2652
2653 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2654
2655         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
2656         comments.
2657
2658 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2659
2660         * tree-cfg.c (thread_jumps): Remove a duplicate check for
2661         an infinite loop.
2662
2663 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2664
2665         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
2666         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
2667         blocks.
2668
2669 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2670
2671         * tree-cfg.c (cleanup_tree_cfg): Don't call
2672         delete_unreachable_blosk() after thread_jumps().
2673         (thread_jumps): Always remove basic blocks as they become
2674         unreachable.
2675
2676 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
2677
2678         * tree-cfg.c (cleanup_tree_cfg): Remove variable
2679         something_changed.  Simplify the while loop.
2680
2681 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2682
2683         * builtins.c (expand_builtin_memmove): Delete duplicate code
2684         and accept a tree type for the result.
2685         (expand_builtin_bcopy): Accept a tree type for the result.
2686         (fold_builtin_memmove): Accept an arglist and tree type for
2687         the result.
2688
2689 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
2690
2691         * config/s390/s390.c (s390_dump_pool): Remove return value.
2692         Use gen_pool_align, gen_pool_section_start/end instead of
2693         gen_pool_start/end_31/64.
2694         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
2695         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
2696         ("pool_start_31", "pool_end_31"): Remove.
2697         ("pool_start_64", "pool_end_64"): Likewise.
2698         ("pool_align", "pool_section_start", "pool_section_end": New insns.
2699
2700         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
2701         (TARGET_CANNOT_COPY_INSN_P): Define.
2702         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
2703         (struct constant_pool): New member 'execute'.
2704         (s390_add_execute, s390_find_execute): New functions.
2705         (s390_execute_label, s390_execute_target): Likewise.
2706         (s390_dump_pool): Output in-pool execute target templates.
2707         (s390_dump_execute): New function.
2708         (s390_alloc_pool, s390_free_pool): Handle execute templates.
2709         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2710         (s390_chunkify_start, s390_chunkify_finish): Likewise.
2711         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
2712         ("*execute"): New insn pattern.
2713         ("movmem_short", "*movmem_short"): Use splitters to generate
2714         explicit execute pattern, remove embedded execute.
2715         ("clrmem_short", "*clrmem_short"): Likewise.
2716         ("cmpmem_short", "*cmpmem_short"): Likewise.
2717
2718 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
2719
2720         * tree-ssa.c (verify_ssa): Verify phi arguments only
2721         contain renamed names.
2722
2723 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
2724
2725         * config/rs6000/linux.h: Formatting, whitespace.
2726         * config/rs6000/linux64.h: Likewise.
2727         * config/rs6000/rs6000-protos.h: Likewise.
2728         * config/rs6000/rs6000.c: Likewise.
2729         (easy_vector_splat_const): Add fall thru comments.
2730         (output_vec_const_move): Likewise.
2731
2732 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
2733
2734         * Makefile.in: Update -Wno-error exceptions for move to build dir.
2735
2736 2004-10-05  Chao-Ying Fu  <fu@mips.com>
2737             Richard Sandiford  <rsandifo@redhat.com>
2738
2739         * doc/invoke.texi (-mpaired-single): Link to the new description of the
2740         built-in functions.  Document dependencies.
2741         (-mips3d): Add link here too.
2742         * doc/extend.texi (MIPS Paired-Single Support): New section.
2743
2744 2004-10-04  Chao-ying Fu  <fu@mips.com>
2745
2746         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
2747
2748 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
2749
2750         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2751         Initialize OPT_STATS to 0.
2752
2753 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2754
2755         * tree-data-ref.c: Fix comment typos.
2756
2757 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
2758
2759         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
2760         the predicate cannot be computed, don't initialize the result to
2761         false.
2762
2763 2004-10-01  Eric Christopher  <echristo@redhat.com>
2764
2765         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
2766         locally defined enum.
2767         * dwarf2out.c (add_calling_convention_attribute): Don't
2768         emit DW_CC_normal.
2769
2770 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
2771
2772         PR c/17178, PR c/17820
2773         * c-decl.c (pop_scope): Do not warn about unused static
2774         variables as they warned in the middle-end.
2775
2776 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2777
2778         * builtins.c (expand_builtin_memcpy): Delete duplicate code
2779         and make the first parameter the expression not the arglist.
2780
2781 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
2782
2783         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
2784         as valid modes to expand address expressions.
2785
2786 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
2787
2788         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
2789         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
2790         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
2791         code formatting conventions.
2792
2793 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
2794
2795         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
2796
2797 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2798
2799         PR tree-optimization/16632
2800         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
2801         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
2802         where | is used instead of &.
2803
2804 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
2805
2806         * ginclude/stddef.h: Fix a comment typo.
2807
2808 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2809
2810         PR target/17443
2811         * config.gcc (i?86-*-solaris2*): Restore correct logic
2812         for --enable-threads option.
2813         (sparc64-*-solaris2*): Likewise.
2814         (sparc-*-solaris2*): Likewise.
2815
2816 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
2817
2818         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
2819         (OS_MISSING_POWERPC64): Move, and comment.
2820         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
2821         (OS_MISSING_POWERPC64): Move, and comment.
2822
2823 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
2824
2825         * arm.c (output_call_mem): Add missing \t.
2826
2827 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2828
2829         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
2830         expand_builtin_strncmp): Delete duplicate code.
2831
2832 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
2833
2834         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
2835         take check-base and -limit arguments.
2836         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
2837         check ranges for ARRAY_REF and COMPONENT_REF.
2838         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
2839         instrumentation.
2840
2841 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2842
2843         * c-objc-common.c (c_tree_printer): Correct description of %E.
2844         Don't fall through after printing an expression.
2845
2846 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2847
2848         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
2849
2850 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
2851
2852         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
2853         delete_unrechable_blocks() only when necessary.
2854
2855 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2856
2857         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
2858         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
2859         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
2860         __gthread_recursive_mutex_unlock): New functions.
2861
2862 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
2863
2864         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
2865         * config/s390/tpf-eh.c: Remove file.
2866         * config/s390/tpf-unwind.h: New file.
2867         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
2868         (MD_UNWIND_SUPPORT): Define.
2869
2870 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
2871
2872         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
2873
2874 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
2875
2876         * config/s390/s390-protos.h (s390_comparison): Add prototype.
2877         * config/s390/s390.c (s390_comparison): New function.
2878         (s390_branch_condition_mask): Return -1 for invalid comparisons.
2879         (s390_branch_condition_mnemonic): Assert valid comparison.
2880         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
2881         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
2882         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
2883         s390_comparison instead of comparison_operator.
2884
2885         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
2886         ("cmpmemdi"): Remove.
2887         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
2888         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
2889         ("cmpint_si"): Rename to ...
2890         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
2891         ("cmpint_di", "*cmpint_di"): Likewise.
2892         * config/s390/s390.c (s390_canonicalize_comparison): Remove
2893         redundant UNSPEC_CMPINT conversions.
2894         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
2895
2896 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2897
2898         * collect2.c (COLLECT_PARSE_FLAG): Remove.
2899         (main): Remove a reference to COLLECT_PARSE_FLAG
2900         * system.h: Poison COLLECT_PARSE_FLAG.
2901         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
2902
2903 2004-10-01  Paul Brook  <paul@codesourcery.com>
2904
2905         * config/arm/crti.asm: Give _init and _fini function type.
2906
2907 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2908
2909         * common.opt (ftree-loop-ivcanon): Enable by default.
2910         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2911         Enable complete loop unrolling.
2912         (canonicalize_induction_variables, tree_unroll_loops_completely):
2913         Reset scev info.
2914
2915 2004-10-01  Paul Brook  <paul@codesourcery.com>
2916
2917         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
2918         not register number.
2919         (thumb_find_work_register): Search full register range.
2920
2921 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
2922
2923         PR tree-opt/17343
2924         * tree-cfg.c (group_case_labels): Get the label and not
2925         the case expr for the default case.
2926         When the label we looking at is the default, decrement the
2927         new_size.
2928
2929 2004-10-01  Jan Hubicka  <jh@suse.cz>
2930
2931         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
2932         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2933         * toplev.h (tree_rest_of_compilation): Update prototype.
2934         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
2935
2936 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
2937
2938         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
2939         cleanup_control_flow() out of the while loop.
2940
2941 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
2942
2943         * tree-vectorizer.c (vectorizable_operation): Fail unless
2944         the mode for the vector type is indeed a vector mode.
2945
2946 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
2947
2948         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
2949         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
2950         of convert.
2951         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
2952         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
2953         follow_ssa_edge_in_rhs): Ditto.
2954         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
2955         (dump_iv): Dump base_object.
2956         (dump_use, dump_cand): Use dump_iv.
2957         (determine_base_object): New function.
2958         (alloc_iv): Initialize base_object field.
2959         (record_use): Clear the ssa_name field of iv.
2960         (get_computation_cost_at): Do not use difference of addresses of
2961         two different objects.
2962         (may_eliminate_iv): Do not require the loop to have just single exit.
2963         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
2964         (nonzero_p): New function.
2965         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
2966         tree_simplify_using_condition, simplify_using_initial_conditions,
2967         loop_niter_by_eval, find_loop_niter_by_eval,
2968         estimate_numbers_of_iterations_loop, compare_trees,
2969         upper_bound_in_type, lower_bound_in_type,
2970         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
2971         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
2972         instead of integer_(non)zerop.
2973
2974 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
2975
2976         Revert
2977         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2978
2979         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2980         and TI_VA_LIST_FPR_COUNTER_FIELD.
2981         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2982         * tree-pass.h (pass_stdarg): Add.
2983         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2984         * tree-stdarg.c: New file.
2985         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2986         (tree-stdarg.o): Add dependencies.
2987         * function.h (struct function): Add va_list_gpr_size and
2988         va_list_fpr_size fields.
2989         * function.c (allocate_struct_function): Initialize them.
2990
2991         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2992         va_list_{g,f}pr_counter_field.
2993         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2994         area will not be used.  Only save registers that tree-stdarg.c
2995         detected they need saving.
2996         (ix86_va_start): Don't set up fields that won't be used.
2997
2998         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2999         va_list_{g,f}pr_counter_field.
3000         (setup_incoming_varargs): Don't do anything if reg_save
3001         area will not be used.  Only save registers that tree-stdarg.c
3002         detected they need saving.
3003         (rs6000_va_start): Don't set up fields that won't be used.
3004
3005 2004-09-30  Eric Christopher  <echristo@redhat.com>
3006
3007         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
3008         sh abi.
3009         * dwarf2out.c (add_calling_convention_attribute): New function.
3010         (gen_subroutine_type_die): Use.
3011         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
3012         * target.h (gcc_target): Add dwarf_calling_convention.
3013         * hooks.c (hook_int_tree_0): New function.
3014         * hooks.h: Prototype.
3015         * config/sh/sh.c: Include dwarf2.h.
3016         (sh_dwarf_calling_convention): New function.
3017         (TARGET_DWARF_CALLING_CONVENTION): Use.
3018         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
3019
3020 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3021
3022         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
3023         expand_builtin_strrchr, expand_builtin_strpbrk,
3024         expand_builtin_strncat, expand_builtin_strspn,
3025         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
3026         code.
3027
3028 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3029
3030         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
3031         prototype.
3032         (s390_logical_operator_ok_p): Likewise.
3033         * config/s390/s390.c (s390_expand_logical_operator): New function.
3034         (s390_logical_operator_ok_p): Likewise.
3035         * config/s390/s390.md ("anddi3"): New expander.
3036         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
3037         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
3038         ("andsi3"): Use s390_expand_logical_operator.
3039         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
3040         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
3041         ("andhi3"): New expander.
3042         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
3043         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
3044         ("andqi3"): New expander.
3045         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
3046         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
3047         ("iordi3"): New expander.
3048         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
3049         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
3050         ("iorsi3"): Use s390_expand_logical_operator.
3051         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
3052         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
3053         ("iorhi3"): New expiorer.
3054         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
3055         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
3056         ("iorqi3"): New expiorer.
3057         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
3058         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
3059         ("xordi3"): New expander.
3060         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
3061         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
3062         ("xorsi3"): New expander.
3063         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
3064         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
3065         ("xorhi3"): New expander.
3066         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
3067         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
3068         ("xorqi3"): New expander.
3069         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
3070         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
3071
3072 2004-09-30  Roger Sayle  <roger@eyesopen.com>
3073
3074         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
3075         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
3076         machine mode as the result.
3077
3078 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3079
3080         PR bootstrap/17761
3081         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
3082         FOR_EACH_EDGE macros.
3083
3084 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3085
3086         * c-tree.h (readonly_error): Remove.
3087         * c-typeck (enum lvalue_use): New.
3088         (lvalue_or_else, readonly_error): Use it.  All callers changed.
3089         (readonly_error): Make static.
3090
3091 2004-09-30  Jan Hubicka  <jh@suse.cz>
3092
3093         PR debug/13974
3094         * cfgrtl.c (try_redirect_by_replacing_jump,
3095         force_nonfallthru_and_redirect, commit_one_edge_insertion,
3096         cfg_layout_merge_blocks):  Do not attach any line number information
3097         to newly inserted instructions.
3098         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
3099         emit_insn_*_noloc.
3100         (emit_*insn_before, emit_insn*_after): New.
3101         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
3102         existing locators.
3103         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
3104         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
3105
3106 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3107
3108         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
3109         (s390_return_address_offset): Remove.
3110         (s390_can_eliminate): Add prototype.
3111         (s390_initial_elimination_offset): Add prototype.
3112         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
3113         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
3114         * config/s390/s390.c (s390_arg_frame_offset): Remove.
3115         (s390_return_address_offset): Remove.
3116         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
3117         (struct machine_function): New member split_branches_pending_p.
3118         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
3119         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
3120         (s390_optimize_prologue): Remove base_used argument.  Call
3121         s390_update_frame_layout instead of s390_register_info.  Handle
3122         prologue/epilogue insns that touch only RETURN_REGNUM.
3123         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
3124         (s390_register_info): Remove base_used and return_addr_used
3125         arguments, compute special register usage inline.  Return live
3126         register data to caller.
3127         (s390_frame_info): Remove arguments, do not call s390_register_info.
3128         (s390_init_frame_layout): New function.
3129         (s390_update_frame_layout): Likewise.
3130         (s390_emit_prologue): Call s390_update_frame_layout; some code
3131         move to there.  Do not emit pool placeholder insn if unnecessary.
3132
3133 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
3134
3135         * config/s390/s390.c (legitimate_reload_constant_p): Remove
3136         floating point constant workaround.
3137         (s390_secondary_input_reload_class): Handle PLUS reloads
3138         with too-large constant.
3139         (s390_expand_plus_operand): Likewise.
3140         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
3141         ("movsi"): Likewise.  Also, remove workaround for non-general
3142         operands.
3143         ("movdf"): Do not call force_const_mem.
3144         ("movsf"): Likewise.  Merge expander with *movsf insn.
3145         ("*movsf"): Remove, merge with movsf expander.
3146
3147 2004-09-30  Paul Brook  <paul@codesourcery.com>
3148
3149         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
3150         (ENDFILE_SPEC): Define.
3151         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
3152
3153 2004-09-30  Richard Henderson  <rth@redhat.com>
3154
3155         * config/alpha/qrnnd.asm: Mark for noexecstack.
3156
3157 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3158
3159         * protoize.c, tree-cfg.c: Fix comment typos.
3160
3161 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
3162
3163         PR c/17730
3164         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
3165
3166 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
3167
3168         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
3169         expressions...
3170         (add_pointed_to_expr): ... here.
3171         Call add_pointed_to_expr for variables with DECL_INITIAL set.
3172         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
3173         pointer variable, if set.
3174
3175 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
3176
3177         * config/sh/sh.c: Follow spelling conventions.
3178
3179 2004-09-29  Richard Henderson  <rth@redhat.com>
3180
3181         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
3182         * doc/tm.texi (DWARF_ZERO_REG): New.
3183
3184         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
3185         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
3186         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
3187
3188 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
3189
3190         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
3191         with a PLUS as source operand.
3192         (expand_movstr): Likewise.
3193         (expand_builtin_stpcpy): Likewise.
3194
3195 2004-09-29  Richard Henderson  <rth@redhat.com>
3196
3197         PR 17739
3198         * tree-gimple.c (is_gimple_reg): Reject hard registers.
3199         (is_gimple_asm_val): New.
3200         * tree-gimple.h (is_gimple_asm_val): Declare.
3201         * gimplify.c (gimplify_asm_expr): Use it.
3202         * tree-pretty-print.c (print_declaration): Dump hard regs.
3203         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
3204         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3205         * tree-ssa-pre.c (is_undefined_value): Likewise.
3206         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3207         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
3208         * tree-ssa.c (warn_uninit): Likewise.
3209         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
3210
3211 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
3212
3213         * c-decl.c (merge_decls): Use comptype when comparing
3214         types to decide on DECL_SIZE save of olddecl.
3215
3216 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
3217
3218         * tree.h (INDIRECT_REF_P): New macro.
3219         * alias.c (get_alias_set): Use it
3220         (nonoverlapping_memrefs_p): Ditto.
3221         * emit-rtl.c (mem_expr_equal_p): Ditto.
3222         (set_mem_attributes_minus_bitpos): Ditto.
3223         (is_gimple_addressable): Ditto.
3224         (get_base_address): Ditto.
3225         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
3226         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
3227         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
3228         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
3229         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
3230         (add_address_candidates): Ditto.
3231         (rewrite_address_base): Ditto.
3232
3233 2004-09-30  Ben Elliston  <bje@au.ibm.com>
3234
3235         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
3236         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
3237         (rewrite_ssa_into_ssa): Likewise.
3238         * tree-phinodes.c (create_phi_node): Access the number of
3239         predecessor edges using EDGE_COUNT() and not num_preds.
3240
3241 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3242
3243         PR c/7425
3244         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
3245
3246 2004-09-29  Eric Christopher  <echristo@redhat.com>
3247
3248         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
3249
3250 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
3251
3252         * config/cris/cris.md (moverside, movemside): With MEM, make sure
3253         the address is (plus reg mem).
3254
3255 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
3256
3257         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
3258
3259 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3260
3261         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
3262         cascaded if ... else if with a switch.
3263
3264 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3265
3266         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
3267
3268 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3269
3270         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3271         and TI_VA_LIST_FPR_COUNTER_FIELD.
3272         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3273         * tree-pass.h (pass_stdarg): Add.
3274         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3275         * tree-stdarg.c: New file.
3276         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3277         (tree-stdarg.o): Add dependencies.
3278         * function.h (struct function): Add va_list_gpr_size and
3279         va_list_fpr_size fields.
3280         * function.c (allocate_struct_function): Initialize them.
3281
3282         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3283         va_list_{g,f}pr_counter_field.
3284         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3285         area will not be used.  Only save registers that tree-stdarg.c
3286         detected they need saving.
3287         (ix86_va_start): Don't set up fields that won't be used.
3288
3289         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3290         va_list_{g,f}pr_counter_field.
3291         (setup_incoming_varargs): Don't do anything if reg_save
3292         area will not be used.  Only save registers that tree-stdarg.c
3293         detected they need saving.
3294         (rs6000_va_start): Don't set up fields that won't be used.
3295
3296 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3297
3298         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
3299         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
3300         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
3301         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
3302         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
3303         ATTR_NONNULL_1_4): New.
3304
3305 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
3306
3307         PR tree-optimization/17697
3308         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
3309         cfg if needed.
3310
3311 2004-09-28  Per Bothner  <per@bothner.com>
3312
3313         * profile.c (branch_prob): Pass correct value to output_location,
3314         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
3315
3316 2004-09-28  Richard Henderson  <rth@redhat.com>
3317
3318         PR 15089
3319         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
3320         * tree-flow.h (may_propagate_copy_into_asm): Declare.
3321         * tree-ssa-ccp.c (replace_uses_in): Use it.
3322         * tree-ssa-dom.c (cprop_operand): Likewise.
3323
3324 2004-09-28 Jeff Law  <law@redhat.com>
3325
3326         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
3327         that no outgoing edges be left in the duplicate block.  Do no
3328         update information on outgoing edges or PHI nodes in target
3329         blocks here.
3330         (remove_ctrl_stmt_and_useless_edges): Renamed from
3331         remove_last_stmt_and_useless_edges.  Handle case where the
3332         block is empty or has no control statements.  Do not update edge
3333         flags here.
3334         (thread_block): Create a template block rather than copying the
3335         original block every time.  Create outgoing edges from the
3336         duplicate blocks and update PHIs at the target of the outgoing
3337         edges here.  Fix edge flags for the original block if necessary.
3338         * cfghooks (duplicate_block): No longer assert that the original
3339         block has incoming edges.
3340
3341 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
3342
3343         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
3344         Reg Vars to enforce register allocation with general constraints.
3345         (Explicit Reg Vars): Clarify relation to asm statements.
3346         (Local Reg Vars): Similar.
3347
3348 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3349
3350         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
3351         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
3352         build_control_flow, new_edge): Remove.
3353         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
3354         (bitlst, bitlst_table_last, bitlst_table): Remove.
3355         (bblst): Store basic_block pointer instead of block index.
3356         (bblst_table): Likewise.
3357         (edgelst): Store edge pointer instead of edge index.
3358         (edgelst_table, edgelst_last): New variables.
3359         (extract_bitlst): Rename to ...
3360         (extract_edgelst): ... this.  Return edge pointers, not indices.
3361         (split_edges): Update call.
3362         (rgn_edges): Store edge pointers instead of indices.
3363         (edge_to_bit): Remove.
3364         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
3365         (SET_EDGE_TO_BIT): New macro.
3366         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
3367         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
3368         data structures instead of haifa_edge et al.  Use edge pointers
3369         instead of edge indices everywhere.
3370         (compute_dom_prob_ps): Use standard CFG data structures.  Account
3371         for exit edges.
3372         (compute_trg_info): Likewise.
3373         (propagate_deps): Likewise.
3374         (debug_candidate): Account for bblst data structure change.
3375         (check_live_1, update_live_1, is_pfree): Likewise.
3376         (IS_REACHABLE): Use standard CFG data structures.
3377         (init_ready_list): Update bblst_table/edgelst_table allocation.
3378         (schedule_region): Update alloc/cleanup code to data structure
3379         changes.  Use edge->aux to store per-region edge index.
3380         (init_regions): No longer call build_control_flow.  Do not
3381         create edge list any more.
3382
3383 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3384
3385         * cse.c (cse_insn): Avoid creating direct non-local jumps.
3386         * combine.c (can_combine_p): Likewise.
3387         * local-alloc. (update_equiv_regs): Likewise.
3388
3389 2004-09-28  Richard Henderson  <rth@redhat.com>
3390
3391         PR 17531
3392         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
3393         Don't check VOIDmode here.  Force PLUS operands to common type.
3394         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
3395         Pmode if given a non pointer type.
3396
3397 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3398
3399         PR 17531
3400         * optabs.c (expand_binop): Force constants to the correct mode.
3401
3402 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
3403
3404         * config/s390/s390.c (s390_adjust_cost): Remove.
3405         (TARGET_SCHED_ADJUST_COST): Do not redefine.
3406         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
3407         * config/s390/s390.md ("main_pool"): Use "larl" type
3408         attribute if TARGET_CPU_ZARCH.
3409
3410 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
3411
3412         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
3413         variable.
3414
3415 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3416
3417         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
3418         name to the pass.
3419
3420 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3421
3422         * common.opt (flag_gcse_sm): Disable by default.
3423         (flag_gcse_las): Likewise.
3424         (flag_web): Likewise.  Create from this file.
3425         * flags.h: Remove flag_web declaration.
3426         * toplev.c (flag_web): Likewise.
3427         (process_options): Never set flag_web.
3428
3429 2004-09-28  Steven Bosscher  <stevenb@suse.de>
3430
3431         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
3432         * tree-ssa-propagate.c: Include vec.h.
3433         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
3434         instead of varrays.
3435         (cfg_blocks_add): Assert the block is not already in the worklist.
3436         Update uses of interesting_ssa_edges and varying_ssa_edges.
3437         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
3438         ssa_propagate): Likewise.
3439
3440 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3441
3442         PR c/16409
3443         * c-decl.c (start_decl): Check for initializing incomplete array
3444         of VLAs.
3445         (build_compound_literal): Check for TYPE being error_mark_node.
3446         * c-parse.in (primary): Check for VLA compound literals.
3447
3448 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3449
3450         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
3451         with --disable-checking.
3452
3453 2004-09-28  Devang Patel  <dpatel@apple.com>
3454
3455         * tree-pretty-print.c (dump_generic_node): Print vector types.
3456
3457 2004-09-28  Nick Clifton  <nickc@redhat.com>
3458
3459         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
3460         invocation of the function sh_init_cumulative_args.
3461         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
3462         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
3463         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
3464         * config/sh/sh.c (sh_init_cumulative_args): New function based
3465         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
3466         heuristic added to determine the setting of force_mem when a
3467         library function is being called.
3468
3469 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3470
3471         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
3472         Skip constant arguments.
3473
3474 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
3475
3476         * tree-ssa-alias.c (create_name_tags): If PTR points to a
3477         volatile type, mark the tag volatile.
3478         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
3479         volatile.
3480
3481 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
3482
3483         * tree.def (vec_cond_expr): Fix. Change 'e'
3484         to tcc_expression.
3485
3486 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3487
3488         * basic-block.h: Fix a comment typo.
3489
3490 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
3491
3492         * optabs.c, optabs.h: Fix comment typos.
3493
3494 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
3495
3496         * config/sparc/sparc.md (call_address_struct_value_sp32):
3497         Properly mask the immediate field of the 'unimp' instruction.
3498         (call_symbolic_struct_value_sp32): Likewise.
3499
3500 2004-09-28  Ben Elliston  <bje@au.ibm.com>
3501             Steven Bosscher  <stevenb@suse.de>
3502             Andrew Pinski  <pinskia@physics.uc.edu>
3503
3504         Merge from edge-vector-branch:
3505         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
3506         (struct edge_def): Remove pred_next, succ_next members.
3507         (struct basic_block_def): Remove pred, succ members.  Add preds
3508         and succs members of type VEC(edge).
3509         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
3510         (BRANCH_EDGE): Likewise.
3511         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
3512         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
3513         (edge_iterator): New.
3514         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
3515         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
3516         (FOR_EACH_EDGE): New.
3517         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
3518         where applicable.
3519         (rotate_loop): Likewise.
3520         (find_traces_1_route): Likewise.
3521         (bb_to_key): Likewise.
3522         (connect_traces): Likewise.
3523         (copy_bb_p): Likewise.
3524         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
3525         (add_labels_and_missing_jumps): Likewise.
3526         (fix_up_fall_thru_edges): Likewise.
3527         (find_jump_block): Likewise.
3528         (fix_crossing_conditional_branches): Likewise.
3529         (fix_crossing_unconditional_branches): Likewise.
3530         (add_reg_crossing_jump_notes): Likewise.
3531         * bt-load.c (augment_live_range): Likewise.
3532         * cfg.c (clear_edges): Likewise.
3533         (unchecked_make_edge): Likewise.
3534         (cached_make_edge): Likewise.
3535         (make_single_succ_edge): Likewise.
3536         (remove_edge): Likewise.
3537         (redirect_edge_succ_nodup): Likewise.
3538         (check_bb_profile): Likewise.
3539         (dump_flow_info): Likewise.
3540         (alloc_aux_for_edges): Likewise.
3541         (clear_aux_for_edges): Likewise.
3542         (dump_cfg_bb_info): Likewise.
3543         * cfganal.c (forwarder_block_p): Likewise.
3544         (can_fallthru): Likewise.
3545         (could_fall_through): Likewise.
3546         (mark_dfs_back_edges): Likewise.
3547         (set_edge_can_fallthru_flag): Likewise.
3548         (find_unreachable_blocks): Likewise.
3549         (create_edge_list): Likewise.
3550         (verify_edge_list): Likewise.
3551         (add_noreturn_fake_exit_edges): Likewise.
3552         (connect_infinite_loops_to_exit): Likewise.
3553         (flow_reverse_top_sort_order_compute): Likewise.
3554         (flow_depth_first_order_compute): Likewise.
3555         (flow_preorder_transversal_compute): Likewise.
3556         (flow_dfs_compute_reverse_execute): Likewise.
3557         (dfs_enumerate_from): Likewise.
3558         (compute_dominance_frontiers_1): Likewise.
3559         * cfgbuild.c (make_edges): Likewise.
3560         (compute_outgoing_frequencies): Likewise.
3561         (find_many_sub_basic_blocks): Likewise.
3562         (find_sub_basic_blocks): Likewise.
3563         * cfgcleanup.c (try_simplify_condjump): Likewise.
3564         (thread_jump): Likewise.
3565         (try_forward_edges): Likewise.
3566         (merge_blocks_move): Likewise.
3567         (outgoing_edges_match): Likewise.
3568         (try_crossjump_to_edge): Likewise.
3569         (try_crossjump_bb): Likewise.
3570         (try_optimize_cfg): Likewise.
3571         (merge_seq_blocks): Likewise.
3572         * cfgexpand.c (expand_gimple_tailcall): Likewise.
3573         (expand_gimple_basic_block): Likewise.
3574         (construct_init_block): Likewise.
3575         (construct_exit_block): Likewise.
3576         * cfghooks.c (verify_flow_info): Likewise.
3577         (dump_bb): Likewise.
3578         (delete_basic_block): Likewise.
3579         (split_edge): Likewise.
3580         (merge_blocks): Likewise.
3581         (make_forwarder_block): Likewise.
3582         (tidy_fallthru_edges): Likewise.
3583         (can_duplicate_block_p): Likewise.
3584         (duplicate_block): Likewise.
3585         * cfglayout.c (fixup_reorder_chain): Likewise.
3586         (fixup_fallthru_exit_predecessor): Likewise.
3587         (can_copy_bbs_p): Likewise.
3588         (copy_bbs): Likewise.
3589         * cfgloop.c (flow_loops_cfg_dump): Likewise.
3590         (flow_loop_entry_edges_find): Likewise.
3591         (flow_loop_exit_edges_find): Likewise.
3592         (flow_loop_nodes_find): Likewise.
3593         (mark_single_exit_loops): Likewise.
3594         (flow_loop_pre_header_scan): Likewise.
3595         (flow_loop_pre_header_find): Likewise.
3596         (update_latch_info): Likewise.
3597         (canonicalize_loop_headers): Likewise.
3598         (flow_loops_find): Likewise.
3599         (get_loop_body_in_bfs_order): Likewise.
3600         (get_loop_exit_edges): Likewise.
3601         (num_loop_branches): Likewise.
3602         (verify_loop_structure): Likewise.
3603         (loop_latch_edge): Likewise.
3604         (loop_preheader_edge): Likewise.
3605         * cfgloopanal.c (mark_irreducible_loops): Likewise.
3606         (expected_loop_iterations): Likewise.
3607         * cfgloopmanip.c (remove_bbs): Likewise.
3608         (fix_bb_placement): Likewise.
3609         (fix_irreducible_loops): Likewise.
3610         (remove_path): Likewise.
3611         (scale_bbs_frequencies): Likewise.
3612         (loopify): Likewise.
3613         (unloop): Likewise.
3614         (fix_loop_placement): Likewise.
3615         (loop_delete_branch_edge): Likewise.
3616         (duplicate_loop_to_header_edge): Likewise.
3617         (mfb_keep_just): Likewise.
3618         (create_preheader): Likewise.
3619         (force_single_succ_latches): Likewise.
3620         (loop_split_edge_with): Likewise.
3621         (create_loop_notes): Likewise.
3622         * cfgrtl.c (rtl_split_block): Likewise.
3623         (rtl_merge_blocks): Likewise.
3624         (rtl_can_merge_blocks): Likewise.
3625         (try_redirect_by_replacing_jump): Likewise.
3626         (force_nonfallthru_and_redirect): Likewise.
3627         (rtl_tidy_fallthru_edge): Likewise.
3628         (commit_one_edge_insertion): Likewise.
3629         (commit_edge_insertions): Likewise.
3630         (commit_edge_insertions_watch_calls): Likewise.
3631         (rtl_verify_flow_info_1): Likewise.
3632         (rtl_verify_flow_info): Likewise.
3633         (purge_dead_edges): Likewise.
3634         (cfg_layout_redirect_edge_and_branch): Likewise.
3635         (cfg_layout_can_merge_blocks_p): Likewise.
3636         (rtl_flow_call_edges_add): Likewise.
3637         * cse.c (cse_cc_succs): Likewise.
3638         * df.c (hybrid_search): Likewise.
3639         * dominance.c (calc_dfs_tree_nonrec): Likewise.
3640         (calc_dfs_tree): Likewise.
3641         (calc_idoms): Likewise.
3642         (recount_dominator): Likewise.
3643         * domwalk.c (walk_dominator_tree): Likewise.
3644         * except.c (emit_to_new_bb_before): Likewise.
3645         (connect_post_landing_pads): Likewise.
3646         (sjlj_emit_function_enter): Likewise.
3647         (sjlj_emit_function_exit): Likewise.
3648         (finish_eh_generation): Likewise.
3649         * final.c (compute_alignments): Likewise.
3650         * flow.c (calculate_global_regs_live): Likewise.
3651         (initialize_uninitialized_subregs): Likewise.
3652         (init_propagate_block_info): Likewise.
3653         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3654         * gcse.c (find_implicit_sets): Likewise.
3655         (bypass_block): Likewise.
3656         (bypass_conditional_jumps): Likewise.
3657         (compute_pre_data): Likewise.
3658         (insert_insn_end_bb): Likewise.
3659         (insert_store): Likewise.
3660         (remove_reachable_equiv_notes): Likewise.
3661         * global.c (global_conflicts): Likewise.
3662         (calculate_reg_pav): Likewise.
3663         * graph.c (print_rtl_graph_with_bb): Likewise.
3664         * ifcvt.c (mark_loop_exit_edges): Likewise.
3665         (merge_if_block): Likewise.
3666         (find_if_header): Likewise.
3667         (block_jumps_and_fallthru_p): Likewise.
3668         (find_if_block): Likewise.
3669         (find_cond_trap): Likewise.
3670         (block_has_only_trap): Likewise.
3671         (find_if_case1): Likewise.
3672         (find_if_case_2): Likewise.
3673         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
3674         (perfect_nestify): Likewise.
3675         * lcm.c (compute_antinout_edge): Likewise.
3676         (compute_laterin): Likewise.
3677         (compute_available): Likewise.
3678         (compute_nearerout): Likewise.
3679         * loop-doloop.c (doloop_modify): Likewise.
3680         * loop-init.c (loop_optimizer_init): Likewise.
3681         * loop-invariant.c (find_exits): Likewise.
3682         * loop-iv.c (simplify_using_initial_values): Likewise.
3683         (check_simple_exit): Likewise.
3684         (find_simple_exit): Likewise.
3685         * loop-unroll.c (peel_loop_completely): Likewise.
3686         (unroll_loop_constant_iterations): Likewise.
3687         (unroll_loop_runtime_iterations): Likewise.
3688         * loop-unswitch.c (may_unswitch_on): Likewise.
3689         (unswitch_loop): Likewise.
3690         * modulo-sched.c (generate_prolog_epilog): Likewise.
3691         (sms_schedule): Likewise.
3692         * postreload-gcse.c (eliminate_partially_redundant_load):
3693         Likewise.
3694         * predict.c (can_predict_insn_p): Likewise.
3695         (set_even_probabilities): Likewise.
3696         (combine_predictions_for_bb): Likewise.
3697         (predict_loops): Likewise.
3698         (estimate_probability): Likewise.
3699         (tree_predict_by_opcode): Likewise.
3700         (tree_estimate_probability): Likewise.
3701         (last_basic_block_p): Likewise.
3702         (propagate_freq): Likewise.
3703         (estimate_loops_at_level): Likewise.
3704         (estimate_bb_frequencies): Likewise.
3705         * profile.c (instrument_edges): Likewise.
3706         (get_exec_counts): Likewise.
3707         (compute_branch_probabilities): Likewise.
3708         (branch_prob): Likewise.
3709         * ra-build.c (live_in): Likewise.
3710         * ra-rewrite.c (rewrite_program2): Likewise.
3711         * ra.c (reg_alloc): Likewise.
3712         * reg-stack.c (reg_to_stack): Likewise.
3713         (convert_regs_entry): Likewise.
3714         (compensate_edge): Likewise.
3715         (convert_regs_1): Likewise,
3716         (convert_regs_2): Likewise.
3717         (convert_regs): Likewise.
3718         * regrename.c (copyprop_hardreg_forward): Likewise.
3719         * reload1.c (fixup_abnormal_edges): Likewise.
3720         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
3721         (sbitmap_insersection_of_preds): Likewise.
3722         (sbitmap_union_of_succs): Likewise.
3723         (sbitmap_union_of_preds): Likewise.
3724         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
3725         (fix_basic_block_boundaries): Likewise.
3726         (sched_ebbs): Likewise.
3727         * sched-rgn.c (build_control_flow): Likewise.
3728         (find_rgns): Likewise.
3729         * tracer.c (find_best_successor): Likewise.
3730         (find_best_predecessor): Likewise.
3731         (tail_duplicate): Likewise.
3732         * tree-cfg.c (make_edges): Likewise.
3733         (make_ctrl_stmt_edges): Likewise.
3734         (make_goto_expr_edges): Likewise.
3735         (tree_can_merge_blocks_p): Likewise.
3736         (tree_merge_blocks): Likewise.
3737         (cfg_remove_useless_stmts_bb): Likewise.
3738         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3739         (tree_block_forwards_to): Likewise.
3740         (cleanup_control_expr_graph): Likewise.
3741         (find_taken_edge): Likewise.
3742         (dump_cfg_stats): Likewise.
3743         (tree_cfg2vcg): Likewise.
3744         (disband_implicit_edges): Likewise.
3745         (tree_find_edge_insert_loc): Likewise.
3746         (bsi_commit_edge_inserts): Likewise.
3747         (tree_split_edge): Likewise.
3748         (tree_verify_flow_info): Likewise.
3749         (tree_make_forwarder_block): Likewise.
3750         (tree_forwarder_block_p): Likewise.
3751         (thread_jumps): Likewise.
3752         (tree_try_redirect_by_replacing_jump): Likewise.
3753         (tree_split_block): Likewise.
3754         (add_phi_args_after_copy_bb): Likewise.
3755         (rewrite_to_new_ssa_names_bb): Likewise.
3756         (dump_function_to_file): Likewise.
3757         (print_pred_bbs): Likewise.
3758         (print_loop): Likewise.
3759         (tree_flow_call_edges_add): Likewise.
3760         (split_critical_edges): Likewise.
3761         (execute_warn_function_return): Likewise.
3762         (extract_true_false_edges_from_block): Likewise.
3763         * tree-if-conv.c (tree_if_conversion): Likewise.
3764         (if_convertable_bb_p): Likewise.
3765         (find_phi_replacement_condition): Likewise.
3766         (combine_blocks): Likewise.
3767         * tree-into-ssa.c (compute_global_livein): Likewise.
3768         (ssa_mark_phi_uses): Likewise.
3769         (ssa_rewrite_initialize_block): Likewise.
3770         (rewrite_add_phi_arguments): Likewise.
3771         (ssa_rewrite_phi_arguments): Likewise.
3772         (insert_phi_nodes_for): Likewise.
3773         (rewrite_into_ssa): Likewise.
3774         (rewrite_ssa_into_ssa): Likewise.
3775         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
3776         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
3777         (rewrite_trees): Likewise.
3778         * tree-pretty-print.c (dump_bb_header): Likewise.
3779         (dump_implicit_edges): Likewise.
3780         * tree-sra.c (insert_edge_copies): Likewise.
3781         (find_obviously_necessary_stmts): Likewise.
3782         (remove_data_stmt): Likewise.
3783         * tree-ssa-dom.c (thread_across_edge): Likewise.
3784         (dom_opt_finalize_block): Likewise.
3785         (single_incoming_edge_ignoring_loop_edges): Likewise.
3786         (record_equivalences_from_incoming_edges): Likewise.
3787         (cprop_into_successor_phis): Likewise.
3788         * tree-ssa-live.c (live_worklist): Likewise.
3789         (calculate_live_on_entry): Likewise.
3790         (calculate_live_on_exit): Likewise.
3791         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
3792         (copy_loop_headers): Likewise.
3793         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
3794         (fill_always_executed_in): Likewise.
3795         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
3796         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
3797         (compute_phi_arg_on_exit): Likewise.
3798         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
3799         (get_loops_exit): Likewise.
3800         (split_loop_exit_edge): Likewise.
3801         (ip_normal_pos): Likewise.
3802         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
3803         Likewise.
3804         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
3805         (replace_phi_with_stmt): Likewise.
3806         (value_replacement): Likewise.
3807         * tree-ssa-pre.c (compute_antic_aux): Likewise.
3808         (insert_aux): Likewise.
3809         (init_pre): Likewise.
3810         * tree-ssa-propagate.c (simulate_stmt): Likewise.
3811         (simulate_block): Likewise.
3812         (ssa_prop_init): Likewise.
3813         * tree-ssa-threadupdate.c (thread_block): Likewise.
3814         (create_block_for_threading): Likewise.
3815         (remove_last_stmt_and_useless_edges): Likewise.
3816         * tree-ssa.c (verify_phi_args): Likewise.
3817         (verify_ssa): Likewise.
3818         * tree_tailcall.c (independent_of_stmt_p): Likewise.
3819         (find_tail_calls): Likewise.
3820         (eliminate_tail_call): Likewise.
3821         (tree_optimize_tail_calls_1): Likewise.
3822         * tree-vectorizer.c (vect_transform_loop): Likewise.
3823         * var-tracking.c (prologue_stack_adjust): Likewise.
3824         (vt_stack_adjustments): Likewise.
3825         (vt_find_locations): Likewise.
3826         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
3827         * config/i386/i386.c (ix86_pad_returns): Likewise.
3828         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3829         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3830
3831 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3832
3833         PR target/16532
3834         * config/sparc/sparc.c (struct machine_function): New field
3835         'leaf_function_p' and 'prologue_data_valid_p'.
3836         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
3837         to conveniently access the above fields.
3838         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
3839         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
3840         of the generic flavor 'current_function_uses_only_leaf_regs'.
3841         (eligible_for_sibcall_delay): Likewise.
3842         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
3843         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
3844         (sparc_asm_function_prologue): Add sanity check for the assumption
3845         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
3846         (sparc_can_use_return_insn_p): New function.
3847         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
3848         (output_restore): Likewise.
3849         (output_sibcall): Likewise.
3850         (sparc_output_mi_thunk): Likewise.
3851         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
3852         * config/sparc/sparc.md (return): New expander.
3853
3854         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
3855
3856 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
3857
3858         PR c++/17642
3859         * stor-layout.c (layout_decl): Use fold_convert, not convert.
3860         (bit_from_pos): Likewise.
3861         (byte_from_pos): Likewise.
3862         (pos_from_bit): Likewise.
3863         (normalize_offset): Likewise.
3864         (place_field): Likewise.
3865         (finalize_type_size): Likewise.
3866         (layout_type): Likewise.
3867         * tree.c (build_index_type): Likewise.
3868
3869 2004-09-27  Devang Patel  <dpatel@apple.com>
3870
3871         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
3872         * genopinit.c (optabs): New entry for vcond_gen_code and
3873         vcondu_gen_code.
3874         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
3875         (get_rtx_code): New function.
3876         (vector_compare_rtx): New function.
3877         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
3878         (expand_vec_cond_expr_p): New function.
3879         (expand_vec_cond_expr): New function.
3880         (get_vcond_icode): New function.
3881         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
3882         (vcond_gen_code, vcondu_gen_code): Same.
3883
3884 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3885
3886         * Makefile.in (STAGESTUFF): Split into ...
3887         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
3888         (mostlyclean): Update.
3889         (stage1-start, stage2-start, stage3-start, stage4-start,
3890         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
3891         Move the STAGEMOVESTUFF.
3892
3893 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3894
3895         * system.h (getpagesize): Return 'int' instead of 'long'.
3896
3897 2004-09-27  Michael Matz <matz@suse.de>
3898
3899         PR bootstrap/17698
3900         PR bootstrap/17702
3901         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
3902         bmp_iter_and_init): Shift by bit_in_word.
3903
3904 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
3905
3906         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
3907         * configure.ac: Don't sinclude it here.
3908         * configure: Regenerate.
3909
3910 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
3911
3912         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
3913         Handle AND pattern
3914
3915 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
3916
3917         PR c/13804
3918         * c-typeck.c (build_component_ref): Name type involved in
3919         diagnostic for structure or union without a member of the given
3920         name.
3921
3922 2004-09-27  DJ Delorie  <dj@redhat.com>
3923
3924         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
3925         .comm alignment is bytes, not bits.
3926
3927 2004-09-27  Devang Patel  <dpatel@apple.com>
3928
3929         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3930         (print_call_name): Do not print VEC_COND_EXPR.
3931
3932 2004-09-27  Devang Patel  <dpatel@apple.com>
3933
3934         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
3935
3936 2004-09-27  Jan Hubicka  <jh@suse.cz>
3937
3938         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
3939
3940 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
3941
3942         * bitmap.h: Fix a comment typo.
3943
3944 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
3945
3946         * libgcc2.c (getpagesize): Change type of return value to int.
3947
3948 2004-09-26  Matt Austern  <austern@apple.com>
3949
3950         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
3951         using mmap.
3952
3953 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3954
3955         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
3956         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
3957         (bitmap_iterator): New type.
3958         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
3959         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
3960         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
3961         bmp_iter_and_init, bmp_iter_and_next): New functions.
3962         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
3963         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
3964         use iterator-style EXECUTE_IF_IN_BITMAP macros.
3965         * bitmap.c (bitmap_print): Ditto.
3966         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
3967         btr_def_live_range): Ditto.
3968         * cfganal.c (compute_dominance_frontiers_1) Ditto.
3969         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
3970         Ditto.
3971         * ddg.c (build_inter_loop_deps): Ditto.
3972         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
3973         Ditto.
3974         * except.c (remove_eh_handler): Ditto.
3975         * flow.c (reg_set_to_hard_reg_set): Ditto.
3976         * gcse.c (clear_modify_mem_tables): Ditto.
3977         * global.c (build_insn_chain): Ditto.
3978         * ifcvt.c (dead_or_predicable): Ditto.
3979         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
3980         Ditto.
3981         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
3982         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
3983         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
3984         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
3985         tree_purge_all_dead_eh_edges): Ditto.
3986         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
3987         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
3988         rewrite_ssa_into_ssa): Ditto.
3989         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
3990         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
3991         Ditto.
3992         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
3993         compute_flow_sensitive_aliasing, maybe_create_global_var,
3994         dump_points_to_info_for): Ditto.
3995         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
3996         * tree-ssa-dse.c (dse_finalize_block): Ditto.
3997         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
3998         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
3999         Ditto.
4000         * tree-ssa-loop-ivopts.c (find_induction_variables,
4001         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
4002         determine_use_iv_costs, determine_set_costs, find_best_candidate,
4003         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
4004         Ditto.
4005         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
4006         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
4007         add_call_read_ops): Ditto.
4008         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
4009
4010 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4011
4012         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
4013         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
4014
4015 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
4016
4017         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
4018         reflect size of memory regions being compared.
4019
4020 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
4021
4022         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
4023         expressions.  Always clear MEM_SIZE and alias set.
4024
4025 2004-09-26  Roger Sayle  <roger@eyesopen.com>
4026             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4027
4028         PR middle-end/17112
4029         * stor-layout.c (compute_record_mode): For records with a single
4030         field, only use the field's mode if its size matches what we'd
4031         have choosen for the record ourselves.  This forces the use of
4032         BLKmode for packed records that don't completely fill a mode.
4033
4034 2004-09-26  Roger Sayle  <roger@eyesopen.com>
4035
4036         PR middle-end/17151
4037         * combine.c (force_to_mode): Remove dubious early return test that
4038         inhibits further optimization.
4039
4040 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
4041
4042         * profile.c: Fix a comment typo.
4043
4044 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4045
4046         PR bootstrap/17591
4047         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
4048         with varying offset.
4049         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
4050         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
4051         ARRAY_REFS.
4052         (expr_invariant_in_loop_p): New function.
4053         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
4054         component_ref_field_offset for COMPONENT_REFs.  Do not allow
4055         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
4056         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
4057         MISALIGNED_INDIRECT_REFs.
4058         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
4059         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
4060         MISALIGNED_INDIRECT_REFs.
4061
4062 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
4063
4064         PR c/11459
4065         * gcc.c (cpp_options, cc1_options): Preserve relative order of
4066         -std and -ansi options.
4067
4068 2004-09-26  Jan Hubicka  <jh@suse.cz>
4069
4070         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
4071         for nested functions whose proper parent has not been output.
4072
4073         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
4074         when re-constructing profile previously invalidated by loop.
4075
4076 2004-09-25  Dale Johannesen  <dalej@apple.com>
4077
4078         * tree-gimple.c:  Move GIMPLE definition...
4079         * doc/tree-ssa.texi:  here.
4080
4081 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4082
4083         * tree-vectorizer.c: Fix a comment typo.
4084
4085 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4086
4087         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
4088         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
4089         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
4090         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
4091
4092 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4093
4094         * tree-ssa-loop-unswitch.c: Fix a comment typo.
4095
4096 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
4097
4098         * doc/passes.texi: Fix a typo.
4099
4100 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4101
4102         * tree-optimize.c (init_tree_optimization_passes): Add
4103         pass_record_bounds.
4104         * tree-pass.h (pass_record_bounds): Declare.
4105         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
4106         New pass.
4107
4108 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4109
4110         PR tree-optimization/17474
4111         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
4112         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
4113
4114 2004-09-25  Jan Hubicka  <jh@suse.cz>
4115
4116         * predict.c (counts_to_freqs): Make global.
4117         * predict.h (counts_to_freqa): Declare.
4118         * profile.c (compute_branch_probabilities): Compute frequencies
4119         * tree-profile.c (do_tree_profiling): Refine conditional on when
4120         tree profiling pass is needed.
4121
4122         * passes.c (rest_of_handle_cfg): Disable const/pure function
4123         detection when doing tree based profiling.
4124
4125         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
4126         conditional.
4127
4128 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
4129
4130         * config/mips/mips.h (struct mips_args): Clarify comments.
4131         * config/mips/mips.c (struct mips_arg_info): Likewise.
4132         (mips_arg_info): Don't allow fpr_p to affect the register or
4133         stack alignment.  Remove o64 silliness.
4134         (function_arg): Deal with the o32 float,float case specially.
4135
4136 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
4137
4138         * config/mips/mips.md (loadx, storex): Define for V2SF.
4139
4140 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
4141
4142         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
4143         * config/s390/s390.c (s390_back_chain_rtx): New function.
4144         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
4145         Call anti_adjust_stack.
4146         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
4147         only if compiling with back chain.
4148         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
4149         back chain only if back chain enabled.  Use s390_back_chain_rtx.
4150
4151 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4152
4153         * doc/trouble.texi: Remove obsolete information.  Update
4154         information on how to regenerate fixincluded headers.
4155
4156 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
4157
4158         PR c/12951
4159         * doc/invoke.texi: Document that
4160         -Wno-error-implicit-function-declaration is not accepted.
4161
4162 2004-09-24  Richard Henderson  <rth@redhat.com>
4163
4164         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
4165         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
4166         on TARGET_MAX.
4167         (alpha_expand_mov): Allow unaligned vectors.
4168         (alpha_expand_unaligned_store): Use CONST0_RTX.
4169         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
4170
4171 2004-09-24 Jeff Law  <law@redhat.com>
4172
4173         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
4174         aliasing rules.
4175         (simplify_cond_and_lookup_avail_expr): Likewise.
4176
4177 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4178
4179         PR c/12802
4180         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
4181         title.  Document interaction with -fms-extensions.
4182         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
4183         section.
4184
4185 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4186
4187         PR c/12713
4188         * doc/extend.texi: Document interaction of attribute noreturn and
4189         longjmp.
4190
4191 2004-09-24  Richard Henderson  <rth@redhat.com>
4192
4193         PR rtl-opt/17503
4194         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
4195         (som_hash, som_eq): New.
4196         (init_subregs_of_mode, record_subregs_of_mode): New.
4197         (cannot_change_mode_set_regs): Rewrite for htab implementation.
4198         (invalid_mode_change_p): Likewise.
4199         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
4200         * flow.c (mark_used_regs): Likewise.
4201         (life_analysis): Use init_subregs_of_mode.
4202         * regs.h (subregs_of_mode): Remove.
4203         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
4204
4205 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4206
4207         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
4208         type with the copy of the conditional.
4209
4210 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4211
4212         PR tree-opt/16954
4213         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
4214         Prevent renaming if the aliasing sets of the type which the
4215         pointer points to are different.
4216
4217 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4218
4219         PR c/17188
4220         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
4221         declarations of enumerators.
4222         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
4223         for redefinition.  Check for nested redefinition.
4224         (finish_struct): Don't check for nested redefinition.
4225         (start_enum): Check for nested redefinition.
4226
4227 2004-09-24  Devang Patel  <dpatel@apple.com>
4228
4229         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
4230         only when necesssary.
4231         (combine_blocks): Combine loop header and exit block.
4232
4233 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
4234
4235         * hooks.c (hook_tree_tree_bool_null): New.
4236         * hooks.h (hook_tree_tree_bool_null): Declare it.
4237         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
4238         * targhooks.c (default_fold_builtin): Remove.
4239         * targhooks.h (default_fold_builtin): Remove.
4240
4241 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4242
4243         PR rtl-optimization/17625
4244         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
4245
4246 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
4247
4248         PR tree-opt/17624
4249         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
4250         Reject if any of the operands occur in an abnormal PHI.
4251
4252 2004-09-24  Andreas Schwab  <schwab@suse.de>
4253
4254         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
4255         rules.
4256
4257 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
4258
4259         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
4260         if the GNU assembler is used.
4261         (sparc-*-solaris2*): Likewise.
4262         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
4263         (dbxout_function_end): Protect N_ENSYM with it.
4264         (dbxout_begin_prologue): Protect N_BNSYM with it.
4265         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
4266         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
4267         * config/sparc/sol2-gas.h: New file.
4268
4269 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
4270
4271         PR bootstrap/17369
4272         * Makefile.in (@set_gcc_lib_path@): Added.
4273
4274         * configure.ac: Include ../config/gcc-lib-path.m4. Use
4275         TL_AC_GNU_MAKE_GCC_LIB_PATH.
4276         * configure: Regenerated.
4277
4278 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
4279
4280         PR c/6980
4281         * c-typeck.c (build_c_cast): Improve wording of
4282         -Wbad-function-cast diagnostic.
4283
4284 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
4285
4286         PR target/17626
4287         * config/cris/cris.md (moverside, movemside): Rename variable
4288         "reg" to "otherop".  To generate canonical RTX, check that otherop
4289         isn't constant instead of checking that operand 1 is a register.
4290
4291 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
4292
4293         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
4294
4295 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
4296             Jakub Jelinek  <jakub@redhat.com>
4297
4298         * tree-flow.h (find_new_referenced_vars): Add prototype.
4299         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
4300         Move to...
4301         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
4302         ... here.
4303         (mark_new_vars_to_rename): Walk through all operands.
4304         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
4305         (execute_fold_all_builtins): Use it.
4306         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
4307
4308 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
4309
4310         * gthr-tpf.h: New file.
4311         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
4312         * gthr.h: Use gthr-tpf.h on TPF OS.
4313
4314 2004-09-23 Jeff Law  <law@redhat.com>
4315
4316         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
4317         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4318         (substitute_and_fold):  Likewise.
4319         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
4320         except invariants from SSA_NAME_VALUE.
4321         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
4322         and SET_SSA_NAME_EQUIV.
4323         (restore_vars_to_original_value, record_const_or_copy): Likewise.
4324         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
4325         (record_equality, cprop_into_successor_phis): Likewise.
4326         (record_equivalences_from_stmt, cprop_operand): Likewise.
4327         (lookup_avail_expr): Likewise.
4328         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
4329         from SSA_NAME_VALUE.
4330         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
4331         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
4332         annotation from the VALUE_HANDLE field.
4333
4334 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
4335
4336         PR c++/13989
4337         PR c++/9844
4338         * tree.c (reconstruct_complex_type): Remove extra "this".
4339         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4340         Add V4SFmode to case statement.
4341
4342 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
4343
4344         PR c/16833
4345         * doc/extend.texi, doc/invoke.texi: Document interaction of
4346         -fno-builtin with format checks.  Note that built-in functions
4347         have effects beyond generating code that avoids calls to those
4348         functions.
4349
4350 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
4351
4352         PR tree-optimization/17533
4353         * dominance.c (verify_dominators): Tolerate even more incorrect
4354         dominance data during error message printing.
4355         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
4356         and edges more correctly.
4357
4358 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
4359
4360         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
4361         New tree-codes.
4362         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
4363         MISALIGNED_INDIRECT_REF.
4364         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
4365         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
4366         Likewise.
4367         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
4368         (find_interesting_uses_address): Likewise.
4369         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
4370         (build_fold_addr_expr_with_type): Likewise.
4371         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
4372         * print-rtl.c (print_mem_expr): Likewise.
4373         * tree-dump.c (dequeue_and_dump): Likewise.
4374         * tree-eh.c (tree_could_trap_p): Likewise.
4375         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
4376         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
4377         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
4378         Likewise.
4379         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4380         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
4381         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
4382         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
4383         (add_address_candidates, rewrite_address_base): Likewise.
4384         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
4385         Likewise.
4386         * tree.c (staticp, build1_stat): Likewise.
4387
4388         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
4389         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
4390         * tree-ssa-operands.c (get_expr_operands): Likewise.
4391         * expr.c (expand_expr_real_1): Likewise.
4392
4393         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
4394         optabs.
4395         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
4396         for the new optabs.
4397         (expand_ternary_op): New function.
4398         * genopinit.c (optabs): Handle the new optabs.
4399         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
4400         (init_optabs): Initialize vec_realign_load_optab.
4401         (expand_ternary_op): New functions.
4402
4403         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
4404         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
4405         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
4406         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
4407         * target.h (struct vectorize): New member for struct gcc_target.
4408         (misaligned_mem_ok): New member for targetm.vectorize.
4409         (builtin_mask_for_load): Likewise.
4410         (builtin_mask_for_store): Likewise.
4411         * targethooks.c (default_vect_misaligned_mem_ok): New function.
4412         * targethooks.h (default_vect_misaligned_mem_ok): New function.
4413
4414         * config/rs6000/altivec.md (build_vector_mask_for_load): New
4415         define_expand.
4416         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
4417         (vec_realign_load_v16qi): New define_insn.
4418         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
4419         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
4420         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
4421         (altivec_builtin_mask_for_store): New variables.
4422         (rs6000_builtin_mask_for_load): New function. Implements
4423         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
4424         (rs6000_builtin_mask_for_store): New function. Implements
4425         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
4426         (rs6000_expand_builtin): Expand the target builtins
4427         builtin_mask_for_load and builtin_mask_for_store.
4428         (altivec_init_builtins): Initialize the new target builtins.
4429         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
4430         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
4431
4432         * tree-vectorizer.c (vect_create_data_ref): Renamed to
4433         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
4434         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
4435         (vectorizable_store): Call vect_create_data_ref_ptr with additional
4436         arguments, and create an indirect_ref with its return value data_ref.
4437         Check aligned_access_p.
4438         (vectorizable_load): Handle misaligned loads, using software-pipelined
4439         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
4440         vec_realign_load_optab is supported, or using a scheme without
4441         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
4442         misaligned_mem_ok is supported.
4443
4444         (vect_finish_stmt_generation): Typo.
4445         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
4446         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
4447         presence of misaligned loads.
4448         (vect_analyze_data_ref_access): Add check for constant init.
4449         (vect_get_symbl_and_dr): Remove duplicate line.
4450         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
4451
4452 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4453
4454         * builtins.c: Fix a comment typo.
4455
4456 2004-09-23  Jan Hubicka  <jh@suse.cz>
4457
4458         * profile.c (branch_prob): Do not verify flow info in the middle of the
4459         pass.
4460
4461 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4462
4463         * cfgloop.h (update_single_exits_after_duplication): Declare.
4464         (loopify, split_loop_bb): Declaration changed.
4465         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
4466         of rtx.
4467         (loopify): Added redirect_all_edges argument.
4468         (update_single_exits_after_duplication): Export.
4469         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
4470         * tree-flow.h (tree_duplicate_loop_to_header_edge,
4471         tree_ssa_loop_version): Declare.
4472         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
4473         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
4474         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
4475         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
4476
4477         * tree-ssa-loop-unswitch.c: New file.
4478         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
4479         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
4480         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
4481         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
4482         * tree-pass.h (pass_unswitch): Declare.
4483         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
4484         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
4485         * doc/passes.texi: Documen tree level loop unswitching.
4486
4487 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
4488
4489         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
4490
4491 2004-09-22  Eric Christopher  <echristo@redhat.com>
4492
4493         * builtins.c (simplify_builtin_va_start): Remove.
4494         (simplify_builtin): Ditto.
4495         (fold_builtin_strchr): Ditto.
4496         (simplify_builtin_*): Rename remainders to fold_builtin_*.
4497         (expand_builtin): Fix up for above changes.
4498         (fold_builtin_1): Add new folders. Change for above.
4499         (expand_builtin_va_start): Call fold_builtin_next_arg.
4500         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
4501         * tree.h: Remove prototype for simplify_builtin.
4502
4503 2004-09-23  Jan Hubicka  <jh@suse.cz>
4504
4505         PR debug/17389
4506         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
4507         of fully inlined functions.
4508         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
4509         inlined.
4510
4511         * cfgexpand.c (add_reg_br_prob_note): New function.
4512         (expand_gimple_cond_expr): Use it.
4513         (tree_expand_cfg): No longer kill the profile.
4514         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
4515         only if it is present.
4516         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
4517         * predict.c (combine_predictions_for_insn): Set the probabilities
4518         based on REG_BR_PROB note if present.
4519         * predict.c (branch_prob): Profile is read only with
4520         flag_branch_probabilities.
4521
4522 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4523
4524         * aclocal.m4: Add in gettext's m4 includes.
4525         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
4526         * configure.ac: Add in check for iconv.h
4527         * configure: Regenerate.
4528
4529 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4530
4531         * aclocal.m4: Update for rename of gettext-sister.m4.
4532
4533 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
4534
4535         Fix PR tree-optimization/17587
4536         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
4537         (insert_aux): Instead of here.
4538
4539 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4540
4541         PR tree-optimization/16721
4542         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
4543         * tree-ssa-alias.c (create_memory_tag): Move setting of
4544         TREE_THIS_VOLATILE ...
4545         (get_tmt_for): ... here.
4546
4547 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4548
4549         * config/sparc/sparc.md (cmove splitter): Fix formatting.
4550         (conditional_trap expander): Reject inappropriate CCmodes.
4551         (conditional trap insn): Use V9 syntax if possible.
4552
4553 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4554
4555         PR c/16566
4556         * c-typeck.c (build_component_ref): Don't special-case
4557         COMPOUND_EXPR.
4558
4559 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
4560
4561         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
4562         returns NULL.
4563
4564 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4565
4566         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
4567         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
4568         TRUTH_XOR_EXPR): Mention the restriction on types.
4569
4570 2004-09-22  Matt Austern  <austern@apple.com>
4571
4572         * config/darwin.c (darwin_make_decl_one_only):
4573         Allow coalesced symbol to appear in static archive's table of contents
4574
4575 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
4576
4577         PR tree-optimization/17512
4578         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
4579         special cases.
4580
4581 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
4582
4583         * dbxout.c (get_lang_number): Do not define if
4584         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
4585
4586 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
4587
4588         PR target/15583
4589         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
4590         builtin_define ("__USE_INIT_FINI__").
4591
4592 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
4593
4594         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
4595         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
4596         * config/s390/s390.h (TARGET_TPF): New macro.
4597         * config/s390/s390.md ("eh_return"): New expander.
4598         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
4599         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
4600         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
4601         * config/s390/tpf.h (TARGET_TPF): Define to 1.
4602         (STACK_POINTER_OFFSET): Increase to 448.
4603         (TARGET_DEFAULT): Set -mtpf-trace on as default.
4604         (TPF_LOC_DIFF_OFFSET): New macro.
4605         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
4606         encoding.
4607         (__isPATrange): Add prototype.
4608         (MD_FALLBACK_FRAME_STATE_FOR): Define.
4609         * config/s390/tpf-eh.c: New file.
4610
4611 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
4612
4613         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
4614         operands in an integer comparison.
4615         * tree-cfg.c (find_taken_edge): Call fold() to determine
4616         whether the predicate is known.
4617
4618 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
4619
4620         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
4621         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
4622         Create build and doc directories along with the language directories.
4623         Don't create doc directory separately.
4624         * configure: Regenerate.
4625         * Makefile.in: Create all object and executables files built
4626         with the build compiler in a build/ directory.
4627         (genobjnames): Add missing build objects.
4628         (STAGESTUFF): Don't stage the gen* programs.
4629         (ggc-none.o): Define dependencies for the target compiler.
4630         (build-print-rtl.o): Rename to build/print-rtl.o.
4631         (build-errors.o): Rename to build/errors.o.
4632         (build-varray.o): Rename to build/varray.o.
4633         (maintainerclean): Delete the contents of the build directory.
4634         ($(genobjs): %.o): Explicitly use -o.
4635         (build/insn-conditions.o): Delete specfic rule to use generic rule.
4636         (build/gengtype-lex.o): Likewise.
4637         (build/gengtype-yacc.o): Likewise.
4638         (build/gcov-iov.o): Likewise.
4639
4640 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4641
4642         * vec.h (VEC_space): Return true if there _is_ space.
4643         (VEC_reserve): Adjust.
4644
4645 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
4646
4647         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
4648         use FPRs for scalar, complex and vector types only.
4649
4650 2004-09-21 Jeff Law  <law@redhat.com>
4651
4652         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
4653         the opt_stats_d structure.
4654         (vrp_data): Change from a varray into a hash table.
4655         (vrp_hash_elt): New structure for elements in the vrp hash table.
4656         (vrp_hash, vrp_eq):New functions for hashing and testing equality
4657         in the vrp hash table.
4658         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
4659         initialization slightly to make it easier to read.  No longer need
4660         to grow/clear the varray.  Instead empty and delete the hash table.
4661         (dom_opt_finalize_block): Update due to change of VRP_DATA from
4662         a varray to a hash table.
4663         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
4664
4665         * tree-ssa-ccp.c (get_default_value): If we have a constant
4666         value recorded for an SSA_NAME, then use that constant as
4667         the initial lattice value.
4668         (substitute_and_fold): Transfer equivalences discovered into
4669         SSA_NAME_EQUIV.
4670
4671         * tree.h (SSA_NAME_EQUIV): Add comments.
4672         (SET_SSA_NAME_EQUIV): Similarly.
4673
4674 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
4675
4676         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
4677
4678         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
4679
4680 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
4681
4682         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
4683         (finish_decl): Likewise.
4684
4685 2004-09-21  Devang Patel  <dpatel@apple.com>
4686
4687         * tree.def (VEC_COND_EXPR): New tree node.
4688         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
4689
4690 2004-09-21  Stan Shebs  <shebs@apple.com>
4691
4692         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
4693         * config/rs6000/darwin-world.asm: Likewise.
4694
4695 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
4696
4697         * tree-ssa.c (verify_def): Use print_generic_stmt,
4698         not debug_generic_stmt.
4699         (verify_use): Ditto.
4700         (verify_phi_args): Ditto.
4701         (verify_ssa): Ditto.
4702
4703 2004-09-21  Paul Brook  <paul@codesourcery.com>
4704
4705         * varasm.c (default_assemble_integer): Return false for values wider
4706         than the target word size.  Works around GAS bug.
4707
4708 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
4709
4710         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
4711         gets value 0.
4712         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
4713         if it has value 0.
4714
4715 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
4716
4717         * c-typeck.c (build_function_call): Give name of object
4718         we are attempting to call in error message.
4719         * c-objc-common.c (c_tree_printer): Call pp_expression,
4720         not return false, for 'E' case.
4721
4722 2004-09-21  Steven Bosscher  <stevenb@suse.de>
4723
4724         PR rtl-optimization/17482
4725         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
4726         load_killed_in_block_p): Clarify comments.
4727         (record_last_reg_set_info): Make static inline.
4728         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
4729         (record_opr_changes): New function to replace the above.
4730         (compute_hash_table): Clarify comments.  Use record_opr_changes.
4731         (reg_set_between_after_reload_p): Clean up.
4732         (reg_used_between_after_reload_p): Likewise.
4733         (eliminate_partially_redundant_load): Clarify comments.
4734
4735 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4736
4737         PR rtl-optimization/17266
4738         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
4739
4740 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
4741
4742         PR rtl-optimization/14851
4743         * rtlanal.c (commutative_operand_precedence): Calculate
4744         precedence of stripped constant.
4745
4746 2004-09-20 Jeff Law  <law@redhat.com>
4747            Jan Hubicka  <jh@suse.cz>
4748
4749         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
4750         initialize key elements here.
4751         (release_ssa_name): Zero the released SSA_NAME here.
4752         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
4753         (struct tree_ssa_name): Add new "equiv" field.
4754         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
4755         (tree_ssa_dominator_optimize): No longer allocate, resize or
4756         clear CONST_AND_COPIES.
4757         (get_value_for, set_value_for): Kill.
4758         (thread_across_edge): Get/set the equivalency using
4759         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
4760         (restore_vars_to_original_value): Likewise.
4761         (record_equivalences_from_phis): Likewise.
4762         (record_dominating_conditions): Likewise.
4763         (record_const_or_copy, record_equality): Likewise.
4764         (lookup_avail_expr): Likewise.
4765         (record_equivalences_from_stmt, cprop_operand): Likewise.
4766         (cprop_into_successor_phis): No longer need to pass around
4767         CONST_AND_COPIES.  Callers updated. Get equivalences via
4768         SSA_NAME_EQUIV.
4769         (cprop_into_phis): Likewise.
4770
4771 2004-09-20  Matt Austern <austern@apple.com>
4772             Zack Weinberg  <zack@codesourcery.com>
4773
4774         * c-common.c (fix_string_type): Build the unqualified array
4775         type unconditionally, then use c_build_qualified_type to get
4776         the proper const-qualified variant, and set its
4777         TYPE_MAIN_VARIANT to refer to the unqualified type.
4778         * c-lex.c (c_lex_return_raw_string): New global.
4779         (c_lex_with_flags): Honor it.
4780         * c-pragma.h: Declare it.
4781
4782 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4783
4784         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
4785
4786 2004-09-21  Jan Hubicka  <jh@suse.cz>
4787
4788         PR middle-end/17126
4789         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
4790         (tree_rest_of_compilation): Cleanup.
4791
4792 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
4793
4794         * config/s390/s390.c (s390_select_rtx_section): Remove.
4795         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
4796
4797 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4798
4799         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
4800         note to pretend a direct save from the original register when an
4801         intermediate register is used for the save.
4802
4803 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4804
4805         * tsystem.h (alloca): Provide a default definition.
4806
4807         Revert:
4808         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4809             * unwind-dw2.c: Call __builtin_alloca, not alloca.
4810
4811 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
4812
4813         PR tree-opt/17558
4814         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
4815         aliasing sets are the same rather than just conflicting.
4816
4817 2004-09-20  Jan Hubicka  <jh@suse.cz>
4818
4819         PR middle-end/16460
4820
4821         * cgraph.c (cgraph_unnest_node): New function.
4822         (c_finalize): Rename to ....
4823         (c_warn_unused_result_recursivly): ... this one; do only the warning
4824         (finish_function): Finalize the toplevel function; do not lower nested tree.
4825         * cgraph.h (cgraph_unnest_node): Declare.
4826         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
4827         nestedness datastructure.
4828         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
4829         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
4830         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
4831
4832 2004-09-20  Richard Henderson  <rth@redhat.com>
4833
4834         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
4835         from some_small_symbolic_operand_1; export.
4836         (some_small_symbolic_operand): Remove.
4837         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
4838         extra C check.
4839         * config/alpha/predicates.md (some_small_symbolic_operand): New.
4840
4841 2004-09-20  Jan Hubicka  <jh@suse.cz>
4842
4843         * predict.c (return_prediction): New function.
4844         (apply_return_prediction): Likewise.
4845         (tree_bb_level_predictions): Likewise.
4846         (tree_estimate_probability): Add noreturn exit edges; call
4847         bb_level_predictions; fix logic of return heuristics.
4848         (predict_paths_leading_to):  Rescuesce from old CVS version of
4849         process_note_prediction function.
4850         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
4851
4852 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
4853
4854         * config/s390/s390.c (s390_frame_info): Added alignment statement for
4855         floating point register area on stack.
4856
4857 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
4858
4859         * predict.c (expr_expected_value): Use *_CLASS_P macros.
4860
4861 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
4862
4863         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
4864         generating useless garbage.
4865
4866 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
4867
4868         * builtins.c (fold_builtin): Call the new omonymous
4869         target hook for machine-dependent built-ins.
4870         * target-def.h (TARGET_FOLD_BUILTIN): New.
4871         * target.h (struct gcc_target): Add the fold_builtin hook.
4872         * targhooks.c (default_fold_builtin): New.
4873         * targhooks.h (default_fold_builtin): Declare it.
4874
4875 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
4876
4877         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
4878         comment typos.
4879
4880 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
4881
4882         PR target/17565
4883         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
4884
4885 2004-09-20  Jan Hubicka  <jh@suse.cz>
4886
4887         * predict.c (estimate_probability): Remove unnecesary code.
4888
4889 2004-09-19  Ira Rosen  <irar@il.ibm.com>
4890
4891         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
4892         (STMT_VINFO_VECT_DR_BASE): Declare.
4893         (VECT_SMODULO): Declare.
4894         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
4895         (vect_compute_array_base_alignment): New function.
4896         (vect_analyze_data_ref_access): Check array indices. Remove one
4897         dimensional arrays restriction.
4898         (vect_get_ptr_offset): New function.
4899         (vect_get_symbl_and_dr): New function.
4900         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
4901         (former name vect_get_base_decl_and_bit_offset).
4902         (vect_create_index_for_array_ref): Removed.
4903         (vect_create_index_for_vector_ref): New function.
4904         (vect_create_addr_base_for_vector_ref): New function.
4905         (vect_create_data_ref): Handle additional data refs. Call
4906         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
4907         (vect_compute_data_ref_alignment): Support the changes. Call
4908         vect_get_base_and_bit_offset.
4909         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
4910         data refs. Store vect_dr_base.
4911         (vect_analyze_data_ref_accesses): Support nonconstant init.
4912         (new_stmt_vec_info): Initialize vect_dr_base field.
4913         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4914         (get_vectype_for_scalar_type): Check for BLKmode.
4915         * tree-chrec.h (initial_condition_in_loop_num): Declare.
4916         * tree-chrec.c (initial_condition_in_loop_num): New function.
4917         (chrec_component_in_loop_num): New function.
4918         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
4919         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
4920         to be pointer to varray_type.
4921
4922 2004-09-19  Jan Hubicka  <jh@suse.cz>
4923
4924         * basic-block.h (update_bb_profile_after_threading): Declare.
4925         * cfg.c (update_bb_profile_after_threading): Break out from ...
4926         * cfgcleanup.c (try_forward_edges): ... here; use it.
4927         * tree-ssa-dom.c (thread_across_edge): Use it.
4928         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
4929         profile of the new BB.
4930
4931 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
4932
4933         * tree-ssa-pre.c (insert_into_set): Don't put
4934         is_gimple_min_invariant values into the set.
4935
4936 2004-09-19  Andreas Jaeger  <aj@suse.de>
4937
4938         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
4939         prototype.
4940
4941 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4942
4943         * config/cris/cris.h: Preserve the original spelling in a
4944         quote.
4945
4946 2004-09-18 Jeff Law  <law@redhat.com>
4947
4948         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
4949         global varrays to replace the block local varrays.
4950         (struct dom_walk_block_data): Remove, no longer used.
4951         (get_eq_expr_value): No longer need to pass around pointers to local
4952         varrays.  Callers updated.  Unused markers added to unused parameters.
4953         (record_range, record_equivalences_from_stmt): Likewise.
4954         (record_equivalences_from_incoming_edge): Likewise.
4955         (record_var_is_nonzero): Likewise.  Update now that we have a
4956         single global varray of SSA_NAMEs that need restoring.
4957         (dom_opt_initialize_block_local_data): Kill, no longer used.
4958         (tree_ssa_dominator_optimize): Initialize new global varrays.
4959         Update callbacks in dominator walker structure.
4960         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
4961         VRP_VARIABLES_STACK.
4962         (restore_nonzero_vars_to_original_value): Update now that we have
4963         a single global varray of SSA_NAMEs that need restoring.
4964         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
4965         Remove unused variables.
4966         (optimize_stmt): Remove unused variable.
4967
4968 2004-09-18  Jan Hubicka  <jh@suse.cz>
4969
4970         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
4971
4972         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
4973         verify_cgraph call.
4974
4975 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4976
4977         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
4978         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
4979         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
4980         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
4981         tree-ssa-operands.c, tree-ssa-phiopt.c,
4982         tree-ssa-threadupdate.c: Fix comment typos.
4983
4984 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
4985
4986         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
4987         config/arm/README-interworking, config/arm/arm-cores.def,
4988         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
4989         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
4990         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
4991         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
4992         config/frv/frv.md, config/i386/winnt.c,
4993         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
4994         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
4995         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
4996         config/mcore/mcore.c, config/mips/mips.h,
4997         config/mn10300/mn10300.md, config/pa/pa.c,
4998         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
4999         config/rs6000/rs6000.c, config/sh/symbian.c,
5000         config/sparc/sparc.h: Fix comment typos.  Follow spelling
5001         conventions.
5002
5003 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
5004
5005         PR c/17424
5006         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
5007
5008 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
5009
5010         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
5011         remove TREE_ADDRESSABLE from RESULT_DECL.
5012
5013 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
5014
5015         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
5016
5017 2004-09-18  Jan Hubicka  <jh@suse.cz>
5018
5019         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
5020         NULL.
5021         * tree-ssa-alias.c (init_alias_info): Likewise.
5022         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
5023         (verify_ssa): Likewise.
5024         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
5025
5026 2004-09-18  Jan Hubicka  <jh@suse.cz>
5027
5028         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
5029         huge offset.
5030
5031 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5032
5033         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
5034         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5035         DW_EH_PE_sdata* for data.
5036         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
5037
5038 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
5039
5040         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
5041         shared anyway.
5042
5043         PR pch/13361
5044         * c-typeck.c (constructor_asmspec): Delete.
5045         (struct initializer_stack): Delete field 'asmspec'.
5046         (start_init): Delete saving of asmspec.
5047         (finish_init): Don't update constructor_asmspec.
5048         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
5049         * stmt.c (expand_asm): Duplicate strings from tree.
5050         (expand_asm_operands): Likewise.
5051         * tree.c (tree_size): Update computation of size of STRING_CST.
5052         (make_node): Don't make STRING_CST nodes.
5053         (build_string): Allocate string with tree node.
5054         (tree_code_size): Clean up assertions, don't allow requests
5055         for "the size of a STRING_CST".
5056         * tree.def (STRING_CST): Update comment.
5057         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
5058         (tree_string): Place contents of string in tree node.
5059         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
5060         from tree.
5061
5062 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
5063
5064         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
5065         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
5066
5067 2004-09-17  Jones Desougi  <jones@ingate.com>
5068
5069         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
5070         * configure, config.in: Regenerate.
5071
5072 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
5073
5074         * tree.c, tree.h (tree_class_strings): Make array const.
5075         Reindent per coding convention.  Move asterisk to proper place
5076         per coding convention.
5077
5078 2004-09-18  Andreas Schwab  <schwab@suse.de>
5079
5080         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
5081         (tree-vectorizer.o): Likewise.
5082         (targhooks.o): Likewise.
5083
5084 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
5085             Zack Weinberg  <zack@codesourcery.com>
5086
5087         * alias.c (find_base_decl): Remove unreachable case '3' block.
5088         * expr.c (safe_from_p): Abort if passed a type.
5089         * tree-gimple.c (recalculate_side_effects): Abort if passed
5090         anything other than an expression.
5091         * tree-ssa-pre.c (phi_translate): Return expr immediately if
5092         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
5093         Abort on un-handled tree classes.
5094         (valid_in_set): Likewise.
5095         * tree.c (tree_code_class_strings): New static data.
5096
5097         * tree.h (enum tree_code_class): New.
5098         (tree_code_class_strings): Declare.
5099         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
5100         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
5101         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
5102         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
5103         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
5104
5105         * tree.def, c-common.def, objc/objc-tree.def: Use
5106         tree_code_class enumeration constants instead of code letters.
5107
5108         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
5109         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
5110         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
5111         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
5112         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
5113         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
5114         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
5115         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
5116         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
5117         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
5118         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
5119         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
5120         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
5121         Update to match.
5122
5123         * LANGUAGES: Add note about change.
5124
5125 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
5126
5127         PR tree-optimization/17319
5128         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
5129         examine pointers on the LHS of an assignment.
5130         (collect_points_to_info_r): Handle RETURN_EXPR.
5131
5132 2004-09-17 Jeff Law  <law@redhat.com>
5133
5134         * tree-ssa-dom.c (const_and_copies_stack): New.
5135         (dom_walk_block_data): Remove const_and_copies field.
5136         (record_const_or_copy): No longer need to pass in varray_type *.
5137         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
5138         Callers updated.
5139         (record_equality): Similarly.
5140         (restore_vars_to_original_value): Similarly.  Revamp to use new
5141         single global stack rather than per-block stacks.
5142         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
5143         (thread_across_edge): Remove now unused parameters.
5144         (dom_opt_initialize_block_local_data): No longer test the block
5145         local CONST_AND_COPIES.
5146         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
5147
5148 2004-09-17  Jan Hubicka  <jh@suse.cz>
5149
5150         PR tree-optimization/17509
5151         * tree-optimize.c (update_inlined_to_pointers): New function.
5152         (tree_rest_of_compilation): Use it.
5153
5154 2004-09-17  Devang Patel  <dpatel@apple.com>
5155
5156         * dbxout.c (get_lang_number): New.
5157         (dbxout_init): Include lang number in N_SO  stab.
5158         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
5159         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
5160
5161 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
5162
5163         PR tree-optimization/17273
5164         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
5165         replacement is a constant.
5166
5167 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
5168
5169         * c-tree.h (enum c_typespec_keyword): New.
5170         (struct c_declspecs): Adjust description of "type".  Remove
5171         specbits, explicit_int_p and explicit_char_p.  Rename
5172         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
5173         short_p, signed_p, unsigned_p and complex_p.
5174         (finish_declspecs): New.
5175         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
5176         typename): Call finish_declspecs.
5177         * c-decl.c (finish_declspecs): New.
5178         (declspecs_add_type): Check for combinations which cannot occur in
5179         valid specifier lists.  Update comments.
5180         (shadow_tag_warned): Remove checks done in finish_declspecs.
5181         Don't report useless type name if type defaulted to int.
5182         (grokdeclarator): Remove checks and actions done in
5183         finish_declspecs.  Don't allow for type being NULL.  Update for
5184         datastructures changes.  Initialize decl_attr.
5185         (build_null_declspecs, quals_from_declspecs): Update for
5186         datastructures changes.
5187
5188 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
5189
5190         * doc/extend.texi: Fix duplicated word.
5191
5192 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
5193
5194         * doc/invoke.texi: Remove stray explanation on
5195         -freduce-all-givs and -fmove-all-movables.
5196
5197 2004-09-17  James Morrison  <phython@gcc.gnu.org>
5198
5199         * doc/cfg.texi: Use @smallexample.
5200         * doc/md.texi: Likewise.
5201         * doc/tree-ssa.texi: Likewise.
5202         * doc/extend.texi: Likewise.  Use @r{} in comments.
5203         * doc/trouble.texi: Use @r{} in comments.
5204
5205 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
5206
5207         * configure.ac (gcc_cv_gld_version): Handle whitespace before
5208         "VERSION=".
5209         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
5210         * configure: Regenerate.
5211
5212 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
5213
5214         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
5215         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
5216         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
5217         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
5218         slashes in substitutions.
5219         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
5220
5221 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
5222
5223         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
5224         gimplify.c, lambda-code.c, optabs.c, predict.c,
5225         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
5226         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
5227         conventions.
5228
5229 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
5230
5231         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
5232         doc/extend.texi, doc/install.texi, doc/invoke.texi,
5233         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
5234         doc/trouble.texi: Use @option around options.
5235
5236 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
5237
5238         * Makefile.in (gen-protos.o): Depend on errors.h.
5239
5240 2004-09-17  Steven Bosscher  <stevenb@suse.de>
5241
5242         PR tree-optimization/17513
5243         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
5244         for successors of the entry block.
5245
5246 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
5247
5248         PR rtl-optimization/15187
5249         * ifcvt.c (noce_try_cmove_arith): Exit early if total
5250         insn_rtx_cost of both branches > BRANCH_COST
5251
5252 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
5253
5254         PR tree-optimization/17528
5255         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
5256         erase the may-alias set for a tag when merging it with
5257         another.
5258
5259 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5260
5261         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
5262         for 32-bit TARGET_SHMEDIA.
5263         (call_value): Likewise.
5264
5265 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
5266
5267         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
5268         test apply only to TREE_STATIC and DECL_EXTERNAL.
5269
5270 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5271
5272         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
5273         * basic-block.h (get_dominated_by_region): Declare.
5274         * dominance.c (get_dominated_by_region): New function.
5275         * tree-cfg.c: Include cfglayout.h.
5276         (tree_duplicate_bb): Duplicate also phi nodes.
5277         (struct ssa_name_map_entry): New type.
5278         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
5279         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
5280         allocate_ssa_names, rewrite_to_new_ssa_names_def,
5281         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
5282         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
5283         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
5284         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
5285         rewrite_to_new_ssa_names, allocate_ssa_names,
5286         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
5287         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
5288         (copy_loop_headers): Use tree_duplicate_sese_region.
5289
5290 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
5291
5292         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
5293
5294 2004-09-16 Jeff Law  <law@redhat.com>
5295
5296         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
5297         (rewrite_block_data): Remove, no longer used.
5298         (rewrite_initialize_block_local_data): Remove, no longer used.
5299         (rewrite_initialize_block): Mark parameters as unused as needed.
5300         Change references to the block local block_defs to be block_defs_stack.
5301         Push a marker onto the block_defs_stack.
5302         (ssa_rewrite_initialize_block): Similarly.
5303         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
5304         (ssa_register_new_def): No longer needs varray argument.  Use
5305         block_defs_stack instead.  No longer handle possibly null block_defs
5306         varray.  Reverse order of items we push on the stack to make it
5307         easier to identify our marker.
5308         (register_new_def): No longer handle possibly null block_defs
5309         varray.
5310         (rewrite_finalize_block): Revamp to look for markers in the global
5311         block_defs_stack varray rather than wiping a block local varray.
5312         Mark arguments as unused as needed.
5313         (ssa_rewrite_finalize_block): Similarly.
5314         (rewrite_into_ssa): Update initialization of dom walker structure
5315         to reflect that we don't need block local data anymore.  Initialize
5316         the block_defs_stack varray.
5317         (rewrite_ssa_into_ssa): Similarly.
5318         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
5319         (struct dom_walk_data): Kill block_defs field.
5320         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
5321         (thread_across_edge): Use the global block_defs_stack instead of
5322         the old block_defs varray.
5323         (dom_opt_initialize_block_local_data): Update now that we don't have
5324         block_defs field to check anymore.
5325         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
5326         (restore_currdefs_to_original_value): Use the new block_defs_stack
5327         instead of a block local varray.
5328         (dom_opt_finalize_block): Similarly.
5329         (record_equivalencs_from_phis): Similarly.
5330         (optimize_stmt, register_definitions_for_stmt): Similarly.
5331
5332 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
5333
5334         PR tree-optimization/17517
5335         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5336         coalesce same-root variables without checking for abnormal PHI usage.
5337
5338 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
5339
5340         * cfgloop.h (duplicate_loop):  Add prototype.
5341         * cfgloopmanip.c (duplicate_loop): Make non-static.
5342         * lambda-code.c (perfect_nestify): Factor out test whether
5343         we can handle this loop into separate function.
5344         Call it.
5345         (can_convert_to_perfect_nest): New function.
5346         (replace_uses_of_x_with_y): Add modify_stmt call.
5347         * tree-loop-linear.c (linear_transform_loops): Call
5348         rewrite_into_loop_closed_ssa and free_df.
5349
5350 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
5351
5352         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
5353         loop invariant as well.
5354         (perfect_nestify): new function.
5355         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
5356         upper bounds, and steps.
5357         Set outerinductionvar properly.
5358         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
5359         parameters.
5360         Return NULL if we need a perfect loop and can't make one.
5361         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
5362         (not_interesting_stmt): New function.
5363         (phi_loop_edge_uses_def): Ditto.
5364         (stmt_uses_phi_result): Ditto.
5365         (stmt_is_bumper_for_loop): Ditto.
5366         (perfect_nest_p): Ditto.
5367         (nestify_update_pending_stmts): Ditto.
5368         (replace_uses_of_x_with_y): Ditto.
5369         (stmt_uses_op): Ditto.
5370         (perfect_nestify): Ditto.
5371         * lambda-mat.c (lambda_matrix_id_p): New function.
5372         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
5373         * lambda.h: Update prototypes.
5374         * tree-loop-linear (linear_transform_loop): Use new
5375         perfect_nest_p. Detect and ignore identity transform.
5376         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
5377
5378 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
5379
5380         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
5381         Gather also strides of accessed data.  Pass in the data references
5382         array.
5383         (try_interchange_loops): Add a new heuristic for handling the temporal
5384         locality.  Pass in the data references array.
5385         (linear_transform_loops): Pass the data references array to
5386         try_interchange_loops.
5387
5388 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
5389
5390         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
5391
5392 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
5393
5394         * doc/c-tree.texi (Classes): Remove index entries for
5395         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
5396
5397 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5398
5399         * fold-const.c (fold): Fold difference of addresses.
5400         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
5401         get_inner_reference.
5402         * tree-ssa-loop-ivopts.c (peel_address): Removed.
5403         (ptr_difference_const): Moved to fold-const.c.
5404         (split_address_cost): Use get_inner_reference instead of peel_address.
5405         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
5406         * tree.h (ptr_difference_const): Export.
5407
5408         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
5409         variable type to the dump.  Fix indentation.
5410         (idx_find_step): Handle nonconstant array_ref_element_size and
5411         array_ref_low_bound.
5412         (idx_record_use): Handle array_ref_element_size and
5413         array_ref_low_bound.
5414         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
5415         statements correctly.
5416         (get_computation_at, iv_value): Do not unshare expressions here.
5417         (rewrite_use_outer): Unshare the expression before it is emitted
5418         to code.
5419         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
5420         Moved to tree.c.
5421         * tree.c (unsigned_type_for, signed_type_for): Moved from
5422         tree-ssa-loop-niter.c.  Use langhooks.
5423         * tree.h (signed_type_for): Export.
5424
5425 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
5426
5427         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
5428         prototype.
5429
5430 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
5431
5432         PR target/11572
5433         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
5434         Add two parameters to extra_includes.
5435         (C_INCPATH_INIT): Remove.
5436         * c-incpath.c (register_include_chains): Call extra_pre_includes
5437         before adding the standard include directory.
5438         Update call to extra_includes.
5439         (!defined TARGET_EXTRA_INCLUDES): Update
5440         hook_void_charptr_charptr_int and add !define
5441         TARGET_EXTRA_PRE_INCLUDES.
5442         (!define TARGET_EXTRA_INCLUDES): Define as
5443         hook_void_charptr_charptr_int.
5444         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5445         (target_c_incpath): Always declare.
5446         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
5447         empty function.
5448         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
5449         * config/darwin.h: (darwin_register_frameworks): Update for
5450         the two new parameters.
5451         (darwin_register_objc_includes): Add prototype.
5452         (TARGET_EXTRA_PRE_INCLUDES): Define.
5453         * config/darwin-c.c (darwin_register_objc_includes): New function.
5454         (darwin_register_frameworks): Update for the two new parameters.
5455         (target_c_incpath): Remove.
5456         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
5457         the compile line.
5458         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
5459         parameters.
5460         (TARGET_EXTRA_PRE_INCLUDES): Document.
5461
5462         * gcc.c (spec_function): Add replace-outfile.
5463         (replace_outfile_spec_function): New function.
5464         * config/darwin.h (LINK_SPEC): Add replace
5465         -lobjc with -lobjc-gnu if -fgnu-runtime is
5466         supplied.
5467         * invoke.texi (replace-outfile): Document.
5468
5469 2004-09-13  Jan Hubicka  <jh@suse.cz>
5470
5471         * predict.c (expr_expected_value, strip_builtin_expect): New function.
5472         (tree_predict_by_opcode): Use it.
5473         (tree_estimate_probability): Add, for now disabled,
5474         strip_builtin_expect call.
5475
5476 2004-09-15  James E Wilson  <wilson@specifixinc.com>
5477
5478         PR target/17455
5479         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
5480         if current_function_decl is a sibcall.
5481
5482 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5483
5484         * varasm.c (default_function_rdodata_section): Make sure to pass
5485         along a decl for a link-once section.
5486
5487 2004-09-15  Richard Henderson  <rth@redhat.com>
5488
5489         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
5490         warning with code disable.  Fix formatting.
5491
5492 2004-09-15  Steven Bosscher  <stevenb@suse.de>
5493
5494         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
5495         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
5496         after propagating into an ADDR_EXPR.
5497
5498 2004-09-15  Andrew Pinski  <apinski@apple.com>
5499
5500         PR rtl-opt/17427
5501         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
5502         Move it out of gcc_assert.
5503
5504 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
5505
5506         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
5507         except.c, fold-const.c, function.c, langhooks.c, params.c,
5508         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
5509         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
5510         for quoting in diagnostics going through pretty-print.c.  Use ''
5511         for quoting in other diagnostic text.
5512         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
5513         translation.
5514         * Makefile.in (langhooks.o): Update dependencies.
5515         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
5516         formats.
5517
5518 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
5519
5520         * configure.ac: Check for COMDAT support.  Robustify check for
5521         SHF_MERGE support.
5522         * configure: Regenerated.
5523         * config.in: Likewise.
5524         * langhooks-def.h (lhd_comdat_group): New function.
5525         (LANG_HOOKS_COMDAT_GROUP): New macro.
5526         (LANG_HOOKS_DECLS): Use it.
5527         * langhooks.c (lhd_comdat_group): Define.
5528         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
5529         * output.h (named_section_flags): Make it a macro.
5530         (named_section_real): New function.
5531         (default_no_named_section): Add decl parameter.
5532         (default_elf_asm_named_section): Likewise.
5533         (default_coff_asm_named_section): Likewise.
5534         (default_pe_asm_named_section): Likewise.
5535         * target.h (gcc_target): Adjust type of named_section.
5536         * varasm.c (named_section_flags): Rename to named_section_real.
5537         Add decl parameter.
5538         (default_no_named_section): Add decl parameter.
5539         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
5540         with the case that ASM_COMMENT_START is "@".
5541         (default_coff_asm_named_section): Add decl parameter.
5542         (default_pe_asm_named_section): Likewise.
5543         * config/alpha/alpha.c (vms_asm_named_section): Add decl
5544         parameter.
5545         (unicosmk_asm_named_section): Likewise.
5546         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
5547         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
5548         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
5549         * config/cris/cris-protos.h (cris_target_asm_named_section):
5550         Likewise.
5551         * config/cris/cris.c (cris_target_asm_named_section):
5552         Likewise.
5553         * config/darwin/darwin-protos.h (darwin_asm_named_section):
5554         Likewise.
5555         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
5556         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
5557         * config/i386/i386-protos.h (i386_pe_asm_named_section):
5558         Likewise.
5559         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
5560         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
5561         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
5562         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
5563         Likewise.
5564         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
5565         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
5566         * cp/cp-tree.h (cxx_comdat_group): Declare.
5567         * cp/decl.c (cxx_comdat_group): New function.
5568
5569 2004-09-15  Jan Hubicka  <jh@suse.cz>
5570
5571         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
5572         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
5573
5574         * tree-cfg.c (remove_bb): Release SSA defs.
5575
5576 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5577
5578         * doc/tm.texi: Follow spelling conventions.
5579
5580 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
5581
5582         * tree-ssa-dom.c: Fix comment typos.
5583
5584 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
5585
5586         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
5587         include ccr.
5588         (ppc_fallback_frame_state): Save location of CR.
5589
5590 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
5591
5592         * expr.c (string_constant): Handle also read-only variables
5593         initialized to string literals.
5594
5595         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
5596         into memcpy (x, y, 1) if memcpy can be expanded inline.
5597
5598 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5599
5600         PR tree-optimization/17468
5601         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
5602         definition inside a block precede uses.
5603         * tree-tailcall.c (adjust_return_value): Emit statements in the
5604         correct order.
5605
5606 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
5607
5608         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
5609
5610 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
5611
5612         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
5613
5614 2004-09-14 Jeff Law  <law@redhat.com>
5615
5616         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
5617         (struct dom_walk_block_data): Remove avail_exprs member.
5618         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
5619         (lookup_avail_expr): No longer need to pass in address of
5620         the block local available exprs stack.  All callers changed.
5621         (simplify_cond_and_lookup_avail_expr): Similarly.
5622         (simplify_switch_and_lookup_avail_expr): Similarly.
5623         (get_eq_expr_value, record_cond): Likewise.
5624         (record_dominating_conditions): Likewise.
5625         (update_rhs_and_lookup_avail_expr): Likewise.
5626         (record_equivalences_from_stmt): Likewise.
5627         (dom_opt_initialize_block_local_data): No longer test state of
5628         block local avail_exprs.
5629         (dom_opt_initialize_block): Mark unwind point in the global
5630         avail_expr stack.
5631         (remove_expressions_from_table): Update to unwind to the
5632         most recent unwind marker in the global avail_expr stack.
5633         All callers changed.
5634         (dom_opt_finalize_block): Mark unwind point in the global
5635         avail_expr stack as needed.
5636         (record_cond): Push elements into the global avail_exprs stack.
5637
5638         * tree-dfa.c (free_df_for_stmt): No longer static.
5639         (free_df): Update comments.
5640         * tree-flow.h (free_df_for_stmt): Prototype.
5641         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
5642         call release_defs.
5643
5644 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5645
5646         PR tree-optimization/17252
5647         * tree-ssa-alias.c (may_alias_p): Don't assume that a
5648         pointer may not point to itself when using relaxed
5649         aliasing rules.
5650
5651 2004-09-14  Richard Henderson  <rth@redhat.com>
5652
5653         PR middle-end/17397
5654         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
5655         while folding <ADDR_EXPR <INDIRECT_REF X>>.
5656
5657 2004-09-14  Andrew Pinski  <apinski@apple.com>
5658
5659         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
5660         sets of the pointers but the aliasing sets of what they point to.
5661
5662 2004-09-14  Roger Sayle  <roger@eyesopen.com>
5663
5664         PR rtl-optimization/9771
5665         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
5666         conditional compilation in init_reg_sets_1.
5667         (init_reg_sets_1): Let global_regs[i] take priority over the frame
5668         (but not stack) pointer exceptions to regs_invalidated_by_call.
5669         (globalize_reg): Globalizing a fixed register may need to update
5670         regs_invalidated_by_call.
5671
5672 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
5673
5674         PR tree-optimization/15262
5675         * tree-dfa.c (dump_variable): Also print the type of the
5676         variable.
5677         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
5678         memory tags are of conflicting alias sets but have no aliased
5679         symbols in common, add one tag to the alias set of the other.
5680         (setup_pointers_and_addressables): Remove hack to deal with
5681         programs with no aliased symbols.
5682         (may_alias_p): Don't special case aggregate types.
5683
5684 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5685
5686         PR c/15498
5687         * doc/invoke.texi (Environment Variables): Correct example locale.
5688
5689 2004-09-14  Jan Hubicka  <jh@suse.cz>
5690
5691         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
5692
5693 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
5694
5695         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
5696
5697 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
5698
5699         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
5700         restrict_p.
5701         (struct c_declarator): Change u.array.quals and pointer_quals to
5702         int.  Add u.array.attrs.
5703         (quals_from_declspecs): New.
5704         * c-decl.c (quals_from_declspecs): New.
5705         (shadow_tag_warned): Give more specific message for useless type
5706         qualifiers.
5707         (build_array_declarator, set_array_declarator_inner,
5708         grokdeclarator, make_pointer_declarator, build_null_declspecs,
5709         declspecs_add_qual): Update for changed structures.
5710
5711 2004-09-14  Jeff Law  <law@redhat.com>
5712
5713         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
5714         to a global varray.
5715         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
5716         (dom_opt_initialize_block_local_data): No longer test state
5717         of stmts_to_rescan.
5718         (dom_opt_finalize_block): Update due to change in scope of
5719         stmts_to_rescan.
5720         (optimize_stmt): Similarly.
5721
5722 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5723
5724         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
5725         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
5726         comment typos.  Follow spelling conventions.
5727
5728 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5729
5730         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
5731         config/i386/predicates.md, config/sparc/sparc.c: Follow
5732         spelling conventions.
5733
5734 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5735             Steven Bosscher  <stevenb@suse.de>
5736
5737         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
5738         * basic-block.h (struct reorder_block_def): Add copy_number field.
5739         * cfgloop.h (biv_p): Declare.
5740         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
5741         * common.opt (fsplit-ivs-in-unroller): New flag.
5742         * loop-iv.c (biv_p): New function.
5743         * loop-unroll.c: Include hashtab.h and recog.h.
5744         (struct iv_to_split, struct split_ivs_info): New types.
5745         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
5746         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
5747         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
5748         insert_base_initialization, split_iv): New functions.
5749         (peel_loop_completely, unroll_loop_constant_iterations,
5750         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
5751         Use them.
5752         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
5753
5754 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5755
5756         * tree-cfg.c (thread_jumps): Update dominators correctly in
5757         case destination of threaded edge dominates its source.
5758
5759 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5760
5761         * unroll.c: Removed.
5762         * loop.h: Removed.
5763         * Makefile.in (LOOP_H, unroll.o): Removed.
5764         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
5765         dependency.
5766         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
5767         reference.
5768         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
5769         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
5770         * loop.c: Do not include loop.h.
5771         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
5772         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
5773         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
5774         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
5775         struct loop_regs, struct loop_movables, struct loop_info): Moved
5776         from loop.h.
5777         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
5778         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
5779         find_common_reg_term, loop_iterations, final_giv_value): Moved
5780         from unroll.c.
5781         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
5782         loop_dump_stream, for_each_insn_in_loop, express_from,
5783         extend_value_for_giv, loop_iv_add_mult_emit_before,
5784         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
5785         loop_insn_first_p, get_condition_for_loop,
5786         loop_insn_emit_before, loop_insn_hoist,
5787         loop_insn_sink): Made static.
5788         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
5789         reference.
5790         (strength_reduce): Do not call unroller.
5791         (record_giv): Do not initialize unrolled field.
5792         (prescan_loop): Do not set loop_info->preconditioned.
5793         * passes.c: Do not include loop.h.
5794         (rest_of_handle_loop_optimize): Do not call unroller.
5795         * predict.c: Do not include loop.h.
5796         * rtl.h (NOTE_PRECONDITIONED): Removed.
5797         * stmt.c: Do not include loop.h.
5798         * toplev.c: Do not include loop.h.
5799         (process_options): Do not handle flag_old_unroll_loops.
5800
5801         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
5802         Documentation removed.
5803         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
5804
5805 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
5806
5807         * Makefile.in (STAGE1_CHECKING): New variable.
5808         (stage1_build): Use it.
5809         * tree-ssa.c (verify_ssa): Preserve state of dominance
5810         information.
5811
5812 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
5813
5814         * config/i386/i386.c (output_fp_compare): Add generation
5815         of ftst instruction.
5816         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
5817         Use output_fp_compare () function.
5818         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
5819         (fix_truncdi_memory): Remove operands[5] copy.
5820
5821 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
5822
5823         * config/m32r/m32r.md, config/m68k/m68kelf.h,
5824         config/mcore/mcore.md, config/rs6000/linux64.h,
5825         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
5826         typos.
5827
5828 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5829
5830         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
5831         * gen-protos.c: Include errors.h.
5832         (progname): Delete.
5833
5834 2004-09-14  Jan Hubicka  <jh@suse.cz>
5835
5836         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
5837         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
5838         (predict_loops): Use number_of_iterations_exit to predict
5839         number of iterations on trees.
5840
5841 2004-09-13  Dale Johannesen  <dalej@apple.com>
5842
5843         PR 17408
5844         PR 17409
5845         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
5846         objects declared extern.
5847
5848 2004-09-14  Paul Brook  <paul@codesourcery.com>
5849
5850         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
5851         HOST_WIDE_INT.
5852
5853 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5854
5855         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
5856         Only use TYPE_BINFO for aggregates.
5857
5858 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
5859
5860         * expmed.c (synth_mult): Initialize latency.  Check cost before
5861         checking ops count.
5862
5863 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
5864
5865         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
5866         add_call_clobber_ops and add_call_read_ops.
5867         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
5868         the number of vdefs and vuses inserted based on analysis of global
5869         variables across calls.  * tree-dfa.c (find_referenced_vars):
5870         Needed to reset static var maps before each function is compiled.
5871         * cgraphunit.c:
5872         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
5873         static_vars_info,functions_to_static_vars_info,module_statics_escape,
5874         all_module_statics,searchc_env,dfs_info): New fields to support
5875         analysis of static global variables.
5876         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
5877         cgraph_reset_static_var_maps, get_global_static_vars_info,
5878         get_global_statics_not_read, get_global_statics_not_written,
5879         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
5880         check_rhs_var, check_lhs_var, get_asm_expr_operands,
5881         process_call_for_static_vars, scan_for_static_refs,
5882         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
5883         clear_static_vars_maps, cgraph_propagate_bits,
5884         cgraph_characterize_statics): New. Functions to support analysis
5885         of static global variables.
5886         (cgraph_mark_local_and_external_functions): Renamed from:
5887         (cgraph_mark_local_functions)
5888         (cgraph_expand_all_functions): Remove call to
5889         cgraph_mark_local_and_external_functions.
5890         (cgraph_optimize): Added driver to analyze static variables whose
5891         scope is within the compilation unit.  * cgraph.h (struct
5892         cgraph_local_info, GTY): Added statics_read, statics_written,
5893         local, calls_read_all, calls_write_all, for_functions_valid.
5894         (struct cgraph_node): Added next_cycle.  * cgraph.c
5895         (dump_cgraph_node): Added print routines for new fields.  *
5896         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
5897         list.
5898
5899 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5900
5901         * c-decl.c (grokdeclarator): Correct comments about where storage
5902         class specifiers are rejected by grammar and add corresponding
5903         asserts.  Diagnose typedefs and parameters declared inline.
5904         Change warning for inline main to a pedwarn.  Only diagnose inline
5905         main if hosted.
5906         (declspecs_add_scspec): Allow duplicate "inline".
5907
5908 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
5909
5910         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
5911         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
5912
5913 2004-09-13  Richard Henderson  <rth@redhat.com>
5914
5915         PR 17436
5916         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
5917         (tree_type): Replace spare with contains_placeholder_bits.
5918         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
5919         make static.  Remove seen_types list.
5920         (type_contains_placeholder_p): New.
5921
5922 2004-09-13  James E Wilson  <wilson@specifixinc.com>
5923
5924         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
5925         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
5926         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
5927         bdesc_arrays instead of mips_bdesc.
5928         (mips_init_builtins): Likewise.
5929         * config/mips/mips.h (TARGET_SB1): New.
5930         (HAVE_SQRT_P): Delete.
5931         * config/mips/mips.md (divide_condition): Support V2SF.
5932         (sqrt_condition, recip_condition): New.
5933         (div<mode>3): Use ANYF instead of SCALARF.
5934         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
5935         MODE.
5936         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
5937         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
5938         instead of MODE.
5939         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
5940         instead of SCALARF.  Use UNITMODE instead of MODE.
5941
5942 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
5943
5944         * config.in: Regenerate after removal of libbanshee.
5945
5946 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
5947
5948         PR tree-optimization/17400
5949         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5950         coalesce partitions when one occurs in an abnormal PHI.
5951
5952 2004-09-13  Andrew Pinski  <apinski@apple.com>
5953
5954         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
5955         name to _new_size.
5956
5957 2004-09-13  Richard Henderson  <rth@redhat.com>
5958
5959         PR inline-asm/6806
5960         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
5961         (cselib_invalidate_rtx_note_stores): New.
5962         (cselib_record_sets, cselib_process_insn): Update to match.
5963         * cselib.h (cselib_invalidate_rtx): Declare.
5964         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
5965
5966 2004-09-13  Richard Henderson  <rth@redhat.com>
5967
5968         PR tree-opt/10528
5969         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
5970         after copying its argument.
5971
5972 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
5973
5974         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
5975         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
5976         in diagnostics.  Use %' for English apostrophes.
5977         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
5978         (pedwarn_c90, pedwarn_c99): Use it.
5979         * c-decl.c (lookup_label): Quote label name in diagnostic.
5980         * c-parse.in (yyprint): Use ' instead of ` for left quote.
5981         * c-typeck.c (warn_for_assignment): Likewise.
5982
5983 2004-09-13  Jan Hubicka  <jh@suse.cz>
5984
5985         * i386.c (x86_schedule): New global variable.
5986         (override_options): Disable scheduling when not supported.
5987         * i386.h (x86_schedule): Declare.
5988         (TARGET_SCHEDULE): New macro.
5989
5990 2004-09-12  Richard Henderson  <rth@redhat.com>
5991
5992         PR c++/16254
5993         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
5994         * tree.c, tree.h (has_cleanups): Remove.
5995
5996 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5997
5998         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
5999         arguments of the phi nodes correctly.
6000
6001 2004-09-12  Jan Hubicka  <jh@suse.cz>
6002
6003         * ggc-common.c (cmp_statistics): Fix sorting.
6004
6005 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
6006
6007         PR target/16795
6008         * expmed.c (expand_divmod): If cheap power of 2 divide is
6009         available, use it for negative constant as well.
6010
6011 2004-09-12  Andrew Pinski  <apinski@apple.com>
6012
6013         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
6014         size of 0.
6015
6016         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
6017
6018 2004-09-12  Richard Henderson  <rth@redhat.com>
6019
6020         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
6021         or minus one.
6022         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
6023         post-reload, and scratch NULL.
6024         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
6025         (x86_shift_adj_2): Use ix86_expand_clear.
6026         (ashldi3): Remove CMOVE expansion difference.
6027         (ashldi3_1): Remove.
6028         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
6029         add constraints for immediates.  New peephole for split-with-temp.
6030         Run splitter after peep2 pass.
6031         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
6032         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
6033         (setcc_2): Rename with *.
6034         * config/i386/predicates.md (reg_or_pm1_operand): New.
6035         (ashldi_input_operand): New.
6036
6037 2004-09-12  Richard Henderson  <rth@redhat.com
6038
6039         * print-rtl.c (print_decl_name): New.
6040         (print_mem_expr): Use it.
6041
6042 2004-09-12  Richard Henderson  <rth@redhat.com
6043
6044         PR 17186, part deux
6045         * except.c (sjlj_emit_function_exit): Fix logic locating
6046         sjlj_exit_after in final block.
6047
6048 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
6049
6050         * common.opt: Remove flags -fmove-all-movables and
6051         -freduce-all-givs.
6052         * loop-invariant.c (find_invariants_to_move):
6053         Remove all uses of flag_move_all_movables.
6054         * loop.c (move_movables): Remove all uses of
6055         flag_move_all_movables.
6056         (strength_reduce): Remove all uses of
6057         flag_reduce_all_givs.
6058         * doc/invoke.texi: Remove documentation of flags
6059         -fremove-all-movables and -freduce-all-givs.
6060
6061 2004-09-11  Roger Sayle  <roger@eyesopen.com>
6062
6063         PR middle-end/17411
6064         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
6065         change. elt->type may be a floating point type, so use fold_convert.
6066
6067 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
6068
6069         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
6070         the thing referenced as used, not the stub itself.
6071
6072 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6073
6074         * c-tree.h (enum c_storage_class): New.
6075         (struct c_declspecs): Add storage_class, inline_p and thread_p.
6076         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
6077         declarations and "auto" or "register" in file scope empty
6078         declarations.  Give more specific warnings for other cases of
6079         storage class specifiers in empty declarations.
6080         (grokdeclarator): Update for new structures.  Don't check for
6081         multiple storage classes.  Diagnose file-scope "register" if
6082         pedantic.
6083         (build_null_declspecs): Update.
6084         (declspecs_add_scspec): Update.  Diagnose multiple storage class
6085         specifiers and invalid uses of "__thread".
6086
6087 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
6088
6089         * tree.c (tree_code_size): New function, bulk of code from tree_size.
6090         (tree_size, make_node): Use it.
6091         * tree-ssa-pre.c (init_pre): Use it.
6092         * tree.h: Prototype it.
6093
6094 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6095
6096         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
6097         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
6098         redirect_immediate_use): Use PHI_DF.
6099         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
6100         (bb_for_stmt): Use PHI_BB.
6101         (get_immediate_uses): Use PHI_DF.
6102         * tree-ssa-dse.c (max_stmt_uid): New variable.
6103         (get_stmt_uid): New function.
6104         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
6105         node annotations.
6106         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
6107         (max_uid): Renamed to max_stmt_uid.
6108         (get_stmt_uid): New function.
6109         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
6110         phi node annotations.
6111         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
6112         * tree.h (PHI_BB, PHI_DF): New accessor functions.
6113         (struct tree_phi_node): Add bb and df fields.
6114
6115 2004-09-11  Richard Henderson  <rth@redhat.com>
6116
6117         PR middle-end/17416
6118         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
6119         in conflict loop.
6120
6121 2004-09-11  Jan Hubicka  <jh@suse.cz>
6122
6123         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
6124         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
6125         * i386.md (i387_cw): Add 'uninitialized' mode.
6126
6127         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
6128         (output_location): Break out from ....
6129         (branch_prob): ... here; handle gcov output on trees.
6130         * toplev.c (process_options): No longer be sorry about coverage for
6131         trees.
6132
6133 2004-09-11  Steven Bosscher  <stevenb@suse.de>
6134
6135         PR c++/17412
6136         * fold-const.c (fold): Do not try to fold the operand of a
6137         CLEANUP_POINT_EXPR if that operand does itself not have any
6138         operands.
6139
6140         PR middle-end/17417
6141         * langhooks.c (lhd_decl_printable_name): Make sure that this
6142         function is called with is a decl node that has an identifier.
6143         * tree-pretty-print.c (dump_function_name): New function to
6144         wrap PRINT_FUNCTION_NAME and dump_decl_name.
6145         (print_call_name): Use it.
6146
6147 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
6148
6149         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
6150         "config.h" if not.
6151
6152 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
6153
6154         * tree-ssa-alias.c (collect_points_to_info_r): Handle
6155         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
6156         to OFFSET.
6157
6158 2004-09-11  Richard Henderson  <rth@redhat.com>
6159
6160         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
6161         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
6162         operand of the ADDR_EXPR.
6163         (expand_expr_real_1): Update to match.
6164
6165 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
6166
6167         PR target/17277
6168         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
6169         choose 64-bit version.
6170
6171 2004-09-11  Richard Henderson  <rth@redhat.com>
6172
6173         PR c/17396
6174         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
6175
6176 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
6177
6178         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
6179         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
6180         Insert @: after i.e. or e.g.
6181
6182 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6183
6184         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
6185         D.xxx rather than <Dxxx>.
6186
6187 2004-09-10  Adam Nemet  <anemet@lnxw.com>
6188
6189         * configure.ac (AC_MSG_CHECKING(what linker to use)):
6190         in_tree_ld_is_elf should be true for LynxOS.
6191         * configure: Regenerate.
6192
6193 2004-09-10  Adam Nemet  <anemet@lnxw.com>
6194
6195         * Makefile.in (all.cross): Add srcextra.
6196
6197 2004-09-10  Roger Sayle  <roger@eyesopen.com>
6198
6199         PR middle-end/17024
6200         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
6201         floating point comparison operators.  Change aborts to gcc_asserts.
6202
6203 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6204
6205         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
6206
6207 2004-09-10  James E Wilson  <wilson@specifixinc.com>
6208
6209         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
6210         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
6211
6212         * convert.c (convert_to_vector): Replace recursive call with
6213         error_mark_node.
6214
6215         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
6216         Add integer argument named constant.  Use const_tiny_rtx instead of
6217         CONST0_RTX.
6218         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
6219         and CONST1_RTX.
6220         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
6221         vector types.
6222         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
6223         of gen_rtx_raw_CONST_VECTOR.
6224
6225 2004-09-10  Eric Christopher  <echristo@redhat.com>
6226
6227         PR c/16046
6228         * c-parse.in (attribute): Add NULL_TREE for error case
6229         for error recovery.
6230
6231 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
6232
6233         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
6234         (extract_interface_info): Delete prototype.
6235         * c-decl.c (extract_interface_info): Delete stub.
6236         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
6237         it's not already been done ...
6238         (init_c_lex): ... not here.
6239         (fe_file_change): Don't call extract_interface_info.
6240
6241 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6242
6243         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
6244         typedef_p and typedef_signed_p.
6245         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
6246         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
6247         Check typedef_p and typedef_signed_p, not typedef_decl.
6248         (grokfield): Check typedef_p, not typedef_decl.
6249         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
6250         not typedef_decl.
6251         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
6252         typedef_decl.
6253
6254 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6255
6256         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
6257
6258 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
6259
6260         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
6261         temporary variables.
6262
6263         * dbxout.c (dbxout_block): Update for
6264         current_function_func_begin_label a string.
6265         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
6266         * except.c (dw2_output_call_site_table): Likewise.
6267         * toplev.c (current_function_func_begin_label): Likewise.
6268         * tree.h (current_function_func_begin_label): Likewise.
6269         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
6270
6271         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
6272         loop.
6273
6274         * config/darwin.c: Include target.h.
6275         (struct machopic_indirection): Make ptr_name a string.
6276         (machopic_indirection_hash): Update for ptr_name a string.
6277         (machopic_indirection_eq): Likewise.
6278         (machopic_indirection_name): Likewise.
6279         (machopic_output_indirection): Likewise.
6280         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
6281         string.  Don't expect stub names to be in the identifier hash table.
6282         Do call strip_name_encoding before looking up entry in ID hash table.
6283         * config/t-darwin (darwin.o): Add target.h to dependencies.
6284
6285         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
6286         of fprintf for register names.
6287
6288         * output.h (unlikely_section_label): Delete declaration.
6289         (unlikely_text_section_name): Likewise.
6290         * varasm.c (unlikely_section_label_printed): Make static.
6291         (unlikely_section_label): Likewise.
6292         (unlikely_text_section_name): Likewise.
6293         (assemble_start_function): Use reconcat.
6294
6295         * rtl.def (REG): Add comment to describe third field.
6296
6297 2004-09-10  Andrew Pinski  <apinski@apple.com>
6298
6299         * config/darwin.c (machopic_mcount_stub_name): Call
6300         machopic_indirection_name instead of making the string
6301         ourselves.
6302
6303 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
6304
6305         Revert
6306
6307         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
6308
6309             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
6310             memory tag is call clobbered, so are its aliases.
6311             (group_aliases): When two memory tags being grouped, if one is
6312             call clobbered, so are the other and its aliases.
6313             (add_may_alias): Remove call-clobbering stuff.
6314             (replace_may_alias): Likewise.
6315             (merge_pointed_to_info): Merge pt_global_mem
6316
6317 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6318
6319         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
6320         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
6321         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
6322         tree-scalar-evolution.c, tree-ssa-copyrename.c,
6323         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
6324
6325 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6326
6327         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
6328         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
6329         pair.  Remove match_dup from inputs.  Remove masaccs handling.
6330         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
6331         (masaccs, mdasaccs): Turn into define_insns.
6332
6333 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6334
6335         * tree-tailcall.c (process_assignment): Only do accumulator transforms
6336         for floating-point types if flag_unsafe_math_optimizations.
6337
6338 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6339
6340         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
6341         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
6342         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
6343         config/h8300/h8300.md, config/i386/gmm_malloc.h,
6344         config/ia64/ia64.md, config/ip2k/libgcc.S,
6345         config/mips/mips-ps-3d.md, config/mips/mips.c,
6346         config/rs6000/rs6000.c, config/s390/s390.c,
6347         config/sh/symbian.c: Fix comment typos.
6348
6349 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6350
6351         * config/s390/s390.c (s390_emit_prologue): Added missing
6352         "{}" brackets.
6353
6354 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6355
6356         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
6357         typos.  Follow spelling conventions.
6358
6359 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6360
6361         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
6362         in diagnostic.  Don't dereference NULL TYPE_NAME.
6363
6364 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6365
6366         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
6367         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
6368         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
6369         value-prof.c: Fix comment typos.  Follow spelling conventions.
6370
6371 2004-09-10  Jan Hubicka  <jh@suse.cz>
6372
6373         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
6374         * tree-split_edge.c (tree_split_edge): Likewise.
6375         (thread_jumps): Likewise.
6376
6377 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
6378
6379         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
6380         typos.
6381
6382 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
6383
6384         * cgraph.h (cgraph_dump_file): Do not declare.
6385         * cgraphunit.c (cgraph_dump_file): Declare as static.
6386         (init_cgraph): New.
6387         * toplev.c (cgraph_dump_file): Do not declare.
6388         (compile_file): Call init_cgraph.
6389         * tree-dump.c (dump_files): Add IPA dump file, remove
6390         XML dump of call graph.
6391         (get_dump_file_name): Support IPA dump file naming scheme.
6392         * tree.h (enum tree_dump_index): Add IPA dump file, remove
6393         XML dump of call graph.
6394         * doc/invoke.texi (Debugging Options): Document the new options.
6395
6396 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
6397
6398         * doc/extend.texi: Document the FR-V built-in functions.
6399
6400 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6401
6402         * doc/sourcebuild.texi: Delete libbanshee reference.
6403
6404 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
6405
6406         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
6407
6408 2004-09-09  James E Wilson  <wilson@specifixinc.com>
6409
6410         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
6411         before calling vector_types_convertible_p.
6412         (digest_init): Check that inside_init has VECTOR_TYPE before calling
6413         vector_types_convertible_p.  Don't give another error if
6414         convert_for_assignment returns error_mark_node.
6415
6416 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6417
6418         PR middle-end/17055
6419         * fold-const.c (build_zero_vector): New function to construct a
6420         vector (either floating point or integer) of zeros.
6421         (fold_convert): Internally, enable conversions of integer zero
6422         to arbitrary vector types, using the new build_zero_vector.
6423
6424 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6425
6426         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
6427         expand a left shift by an immediate constant as either an ashl or
6428         a sequence of additions.
6429         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
6430         instead of calling gen_ashlsi3 with a constant directly.
6431
6432 2004-09-09  Roger Sayle  <roger@eyesopen.com>
6433
6434         * config/i386/i386.c (ix86_split_long_move): When optimizing for
6435         size, and the low and high parts of a DImode constant are equal,
6436         copy one register to another instead of loading the same immediate
6437         value twice.
6438
6439 2004-09-09  Richard Henderson  <rth@redhat.com>
6440
6441         PR middle-end/17367
6442         * function.c (assign_parm_setup_block): Only put PARALLELs into
6443         a register if use_register_for_decl.
6444
6445 2004-09-09  Eric Christopher  <echristo@redhat.com>
6446
6447         * ra-colorize.c (reset_lists): Move variable declaration inside
6448         ENABLE_CHECKING to avoid unused variable warnings when
6449         not --enable-checking.
6450         (check_colors): Ditto.
6451
6452 2004-09-09  Mike Stump  <mrs@apple.com>
6453
6454         * version.c (version_string): Bump to 4.0.0.
6455         * doc/include/gcc-common.texi (version-GCC): Likewise.
6456
6457 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
6458
6459         * doc/extend.texi (nothrow attribute): The attribute is not
6460         implemented in 3.2 and earlier.
6461
6462 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
6463
6464         * genrecog.c (compute_predicate_codes): Use op0_codes
6465         instead of codes.
6466
6467 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6468
6469         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
6470         implementation changes.
6471
6472 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6473
6474         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
6475         a PARALLEL instead of a SET due to added clobbers.
6476
6477 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
6478
6479         * reload.c (find_reloads_address): Pass correct operand to
6480         maybe_memory_address_p.
6481
6482 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
6483
6484         * Makefile.in: Remove libbanshee, tree-alias-*.
6485         Remove tree-alias-common.h dependencies.
6486         * common.opt: Remove -ftree-points-to.
6487         * configure.ac: Remove libbanshee.
6488         * flags.h: Remove pta_type, flag_tree_points_to.
6489         * gengtype.c (open_base_files): Remove tree-alias-type.h.
6490         * opts.c (OPT_ftree_points_to): Remove.
6491         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
6492         * tree-dfa.c: Remove tree-alias-common.h
6493         * tree-into-ssa.c: Ditto.
6494         * tree-outof-ssa.c: Ditto.
6495         * tree-ssa-copyrename.c: Ditto.
6496         * tree-ssa-live.c: Ditto.
6497         * tree-optimize.c: Ditto.
6498         * tree-ssa.c: Ditto.
6499         Remove pass_build_pta, pass_del_pta.
6500         * tree-pass.h: Ditto.
6501         * tree-ssa-alias.c: Remove tree-alias-common.h.
6502         (struct alias_stats_d): Remove pta_queries, pta_resolved.
6503         (pass_may_alias): Remove PROP_pta requirement.
6504         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
6505         (get_tmt_for): Ditto.
6506         (dump_alias_stats): Ditto.
6507         * doc/passes.texi: Remove blurb about points-to analysis.
6508         * fortran/Make-lang.in: Remove tree-alias-*.o.
6509
6510 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6511
6512         * genattrtab.c (write_insn_cases): New function, split out from
6513         write_attr_case.  Correctly handle define_peepholes when printing
6514         the instruction name.
6515         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
6516
6517 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
6518
6519         PR target/17377
6520         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
6521         * config/cris/cris.c (cris_return_address_on_stack): New function.
6522         * config/cris/cris.md ("return"): For location of return address,
6523         also check cris_return_address_on_stack.
6524
6525 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
6526
6527         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
6528         calling phi_ssa_name_p.
6529
6530 2004-09-09  Richard Henderson  <rth@redhat.com>
6531
6532         PR c/17322
6533         * c-typeck.c (valid_compound_expr_initializer): Use only
6534         initializer_constant_valid_p, and not TREE_CONSTANT.
6535         (digest_init): Likewise.
6536         (output_init_element): Likewise.
6537
6538 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6539
6540         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
6541         live_out_1, prune_hardregs_for_mode, init_one_web_common,
6542         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
6543         record_conflict, compare_and_free_webs, init_webs_defs_uses,
6544         parts_to_webs_1, parts_to_webs, reset_conflicts,
6545         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
6546         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
6547         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
6548         put_move, remove_move, combine, select_spill, colorize_one_web,
6549         try_recolor_web, insert_coalesced_conflicts, check_colors,
6550         break_precolored_alias, restore_conflicts_from_coalesce,
6551         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
6552         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
6553         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
6554         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
6555         check_df): Likewise.
6556         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
6557         real_arithmetic, real_compare, real_exponent, real_ldexp,
6558         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
6559         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
6560         real_digit, real_nan, real_maxval, round_for_format, real_convert,
6561         real_to_target, real_from_target, real_hash, encode_ieee_single,
6562         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
6563         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
6564         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
6565         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
6566         extract_insn, peep2_next_insn, peep2_reg_dead_p,
6567         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
6568         if_test_bypass_p): Likewise.
6569         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
6570         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
6571         emit_swap_insn, swap_to_top, move_for_stack_reg,
6572         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
6573         compensate_edge, convert_regs_1): Likewise.
6574         * regclass.c (init_reg_sets, init_reg_sets_1,
6575         memory_move_secondary_cost): Likewise.
6576         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
6577         Likewise.
6578         * reload.c (push_secondary_reload, find_valid_class, push_reload,
6579         operands_match_p, decompose, immune_p, find_reloads,
6580         find_reloads_toplev, find_reloads_address_1, subst_reloads,
6581         copy_replacements, refers_to_regno_for_reload_p,
6582         reg_overlap_mentioned_for_reload_p): Likewise.
6583         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
6584         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
6585         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
6586         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
6587         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
6588         do_output_reload, fixup_abnormal_edges): Likewise.
6589         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
6590         fill_slots_from_thread, relax_delay_slots): Likewise.
6591         * resource.c (mark_referenced_resources, mark_set_resources):
6592         Likewise.
6593         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
6594         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
6595         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
6596         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
6597         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
6598         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
6599         * rtlhooks.c (gen_lowpart_general): Likewise.
6600         * sbitmap.c (sbitmap_difference): Likewise.
6601         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
6602         sched_analyze, add_forward_dependence): Likewise.
6603         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
6604         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
6605         schedule_insns): Likewise.
6606         * sched-vis.c (print_pattern): Likewise.
6607         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
6608         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
6609         simplify_const_relational_operation, simplify_ternary_operation,
6610         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
6611         Likewise.
6612         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
6613         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
6614         resolve_operand_name_1, expand_return, expand_decl,
6615         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
6616         * stor-layout.c (put_pending_size, smallest_mode_for_size,
6617         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
6618         set_sizetype, get_mode_bounds): Likewise.
6619
6620 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
6621
6622         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
6623         * config/arm/pecoff.h, config/i386/beos-elf.h
6624         * config/i386/cygming.h, config/i386/i386-interix.h:
6625         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
6626         comment cloned from manual.
6627         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
6628
6629 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
6630
6631         * builtins.c (build_va_arg_indirect_ref): New function.
6632         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
6633         build_fold_indirect_ref.
6634         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
6635         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
6636         * tree.h: Declare new function.
6637
6638 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6639
6640         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
6641         dumping for development builds.
6642         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
6643         development builds only.
6644         * genattrtab.c (write_eligible_delay): Fix typo in previous
6645         commit.
6646         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
6647         gcc_assert.
6648
6649 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6650
6651         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
6652         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
6653         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
6654         hoist_code, extract_mentioned_regs_helper, compute_store_table,
6655         insert_store): Use gcc_assert and gcc_unreachable.
6656         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
6657         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
6658         ggc_record_overhead): Likewise.
6659         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
6660         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
6661         ggc_pop_context, clear_marks, validate_free_objects,
6662         ggc_pch_read): Likewise.
6663         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
6664         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
6665         ggc_push_context, check_cookies, ggc_collect,
6666         ggc_print_statistics): Likewise.
6667         * gimple-low.c (lower_function_body, lower_stmt,
6668         lower_bind_expr): Likewise.
6669         * gimplify.c (gimple_tree_eq, push_gimplify_context,
6670         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
6671         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
6672         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
6673         gimplify_case_label_expr, gimplify_exit_block_expr,
6674         canonicalize_component_ref, gimplify_compound_lval,
6675         gimplify_self_mod_expr, gimplify_call_expr,
6676         gimplify_init_ctor_eval, gimplify_init_constructor,
6677         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
6678         gimplify_expr, check_pointer_types_r,
6679         force_gimple_operand): Likewise.
6680         * global.c (global_alloc, build_insn_chain): Likewise.
6681         * graph.c (clean_graph_dump_file,
6682         finish_graph_dump_file): Likewise.
6683         gcov-io.c (gcov_open): Use GCOV_CHECK.
6684
6685 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6686
6687         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
6688
6689 2004-09-09  Jan Hubicka  <jh@suse.cz>
6690
6691         middle-end/17128
6692         * tree-inline.c (expand_call_inline): Make overactive sanity check
6693         happy.
6694
6695 2004-09-09  Jan Hubicka  <jh@suse.cz>
6696
6697         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
6698         VIEW_CONVERT_EXPR.
6699
6700 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6701
6702         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
6703         (gengtype.o): Depend on errors.h.
6704         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
6705         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
6706         attr_alt_subset_p, attr_alt_subset_of_compl_p,
6707         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
6708         write_test_expr, write_attr_value, write_eligible_delay,
6709         make_internal_attr, make_numeric_value): Likewise.
6710         * genautomata.c (regexp_name, get_str_vect,
6711         gen_presence_absence_set, automaton_decl_hash,
6712         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
6713         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
6714         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
6715         test_unit_reserv, it_is_empty_reserv_sets,
6716         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
6717         reserv_sets_and, output_cycle_reservs, get_free_state,
6718         intersected_state_reservs_p, states_union, remove_arc,
6719         copy_insn_regexp, transform_1, transform_2, transform_3,
6720         regexp_transform_func, store_alt_unit_usage,
6721         check_regexp_units_distribution, process_seq_for_forming_states,
6722         process_alts_for_forming_states, make_automaton,
6723         form_arcs_marked_by_insn, create_composed_state,
6724         set_out_arc_insns_equiv_num, partition_equiv_class,
6725         process_insn_equiv_class, set_insn_equiv_classes,
6726         units_to_automata_heuristic_distr, form_regexp,
6727         longest_path_length, output_dfa_max_issue_rate, add_vect,
6728         out_state_arcs_num, add_vect_el, output_trans_table,
6729         output_state_alts_table, output_dead_lock_vect,
6730         output_max_insn_queue_index_def,
6731         output_min_insn_conflict_delay_func,
6732         output_internal_insn_latency_func, output_print_reservation_func,
6733         output_cpu_unit_reservation_p, output_state_arcs,
6734         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
6735         make_default_insn_latency_attr,
6736         form_important_insn_automata_lists): Likewise.
6737         * genemit.c (gen_exp, output_add_clobbers,
6738         output_added_clobbers_hard_reg_p): Likewise.
6739         * genextract.c (print_path, main): Likewise.
6740         * genflags.c (gen_macro): Likewise.
6741         * gengenrtl.c: Include errors.h
6742         (type_from_format, accessor_from_format): Likewise.
6743         * gengtype.c (get_file_basename, output_mangled_typename,
6744         walk_type, write_types_process_field,
6745         write_types_local_process_field): Likewise.
6746         * genmodes.c (complete_mode): Likewise.
6747         * genopinit.c (gen_insn): Likewise.
6748         * genoutput.c (output_insn_data, check_constraint_len,
6749         constraint_len): Likewise.
6750         * genpreds.c (add_mode_tests):Likewise.
6751         * gen-protos.c (add_hash): Likewise.
6752         * genrecog.c (find_operand, find_matching_operand,
6753         validate_pattern, add_to_sequence, maybe_both_true,
6754         nodes_identical_1, merge_trees, write_switch, write_cond,
6755         write_action, is_unconditional, make_insn_sequence,
6756         debug_decision_2): Likewise.
6757         * gensupport.c (is_predicable, collect_insn_data,
6758         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
6759
6760 2004-09-09  Jan Hubicka  <jh@suse.cz>
6761
6762         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
6763         * cfgbuild.c (compute_outgoing_frequencies): When probability is
6764         missing, guess it.
6765         (find_many_sub_basic_blocks): Do update profile only when it is
6766         present.
6767         * predict.c (set_even_probabilities): Break out from ...
6768         (combine_predictions_for_insn): ... here; deal with
6769         !can_predict_insn_p insns.
6770         (combine_predictions_for_bb): Use set_even_probabilities.
6771         (bb_estimate_probability_locally): Break out from ....
6772         (estimate_probability): ... here.
6773         (guess_outgoing_edge_probabilities): New entry point.
6774
6775 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
6776
6777         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
6778         handle_braces, process_brace_body, main, used_arg,
6779         set_multilib_dir, print_multilib_info): Use fatal, not abort.
6780
6781         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
6782
6783         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
6784         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
6785         Morgan's theorem in last checkin.
6786
6787 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
6788             Nathan Sidwell  <nathan@codesourcery.com>
6789
6790         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
6791         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
6792         * timevar.c (timevar_push, timevar_pop, timevar_start,
6793         timevar_stop): Likewise.
6794         * toplev.c (default_pch_valid_p): Likewise.
6795         * tracer.c (tail_duplicate): Likewise.
6796         * tree-alias-common.c (get_alias_var_decl,
6797         get_values_from_constructor, create_alias_var, delete_alias_vars,
6798         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
6799         Likewise.
6800         * tree.c (tree_size, make_node_stat, copy_node_stat,
6801         build_int_cst_wide, integer_all_onesp, list_length, chainon,
6802         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
6803         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
6804         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
6805         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
6806         build_method_type_directly, decl_type_context, get_callee_fndecl,
6807         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
6808         tree_fold_gcd): Likewise.
6809         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
6810         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
6811         cleanup_control_expr_graph, find_taken_edge,
6812         find_taken_edge_switch_expr, phi_alternatives_equal,
6813         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
6814         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
6815         tree_split_edge, tree_verify_flow_info, thread_jumps,
6816         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
6817         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
6818         chrec_fold_multiply_poly_poly): Likewise.
6819         * tree-complex.c (extract_component, expand_complex_division,
6820         expand_complex_comparison, expand_complex_operations_1,
6821         build_replicated_const, expand_vector_operations_1): Likewise.
6822         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
6823         build_classic_dir_vector): Likewise.
6824         * tree-dfa.c (compute_immediate_uses_for_phi,
6825         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
6826         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
6827         * tree-dump.c (dequeue_and_dump): Likewise.
6828         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
6829         record_in_finally_tree, replace_goto_queue_1,
6830         maybe_record_in_goto_queue, verify_norecord_switch_expr,
6831         do_return_redirection): Likewise.
6832         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
6833         add_to_dst_predicate_list, find_phi_replacement_condition,
6834         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
6835         Likewise.
6836         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
6837         initialize_inlined_parameters, declare_return_variable,
6838         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
6839         optimize_inline_calls, copy_tree_r): Likewise.
6840         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
6841         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
6842         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
6843         tsi_split_statement_list_after, tsi_split_statement_list_before):
6844         Likewise.
6845         * tree-mudflap.c (mf_varname_tree): Likewise.
6846         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
6847         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
6848         * tree-optimize.c (tree_rest_of_compilation): Likewise.
6849         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
6850         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
6851         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
6852         Likewise.
6853         * tree-phinodes.c (resize_phi_node, add_phi_arg,
6854         remove_all_phi_nodes_for): Likewise.
6855         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
6856         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
6857         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
6858         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
6859         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
6860         generate_one_element_ref, generate_element_copy,
6861         generate_element_zero, scalarize_copy, scalarize_init,
6862         scalarize_ldst): Likewise.
6863         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
6864         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
6865         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
6866         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
6867         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
6868         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
6869         widen_bitfield, ccp_fold_builtin): Likewise.
6870         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
6871         replace_exp_1, propagate_tree_value): Likewise.
6872         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
6873         * tree-ssa-dce.c (set_control_dependence_map_bit,
6874         find_control_dependence, find_pdom, mark_operand_necessary,
6875         mark_stmt_if_obviously_necessary,
6876         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
6877         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
6878         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
6879         eliminate_redundant_computations, avail_expr_eq): Likewise.
6880         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
6881         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
6882         duplicate_blocks): Likewise.
6883         * tree-ssa-loop-im.c (for_each_index, set_level,
6884         is_call_clobbered_ref): Likewise.
6885         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
6886         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
6887         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
6888         peel_address, ptr_difference_cost, may_replace_final_value,
6889         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
6890         rewrite_use, rewrite_uses): Likewise.
6891         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6892         check_loop_closed_ssa_use): Likewise.
6893         * tree-ssanames.c (make_ssa_name): Likewise.
6894         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
6895         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
6896         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
6897         get_indirect_ref_operands, add_stmt_operand): Likewise.
6898         * tree-ssa-pre.c (value_exists_in_set_bitmap,
6899         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
6900         phi_translate, valid_in_set, compute_antic,
6901         find_or_generate_expression, create_expression_by_pieces, insert_aux,
6902         create_value_expr_from, eliminate): Likewise.
6903         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
6904         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
6905         Likewise.
6906         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
6907         eliminate_tail_call): Likewise.
6908         * tree-vectorizer.c (vect_create_index_for_array_ref,
6909         vect_align_data_ref, vect_create_data_ref,
6910         vect_create_destination_var, vect_get_vec_def_for_operand,
6911         vect_finish_stmt_generation, vect_transform_stmt,
6912         vect_transform_loop_bound, vect_transform_loop,
6913         vect_analyze_operations): Likewise.
6914         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
6915         Likewise.
6916         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
6917         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
6918         bsi_after_labels, bsi_last): Likewise.
6919         * tree-ssa-live.c (var_union, change_partition_var,
6920         create_ssa_var_map, calculate_live_on_entry, root_var_init,
6921         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
6922         Likewise.
6923         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
6924         tpa_find_tree): Likewise.
6925         (register_ssa_partition_check): Declare.
6926         (register_ssa_partition): use it.
6927         * tree-ssa-live.c: Include errors.h.
6928         (register_ssa_partition_check): New.
6929         * tree-ssa-operands.c: Include errors.h.
6930         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
6931
6932 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
6933             Catherine Moore  <clm@redhat.com>
6934
6935         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
6936         (FRV_CPU_FR405): New processor enums.
6937         (frv_issue_rate, frv_acc_group): Declare.
6938         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
6939         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
6940         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
6941         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
6942         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
6943         handled by CPP_SPEC.
6944         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
6945         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
6946         (ACC_MASK): New macro.
6947         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
6948         (TARGET_MEDIA_FR450): New macro.
6949         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
6950         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
6951         (LABEL_ALIGN_AFTER_BARRIER): Define.
6952         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
6953         (IACC_FIRST, IACC_LAST): New pair of SPRs.
6954         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
6955         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
6956         (REGISTER_NAMES): Add entries for new registers.
6957         (REG_CLASS_CONTENTS): Update for new register ranges.
6958         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
6959         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
6960         (PACKING_FLAG_USED_P): Delete.
6961         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
6962         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
6963         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
6964         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
6965         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
6966         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
6967         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
6968         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
6969         (CPU_UNITS_QUERY): Define to 1.
6970         * config/frv/frv.c: Include gt-frv.h
6971         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
6972         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
6973         (frv_insn_group): New enumeration.
6974         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
6975         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
6976         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
6977         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
6978         gap left by REGSTATE_LIVE.
6979         (regstate_t): New typedef.
6980         (TARGET_MACHINE_DEPENDENT_REORG): Define.
6981         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
6982         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
6983         Initialize frv_unit_codes[] and frv_type_to_unit[].
6984         (frv_conditional_register_usage): Remove redundant fixing of
6985         accumulator registers.
6986         (frv_insn_packing_flag): Update specification.
6987         (frv_function_prologue): Don't set frv_insn_packing_flag here.
6988         Zero out frv_nops[].
6989         (frv_expand_epilogue): Remove comments about the no-longer-present
6990         SIBCALL_P argument.
6991         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
6992         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
6993         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
6994         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
6995         packing is disabled and if INSN can only issue to M1.
6996         (call_operand): Check TARGET_LONG_CALLS.
6997         (acc_operand, even_acc_operand, quad_acc_operand)
6998         (accg_operand): Simplify.  Don't accept pseudo registers.
6999         (output_move_single): Handle SPR<-zero moves.
7000         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
7001         (frv_registers_update, frv_registers_used_p): Delete.
7002         (frv_registers_set_p): Delete.
7003         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
7004         (frv_issues_to_branch_unit_p): New function.
7005         (frv_packet): New structure.
7006         (frv_cond_flags, frv_regstate_conflict_p): New functions.
7007         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
7008         (frv_registers_update_1, frv_registers_update): New functions.
7009         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
7010         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
7011         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
7012         (frv_sort_insn_group, frv_reorder_packet): New functions.
7013         (frv_pack_insns): Use frv_reorder_packet.
7014         (frv_packet_address): New variable.
7015         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
7016         (frv_register_nop, frv_reorg): New functions.
7017         (bdesc_1arg): Add __SCUTSS.
7018         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
7019         __SUBSS, __SLASS and __SCAN.
7020         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
7021         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
7022         (frv_init_builtins): Register the above builtins.
7023         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
7024         registers.  Turn the referenced accumulators into global registers.
7025         (frv_read_iacc_argument): New function.
7026         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
7027         (frv_split_iacc_move): New function.
7028         (frv_expand_builtin): Handle the new builtins.
7029         * config/frv/frv.md: Replace old schedulers with new order-independent
7030         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
7031         packing algorithm.
7032         (cpu): Add fr550, fr450 and fr405.
7033         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
7034         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
7035         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
7036         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
7037         (fnop, mnop): New patterns.
7038         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
7039         New constants.
7040         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
7041         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
7042         registers.
7043         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
7044         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
7045         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
7046         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
7047         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
7048         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
7049         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
7050         (frv_prefetch0, frv_prefetch): New patterns.
7051         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
7052         -mcpu=simple.  Add -mcpu=fr550.
7053         (MULTILIB_DIRNAMES): Update accordingly.
7054         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
7055         -mcpu=fr450.
7056         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
7057         -mlong-calls and -malign-labels options for FR-V.
7058
7059 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
7060
7061         PR c/8420
7062         * c-tree.h (struct c_declspecs): New.
7063         (struct c_declarator, struct c_type_name, struct c_parm): Update
7064         element types.
7065         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
7066         start_function, start_decl, build_c_parm,
7067         make_pointer_declarator): Update prototypes.
7068         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
7069         declspecs_add_scspec, declspecs_add_attrs): New.
7070         (split_specs_attrs): Remove.
7071         * c-parse.in (%union): Add dsptype.
7072         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
7073         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
7074         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
7075         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
7076         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
7077         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
7078         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
7079         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
7080         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
7081         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
7082         maybe_type_quals_attrs): Change to dsptype.
7083         (struct c_declspec_stack): New.
7084         (current_declspecs, declspec_stack): Change type.
7085         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
7086         structures.
7087         (extdefs): Likewise.
7088         (setspecs): Likewise.
7089         (fndef): Use current_declspecs for empty declspecs list.
7090         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
7091         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
7092         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
7093         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
7094         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
7095         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
7096         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
7097         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
7098         structures and helper functions.  Update comments.
7099         (typespec_nonattr): Correct comment.
7100         (maybe_type_quals_attrs, typename): Update to new structures.
7101         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
7102         shadow_tag, shadow_tag_warned, start_function, start_decl,
7103         build_c_parm, make_pointer_declarator,
7104         set_array_declarator_inner, groktypename): Update to new
7105         structures.
7106         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
7107         declspecs_add_scspec, declspecs_add_attrs): New.
7108         (split_specs_attrs): Remove.
7109         (shadow_tag_warned): Make warning for useless type names a
7110         pedwarn.  Give hard error for long, short, signed, unsigned or
7111         _Complex used with struct, union or enum in empty declaration.
7112         Make found_tag a bool.
7113         (grokdeclarator): Remove checks now done at parse time.
7114
7115 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
7116
7117         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
7118         c_declarator, struct c_type_name, struct c_parm): New.
7119         (build_array_declarator, set_array_declarator_inner,
7120         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
7121         start_function, start_decl, build_c_parm, build_attrs_declarator,
7122         build_function_declarator, make_pointer_declarator, c_cast_expr,
7123         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
7124         (build_id_declarator): New.
7125         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
7126         structures.
7127         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
7128         ARG_INFO_OTHERS): Remove.
7129         (build_id_declarator): New.
7130         (build_array_declarator, set_array_declarator_inner, groktypename,
7131         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
7132         grokfield, start_function, store_parm_decls_newstyle,
7133         store_parm_decls_oldstyle, store_parm_decls,
7134         build_c_parm, build_attrs_declarator, build_function_declarator,
7135         make_pointer_declarator, grokdeclarator): Update to new
7136         structures.
7137         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
7138         parmtype.
7139         (declarator, notype_declarator, after_type_declarator,
7140         parm_declarator, parm_declarator_starttypename,
7141         parm_declarator_nostarttypename, array_declarator, typename,
7142         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
7143         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
7144         parmlist_1, parmlist_2, parmlist_or_identifiers,
7145         parmlist_or_identifiers_1): Use these types.
7146         (primary, after_type_declarator, parm_declarator_starttypename,
7147         notype_declarator, component_decl, component_declarator,
7148         component_notype_declarator, typename, absdcl,
7149         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
7150         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
7151
7152 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
7153
7154         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
7155         in_typeof, record_maybe_used_decl, pop_maybe_used,
7156         c_expr_sizeof_expr, c_expr_sizeof_type): New.
7157         * c-decl.c (parser_obstack): New.
7158         (c_init_decl_processing): Initialize parser_obstack.
7159         (c_write_global_declarations_1): Check for used but undefined
7160         static functions.
7161         * c-parse.in (%union): Add otype.
7162         (save_obstack_position): New.
7163         (extdefs): Use it.
7164         (unary_expr): Update in_sizeof and in_alignof.  Use
7165         c_expr_sizeof_expr and c_expr_sizeof_type.
7166         (sizeof): Update in_sizeof.
7167         (alignof): Update in_alignof.
7168         (typeof): Update in_typeof.
7169         (typespec_nonreserved_nonattr): Call pop_maybe_used.
7170         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
7171         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
7172         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
7173         (build_external_ref): Set C_DECL_USED or call
7174         record_maybe_used_decl if appropriate.
7175         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
7176
7177 2004-09-08  Eric Christopher  <echristo@redhat.com>
7178
7179         * builtins.c: Fix prototype for fold_builtin_atan.
7180
7181 2004-09-08  Eric Christopher  <echristo@redhat.com>
7182
7183         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
7184         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
7185         fold_builtin_atan): New functions. Migrate function bodies...
7186         (fold_builtin_1): ... from here.
7187
7188 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
7189
7190         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
7191         save_size.
7192
7193 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
7194
7195         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
7196         * config/rs6000/power5.md (power5-lmul): Same.
7197
7198 2004-09-08  Richard Henderson  <rth@redhat.com>
7199
7200         PR rtl-opt/17186
7201         * function.c (expand_function_end): Have fall-off-the-end
7202         return path jump around return register setup.
7203
7204 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
7205
7206         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
7207         (output_return): Do not test for the presence of the 'unimp' insn.
7208         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
7209         as predicates instead of custom ones.  Return raw strings when
7210         possible.
7211         (output_sibcall): Likewise.  Concatenate strings.
7212         (output_ubranch): Remove kludge for TurboSPARC.
7213         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
7214         (output_v9branch): Likewise.
7215         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
7216         <#>: Set sparc_indent_opcode if the delay slot is filled.
7217         <(>: Likewise.
7218         <)>: New operand to emit the displacement from the saved PC on return.
7219         <@>: Remove.
7220         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
7221         (ASM_OUTPUT_OPCODE): New macro.
7222         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
7223         * config/sparc/sparc.md (normal_branch, inverted_branch,
7224         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
7225         inverted_fpe_branch): Adjust call to output_cbranch.
7226         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
7227         call to output_v9branch.
7228         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
7229         (output_v9branch): Likewise.
7230
7231 2004-09-08  Devang Patel  <dpatel@apple.com>
7232
7233         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
7234         -segs_read_only_addr and -segs_read_write_addr.
7235         (WORD_SWITCH_TAKES_ARG): Same.
7236         (LINK_SPEC): Same.
7237         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
7238         -segs_read_write_addr.
7239
7240 2004-09-08  Richard Henderson  <rth@redhat.com>
7241
7242         * function.c (reference_callee_copied): New.
7243         (assign_parm_setup_reg): Use it.
7244         * calls.c (initialize_argument_information): Likewise.
7245         (emit_library_call_value_1): Likewise.
7246         * function.h (reference_callee_copied): Declare.
7247
7248         * target.h (struct gcc_target): Add callee_copies.
7249         * target-def.h (TARGET_CALLEE_COPIES): New.
7250         (TARGET_PASS_BY_REFERENCE): Update default.
7251         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7252         * targhooks.c (hook_callee_copies_named): New.
7253         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
7254         hook_pass_by_reference_false.
7255         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
7256         * targhooks.h: Update decls.
7257         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
7258         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7259         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
7260         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
7261         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7262         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
7263         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7264         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
7265         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7266         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
7267         (mips_callee_copies): New.
7268         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7269         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
7270         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7271         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
7272         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7273         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
7274         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7275         * config/sh/sh.c (sh_callee_copies): New.
7276         (TARGET_CALLEE_COPIES): New.
7277         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7278         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
7279         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
7280         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
7281         for FUNCTION_ARG_CALLEE_COPIES.
7282         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
7283
7284 2004-09-08  Devang Patel  <dpatel@apple.com>
7285
7286         * tree-if-conv.c (find_phi_replacement_condition): Return true
7287         edge block.
7288         (replace_phi_with_cond_modify_expr): Select conditional expr args
7289         based on true edge basic block.
7290
7291 2004-09-08  Jan Hubicka  <jh@suse.cz>
7292
7293         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
7294         variables being alias set.
7295
7296 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7297
7298         * final.c (shorten_branches, final, get_insn_template,
7299         output_alternate_entry_point, final_scan_insn, alter_subreg,
7300         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
7301         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
7302         * fix-header.c (lookup_std_proto): Likewise.
7303         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
7304         verify_local_live_at_start, update_life_info, mark_reg,
7305         calculate_global_regs_live, allocate_reg_life_data,
7306         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
7307         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
7308         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
7309         * fold-const.c (force_fit_type, div_and_round_double,
7310         may_negate_without_overflow_p, int_const_binop, const_binop,
7311         size_binop, size_diffop, fold_convert_const, fold_convert,
7312         invert_tree_comparison, swap_tree_comparison,
7313         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
7314         range_binop, make_range, fold_cond_expr_with_comparison,
7315         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
7316         fold_abs_const, fold_not_const, fold_relational_const, round_up,
7317         round_down): Likewise.
7318         * function.c (find_function_data, assign_stack_temp_for_type,
7319         instantiate_virtual_regs_lossage, aggregate_value_p,
7320         assign_parm_find_entry_rtl, assign_parm_setup_block,
7321         expand_function_start, expand_function_end, keep_stack_depressed,
7322         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
7323
7324 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
7325
7326         * Makefile.in (tree-loop-linear.o): Added.
7327         (OBJS-common): Add tree-loop-linear.o
7328         * common.opt: New flag, ftree-loop-linear.
7329         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
7330         * tree-flow.h: Add prototype for linear_transform_loops.
7331         * tree-optimize.c: Add linear transform after vectorization.
7332         * tree-pass.h: Add struct pass_linear_transform.
7333         * tree-ssa-loop.c: Add pass_linear_transform.
7334         * tree-loop-linear.c: New file.
7335         * lambda-code.c: gcc_assertify.
7336         (gcc_loop_to_lambda_loop): Handle all exit tests.
7337         Handle case where we have (invariant >= induction var).
7338         (find_induction_var_from_exit_cond): Ditto.
7339
7340 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
7341
7342         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
7343         memory tag is call clobbered, so are its aliases.
7344         (group_aliases): When two memory tags being grouped, if one is
7345         call clobbered, so are the other and its aliases.
7346         (add_may_alias): Remove call-clobbering stuff.
7347         (replace_may_alias): Likewise.
7348         (merge_pointed_to_info): Merge pt_global_mem
7349
7350 2004-09-08  Jan Hubicka  <jh@suse.cz>
7351
7352         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
7353         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
7354         (cgraph_expand_function): Remove stale cgraph edges of currently
7355         compiled function; fix non-unit-at-a-time code copying function
7356         node for later reuse.
7357
7358 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7359
7360         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
7361         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
7362         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
7363         (vec_gc_free, vec_heap_free): New.
7364         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
7365         (DEF_VEC_P): Add allocator argument. Adjust.
7366         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
7367         (DEF_VEC_O): Add allocator argument. Adjust.
7368         (VEC(free)): New.
7369
7370         * tree.h (tree): Define a GC'd vector.
7371         * lamba-code.c (lambda_loop): Likewise.
7372         * value-prof.h (histogram_value): Likewise.
7373
7374 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7375
7376         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
7377         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
7378         gen_lowpart_common, gen_highpart, gen_highpart_mode,
7379         subreg_highpart_offset, operand_subword, operand_subword_force,
7380         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
7381         set_mem_alias_set, change_address_1, verify_rtx_sharing,
7382         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
7383         try_split, add_insn_after, add_insn_before, remove_insn,
7384         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
7385         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
7386         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
7387         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
7388         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
7389         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
7390         record_path_before_1, check_path_after_1, check_path_after): Likewise.
7391         * except.c (gen_eh_region, resolve_one_fixup_region,
7392         remove_unreachable_regions, convert_from_eh_region_ranges_1,
7393         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
7394         connect_post_landing_pads, sjlj_emit_function_exit,
7395         remove_exception_handler_label, remove_eh_handler,
7396         reachable_next_level, collect_one_action_chain,
7397         output_function_exception_table): Likewise.
7398         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
7399         optimize_save_area_alloca, allocate_dynamic_stack_space,
7400         probe_stack_range, hard_function_value): Likewise.
7401         * expmed.c (mode_for_extraction, store_bit_field,
7402         store_fixed_bit_field, extract_bit_field, expand_shift,
7403         expand_mult_const, expand_mult, choose_multiplier,
7404         expand_mult_highpart, expand_divmod, emit_store_flag,
7405         do_cmp_and_jump): Likewise.
7406         * expr.c (convert_move, convert_modes, move_by_pieces,
7407         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
7408         move_block_from_reg, gen_group_rtx, emit_group_load,
7409         emit_group_move, emit_group_store, use_reg, use_regs,
7410         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
7411         emit_move_insn, emit_move_insn_1, emit_push_insn,
7412         expand_assignment, store_expr, count_type_elements,
7413         store_constructor, store_field, safe_from_p, expand_var,
7414         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
7415
7416 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
7417
7418         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
7419         gcc_assert and gcc_unreachable.
7420         * ddg.c (create_ddg_dependence, add_deps_for_def,
7421         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
7422         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
7423         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
7424         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
7425         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
7426         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
7427         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
7428         dataflow_set_copy, hybrid_search, diagnostic.c,
7429         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
7430         * dojump.c (do_jump): Likewise.
7431         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
7432         compute_dom_fast_query, calculate_dominance_info,
7433         free_dominance_info, get_immediate_dominator,
7434         set_immediate_dominator, get_dominated_by,
7435         redirect_immediate_dominators, nearest_common_dominator,
7436         dominated_by_p, verify_dominators, recount_dominator,
7437         iterate_fix_dominators, add_to_dominance_info,
7438         delete_from_dominance_info): Likewise.
7439         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
7440         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
7441         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
7442         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
7443         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
7444         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
7445         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
7446         output_call_frame_info, output_loc_operands, build_cfa_loc,
7447         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
7448         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
7449         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
7450         splice_child_die, attr_checksum, same_dw_val_p,
7451         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
7452         unmark_dies, value_format, output_loc_list, output_die,
7453         output_pubnames, output_aranges, base_type_die, is_base_type,
7454         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
7455         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
7456         field_byte_offset, add_data_member_location_attribute,
7457         add_const_value_attribute, rtl_for_decl_location,
7458         add_location_or_const_value_attribute, add_byte_size_attribute,
7459         add_bit_offset_attribute, add_bit_size_attribute,
7460         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
7461         decl_start_label, gen_formal_parameter_die,
7462         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
7463         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
7464         force_decl_die, force_type_die, gen_decl_die,
7465         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
7466         dwarf2out_finish): Likewise.
7467
7468 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
7469
7470         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
7471         * builtins.c: Include tree-mudflap.h.
7472
7473 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
7474
7475         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
7476         force operand 0.0 into register in XFmode. Also do not force
7477         operand 0.0 into register if !TARGET_CMOVE.
7478         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
7479         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
7480         implement ftst x87 instruction.
7481         (*fp_jcc_7): New insn pattern. Change corresponding split
7482         pattern to handle "general_operand" instead of
7483         "nonimmediate_operand".
7484
7485 2004-09-08  Ben Elliston  <bje@au.ibm.com>
7486
7487         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
7488
7489 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
7490
7491         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
7492         generated from standard va_arg expansion.
7493         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
7494         marked nodes.
7495         (mf_varname_tree, mf_file_function_line_tree): Add some support
7496         for column numbers if compiled with USE_MAPPED_LOCATION.
7497
7498 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7499
7500         * c-decl.c (groktypename_in_parm_context): Remove function.
7501         * c-tree.h (groktypename_in_parm_context): Remove prototype.
7502
7503 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
7504
7505         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
7506         * c-parse.in: Include c-common.h instead of objc-act.h.
7507         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
7508         myparms, myparm): Remove %type declarations.
7509         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
7510         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
7511         declarations.
7512         (objc_inherit_code, objc_public_flag): Remove.
7513         (typespec_nonreserved_nonattr): Call
7514         objc_get_protocol_qualified_type() instead of get_static_reference()
7515         and get_protocol_reference().
7516         (stmt_nocomp): Call grokparm() on @catch parameter.
7517         (objcdef): Move semantic action to objc_finish_implementation().
7518         (classdef): Move semantic action to objc_start_class_interface(),
7519         objc_continue_interface(), objc_finish_interface(),
7520         objc_start_class_implementation(), objc_continue_implementation(),
7521         objc_start_category_interface() and
7522         objc_start_category_implementation().
7523         (protocoldef): Move semantic actions to objc_start_protocol() and
7524         objc_finish_interface().
7525         (ivar_decl_list): Remove nonterminal.
7526         (visibility_spec): Move semantic actions to objc_set_visibility().
7527         (ivar_decls): Remove assignment to $$.
7528         (ivar_decl): Rephrase in terms of component_decl; call
7529         objc_add_instance_variable().
7530         (ivars, ivar_declarator): Remove nonterminals.
7531         (opt_semi): New nonterminal.
7532         (methodtype): Remove semantic actions.
7533         (methoddef): Move semantic actions to objc_set_method_type(),
7534         objc_start_method_definition() and objc_finish_method_definition().
7535         (methodproto): Move semantic actions to objc_set_method_type() and
7536         objc_add_method_declaration().
7537         (methoddecl): Use objc_typename instead of typename; move semantic
7538         actions to objc_build_method_signature().
7539         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
7540         (optparmlist): Express in terms of optparms and optellipsis.
7541         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
7542         nonterminals.
7543         (keyworddecl): Use objc_typename instead of typename.
7544         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
7545         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
7546
7547 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
7548
7549         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
7550         (MD_FALLBACK_FRAME_STATE_FOR): Update.
7551         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
7552         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7553         (MD_FROB_UPDATE_CONTEXT): Remove default.
7554         (uw_update_context_1): Instead #ifdef invocation.
7555         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
7556         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
7557         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
7558         (MD_UNWIND_SUPPORT): Undefine this instead.
7559         * config/i386/gnu.h: Likewise.
7560         * config/alpha/linux-unwind.h: New file, macro converted to
7561         function, extracted from..
7562         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
7563         (MD_UNWIND_SUPPORT): Define.
7564         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
7565         * config/i386/linux-unwind.h, config/i386/linux.h,
7566         config/i386/linux64.h: Likewise.
7567         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
7568         MD_HANDLE_UNWABI too.
7569         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
7570         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
7571         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
7572         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
7573         * config/sparc/linux-unwind.h, config/sparc/linux.h,
7574         config/sparc/linux64.h: Likewise.
7575         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
7576         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
7577         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
7578         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
7579         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
7580
7581 2004-09-07  Jan Hubicka  <jh@suse.cz>
7582
7583         * cse.c (fold_rtx):  Avoid building of
7584         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
7585
7586         * tree-ssa-pre.c (grand_bitmap_obstack): New.
7587         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
7588         (init_pre): Initialize obstack.
7589         (fini_pre): Free obstack.
7590
7591 2004-09-07  David Daney  <ddaney@avtrex.com>
7592
7593         * config.gcc: Added support for --with-divide=[breaks|traps] for
7594         mips targets.
7595         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
7596         (TARGET_DIVIDE_TRAPS): New macro.
7597         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
7598         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
7599         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
7600         GENERATE_DIVIDE_TRAPS.
7601         (mips_output_division): Emit conditional trap if
7602         GENERATE_DIVIDE_TRAPS is set.
7603         * doc/install.texi: Document --with-divide.
7604         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
7605
7606 2004-09-07  Caroline Tice  <ctice@apple.com>
7607
7608         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
7609         EDGE_CROSSING, to flags test case.
7610
7611 2004-09-07  Jan Hubicka  <jh@suse.cz>
7612
7613         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
7614         class too.
7615
7616 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7617
7618         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
7619         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
7620         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
7621         or gcc_unreachable.
7622         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
7623         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
7624         alloc_aux_for_edges, free_aux_for_edges): Likewise.
7625         * cfgcleanup.c (try_forward_edges,
7626         merge_blocks_move_predecessor_nojumps,
7627         merge_blocks_move_successor_nojumps): Likewise.
7628         * cfgexpand.c (expand_gimple_cond_expr,
7629         expand_gimple_tailcall): Likewise.
7630         * cfghooks.c (duplicate_block): Likewise.
7631         * cfglayout.c (record_effective_endpoints,
7632         insn_locators_initialize, change_scope, fixup_reorder_chain,
7633         verify_insn_chain, fixup_fallthru_exit_predecessor,
7634         duplicate_insn_chain, cfg_layout_finalize): Likewise.
7635         * cfgloopanal.c (check_irred): Likewise.
7636         * cfgloop.c (superloop_at_depth, flow_loops_free,
7637         flow_loop_entry_edges_find, flow_loops_find,
7638         flow_loop_outside_edge_p, get_loop_body,
7639         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
7640         get_loop_exit_edges, num_loop_branches, cancel_loop,
7641         verify_loop_structure): Likewise.
7642         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
7643         duplicate_loop_to_header_edge, create_preheader,
7644         create_loop_notes): Likewise.
7645         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
7646         edirect_branch_edge, force_nonfallthru_and_redirect,
7647         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
7648         commit_edge_insertions, commit_edge_insertions_watch_calls,
7649         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
7650         cfg_layout_redirect_edge_and_branch_force,
7651         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
7652         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
7653         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
7654         cgraph_varpool_node): Likewise.
7655         * cgraphunit.c (cgraph_finalize_function,
7656         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
7657         cgraph_expand_function, cgraph_remove_unreachable_nodes,
7658         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
7659         cgraph_mark_inline, cgraph_expand_all_functions,
7660         cgraph_build_static_cdtor): Likewise.
7661         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
7662         simplify_logical, distribute_notes, insn_cuid): Likewise.
7663         * conflict.c (conflict_graph_add, print_conflict): Likewise.
7664         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
7665         coverage_checksum_string): Likewise.
7666         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
7667         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
7668         cse_cc_succs, cse_condition_code_reg): Likewise.
7669         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
7670         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
7671         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
7672         cselib_record_set): Likewise.
7673
7674 2004-09-07  Jan Hubicka  <jh@suse.cz>
7675
7676         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
7677
7678 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7679
7680         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
7681         fold_convert.
7682         (fold_builtin_strpbrk): Likewise.
7683         * expr.c (array_ref_low_bound): Likewise.
7684         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
7685         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
7686         * tree-sra.c (generate_element_zero): Likewise.
7687         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
7688         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
7689         add_old_iv_candidates, add_iv_candidates): Likewise.
7690         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
7691
7692 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7693
7694         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
7695         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
7696         c_expand_expr, boolean_increment, nonnull_check_p,
7697         check_function_arguments_recurse, fold_offsetof_1): Likewise.
7698         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
7699         builtin_define_type_max): Likewise.
7700         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
7701         implicit_decl_warning, builtin_function, build_compound_literal,
7702         complete_array_type, grokdeclarator, get_parm_info,
7703         start_function, store_parm_decls_oldstyle,
7704         c_write_global_declarations): Likewise.
7705         * c-format.c (get_constant, decode_format_attr,
7706         maybe_read_dollar_number, get_flag_spec, check_format_arg,
7707         check_format_types, format_type_warning,
7708         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
7709         init_dynamic_diag_info, handle_format_attribute): Likewise.
7710         * c-gimplify.c (push_context, pop_context, finish_bc_block):
7711         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
7712         * c-objc-common.c (c_tree_printer): Likewise.
7713         * c-pch.c (pch_init): Likewise.
7714         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
7715         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
7716         * c-typeck.c (c_incomplete_type_error, composite_type,
7717         common_pointer_type, common_type, same_translation_unit_p,
7718         tagged_types_tu_compatible_p, finish_init, pop_init_level,
7719         set_designator, set_nonincremental_init_from_string,
7720         process_init_element, c_finish_if_stmt): Likewise.
7721         * caller-save.c (init_caller_save, save_call_clobbered_regs,
7722         insert_restore, insert_save, insert_one_insn): Likewise.
7723         * calls.c (emit_call_1, compute_argument_block_size,
7724         precompute_arguments, expand_call, emit_library_call_value_1,
7725         store_one_arg): Likewise.
7726
7727 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
7728
7729         * configure.ac (enable-checking): Add release option. Reorganize
7730         to avoid repetition.
7731         * configure: Rebuilt.
7732         * doc/install.texi (enable-checking): Amend documentation.
7733
7734 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
7735
7736         PR bootstrap/17313
7737         * Makefile.in (specs.ready): Depend on cc1$(exeext).
7738
7739 2004-09-06  James E Wilson  <wilson@specifixinc.com>
7740
7741         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
7742         movdf_hardfloat_32bit): Split fG into two alternatives.
7743         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
7744
7745         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
7746
7747 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7748
7749         * final.c (output_in_slot): Delete.
7750         (final_scan_insn): Revert 2004-09-03 change.
7751         (output_asm_insn): Likewise.
7752         * config/sparc/sparc.c (output_return): Likewise.
7753         (output_sibcall): Likewise.
7754
7755 2004-09-06  Jan Hubicka  <jh@suse.cz>
7756
7757         * loop.c (loop_dump_aux): Do not print RTL when not available.
7758         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
7759         frontend specific type nodes.
7760         (produce_memory_decl_rtl): Break out from ...
7761         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
7762         (get_computation_at): Avoid random tree sharing.
7763         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
7764
7765 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
7766
7767         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
7768         unnecessary commands.
7769
7770 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
7771
7772         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
7773         (bitmap.o): Likewise.
7774
7775 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
7776
7777         Unify the management of RTL and tree-level dump files.
7778
7779         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
7780         Don't print function name to the dump file, the pass manager
7781         would do this for us. Add code from the top of
7782         rest_of_compilation, up to the initial RTL dump.
7783         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
7784         close the DFI_sibling dump file.
7785         (rest_of_compilation): Don't do that here.  Remove code up to the
7786         initial RTL dump.
7787         (init_optimization_passes): Remove.
7788         (pass_rest_of_compilation): Change pass name to NULL.
7789         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
7790         Do not call init_optimization_passes.
7791         * toplev.h (init_optimization_passes): Remove.
7792
7793         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
7794         finish_graph_dump_file): Remove SUFFIX parameter.
7795         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
7796         finish_graph_dump_file): Likewise.
7797
7798         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
7799         * cfgexpand.c (pass_expand): Adjust.
7800         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
7801         * passes.c (pass_rest_of_compilation): Adjust.
7802         * predict.c (pass_profile): Adjust.
7803         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
7804         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
7805         pass_split_crit_edges, pass_warn_function_return): Adjust.
7806         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
7807         * tree-dfa.c (pass_referenced_vars): Adjust.
7808         * tree-eh.c (pass_lower_eh): Adjust.
7809         * tree-if-conv.c (pass_build_ssa): Adjust.
7810         * tree-into-ssa.c (pass_build_ssa): Adjust.
7811         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7812         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
7813         * tree-nrv.c (pass_nrv): Adjust.
7814         * tree-optimize.c (pass_gimple, pass_all_optimizations,
7815         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
7816         pass_init_datastructures): Adjust.
7817         * tree-outof-ssa.c (pass_del_ssa): Adjust.
7818         * tree-profile.c (pass_tree_profile): Adjust.
7819         * tree-sra.c (pass_sra): Adjust.
7820         * tree-ssa-alias.c (pass_may_alias): Adjust.
7821         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
7822         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
7823         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
7824         * tree-ssa-dom.c (pass_dominator): Adjust.
7825         * tree-ssa-dse.c (pass_dse): Adjust.
7826         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
7827         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
7828         * tree-ssa-loop-ch.c (pass_ch): Adjust.
7829         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
7830         pass_loop_done, pass_complete_unroll, pass_iv_canon,
7831         pass_iv_optimize, pass_vectorize): Adjust.
7832         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
7833         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
7834         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
7835         pass_late_warn_uninnitialized): Adjust.
7836         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
7837
7838         * Makefile.in (tree-dump.o): Add new dependencies.
7839         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
7840         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
7841         Likewise.
7842         * toplev.c (dump_file_name): New.
7843         * tree-dump.c (dump_enable_all): Add LETTER parameter.
7844         (struct dump_file_info): Add NUM and LETTER fields.
7845         (dump_files): Adjust and add RTL dump files.
7846         (dump_register): Add NUM and LETTER fields.
7847         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
7848         (dump_begin): Use get_dump_file_name.
7849         (dump_switch_p_1): Adjust call to dump_enable_all.
7850         * tree-dump.h (dump_register): Adjust prototype.
7851         * tree-optimize.c (register_one_dump_file): Take dump file index.
7852         Support flags for RTL dumps.
7853         (register_dump_files): Fill in NUM field of struct dump_file_info.
7854         Track properties both when the gate is executed and when it is not.
7855         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
7856         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
7857         dumps of RTL.
7858         * tree-pass.h (dump_file_name): New.
7859         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
7860         New.
7861
7862         * Makefile.in (passes.o): Add new dependencies.
7863         * passes.c (struct dump_file_info, enum dump_file_index,
7864         dump_file_tbl, init_optimization_passes): Remove.
7865         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
7866         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
7867         dump_enabled_p.
7868         (finish_optimization_passes): Update finish_graph_dump_file loop.
7869         (enable_rtl_dump_file): Remove.
7870         * tree-dump.c (dump_files): Adjust and add RTL dump files.
7871         (enable_rtl_dump_file): Add here.
7872         * tree.h (enum tree_dump_index): Add RTL dump file indices.
7873         * doc/invoke.texi (Debugging options): Document new RTL debugging
7874         options.  Update.
7875
7876 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7877
7878         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
7879         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
7880         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
7881         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
7882         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
7883         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
7884         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
7885         vec.h: Fix comment formatting.
7886
7887 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
7888
7889         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
7890         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
7891         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
7892         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
7893         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
7894         tree-ssa-loop-niter.c, tree-ssa-operands.c,
7895         tree-ssa-operands.h, tree-ssa-propagate.c,
7896         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
7897         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
7898
7899 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
7900
7901         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
7902         vectorizer is enabled.
7903
7904 2004-09-05  Andreas Jaeger  <aj@suse.de>
7905
7906         * tree-if-conv.c: Spell check comments and clean up whitespace.
7907
7908 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7909
7910         * tree-ssa-loop-ivopts.c: New file.
7911         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
7912         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
7913         target_pres_cost, target_spill_cost): Declare.
7914         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
7915         spill_cost): Renamed to ...
7916         (target_avail_regs, target_res_regs, target_small_cost,
7917         target_pres_cost, target_spill_cost): ... and exported.
7918         (init_set_costs, global_cost_for_size): Work with renamed variables.
7919         * common.opt (flag_ivopts): New flag.
7920         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
7921         REF_ORIGINAL.
7922         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
7923         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
7924         generating SSA form.
7925         (force_gimple_operand): New function.
7926         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
7927         * tree-cfg.c (stmt_bsi): New function.
7928         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7929         PARAM_IV_MAX_CONSIDERED_USES): New.
7930         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
7931         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
7932         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
7933         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
7934         * tree-nested.c (build_addr): Export.
7935         * tree-optimize.c (init_tree_optimization_passes): Add
7936         pass_iv_optimize.
7937         * tree-pass.h (pass_iv_optimize): Declare.
7938         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
7939         IMAGPART_EXPR.
7940         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
7941         as a phi node argument.
7942         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
7943         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
7944         functions.
7945         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
7946         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
7947         pass_iv_optimize): New pass.
7948         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
7949         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
7950         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
7951         * tree.h (REF_ORIGINAL): New macro.
7952         (build_int_cst_type, unsigned_type_for, zero_p,
7953         cst_and_fits_in_hwi, build_addr): Declare.
7954         * doc/invoke.texi (-fivopts): Document.
7955         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
7956         PARAM_IV_MAX_CONSIDERED_USES): Document.
7957         * doc/passes.texi: Document induction variable optimizations pass.
7958
7959 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7960
7961         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
7962         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
7963         * c-common.c (c_common_attribute_table): Accept parameters to
7964         sentinel attribute.
7965         (check_function_sentinel, handle_sentinel_attribute): Likewise.
7966         * doc/extend.texi: Update accordingly.
7967
7968 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7969
7970         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
7971         New.
7972         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
7973         attribute.
7974         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
7975         New functions.
7976         (c_common_attribute_table): Add `sentinel' attribute.
7977         (check_function_arguments): Handle `sentinel' attribute.
7978         * doc/extend.texi: Document `sentinel' attribute.
7979
7980 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
7981
7982         * configure: Regenerated.
7983
7984 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7985
7986         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
7987
7988         * tree.c (save_expr): No longer TREE_READONLY.
7989
7990 2004-09-04  Jan Hubicka  <jh@suse.cz>
7991
7992         * passes.c (rest_of_clean_state):  Fix merge conflict made during
7993         commiting the patch.
7994
7995 2004-09-04  Jan Hubicka  <jh@suse.cz>
7996
7997         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
7998
7999 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
8000
8001         * doc/md.texi (shift patterns): New anchor.  Add reference to
8002         TARGET_SHIFT_TRUNCATION_MASK.
8003         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
8004         * target.h (shift_truncation_mask): New target hook.
8005         * targhook.h (default_shift_truncation_mask): Declare.
8006         * targhook.c (default_shift_truncation_mask): Define.
8007         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
8008         (TARGET_INITIALIZER): Include it.
8009         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
8010         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
8011         reject all out-of-range values.  Fix sign-extension code for modes
8012         whose width is smaller than HOST_BITS_PER_WIDE_INT.
8013         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
8014         (expand_superword_shift, expand_subword_shift): Likewise.
8015         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
8016         (expand_binop): Use them to implement double-word shifts.
8017         * config/arm/arm.c (arm_shift_truncation_mask): New function.
8018         (TARGET_SHIFT_TRUNCATION_MASK): Define.
8019
8020 2004-09-04  Jan Hubicka  <jh@suse.cz>
8021
8022         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
8023         (mix): New macro copied from hashtab.c
8024         (iterative_hash_hashval_t, iterative_hash_pointer,
8025         iterative_hash_host_wide_int): New functions based on hashtab.c
8026         implementation.
8027
8028 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
8029
8030         * config/mips/mips.md (mask): New mode attribute.
8031         (zero_extendsidi2): Add memory alternative.
8032         (*zero_extendsidi2_mem): Delete.
8033         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
8034         memory_operand in the TARGET_MIPS16 check.
8035         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
8036         Redefine using :GPR and :SHORT.
8037         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
8038
8039 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
8040
8041         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
8042         using rint_optab.
8043         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
8044         expand_builtin_mathfn.
8045         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
8046         btrunc?f patterns for btrunc_optab. Implement rint_optab using
8047         rint?f patterns.
8048         * optabs.c (init_optabs): Initialize rint_optab.
8049         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
8050         Add new OTI_rint.
8051         (btrunc_optab): Rename macro from trunc_optab.
8052         (rint_optab): Define corresponding macro.
8053
8054         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
8055         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
8056
8057         * config/i386/i386-protos.h (emit_i387_cw_initialization):
8058         Change prototype. Add new int parameter.
8059         * config/i386/i386.c (emit_i387_cw_initialization):
8060         Handle new rounding modes.
8061
8062         * config/i386/i386.h (enum fp_cw_mode): Delete.
8063         (MODE_NEEDED): Handle new rounding modes.
8064         (EMIT_MODE_SET): Change condition to handle new rounding modes.
8065
8066         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
8067         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
8068         represent different rounding modes of frndint insn.
8069         (type): Add frndint type.
8070         (i387, length, memory): Handle this type.
8071         (i387_cw): New attribute definition.
8072         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
8073         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
8074         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
8075         Add "i387_cw" attribute defined to "trunc".
8076         (x86_fnstcw_1): Remove comment.
8077         (*frndintxf2): Rename insn definition to frndintxf2. Move
8078         insn definition near rint?f2 expanders.
8079         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
8080         rintf and rintl built-ins as inline x87 intrinsics.
8081         (frndintxf2_floor): New pattern to implement floor rounding
8082         mode with frndint x87 instruction.
8083         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
8084         floorf and floorl built-ins as inline x87 intrinsics.
8085         (frndintxf2_ceil): New pattern to implement ceil rounding
8086         mode with frndint x87 instruction.
8087         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
8088         ceilf and ceill built-ins as inline x87 intrinsics.
8089         (frndintxf2_trunc): New pattern to implement trunc rounding
8090         mode with frndint x87 instruction.
8091         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
8092         truncf and truncl built-ins as inline x87 intrinsics.
8093         (frndintxf2_mask_pm): New pattern to implement rounding
8094         mode with exceptions with frndint x87 instruction.
8095         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
8096         implement nearbyint, nearbyintf and nearbyintl built-ins as
8097         inline x87 intrinsics.
8098
8099 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
8100
8101         * config/mips/mips.md (SHORT): New mode macro.
8102         (size): New mode attribute.
8103         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
8104         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
8105         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
8106         !ISA_HAS_SEB_SEH.
8107         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
8108         *extend[qh]isi2_hw patterns and extending them to di.
8109         (extendqihi2): Implement as define_insn_and_split that produces
8110         extendqisi2 after reload.
8111
8112 2004-09-03  Devang Patel  <dpatel@apple.com>
8113
8114         * Makefile.in (OBJS-common): Add tree-if-conv.o
8115         (tree-if-conv.o): New rule.
8116         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
8117         (get_loop_body_in_bfs_order): New.
8118         * cfgloop.h (get_loop_body_in_bfs_order): New.
8119         * tree-flow.h (enum move_pos): Move here from ..
8120         * tree-ssa-loop-im.c (enum move_pos): here.
8121         (movement_possibility): Make externally visible.
8122         * tree-optimize.c (init_tree_optimization_passes): New entry for
8123         if conversion pass.
8124         * tree-pass.h (pass_if_conversion): New.
8125         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
8126         * tree-if-conv.c: New file.
8127         * doc/passes.texi: Document tree if-conversion pass.
8128         * doc/tree-ssa.texi: Same.
8129
8130 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
8131
8132         PR target/14925:
8133         Makefile.in (LIB2ADDEHSTATIC): New.
8134         (LIB2ADDEHSHARED): New.
8135         (LIBUNWIND): New.
8136         (LIBUNWINDDEP): New.
8137         (SHLIBUNWIND_LINK): New.
8138         (SHLIBUNWIND_INSTALL): New.
8139         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
8140         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
8141         (clean): Remove libunwind*
8142         (stage1-start): Remove and copy stage1/libunwind*.
8143         (stage2-start): Remove and copy stage2/libunwind*.
8144         (stage3-start): Remove and copy stage3/libunwind*.
8145         (stage4-start): Remove and copy stage4/libunwind*.
8146         (stageprofile-start): Remove and copy stageprofile/libunwind*.
8147         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
8148
8149         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
8150         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
8151         tmake_file if --with-system-libunwind isn't used.
8152
8153         * config/ia64/t-glibc-libunwind: New file.
8154         * config/t-libunwind-elf: Likewise.
8155         * unwind-compat.c: Likewise.
8156         * unwind-compat.h: Likewise.
8157         * unwind-dw2-fde-compat.c: Likewise.
8158
8159         * config/ia64/t-glibc (LIB2ADDEH): Updated.
8160         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
8161
8162         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
8163         aliases if needed.
8164         * unwind-dw2-fde-glibc.c: Likewise.
8165         * unwind-dw2.c: Likewise.
8166
8167         * config/t-libunwind (LIB2ADDEH): Updated.
8168         (LIB2ADDEHSTATIC): New.
8169         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
8170         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
8171
8172         * configure.ac: Change --enable-libunwind-exceptions to
8173         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
8174         * configure: Regenerated.
8175         * config.in: Updated.
8176
8177         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
8178         above and mention --with-system-libunwind.
8179         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
8180         removed in gcc 3.4.3 and later.
8181
8182         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
8183         USE_LIBUNWIND_EXCEPTIONS is defined.
8184
8185         * mklibgcc.in: Support libunwind.
8186
8187 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
8188
8189         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
8190         m_NOCONA.
8191
8192 2004-09-03  Richard Henderson  <rth@redhat.com>
8193
8194         PR middle-end/9997
8195         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
8196         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
8197         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
8198         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
8199         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
8200         resize_stack_vars_conflict, add_stack_var_conflict,
8201         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
8202         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
8203         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
8204         expand_one_static_var, expand_one_hard_reg_var,
8205         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
8206         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
8207         (expand_used_vars): Rewrite.
8208         * Makefile.in (cfgexpand.o): Update dependencies.
8209
8210 2004-09-04  Jan Hubicka  <jh@suse.cz>
8211
8212         * cfg.c (free_edge): Use ggc_free.
8213         (expunge_block): Use ggc_free.
8214         * passes.c (rest_of_clean_state): Free after compilation.
8215         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
8216         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
8217
8218 2004-09-03  James E Wilson  <wilson@specifixinc.com>
8219
8220         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
8221         DECL_EXTERNAL check.
8222
8223 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8224
8225         * final.c (output_in_slot): New global variable.
8226         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
8227         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
8228         'output_in_slot' before invoking output_asm_insn.
8229         (output_asm_insn): Add a space after the tab if 'output_in_slot'
8230         is set.
8231         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
8232         final_scan_insn.
8233         (output_sibcall): Likewise.
8234
8235 2004-09-03  Jan Hubicka  <jh@suse.cz>
8236
8237         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
8238         * tree-ssanames (init_ssanames): Likewise.
8239
8240 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
8241
8242         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
8243         objc_declare_protocols, objc_start_protocol,
8244         objc_start_class_interface, objc_start_category_interface,
8245         objc_continue_interface, objc_finish_interface,
8246         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
8247         objc_start_class_implementation, objc_start_category_implementation,
8248         objc_continue_implementation, objc_finish_implementation,
8249         objc_add_method_declaration, objc_start_method_definition,
8250         objc_finish_method_definition, objc_build_keyword_decl,
8251         objc_build_method_signature, objc_build_encode_expr,
8252         objc_build_protocol_expr, objc_build_selector_expr,
8253         objc_build_message_expr, objc_build_string_object,
8254         objc_get_class_reference, objc_get_protocol_qualified_type,
8255         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
8256
8257 2004-09-03  James E Wilson  <wilson@specifixinc.com>
8258
8259         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
8260
8261         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
8262         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
8263         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
8264         (mips_recip1_<fmt>): Use frdiv1 type.
8265         (mips_recip2_<fmt>): Use frdiv2 type.
8266         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
8267         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
8268         and frsqrt1.
8269         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
8270
8271 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
8272
8273         * reload.c (find_reloads): Swap operand_loc pointers for
8274         find_dummy_reload if we have swapped two operands.
8275
8276 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
8277
8278         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
8279         to get the tablejump-insn before the jump-table label.
8280
8281 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
8282
8283         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
8284         objc_declare_protocols, objc_build_message_expr,
8285         objc_finish_message_expr, objc_build_selector_expr,
8286         objc_build_protocol_expr, objc_build_encode_expr,
8287         objc_build_string_object, objc_get_protocol_qualified_type,
8288         objc_get_class_reference, objc_get_class_ivars,
8289         objc_start_class_interface, objc_start_category_interface,
8290         objc_start_protocol, objc_continue_interface, objc_finish_interface,
8291         objc_start_class_implementation, objc_start_category_implementation,
8292         objc_continue_implementation, objc_finish_implementation,
8293         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
8294         objc_add_method_declaration, objc_start_method_definition,
8295         objc_finish_method_definition, objc_add_instance_variable,
8296         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
8297         objc_finish_try_stmt, objc_begin_catch_clause,
8298         objc_finish_catch_clause, objc_build_finally_clause,
8299         objc_build_synchronized, objc_static_init_needed_p,
8300         objc_generate_static_init_call): New prototypes.
8301
8302 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
8303
8304         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
8305         is only one reg.
8306         (ia64_function_value): Ditto.
8307
8308 2004-09-03  Jan Beulich  <jbeulich@novell.com>
8309
8310         * config.gcc: Resurrect NetWare as a target. Handle special case of
8311         Novell linker to be used (specified through --with-ld=) and threading
8312         model of either Posix (default) or NKS.
8313         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
8314         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
8315         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
8316         * config/i386/netware.c, config/i386/netware.h: New.
8317         * config/i386/nwld.c, config/i386/nwld.h: New.
8318         * config/i386/netware-crt0.c: New.
8319         * config/i386/netware-libgcc.c: New.
8320         * config/i386/netware-libgcc.def: New.
8321         * config/i386/netware-libgcc.exp: New.
8322         * config/i386/t-netware, config/i386/t-nwld: New.
8323         * gthr-nks.h: New.
8324         * doc/install.texi: Document NKS threading model.
8325
8326 2004-09-03  Jan Beulich  <jbeulich@novell.com>
8327
8328         PR c/7054
8329         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
8330         * tree.h (initial_max_fld_align): Declare
8331         * stor-layout.c (initial_max_fld_align): Define and initialize.
8332         (maximum_field_alignment): Initialize to the same value.
8333         * common.opt: Add -fpack-struct= variant of switch.
8334         * opts.c: Handle -fpack-struct= variant of switch.
8335         * c-pragma.c: Change #pragma pack() handling so that it becomes
8336         compatible to other compilers: accept individual 'push' argument,
8337         make final pop restore (command line) default, correct interaction
8338         of push/pop and sole specification of a new alignment (so that the
8339         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
8340         to #pragma pack(push, <n>).
8341         * doc/extend.texi: New node "Structure-Packing Pragmas" under
8342         "Pragmas", describing #pragma pack.
8343         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
8344         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
8345         Document new TARGET_DEFAULT_PACK_STRUCT.
8346
8347 2004-09-03  Devang Patel  <dpatel@apple.com>
8348
8349         * dwarf2out.c (gen_field_die). Equate decl number to die.
8350
8351 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
8352
8353         PR target/15832
8354         * global.c (modify_reg_pav): New function.
8355         (make_accurate_live_analysis): Call the new function.  Move pavin
8356         modification by earlyclobber set into the new function.
8357
8358 2004-09-03  Andreas Schwab  <schwab@suse.de>
8359
8360         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
8361         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
8362         extended.
8363
8364 2004-09-02  Jan Beulich  <jbeulich@novell.com>
8365
8366         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
8367         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
8368         not unwind code specific ones.
8369         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
8370         Remove unwind code specific dependencies.
8371         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
8372         Remove gbl-ctors.h.
8373         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
8374         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
8375         * tsystem.h: Declare memcpy and memset when inhibit_libc.
8376
8377 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
8378
8379         * combine.c (try_combine): Delay modifying of insns which cannot
8380         be easily undone.
8381
8382 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
8383
8384         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
8385         tree-loop-im.
8386         * gcc/tree-ssa-loop.c: Ditto
8387         * gcc/tree-ssa-loop-ivcanon.c: Ditto
8388         * gcc/doc/invoke.texi: Ditto.
8389
8390 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
8391
8392         * c-decl.c (store_parm_decls_newstyle): Make static.
8393         (store_parm_decls_from): New function.
8394         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
8395         (store_parm_decls_from): New prototype.
8396
8397 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
8398
8399         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
8400         HImode with STRICT_ALIGNMENT.
8401
8402 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8403
8404         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
8405         (TARGET_OS_CPP_BUILTINS): Likewise.
8406         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
8407         TARGET_BPABI_CPP_BUILTINS.
8408
8409 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
8410
8411         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
8412
8413 2004-09-02  Eric Christopher  <echristo@redhat.com>
8414
8415         * builtins.c (expand_builtin_cabs): Delete.
8416         (expand_builtin): If unable to fold the values do a normal
8417         library call for builtin_cab*.
8418         (fold_builtin_cabs): Depend on optimize and optimize_size.
8419         * optabs.c (expand_cmplxdiv_straight): Delete.
8420         (expand_cmplxdiv_wide): Ditto.
8421         (expand_vector_binop): Ditto.
8422         (expand_vector_unop): Ditto.
8423         (expand_complex_abs): Delete.
8424         (expand_binop): Remove calls to above functions.
8425         Remove open coding of complex arithmetic.
8426         (expand_unop): Ditto.
8427         * optabs.h: Remove prototypes.
8428
8429 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
8430
8431         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
8432         * c-tree.h (store_parm_decls_newstyle): New prototype.
8433
8434 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
8435
8436         * config/rs6000/rs6000.c (expand_block_clear): Use vector
8437         instructions if available.
8438         (expand_block_move): Likewise.
8439
8440 2004-09-03  Jan Hubicka  <jh@suse.cz>
8441
8442         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
8443
8444 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
8445
8446         * config/arm/symbian.h (LIB_SPEC): Define to empty.
8447         * config/arm/t-symbian (SHLIB_LC): Likewise.
8448
8449 2004-09-02  Paul Brook  <paul@codesourcery.com>
8450
8451         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
8452
8453 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8454
8455         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
8456         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
8457         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
8458         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
8459         (mips_issue_rate): Remove unreachable abort.
8460         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
8461         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
8462         (mips_block_move_straight, print_operand_address, mips_file_start)
8463         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
8464         (mips_output_conditional_branch, mips_expand_builtin_direct)
8465         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
8466         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
8467         with gcc_assert.
8468
8469 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8470
8471         * config/mips/mips.md (*lea_high64): Change split condition to
8472         flow2_completed.  Add a peephole2 to generate a more parallel version.
8473
8474 2004-09-02  Jan Hubicka  <jh@suse.cz>
8475
8476         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
8477         GGC.
8478
8479         * ggc-page.c: include tree-flow.h.
8480         (extra_order_size_table): Add stmt_ann_d.
8481         (STAT_LABEL): Rename from ....
8482         (LABEL): ... this one.
8483         * Makefile.in (ggc-page.o): Add dependency.
8484
8485         * ggc-common.c (ggc_force_collect): New global variable.
8486         (loc_description): Add fields "freed", "collected"
8487         (ptr_hash): New static hash
8488         (ptr_hash_entry): New structure.
8489         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
8490         (ggc_record_overhead): Take ptr argument, record it
8491         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
8492         (cmp_statistics): Imrove sorting.
8493         (dump_ggc_loc_statistics): Output newly collected statistics
8494         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
8495         (ggc_free): Call ggc_free_overhead.
8496         (ggc_collect): Force collection when asked to be forced.
8497         (ggc_collect): Call ggc_prune_overhead_list.
8498         * ggc.h (ggc_force_collect): Declare
8499         (ggc_record_overhead): Update prototype.
8500         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
8501
8502 2004-09-02  James E Wilson  <wilson@specifixinc.com>
8503
8504         * common.opt (ftrapping-math): Default to on.
8505
8506 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
8507
8508         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
8509
8510 2004-09-02  Denis Chertykov  <denisc@overta.ru>
8511
8512         PR target/16884
8513         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
8514         match_scratch.
8515         (*movmemqi_insn): Likewise.
8516         (*movmemhi): Likewise.
8517         (clrmemhi): Likewise.
8518         (*clrmemqi): Likewise.
8519         (*clrmemhi): Likewise.
8520
8521 2004-09-02  Paul Brook  <paul@codesourcery.com>
8522
8523         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
8524         default_use_cxa_atexit=yes.
8525
8526 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
8527
8528         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
8529         (struct kernel_old_ucontext): Delete.
8530         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
8531         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
8532         when IN_LIGGCC2.
8533
8534 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
8535
8536         * toplev.c (process_options): Fix typo.
8537
8538 2004-09-01  Richard Henderson  <rth@redhat.com>
8539
8540         PR middle-end/17258
8541         * calls.c (initialize_argument_information): Tighten pass-through
8542         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
8543         Use build_fold_addr_expr.
8544         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
8545         that assumes ADDR_EXPR allocates stack space.
8546         * fold-const.c (build_fold_addr_expr_with_type): Look through
8547         WITH_SIZE_EXPR.
8548
8549 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
8550
8551         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
8552         * ggc.h (ggc_alloc_rtx): Delete.
8553
8554 2004-09-01  Roger Sayle  <roger@eyesopen.com>
8555
8556         * expmed.c (enum alg_code): Remove long unused enumeration values.
8557         (struct mult_cost): New structure to hold the "score" of a synthetic
8558         multiply sequence, including both a rtx_cost and a latency field.
8559         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
8560         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
8561         (struct algorithm): Change type of cost field to be mult_cost.
8562         (synth_mult): Change type of cost_limit argument to be a
8563         pointer to a mult_cost.  Update all cost comparisons to use the
8564         new mult_cost infrastructure.  For alg_add_factor and
8565         alg_sub_factor operations, latency is lower than the rtx_cost.
8566         (choose_mult_variant):  Update calls to synth_mult.  Perform
8567         cost comparisons using the new mult_cost infrastructure.
8568         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
8569         to optain the total rtx_cost of a synth_mult "algorithm".
8570
8571 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
8572
8573         * config/rs6000/power4.md: Increase store latency to 12.
8574         * config/rs6000/power5.md: Same.
8575
8576 2004-09-01  James E Wilson  <wilson@specifixinc.com>
8577
8578         PR target/14064
8579         * config/avr/avr.c (avr_unique_section): Delete prototype and
8580         definition.
8581         (TARGET_ASM_UNIQUE_SECTION): Delete.
8582
8583 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8584
8585         * c-parse.in (primary): Call objc_build_message_expr(),
8586         objc_build_selector_expr(), objc_build_protocol_expr(),
8587         objc_build_encode_expr() and objc_build_string_object() instead of
8588         build_message_expr(), build_selector_expr(), build_protocol_expr(),
8589         build_encode_expr() and build_objc_string_object(), respectively.
8590         (component_decl_list2): Call objc_get_class_ivars() instead of
8591         get_class_ivars_from_name().
8592         (keyworddecl): Call objc_build_keyword_decl() instead of
8593         build_keyword_decl().
8594         (receiver): Call objc_get_class_reference() instead of
8595         get_class_reference().
8596         (reswords): Add blank line before @@ifobjc section, for clarity.
8597
8598 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
8599
8600         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
8601         to Altivec vetors.
8602
8603 2004-09-01  Wu Yongwei  <adah@sh163.net>
8604             Danny Smith  <dannysmith@users.sourceforge.net>
8605
8606         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
8607         not Windows 'DWORD'.
8608         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
8609         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
8610         (__gthr_win32_recursive_mutex_init_function): Add prototype for
8611         __GTHREAD_HIDE_WIN32API case..
8612         (__gthr_win32_recursive_mutex_lock): Likewise.
8613         (__gthr_win32_recursive_mutex_trylock): Likewise.
8614         (__gthr_win32_recursive_mutex_unlock): Likewise.
8615         (__gthread_recursive_mutex_init_function); Add definition for
8616         __GTHREAD_HIDE_WIN32API case.
8617         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
8618         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
8619         call to InterlockedDecrement.
8620
8621 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8622
8623         * tree-tailcall.c (find_tail_calls): Also fail is statement has
8624         volatile operands.
8625
8626         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
8627
8628         * doc/c-tree.texi: Document new operands for ARRAY_REF and
8629         COMPONENT_REF.
8630
8631 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8632
8633         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
8634         * common.opt (fspeculative-prefetching): New.
8635         * flags.h (flag_speculative_prefetching_set): Declare.
8636         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
8637         values.
8638         * opts.c (flag_sepculative_prefetching_set): New variable.
8639         (common_handle_option): Handle -fspeculative-prefetching.
8640         * passes.c (rest_of_compilation): Ditto.
8641         * profile.c (instrument_values, compute_value_histograms, branch_prob):
8642         Use vectors instead of arrays.
8643         * toplev.c (process_options): Handle -fspeculative-prefetching.
8644         * rtl-profile.c: Include ggc.h.
8645         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
8646         rtl_gen_one_value_profiler_no_edge_manipulation,
8647         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
8648         argument changed.
8649         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
8650         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
8651         argument changed.
8652         * value-prof.c: Include ggc.h.
8653         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
8654         macros.
8655         (insn_prefetch_values_to_profile, find_mem_reference_1,
8656         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
8657         speculative_prefetching_transform): New.
8658         (value_profile_transformations): Call speculative_prefetching_transform.
8659         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
8660         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
8661         tree_find_values_to_profile, find_values to profile): Use vectors
8662         instead of arrays.
8663         (free_profiled_values): Removed.
8664         * value-prof.h (struct histogram_value): Renamed to
8665         struct histogram_value_t.
8666         (histogram_value, histogram_values): New types.
8667         (find_values_to_profile): Declaration changed.
8668         (free_profiled_values): Removed.
8669         (struct profile_hooks): Type of argument of the hooks changed to
8670         histogram_value.
8671         * doc/invoke.texi (-fspeculative-prefetching): Document.
8672
8673 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8674
8675         PR rtl-optimization/16408
8676         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
8677
8678 2004-09-01  Richard Henderson  <rth@redhat.com>
8679
8680         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
8681         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
8682
8683 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8684
8685         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
8686
8687 2004-09-01  Mike Stump  <mrs@apple.com>
8688
8689         * config/darwin.c (machopic_symbol_defined_p): In addition to
8690         being SYMBOL_REF_LOCAL_P, a symbol must also be
8691         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
8692         defined in this output file, or translation unit in the case
8693         of IMA not being used.
8694         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
8695         never need .indirect_symbol when indirecting.
8696
8697 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8698
8699         * Makefile.in (bb-reorder.o): Add several dependencies.
8700
8701 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
8702
8703         * fold-const.c (operand_equal_p): Require equal sign also for
8704         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
8705
8706 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8707
8708         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
8709         for use in configargs.h.  Put the cname in a separate variable.  Use
8710         that to set target_cpu_default2.
8711
8712 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
8713             Nick Clifton  <nickc@redhat.com>
8714
8715         * config/sh/sh.md ("length"): Increase branch length when
8716         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
8717         constant, 2 byte for aligning the constant.
8718
8719 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8720
8721         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
8722         CPU.
8723         (arm7tdmi-s): New CPU name.
8724         * arm/arm.c (ARM_CORE): Update for new format.
8725         * arm/arm.h (ARM_CORE): Likewise.
8726         * arm/gentune.sh: Update for extra field.
8727         * config.gcc: Likewise.
8728         * arm/arm-tune.md: Regenerate.
8729         * doc/invoke.texi: Document the real processor names for ARM cpus.
8730
8731 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
8732
8733         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
8734         (floatdidf): New functions.
8735         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
8736         (floatdisf): New functions.
8737         * t-arm-elf: Use them.
8738
8739 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
8740
8741         * c-common.h (lookup_interface): Remove prototype.
8742         (is_class_name): Rename to objc_is_class_name.
8743         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8744         (get_current_scope): Rename to objc_get_current_scope.
8745         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
8746         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
8747         (yylexname): Call objc_is_class_name() instead of is_class_name().
8748         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
8749         instead of lookup_objc_ivar().
8750         * stub-objc.c (lookup_interface): Remove stub.
8751         (is_class_name): Rename to objc_is_class_name.
8752         (lookup_objc_ivar): Rename to objc_lookup_ivar.
8753
8754 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8755
8756         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
8757         * config/arm/lib1funcs.asm: Do not include supplemental .S files
8758         when compiling for Symbian.
8759         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
8760         (TARGET_OS_CPP_BUILTINS): Likewise.
8761         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
8762
8763 2004-08-31  Stan Shebs  <shebs@apple.com>
8764
8765         * toplev.c (process_options): Ensure debug_hooks is initialized.
8766
8767 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8768
8769         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
8770         * target.h (cxx): Add export_class_data.
8771         * config/arm/arm.c (arm_cxx_export_class_data): New function.
8772         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
8773         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
8774
8775 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
8776
8777         * config/sh/sh.c (output_branch): Check the insn length possibly
8778         in the delayed slot.
8779
8780 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8781
8782         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
8783         blank after ')'.
8784         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
8785
8786         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
8787         (c_sizeof_of_alignof_type): Likewise.
8788         * expr.c (array_ref_element_size): Likewise.
8789         (highest_pow2_factor_for_target): Likewise.
8790         * gimplify.c (canonicalize_addr_expr): Likewise.
8791         (gimplify_compound_lval): Likewise.
8792         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
8793         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
8794         * varasm.c (assemble_variable): Likewise.
8795         (output_constant_def_contents): Alignments are unsigned.
8796
8797 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8798             Jeff Law  <law@redhat.com>
8799
8800         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
8801         gets modified.
8802
8803 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
8804
8805         * hooks.c (hook_bool_void_true): New function.
8806         * hooks.h (hook_bool_void_true): Declare.
8807         * target-def.h (TARGET_CXX): Add
8808         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
8809         * target.h (struct cxx): Add key_method_may_be_inline.
8810         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
8811         function.
8812         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
8813         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
8814         __THUMB_INTERWORK.
8815
8816 2004-08-31  Denis Chertykov  <denisc@overta.ru>
8817
8818         PR target/15417
8819         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
8820         frame pointer register only in Pmode while reload in progress.
8821
8822 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
8823
8824         PR target/15334
8825         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
8826         because it breaks the 32-bit shift patterns that rely on a match_dup.
8827
8828 2004-08-31  Matt Austern  <austern@apple.com>
8829
8830         * config/darwin.c (darwin_make_decl_one_only): Allocate section
8831         names once per compilation, instead of once per symbol.
8832
8833 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
8834
8835         * Makefile.in (build_subdir): New substitution.
8836         (fixinc.sh): Simplify heavily since fixincludes is already built.
8837         (stmp-fixinc): Depend on specs.ready.
8838         (install-mkheaders): Use new location of fixincludes.
8839         (clean): Do not descend into fixinc.
8840         (FORBUILD): Replace with ../$(build_subdir).
8841         * configure.ac (build_subdir): Substitute.
8842         (FORBUILD): Do not set.
8843         (all_outputs): Remove fixinc/Makefile.
8844         (default commands): Do not create links in fixinc.
8845         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
8846         the fixincludes configuration steps and substituting
8847         @FIXINCL@ in fixinc.in.
8848         * fixinc.in: New, from fixinc/fixincl.sh.
8849
8850         * fixinc/*: Removed.
8851
8852 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
8853
8854         * attribs.c (strip_attrs): Remove.
8855         (split_specs_attrs): Move ...
8856         * c-decl.c: ... to here.
8857         * tree.h (split_specs_attrs, strip_attrs): Remove.
8858         * c-tree.h (split_specs_attrs): Declare.
8859
8860 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8861
8862         * read-rtl.c: Disable RTL checking.
8863         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
8864
8865 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
8866
8867         * config/mips/mips.md (fcond): New code macro and attribute.
8868         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
8869         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
8870         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
8871
8872 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
8873
8874         Revert:
8875         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8876         PR rtl-optimization/16590
8877         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8878
8879 2004-08-30  Andrew Pinski  <apinski@apple.com>
8880
8881         * hard-reg-set.h:
8882         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
8883         * ChangeLog: Fix previous ChangeLog entry.
8884
8885         PR rtl-opt/13987
8886         * config.host (use_long_long_for_widest_fast_int): New, default is
8887         off.
8888         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
8889         * configure.ac: If use_long_long_for_widest_fast_int, then
8890         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
8891         * configure: Regenerate.
8892         * config.in: Regenerate.
8893         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
8894         New: widest integer type supported efficiently in hardware for the
8895         host.
8896         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
8897         HOST_BITS_PER_WIDEST_FAST_INT.
8898         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
8899         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
8900         HOST_WIDEST_FAST_INT
8901         instead of HOST_WIDE_INT.
8902         (HARD_REG_SET_LONGS): Likewise.
8903         (UHOST_BITS_PER_WIDE_INT): Likewise.
8904         Change the checks for the fast cases to be based on
8905         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
8906
8907 2004-08-30  Steven Bosscher  <stevenb@suse.de>
8908
8909         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
8910         not the pointers.
8911
8912 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
8913
8914         PR 12738
8915         PR 17205
8916         Radar 3460526
8917         Radar 3775729
8918         * c-decl.c (grokdeclarator): Produce error for 'static' on local
8919         function declaration.
8920
8921 2004-08-30  Richard Henderson  <rth@redhat.com>
8922
8923         * expr.c (array_ref_element_size): Force aligned_size back to
8924         sizetype.
8925         (component_ref_field_offset): Similarly for aligned_offset.
8926         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
8927         low-bound, element-size, field-offset fields rather than
8928         computed values.
8929
8930 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8931
8932         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
8933         redundant code.
8934
8935 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
8936
8937         * c-tree.h (struct language_function): Add arg_info element.
8938         * c-decl.c (current_function_arg_info): New.
8939         (grokdeclarator, store_parm_decls): Use it instead of
8940         DECL_ARGUMENTS.
8941         (c_push_function_context, c_pop_function_context): Save and
8942         restore it.
8943
8944 2004-08-30  Richard Henderson  <rth@redhat.com>
8945
8946         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
8947         COMPONENT_REF to pointer arithmetic.
8948         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
8949         constant "c" as a valid constant initializer.  Allow narrowing of
8950         differences against the same base object, for any base object.
8951
8952 2004-08-30  Richard Henderson  <rth@redhat.com>
8953
8954         * expr.c (expand_expr_addr_expr): New.
8955         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
8956
8957 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8958
8959         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
8960         (mips_fp_condition): New enum.
8961         (mips_fp_conditions): New array.
8962         (print_fcc_operand): Delete.
8963         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
8964         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
8965         (builtin_description): Add "cond" field.
8966         (DIRECT_BUILTIN): Initialize it.
8967         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
8968         into INSN and CODE.  Initialize the "cond" field.
8969         (CMP_BUILTINS): Update accordingly.
8970         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
8971         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
8972         mips_fp_condition as argument.  Make it the final operand of the
8973         comparison instruction.
8974         (mips_expand_builtin): Update accordingly.
8975         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
8976         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
8977         the gaps.
8978         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
8979         Don't use the 'Q' operand prefix; just print the operand normally.
8980         (mips_cabs_*, mips_c_*): Delete, replacing with...
8981         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
8982         patterns.  Split the 4s versions into 2 ps patterns after reload.
8983
8984 2004-08-30  Richard Henderson  <rth@redhat.com>
8985
8986         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
8987         assuming an ADDR_EXPR is non-null.
8988
8989 2004-08-30  Jason Merrill  <jason@redhat.com>
8990
8991         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
8992
8993 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8994
8995         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
8996         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
8997         gcc_assert and gcc_unreachable instead of abort.
8998         * alloc-pool.c (abort, fancy_abort): Remove.
8999         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
9000         gcc_assert or gcc_unreachable.
9001         * attribs.c (init_attributes, decl_attributes): Likewise.
9002         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
9003         mark_bb_for_unlikely_executed_section,
9004         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
9005         fix_crossing_unconditional_branches):  Likewise.
9006         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
9007         bitmap_operation):  Likewise.
9008         * bt-load.c (insn_sets_btr_p, augment_live_range,
9009         move_btr_def):  Likewise.
9010         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
9011         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
9012         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
9013         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
9014         expand_builtin_memcmp, expand_builtin_args_info,
9015         std_gimplify_va_arg_expr, expand_builtin_unop,
9016         expand_builtin_fputs, expand_builtin_profile_func,
9017         expand_builtin_fork_or_exec, fold_builtin_bitop,
9018         fold_builtin_classify, fold_builtin_fputs): Likewise.
9019
9020 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
9021
9022         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
9023         * gcov.c (abort): Remove undef.
9024
9025         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
9026         (struct tree_binfo): Remove primary field.
9027
9028 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
9029
9030         * fixinc/Makefile.in (machname.h): Remove.
9031         (fixincl.x): Do not pass $@ to genfixes.
9032         * fixinc/genfixes: Remove code to produce machname.h.
9033         * fixinc/fixincl.sh: Move it here instead.
9034         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
9035         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
9036         return a bool indicating whether pz_mn_name_pat is NULL.
9037         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
9038         Declare extern C variables for the ENV_TABLE.
9039         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
9040         instead use the result of mn_get_regexps.
9041         * fixinc/fixtests.c: Likewise.
9042
9043 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
9044
9045         * configure.ac: Do not run fixincludes after stage1 during
9046         toplevel bootstrap.
9047         * configure: Regenerate.
9048
9049 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
9050
9051         * sched-deps.c (get_condition): Partially revert previous, by never
9052         trying to extract the condition from a condjump.
9053
9054 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
9055
9056         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
9057         (handle_visibility_attribute, c_determine_visibility): Likewise.
9058         * c-common.h (my_friendly_assert): Remove.
9059
9060 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
9061
9062         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
9063         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
9064         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
9065         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
9066         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
9067
9068 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
9069
9070         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
9071         in COMPONENT_REF nodes.
9072
9073 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9074
9075         PR c++/15378
9076         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
9077         global_dc->warning_as_error_requested.
9078         * diagnostic.c (diagnostic_initialize): Tidy.
9079         * diagnostic.h (diagnostic_context::x_data): Remove
9080         (diagnostic_context::issue_warnings_are_errors_message): Rename
9081         from warnings_are_errors_message.
9082         (diagnostic_context::warning_as_error_requested): New.
9083
9084 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
9085
9086         * sched-deps.c (get_condition): Fix breakage in previous patch.
9087
9088 2004-08-30  Paul Brook  <paul@codesourcery.com>
9089
9090         * doc/install.texi: Fix broken mpfr link.
9091
9092 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
9093
9094         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
9095         other FreeBSD platforms.
9096
9097 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9098
9099         * arm.h (REVERSE_CONDITION): Define.
9100         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
9101
9102 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9103
9104         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
9105         just the codes, call reversed_comparison_code ().
9106         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
9107         (not_reg_cond): Use reversed_comparison_code.
9108         (and_reg_cond): Likewise.
9109         * ifcvt.c (cond_exec_process_if_block): Likewise.
9110         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
9111
9112 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
9113
9114         * sched-deps.c (get_condition): Rewrite using jump support functions.
9115         Use reversed_comparison_code.
9116         (conditions_mutex_p): Use reversed_comparison_code.
9117
9118 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9119
9120         * config/mips/mips.c (override_options): Disable hot/cold partitioning
9121         for MIPS16.
9122
9123 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9124
9125         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
9126         (mips_function_type): Move to mips.c.
9127         * config/mips/mips.c (mips_builtin_type): New enum.
9128         (builtin_description): Replace code and ftype with builtin_type
9129         and function_type.
9130         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
9131         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
9132         (CODE_FOR_mips_abs_ps): Define.
9133         (mips_bdesc): Use new macros.
9134         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
9135         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
9136         (mips_expand_builtin_direct): New function.
9137         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
9138         builtin.  Replace boolean parameter with builtin_type.
9139         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
9140         (mips_expand_4s_compare_builtin): Delete, replacing with...
9141         (mips_expand_builtin_compare): ...this new function.
9142
9143 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
9144
9145         PR rtl-optimization/16590
9146         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
9147
9148 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
9149
9150         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
9151         * tree-ssa-propagate.c: Fix documentation.
9152
9153 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9154
9155         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
9156         (mov[sd]fcc): Likewise.
9157
9158 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9159
9160         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
9161
9162 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9163
9164         * config/mips/mips.md (divide_condition): New mode attribute.
9165         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
9166         (sqrt[sd]f3): Redefine using SCALARF.
9167         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
9168         patterns.
9169
9170 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9171
9172         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
9173         (loadx, storex, fmt, UNITMODE): New mode attributes.
9174         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
9175         (mul[sd]f3): Redefine using :SCALARF.
9176         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
9177         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
9178         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
9179         Check TARGET_FUSED_MADD for V2SF too.
9180         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
9181         were already named.
9182         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
9183         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
9184
9185 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9186
9187         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
9188         V2SF_type_node if it will be needed.
9189
9190 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9191
9192         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
9193         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
9194         (mips_prepare_builtin_target): New function.
9195         (mips_expand_builtin): Use them.  Update calls to subroutines.
9196         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
9197         cmp_choice with a boolean argument to select between movt and movf.
9198         Take the comparison's icode as an argument, not the function's fcode.
9199         (mips_expand_compare_builtin): New function.  Rename existing function
9200         to mips_expand_scalar_compare_builtin.
9201         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
9202         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
9203         comparison's icode as an argument, not the builtin's fcode.
9204
9205 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9206
9207         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
9208         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
9209         registers are false and -1 if all registers are true.
9210         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
9211         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
9212         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
9213         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
9214         (bc1any2t, bc1any2f): Likewise CCV2.
9215         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
9216
9217 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
9218
9219         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
9220         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
9221         UNSPEC rather than an IF_THEN_ELSE.
9222         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
9223         mips_cond_move_tf_ps by name.
9224
9225 2004-08-29  Chao-ying Fu  <fu@mips.com>
9226             James E Wilson  <wilson@specifixinc.com>
9227
9228         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
9229         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
9230         * config/mips/mips-ps-3d.md: New file.
9231         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
9232         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
9233         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
9234         (mips_output_move): Emit "mov.ps" for V2SFmode.
9235         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
9236         MODE_VECTOR_FLOAT.
9237         (override_options): Check if TARGET_MIPS3D and there was an explicit
9238         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
9239         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
9240         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
9241         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
9242         and allow CCV2 and CCV4 to occupy two and four CC registers.
9243         (print_fcc_operand): New function.
9244         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
9245         %Z to call print_fcc_operand.
9246         (mips_function_value): Handle MODE_VECTOR_FLOAT.
9247         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
9248         (mips_vector_mode_supported_p): New function.
9249         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
9250         (builtin_description): New struct.
9251         (mips_bdesc): New array of struct builtin_description.
9252         (mips_expand_builtin, mips_init_builtins,
9253         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
9254         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
9255         functions.
9256         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
9257         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
9258         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
9259         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
9260         "-mips3d", and "-mno-mips3d".
9261         (ASM_SPEC): Map -mips3d to -mips3d in gas.
9262         (EXTRA_CONSTRAINT_Y): New macro.
9263         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
9264         multi-letter constraint 'Y'.
9265         (CONSTRAINT_LEN): New macro.
9266         (enum mips_builtins): New for MIPS builtin functions.
9267         (enum mips_function_type): New for the types of MIPS builtin functions.
9268         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
9269         * config/mips/mips.md: New constants for paired single and MIPS-3D
9270         instructions.  Include the new mips-ps-3d.md file.
9271         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
9272         movv2sf_hardfloat_64bit): New named patterns.
9273         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
9274         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
9275         sdxc1_v2sf_di): New unnamed patterns.
9276         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
9277         const_vector support.
9278         (const_0_or_1_operand): New predicate.
9279         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
9280
9281 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
9282
9283         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
9284         (tree-ssa-propagate.o): New rule.
9285         (GTFILES): Add tree-ssa-propagate.c.
9286         * tree-flow.h (struct stmt_ann_d): Remove field
9287         in_ccp_worklist.
9288         * tree-ssa-propagate.c: New file.
9289         * tree-ssa-propagate.h: New file.
9290         * tree-ssa-ccp.c: Re-write to use the routines from
9291         tree-ssa-propagate.c.
9292
9293 2004-08-28  Andrew Pinski  <apinski@apple.com>
9294
9295         * tree-ssa-loop.c: Remove extra include of basic-block.h.
9296
9297 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
9298
9299         * c-common.h: Update comments about ObjC/ObjC++ entry points.
9300         (objc_is_reserved_word): New prototype.
9301         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
9302         separate section; these are call-backs.
9303         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
9304         ObjC/ObjC++ "@" keywords.
9305         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
9306         prototypes; they already live in c-common.h.
9307         * stub-objc.c: Update copyright notice.
9308         (objc_is_reserved_word): New stub.
9309
9310 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
9311
9312         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
9313         even when not checking.
9314
9315 2004-08-27  Jason Merrill  <jason@redhat.com>
9316
9317         PR c++/13684
9318         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
9319         (gimple_push_cleanup): Add eh_only parm.
9320         (gimplify_target_expr): Pass it.
9321         * c.opt (-fno-threadsafe-statics): New option.
9322         * c-opts.c (c_common_handle_option): Handle it.
9323         * c-common.h (flag_threadsafe_statics): Declare it.
9324         * c-common.c (flag_threadsafe_statics): Record it.
9325         * doc/invoke.texi: Document it.
9326         * tsystem.h (_GNU_SOURCE): Define.
9327         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
9328         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
9329         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
9330         (__gthread_recursive_mutex_init_function): New fn.
9331         (__gthread_recursive_mutex_lock): New fn.
9332         (__gthread_recursive_mutex_trylock): New fn.
9333         (__gthread_recursive_mutex_unlock): New fn.
9334         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
9335         * gthr-win32.h, gthr-vxworks.h: Likewise.
9336         * gthr.h: Document.
9337
9338 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
9339
9340         * config/rs6000/rs6000.c (rs6000_override_options): Increase
9341         maximum skip to 15.  Set function alignment, jump alignment, and
9342         loop alignment to 16 for processors that form dispatch groups.
9343         (rs6000_rtx_costs): outer_code is used.
9344
9345 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
9346
9347         * stor-layout.c (sizetype_set): Remove.
9348         (set_sizetype): Don't test or set it.
9349
9350         * tree.h (size_int_type): Remove.
9351         * fold-const.c: Do not #include gt-fold-const.h.
9352         (size_htab_hash, size_htab_eq): Remove.
9353         (size_int_kind): Use build_int_cst.
9354         (new_const, size_htab): Remove.
9355         (size_int_type): Remove.
9356         (round_up): Use build_int_cst.
9357         (round_down): Likewise. Remove spurious constant build.
9358
9359 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
9360
9361         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
9362         Add is_release variable, use it for --enable-werror and
9363         --enable-checking defaults.
9364         * system.h (gcc_assert, gcc_unreachable): New.
9365         * doc/install.texi (--enable-checking): Update.
9366         * configure, config.in: Rebuilt.
9367
9368 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
9369
9370         * rtl.h (read_rtx): Change prototype.
9371         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
9372         line number.  Return true on success.
9373         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
9374         callers accordingly.
9375
9376 2004-08-26  Richard Henderson  <rth@redhat.com>
9377
9378         * c-typeck.c (build_offsetof): Remove.
9379         * c-tree.h (build_offsetof): Remove.
9380         * c-common.c (fold_offsetof_1, fold_offsetof): New.
9381         * c-common.h (fold_offsetof): Declare.
9382         * c-parse.in (offsetof_base): New.
9383         (offsetof_member_designator): Use it.  Build references, not just
9384         a tree list.
9385         (primary): Use fold_offsetof, not build_offsetof.
9386
9387 2004-08-26  Richard Henderson  <rth@redhat.com>
9388
9389         * tree.c (staticp): Return the static object.
9390         * tree.h (staticp): Update decl.
9391         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
9392         * langhooks.c (lhd_staticp): Return NULL_TREE.
9393         * langhooks-def.h (lhd_staticp): Update decl.
9394         * c-common.c (c_staticp): Return the static object.
9395         * c-common.h (c_staticp): Update decl.
9396
9397 2004-08-26  Richard Henderson  <rth@redhat.com>
9398
9399         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
9400         modes.
9401
9402 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
9403
9404         PR c/13801
9405         * c-decl.c (struct c_binding): Add type and inner_comp fields.
9406         (bind): Set type and inner_comp fields.
9407         (pop_scope): Restore type of decl to the correct type from an
9408         outer scope.  Give error when popping file scope for incomplete
9409         arrays completed incompatibly with default initialization in an
9410         inner scope.
9411         (diagnose_mismatched_decls): Handle externs with initializers at
9412         block scope.
9413         (pushdecl): Set type of external declaration at block scope based
9414         only on the visible declarations.  Save type when changing the
9415         type of a declaration.  Merge an external declaration at block
9416         scope with a visible static declaration at file scope.
9417         (implicitly_declare): Give recycled old declaration the new type
9418         except for incompatible declarations of built-in functions, saving
9419         the old type.
9420
9421 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
9422
9423         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
9424
9425 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9426
9427         * tree-alias-common.c (gate_pta): New function.
9428         (pass_build_pta): Use it.
9429         (pass_del_pta): Use it.
9430         (delete_alias_vars): Don't check flag_tree_points_to.
9431
9432 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9433
9434         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
9435         TFmode as additional register mode cloberred by call.
9436
9437 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9438
9439         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
9440         parallel pattern for library call returning DImode in
9441         mixed mode.
9442
9443 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9444
9445         * config/rs6000/rs6000.c (function_arg): Generate parallel
9446         pattern for more split args.
9447
9448 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
9449
9450         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
9451         either gen_movdi_di_update or gen_movdi_si_update depending on
9452         target mode.
9453         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
9454         to generate two versions.
9455
9456 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
9457
9458         * Makefile.in (lambda-code.o): New.
9459         (lambda-trans.o): Ditto.
9460         (TREE_DATA_REF_H): Ditto.
9461         (LAMBDA_H): Ditto.
9462         (lambda-mat.o): Use LAMBDA_H.
9463         (tree-data-ref.o): Ditto.
9464         * lambda-code.c: New file.  Lambda code generation algorithm.
9465         * lambda-trans.c: Ditto. Lambda transformation matrix support.
9466         * lambda.h: Add lambda loop structures.
9467         Add lambda loopnest structures.
9468         Add lambda body vector structure.
9469         Add lambda linear expression structures.
9470         Add prototypes for functions in new files.
9471         * lambda-mat.c: Include tree.h
9472
9473 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
9474             Sebastian Pop  <pop@cri.ensmp.fr>
9475
9476         * tree-data-ref.h: Include lambda.h
9477         (free_dependence_relation): Declared here.
9478         (free_dependence_relations): Ditto.
9479         (free_data_refs): Ditto.
9480         * tree-data-ref.c (free_dependence_relation): New function.
9481         (free_dependence_relations): Ditto.
9482         (free_data_refs): Ditot.
9483         (analyze_all_data_dependences): Free datarefs and dependence_relations.
9484         (build_classic_dist_vector): Store in the dependence_relations the
9485         information. Each arc in the dependence_relations graph is labelled
9486         with the distance and direction vectors.
9487         (build_classic_dir_vector): Ditto.
9488         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
9489         Now computes again the whole dependence graph including read-read
9490         relations.
9491         (compute_data_dependences_for_loop): Now dependence_relations contains
9492         all the data, and thus it doesn't need to initialize the classic_dir
9493         and classic_dist vectors.
9494         (analyze_all_data_dependences): Adjusted for using the new interface of
9495         compute_data_dependences_for_loop.  Remove the statistics dump.
9496
9497 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
9498
9499         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
9500         (xtensa_expand_block_move): Update comment.
9501         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
9502
9503 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
9504
9505         PR target/13506
9506         * toplev.c (crash_signal): If we crashed while emitting
9507         a user asm, then die more gracefully.
9508
9509 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9510
9511         PR target/17119.
9512         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
9513         checking for a valid constant, regardless of sign.
9514
9515 2004-08-25  Richard Henderson  <rth@redhat.com>
9516
9517         PR target/16974
9518         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
9519         if the constant satisfies add_operand.
9520
9521 2004-08-25  Richard Henderson  <rth@redhat.com>
9522
9523         PR debug/10695
9524         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
9525         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
9526         unwind info for >16-bit frames.
9527
9528 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
9529
9530         PR target/17171
9531         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
9532
9533 2004-08-25  Richard Henderson  <rth@redhat.com>
9534
9535         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
9536         (TARGET_CANNOT_FORCE_CONST_MEM): New.
9537
9538 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9539
9540         * doc/tree-ssa.texi: Document new operand iterator.
9541
9542 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
9543
9544         PR target/16480
9545         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
9546         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
9547         as PLUS base regs.
9548
9549 2005-08-28  Paul Brook  <paul@codesourcery.com>
9550
9551         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
9552         -mfpu=vfp -march=armv5t
9553         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
9554
9555 2004-08-25  Richard Henderson  <rth@redhat.com>
9556
9557         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9558         * target.h (struct gcc_target): Add scalar_mode_supported_p.
9559         * targhooks.c (default_scalar_mode_supported_p): New.
9560         * targhooks.h (default_scalar_mode_supported_p): Declare.
9561         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
9562
9563         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
9564         before attempting to create types.  Tidy.
9565         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
9566
9567         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
9568         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
9569
9570 2004-08-25  Richard Henderson  <rth@redhat.com>
9571
9572         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
9573         set REAL_MODE_FORMAT for TFmode.
9574
9575 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9576
9577         * c-decl.c (grokparm): New function.
9578         * c-tree.h (grokparm): New prototype.
9579
9580 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
9581
9582         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
9583         iterator controlling structure.
9584         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
9585         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
9586         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
9587         iterator flags.
9588         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
9589         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
9590         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
9591         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
9592         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
9593         Empty operand pointers.
9594         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
9595         (op_iter_next_use): New.  Return next use_operand_p.
9596         (op_iter_next_def): New.  Return next def_operand_p.
9597         (op_iter_next_tree): New.  Return next operands as a tree.
9598         (op_iter_init): New.  Initialize an iterator structure.
9599         (op_iter_init_use): New.  Initialize structure and get the first use.
9600         (op_iter_init_def): New.  Initialize structure and get the first def.
9601         (op_iter_init_tree): New.  Initialize structure and get the first tree.
9602         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
9603         (op_iter_init_maydef): New.  Initialize structure and get the first
9604         V_MAY_DEF operands.
9605         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
9606         * tree-dfa.c (compute_immediate_uses_for_stmt,
9607         redirect_immediate_uses): Use new operand iterator.
9608         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
9609         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
9610         operands instead of using *_disappeared_p routines.
9611         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
9612         ssa_rewrite_stmt): Use new operand iterator.
9613         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
9614         rewrite_trees): Use new operand iterator.
9615         * tree-pretty-print.c (dump_vops): Use new operand iterator.
9616         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
9617         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
9618         dump_points_to_info): Use new operand iterator.
9619         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
9620         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
9621         operand iterator.
9622         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
9623         propagate_necessity): Use new operand iterator.
9624         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
9625         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
9626         a parameter instead of a stmt_ann_t.
9627         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
9628         build_tree_conflict_graph): Use new operand iterator.
9629         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
9630         rewrite_mem_refs): Use new operand iterator.
9631         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
9632         check_loop_closed_ssa_use): Use new operand iterator.
9633         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
9634         * tree-ssanames.c (release_defs): Use new operand iterator.
9635         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
9636
9637 2004-08-25  Adam Nemet  <anemet@lnxw.com>
9638
9639         * tlink.c (initial_cwd): New variable.
9640         (tlink_init): Initialize it.
9641         (recompile_files): Use tlink_execute() instead of system().  Don't
9642         duplicate verbose output of collect_execute.  Restore initial_cwd.
9643         Update comment before the function.
9644
9645 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
9646
9647         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
9648         accept) a cast from one Objective-C pointer type to another.
9649
9650 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
9651
9652         * doc/install.texi: Document that libstdc++-v3 requires
9653         now automake 1.9.1.
9654
9655 2004-08-25  Caroline Tice  <ctice@apple.com>
9656
9657         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
9658         to comments at start of function.
9659         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
9660         comment.
9661         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9662         merge_blocks_move_predecessor_nojumps,
9663         merge_blocks_move_successor_nojumps, merge_blocks_move,
9664         try_crossjump_to_edge, try_crossjump_bb): Likewise.
9665         * cfglayout.c (fixup_reorder_chain): Likewise.
9666         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
9667         cfg_layout_can_merge_blocks_p):  Likewise.
9668         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
9669         * passes.c (rest_of_compilation): Update comments for calling
9670         optimization that partitions hot/cold basic blocks.
9671         * doc/invoke.texi:  Update documentation of
9672         freorder-blocks-and-partition flag.
9673
9674 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9675
9676         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
9677         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
9678
9679 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
9680
9681         * config/mips/mips.md (any_shift): New code macro.
9682         (optab, insn): New code attributes.
9683         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
9684         Use the standard rather than internal patterns for the MIPS16
9685         double-shift optimization.
9686         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
9687         Redefine using :GPR and any_shift.
9688         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
9689         to cover all three shifts.
9690         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
9691         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
9692         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
9693
9694 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
9695
9696         * gimplify.c (lookup_tmp_var): Separate temporaries when not
9697         optimizing.
9698
9699 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9700
9701         PR libstdc++/17005 (fix for HP-UX 11.11)
9702         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
9703         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
9704         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
9705         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
9706         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
9707         (LINK_SPEC): Handle march=1.0 option.
9708         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9709         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
9710         (SUBTARGET_OPTIONS): New define.
9711         (LINK_SPEC): Handle march=1.0 option.
9712         (STARTFILE_SPEC): New define.
9713         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
9714         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
9715         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
9716         (SUBTARGET_OPTIONS): New define.
9717         (LINK_SPEC): Handle march=1.0 option.
9718         (STARTFILE_SPEC): New define.
9719         * config/pa/pa.c (override_options): Add code to process -munix= option.
9720         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
9721         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
9722         defines.
9723         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
9724         (SUBTARGET_OPTIONS): Provide default define.
9725         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
9726         STANDARD_STARTFILE_PREFIX_2): New defines.
9727         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
9728         (ENDFILE_SPEC): Use %O.
9729         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
9730         Mention issue caused by changing namespace and runtime to UNIX 95/98.
9731         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
9732         Document -munix=std option.
9733
9734 2004-08-25  Steven Bosscher  <stevenb@suse.de>
9735
9736         * cse.c (cse_around_loop, cse_check_loop_start,
9737         cse_set_around_loop): Remove.
9738         (cse_basic_block): Remove the around_loop argument.
9739         (cse_end_of_basic_block): Remove the after_loop argument.
9740         (cse_main): Likewise.
9741         * rtl.h (cse_main): Update prototype.
9742         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
9743         rest_of_handle_gcse): Update cse_main calls.
9744
9745 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
9746
9747         * tree.h  (build_int_cst): New, sign extended constant.
9748         (build_int_cstu): New, zero extended constant.
9749         (build_int_cst_wide): Renamed from build_int_cst.
9750         * tree.c (build_int_cst, build_int_cstu): New.
9751         (build_int_cst_wide): Renamed from build_int_cst.
9752         (make_vector_type, build_common_tree_nodes,
9753         build_common_tree_nodes_2): Adjust build_int_cst calls.
9754         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
9755         expand_builtin_strpbrk, expand_builtin_fputs,
9756         build_string_literal, expand_builtin_printf,
9757         expand_builtin_sprintf, fold_builtin_classify_type,
9758         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
9759         fold_builtin_toascii, fold_builtin_isdigit,
9760         simplify_builtin_strstr, simplify_builtin_strpbrk,
9761         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
9762         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
9763         DEF_ATTR_INT): Likewise.
9764         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
9765         Likewise.
9766         * c-lex.c (interpret_integer, lex_charconst): Likewise.
9767         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
9768         * c-pretty-print.c (pp_c_integer_constant): Likewise.
9769         * c-typeck.c (really_start_incremental_init, push_init_level,
9770         set_nonincremental_init_from_string): Likewise.
9771         * calls.c (load_register_parameters): Likewise.
9772         convert.c (convert_to_pointer): Likewise.
9773         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
9774         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
9775         build_gcov_info): Likewise.
9776         * except.c (init_eh, assign_filter_values): Likewise.
9777         * expmed.c (store_fixed_bit_field, extract_bit_field,
9778         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
9779         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
9780         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
9781         * expr.c (convert_move, emit_group_load, emit_group_store,
9782         expand_assignment, store_constructor, store_field,
9783         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
9784         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
9785         invert_truthvalue, optimize_bit_field_compare,
9786         decode_field_reference, all_ones_mask_p, constant_boolean_node,
9787         fold_div_compare, fold, fold_read_from_constant_string,
9788         fold_negate_const, fold_abs_const, fold_not_const, round_up,
9789         round_down): Likewise.
9790         * function.c (assign_parm_setup_block): Likewise.
9791         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
9792         Likewise.
9793         * stor-layout.c (layout_type, initialize_sizetypes,
9794         set_min_and_max_values_for_integral_type): Likewise.
9795         * tree-chrec.c (chrec_fold_multiply_poly_poly,
9796         reset_evolution_in_loop): Likewise.
9797         * tree-chrec.h (build_polynomial_chrec): Likewise.
9798         * tree-complex.c (build_replicated_const): Likewise.
9799         * tree-eh.c (honor_protect_cleanup_actions,
9800         lower_try_finally_onedest, lower_try_finally_copy,
9801         lower_try_finally_switch): Likewise.
9802         * tree-mudflap.c (mf_build_string, mx_register_decls,
9803         mudflap_register_call, mudflap_enqueue_constant): Likewise.
9804         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
9805         * tree-pretty-print.c (dump_generic_node): Likewise.
9806         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
9807         Likewise.
9808         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
9809         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9810         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
9811         Likewise.
9812         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
9813         canonicalize_loop_induction_variables): Likewise.
9814         * tree-vectorizer.c (vect_create_index_for_array_ref,
9815         vect_transform_loop_bound, vect_compute_data_ref_alignment):
9816         Likewise.
9817
9818         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
9819         alpha_gimplify_va_arg_1): Likewise.
9820         * config/arm/arm.c (arm_get_cookie_size): Likewise.
9821         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
9822         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
9823         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
9824         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
9825         mips_gimplify_va_arg_expr): Likewise.
9826         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
9827         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
9828         add_compiler_branch_island): Likewise.
9829         * config/s390/s390.c (s390_va_start): Likewise.
9830         * config/sh/sh.c (sh_va_start): Likewise.
9831         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
9832         Likewise.
9833         * config/xtensa/xtensa.c (xtensa_va_start,
9834         xtensa_gimplify_va_arg_expr): Likewise.
9835
9836         * objc/objc-act.c (build_objc_string_object,
9837         build_objc_symtab_template, init_def_list, init_objc_symtab,
9838         init_module_descriptor, generate_static_references,
9839         build_selector_translation_table, get_proto_encoding,
9840         build_typed_selector_reference, build_selector_reference,
9841         build_next_objc_exception_stuff,
9842         build_method_prototype_list_template, generate_descriptor_table,
9843         generate_protocols, build_protocol_initializer,
9844         build_ivar_list_template, build_method_list_template,
9845         build_ivar_list_initializer, generate_ivars_list,
9846         generate_dispatch_table, generate_protocol_list,
9847         build_category_initializer, build_shared_structure_initializer,
9848         generate_shared_structures, handle_impent,
9849         generate_objc_image_info): Likewise.
9850
9851 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
9852
9853         * cfglayout.c (duplicate_insn_chain): Remove references to
9854         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
9855         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
9856         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
9857         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
9858         and NOTE_INSN_LOOP_CONT.
9859         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
9860         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
9861         and NOTE_INSN_LOOP_CONT.
9862         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
9863         check_dbra_loop, loop_dump_aux): Remove references to removed notes
9864         and fields.
9865         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
9866         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
9867         references to removed notes and fields.
9868         (subtract_reg_term, ujump_to_loop_cont): Remove.
9869
9870 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
9871
9872         * doc/install.texi: Document that libcpp does not require
9873         Automake any longer.  Document that Automake 1.9.1 should
9874         work everywhere.
9875
9876 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9877
9878         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
9879         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
9880         DWARF_DEBUGGING_INFO from choice-of-definition chain;
9881         restructure using C89 features (#elif, #error).
9882         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
9883         * config/sh/sh.h: Remove references to DWARF_DEBUG.
9884         * doc/invoke.texi: Remove references to DWARF version 1;
9885         clarify why -gdwarf-2<n> doesn't work.
9886
9887 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
9888
9889         * basic-block.h (BB_SET_PARTITION): Clear old value first.
9890         * cfg.c (clear_bb_flags): Don't clear partition setting.
9891         * ifcvt.c (find_if_case_1): Remove ??? comment.
9892
9893 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
9894
9895         PR target/17052
9896         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
9897         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
9898         current_function_stdarg in place of sysv_varargs_p.
9899         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
9900         sysv_varargs_p.
9901
9902 2004-08-24  Richard Henderson  <rth@redhat.com>
9903
9904         PR target/16298
9905         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
9906         random codes within CONST.
9907
9908 2004-08-24  James E Wilson  <wilson@specifixinc.com>
9909
9910         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
9911         -freorder-blocks-and-partition.
9912
9913 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9914
9915         PR middle-end/17044
9916         * tree-ssa-threadupdate.c (redirection_data): Make static.
9917         (thread_block): Use ggc_alloc_cleared to allocate struct
9918         redirection_data.  Don't free elements in redirection_data.
9919
9920 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9921
9922         * config/mips/predicates.md (small_data_pattern): Match prefetches.
9923
9924 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9925
9926         PR tree-optimization/17016
9927         * tree-ssa-loop-niter.c (number_of_iterations_cond,
9928         number_of_iterations_exit): Use POINTER_TYPE_P instead
9929         of testing for POINTER_TYPE.
9930
9931 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9932
9933         * tree-ssa-loop-ivcanon.c: New file.
9934         * tree-ssa-loop-manip.c (create_iv): New function.
9935         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
9936         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
9937         * cfgloop.c (mark_single_exit_loops): New function.
9938         (verify_loop_structure): Verify single-exit loops.
9939         * cfgloop.h (struct loop): Add single_exit field.
9940         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
9941         (mark_single_exit_loops): Declare.
9942         (tree_num_loop_insns): Declare.
9943         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
9944         (duplicate_loop_to_header_edge): Use it.
9945         * common.opt (fivcanon): New flag.
9946         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
9947         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
9948         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
9949         (bsi_insert_on_edge_immediate): New function.
9950         * tree-flow.h (bsi_insert_on_edge_immediate,
9951         canonicalize_induction_variables, tree_unroll_loops_completely,
9952         create_iv): Declare.
9953         * tree-optimize.c (init_tree_optimization_passes): Add
9954         pass_iv_canon and pass_complete_unroll.
9955         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
9956         * tree-scalar-evolution.c (get_loop_exit_condition,
9957         get_exit_conditions_rec, number_of_iterations_in_loop,
9958         scev_initialize): Use single_exit information.
9959         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
9960         missing assumptions.
9961         (loop_niter_by_eval):  Return number of iterations as unsigned
9962         int.
9963         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
9964         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
9965         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
9966         New passes.
9967         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
9968         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
9969         the defining statement is ready.
9970         * tree-vectorizer.c (vect_create_iv_simple): Removed.
9971         (vect_create_index_for_array_ref, vect_transform_loop_bound):
9972         Use create_iv.
9973         (vect_transform_loop_bound): Use single_exit information.
9974         (vect_analyze_loop_form): Cleanup bogus tests.
9975         (vectorize_loops): Do not call flow_loop_scan.
9976         * tree.h (may_negate_without_overflow_p): Declare.
9977         * fold-const.c (may_negate_without_overflow_p): Split out from ...
9978         (negate_expr_p): ... this function.
9979         (tree_expr_nonzero_p): Handle overflowed constants correctly.
9980         * doc/invoke.texi (-fivcanon): Document.
9981         * doc/passes.texi: Document canonical induction variable creation.
9982
9983 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9984
9985         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
9986         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
9987         using the mode of the operand to decide between them.
9988         * config/mips/mips.md (MOVECC): New mode macro.
9989         (ccreg): New mode attribute.
9990         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
9991         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
9992         (mov[sd]icc): Redefine using :GPR.
9993
9994 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9995
9996         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
9997         (mips_prefetch_cookie): New function.
9998         * config/mips/mips.c (print_operand_address): Fix handling of
9999         ADDRESS_CONST_INT.
10000         (mips_emit_prefetch): Delete.
10001         (mips_prefetch_cookie): New function.
10002         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
10003         mode of QImode for the address_operand.  Use mips_prefetch_cookie
10004         to calculate the first "pref" operand.
10005         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
10006         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
10007
10008 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
10009
10010         * arm.md: Include predicates.md.
10011         * predicates.md: New file.
10012         * arm.c (s_register_operand, arm_hard_register_operand)
10013         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
10014         (arm_immediate_operand, arm_neg_immediate_operand)
10015         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
10016         (arm_add_operand, arm_addimm_operand, arm_not_operand)
10017         (offsettable_memory_operand, alignable_memory_operand)
10018         (arm_reload_memory_operand, arm_float_rhs_operand)
10019         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
10020         (index_operand, shiftable_operator, logical_binary_operator)
10021         (shift_operator, equality_operator, arm_comparison_operator)
10022         (minmax_operator, cc_register, dominant_cc_register)
10023         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
10024         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
10025         (const_shift_operand, load_multiple_operation)
10026         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
10027         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
10028         (cirrus_register_operand, cirrus_fp_register)
10029         (cirrus_shift_const): Delete, replaced with equivalents in
10030         predicates.md.
10031         (shift_op): Handle ROTATE.
10032         * arm-protos.h: Delete declarations for above.
10033         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
10034         * t-arm (MD_INCLUDES): Add predicates.md.
10035         (s-preds): Depends on MD_INCLUDES.
10036
10037 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10038
10039         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
10040         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
10041         patterns.  Redefine using :GPR.  Give the match_operator a mode.
10042         Use '%2' rather than '%z2' for operand 2.
10043
10044 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10045
10046         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
10047         attribute.
10048
10049 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10050
10051         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
10052         of internal patterns.
10053         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
10054         Redefine using :P.
10055         (tablejump): Use expand_binop to calculate address.  Adjust names
10056         of internal patterns.
10057         (tablejump[sd]i): Renamed from tablejump_internal[12].
10058         Redefine using :P.
10059         (tablejump_mips16[12]): Delete.
10060
10061 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10062
10063         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
10064         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
10065         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
10066         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
10067         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
10068
10069 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
10070
10071         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
10072         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
10073         using :GPR.
10074         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
10075         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
10076         (*branch_equality[sd]i_inverted): Likewise
10077         branch_equality{,_di}_inverted.
10078         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
10079         Redefine using :GPR.
10080
10081 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
10082
10083         * rtl.def: Reorganize, placing all codes used only in machine
10084         descriptions at the end.
10085
10086         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
10087         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
10088         rtx_name, rtx_format arrays by direct reference to rtl.def,
10089         first undefining GENERATOR_FILE.  Define enum insn_note and
10090         note_insn_name array by direct reference to insn-notes.def.
10091         (adjust_field_rtx_def): Remove local definition of rtx_name.
10092         Use symbolic names for insn notes.
10093         * Makefile.in (gengtype.o): Update dependencies.
10094
10095 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
10096
10097         * basic-block.h (struct basic_block_def): Reorder fields to
10098         eliminate interior padding.  Remove 'partition' field.
10099         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
10100         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
10101         (BB_COPY_PARTITION): New macros.
10102         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
10103         Replace all references to the 'partition' field of a basic
10104         block with new macros.
10105
10106         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
10107         * final.c (final_scan_insn): Don't handle it.
10108         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
10109         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
10110         * sched-rgn.c (sched_is_disabled_for_current_region_p):
10111         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
10112
10113 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
10114
10115         * c-decl.c (c_init_decl_processing): Adjust
10116         build_common_tree_nodes call.
10117         * expmed.c (const_mult_add_overflow_p): Use
10118         build_distinct_type_copy.
10119         * stor-layout.c (early_type_list): Remove.
10120         (layout_type): Don't append to early_type_list.
10121         (initialize_sizetypes): Add signed_p argument.
10122         (set_sizetype): Overwrite the stub type nodes directly.
10123         * tree.c (copy_node_stat): Clear a type's value cache here ...
10124         (build_distinct_type): ... not here.
10125         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
10126         * tree.h (initialize_sizetypes): Add signed_p argument.
10127         (build_common_tree_nodes): Likewise.
10128
10129         * objc/objc-act.c (get_static_reference): Use
10130         build_variant_type_copy.
10131         (get_protocol_reference): Likewise.
10132         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
10133
10134 2004-08-24  Richard Henderson  <rth@redhat.com>
10135             Andrew Pinski  <apinski@apple.com>
10136
10137         * gimplify.c (gimplify_array_ref_to_plus): Delete.
10138         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
10139         for ARRAY_REF.
10140
10141         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
10142         ARRAY_REF also to get to the STRING_CST.
10143
10144 2004-08-24  Paul Brook  <paul@codesourcery.com>
10145
10146         * config/arm/arm.c (arm_override_options): Update error message.
10147         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
10148         TARGET_HARD_FLOAT_ABI.
10149         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
10150         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
10151
10152 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10153
10154         PR target/17093
10155         * config/m32r.md (movsi_sda): Add SI mode specification to
10156         UNSPEC.
10157
10158 2004-08-24  Nick Clifton  <nickc@redhat.com>
10159
10160         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
10161         of seth_add3_operand.
10162
10163 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
10164
10165         * Makefile.in (PROTO_OBJS): Add errors.o.
10166         * protoize.c (fancy_abort): Remove.
10167         * mips-tfile.c (fancy_abort): Add parameters.
10168
10169 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
10170
10171         * doc/trouble.texi (C++ misunderstandings): Fix example code.
10172
10173 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
10174
10175         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
10176         (host-default.o): Add dependency on HOOKS_H.
10177         * config/x-linux: Likewise.
10178         * config/x-solaris: Likewise.
10179         * config/i386/x-mingw32: Likewise.
10180         * config/rs6000/x-darwin: Likewise.
10181
10182 2004-08-23  James E Wilson  <wilson@specifixinc.com>
10183
10184         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
10185         DEF_REG_NOTE.
10186
10187 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
10188
10189         PR c/14492
10190         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
10191
10192 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
10193
10194         * cfg.c (check_bb_profile): Fix typos.
10195         * function.c (assign_parm_is_stack_parm): Likewise.
10196         * tree-nested.c: Likewise.
10197
10198 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
10199
10200         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
10201         Remove TYPECODE.
10202         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
10203
10204 2004-08-23  Eric Christopher  <echristo@redhat.com>
10205
10206         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
10207         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
10208         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
10209         * target.h: Ditto.
10210         * hooks.h: Include machmode.h.
10211         (hook_bool_mode_false): Declare.
10212         * hooks.c (hook_bool_mode_false): Define.
10213         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
10214         * stor-layout.c (layout_type): Ditto.
10215         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
10216         Define to target macro.
10217         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
10218         * config/arm/arm.c: Ditto. Use.
10219         * config/arm/arm.h: Ditto.
10220         * config/arm/arm-protos.h: Ditto.
10221         * config/i386/i386.c: Ditto.
10222         * config/i386/i386.h: Ditto.
10223         * config/rs6000/rs6000.c: Ditto.
10224         * config/rs6000/rs6000.h: Ditto.
10225         * config/sh/sh.c: Ditto.
10226         * config/sh/sh.h: Ditto.
10227         * config/sh/sh-protos.h: Ditto.
10228         * config/sh/sh.md: Use.
10229         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
10230         to TARGET_VECTOR_MODE_SUPPORTED_P.
10231
10232 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
10233
10234         * Makefile.in (BUILD_ERRORS): Set to build-errors.
10235         (errors.o): New target for host.
10236         (build-errors.o): New target for build.
10237         (genobjs): Replace errors.o with build-errors.
10238         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
10239         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
10240         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
10241         (fix-header.o): Add errors.h
10242         * collect2.c (fancy_abort): Add parameters.
10243         * collect2.h (fancy_abort): Don't declare.
10244         * errors.h (fancy_abort): Don't declare.
10245         * errors.c: Include either bconfig.h or config.h.
10246         (fancy_abort): Trim filename.
10247         * fix-header.c (v_fatal, fatal): Remove.
10248         (progname): Remove definition.
10249         (main): Set progname here.
10250         * gcc.c (fancy_abort): Add parameters.
10251         * gcc.h (fancy_abort): Remove declaration.
10252         * gcov.c (fancy_abort): Remove.
10253         * rtl.h (fancy_abort): Don't declare.
10254         (abort): Don't define.
10255         * tree.h (fancy_abort): Don't declare.
10256         (abort): Don't define.
10257         * system.h (fancy_abort): Declare.
10258         (abort): Define to fancy_abort.
10259         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
10260
10261         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
10262         (usize_type, ubitsizetype): Remove.
10263         * stor-layout.c (set_sizetype): Don't initialize usizetype,
10264         ubitsizetype.
10265         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
10266
10267         * tree.h (build_distinct_type_copy): New.
10268         (build_type_copy): ... here.  Rename to ...
10269         (build_variant_type_copy): ... here.
10270         * tree.c (build_qualified_type): Rename build_type_copy call.
10271         (build_distinct_type_copy): New, broken out of ...
10272         (build_type_copy): ... here.  Rename to ...
10273         (build_variant_type_copy): ... here.  Use
10274         build_distinct_type_copy.
10275         (build_common_tree_nodes_2): Rename build_type_copy call.
10276         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
10277         call.
10278         (handle_packed_attribute, handle_unused_attribute,
10279         handle_transparanet_union_attribute, handle_aligned_attribute,
10280         handle_deprecated_attribute): Likewise.
10281         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
10282         Likewise.
10283         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
10284         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
10285         build_distinct_type_copy.
10286
10287 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10288
10289         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
10290         attribute.
10291
10292 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10293
10294         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
10295         loads and stores.
10296         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
10297         formerly unnamed patterns.  Redefine using :P for the address.  Remove
10298         explicit length attributes.
10299
10300 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10301
10302         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
10303         New functions.
10304         (single_reachable_address): Use them.
10305         (schedule_sm): Add dump.
10306         (is_call_clobbered_ref): New function.
10307         (determine_lsm_reg): Check whether the reference is call clobbered.
10308         Only work for gimple_reg_type values.
10309
10310 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10311
10312         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
10313         $31 store insns.  Redefine using :GPR.
10314
10315 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10316
10317         * config/mips/mips.md (P): New mode macro.
10318         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
10319         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
10320         Add mode attributes.
10321
10322 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10323
10324         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
10325         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
10326         later constants to cover the gap.
10327         (load, store): New mode attributes.
10328         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
10329         Use new unspec constants.
10330
10331 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10332
10333         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
10334         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
10335         to use register_operand rather than uns_arith_operand as the predicate
10336         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
10337         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
10338         Redefine using :GPR.  Make same predicate change here.  Extend the
10339         commutativity of operands 1 and 2 from the SImode version to the
10340         DImode one.
10341         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
10342         but with no predicate changes.
10343         (*nor[sd]i3): Redefine using :GPR.
10344
10345 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10346
10347         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
10348         noreturn functions.
10349
10350 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10351
10352         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
10353         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
10354         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
10355         rather than "%z2" (with a fake const0_rtx for operand 2).
10356         (ffs[sd]i2): Redefine using :GPR.
10357         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
10358
10359 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10360
10361         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
10362
10363 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10364
10365         * config/mips/mips.md (any_extend): New code macro.
10366         (u, su): New code attributes.
10367         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
10368         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
10369         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
10370         (*{s,u}mul_acc_di): Redefine using any_extend.
10371         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
10372         to reflect real insn names.
10373         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
10374         with an any_extend template.
10375         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
10376         Add '*' to name.
10377
10378 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10379
10380         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
10381         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
10382         (mul[sd]i3_r4000): Redefine using :GPR.
10383         (mulsi3_mult3): Don't check TARGET_MAD separately.
10384         (muldi3_mult3): Moved after mulsi_mult3.
10385
10386 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10387
10388         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
10389         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
10390         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
10391         (TARGET_GAS, TARGET_MIPS_AS): Delete.
10392         (TARGET_GPWORD): Define to true for n32 on IRIX.
10393         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
10394         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
10395         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
10396         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
10397         (MDEBUG_ASM_SPEC): Delete, folding into...
10398         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
10399         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
10400         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
10401         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
10402         to define asm_abi_default_spec.
10403         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
10404         (TARGET_ASM_SELECT_SECTION): Delete.
10405         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
10406         for non-mips16 code, removing previous workaround for SGI assemblers.
10407         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
10408         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
10409         (override_options): Remove !TARGET_GAS and !have_named_sections code.
10410         (print_operand): Fold TARGET_GAS conditionals into asm strings.
10411         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
10412         ASM_STABS_OP and ASM_STABN_OP.
10413         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
10414         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
10415         (mips_output_function_prologue): Remove !TARGET_GAS code.
10416         (mips_select_rtx_section): Remove !have_named_sections code.
10417         (mips_select_section): Delete.
10418         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
10419         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
10420         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
10421         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
10422         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
10423         * config/mips/windiss.h (ASM_SPEC): Likewise.
10424
10425 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10426
10427         * read-rtl.c (map_value, mapping, macro_group): New structures.
10428         (BELLWETHER_CODE): New macro.
10429         (modes, codes, bellwether_codes): New variables.
10430         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
10431         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
10432         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
10433         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
10434         (add_map_value, initialize_macros): New functions.
10435         (def_hash, def_hash_eq_p): Generalize to anything that points to,
10436         or starts with, a char * field.
10437         (find_macro, read_mapping, check_code_macro): New functions.
10438         (read_rtx_1): New, split out from read_rtx.  Handle the new
10439         define_{mode,code}_{macro,attr} constructs.  Use find_macro
10440         to parse the name of a code or mode.  Use BELLWETHER_CODE to
10441         extract the format and to choose a suitable code for rtx_alloc.
10442         Modify recursive invocations to use read_rtx_1.
10443         (read_rtx): Call initialize_macros.  Apply code and mode macros
10444         to the rtx returned by read_rtx_1.  Cache everything after the
10445         first macro expansion for subsequent read_rtx calls.
10446         * doc/md.texi: Document new .md constructs.
10447         * config/mips/mips.md (GPR): New mode macro.
10448         (d, si8_di5): New mode attributes.
10449         (any_cond): New code macro.
10450         (add[sd]i3): Redefine using :GPR.
10451         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
10452         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
10453         previously unnamed MIPS16 patterns.
10454         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
10455         lines.  Don't match (plus (const_int 0) ...).
10456         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
10457         Use a define_split to generate the addition.
10458         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
10459         (subsi3_internal): Delete.
10460         (*subsi3_extended): Renamed from subsi3_internal_2.
10461         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
10462         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
10463         using an any_cond template.
10464
10465 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10466
10467         * read-rtl.c (read_rtx): Tidy use of format_ptr.
10468
10469 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
10470
10471         * read-rtl.c (string_obstack): New file-scope variable.
10472         (read_string, read_quoted_string, read_braced_string)
10473         (read_escape): Remove obstack parameter and use string_obstack instead.
10474         (read_rtx): Remove function-local rtl_obstack and initialize
10475         string_obstack instead.  Update call to read_string.
10476
10477 2004-08-22  Andrew Pinski  <apinski@apple.com>
10478
10479         PR c/15262
10480         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
10481         expression is not constant.
10482         (c_finish_return): Do not go through INDIRECT_REF when looking
10483         for the inner expression of an ADDR_EXPR for warning about.
10484
10485 2004-08-22  Richard Henderson  <rth@redhat.com>
10486
10487         PR 17075
10488         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
10489         create new blocks and fall through.
10490         (expand_gimple_basic_block): Update to match.
10491
10492 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
10493
10494         * reload.c (find_reloads_address): Make return value tri-state.
10495         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
10496         (find_reloads): Assume that reloaded addresses match 'o' or
10497         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
10498         returned 1 (not -1).  Omit optional reloads for address operands
10499         only if find_reloads_address returned 1 (not -1).
10500
10501         * config/s390/s390.c (legitimize_reload_address): New function.
10502         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
10503         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
10504         legitimize_reload_address.
10505
10506 2004-08-22  Richard Hendersion  <rth@redhat.com>
10507
10508         * tree.h (SAVE_EXPR_RESOLVED_P): New.
10509         * gimplify.c (gimplify_save_expr): Use it.
10510         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
10511         on the temporary variable.
10512
10513 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
10514
10515         * fold-const.c (rtl_expr_nonnegative_p): Delete.
10516         * tree.h (rtl_expr_nonnegative_p): Remove.
10517
10518 2004-08-22  Steven Bosscher  <stevenb@suse.de>
10519
10520         * config/i386/ppro.md (ppro_complex_insn): Add missing check
10521         for cpu==pentiumpro.
10522
10523         * combine.c (struct reg_stat): Fix comment typo.
10524
10525 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
10526
10527         * c-tree.h (c_sizeof_nowarn): Remove.
10528
10529 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10530
10531         * c-decl.c (set_array_declarator_type): Rename to
10532         set_array_declarator_inner.
10533         (build_c_parm, build_attrs_declarator, build_function_declarator):
10534         New functions.
10535         (make_pointer_declarator): Call build_attrs_declarator.
10536         * c-tree.h (set_array_declarator_type): Rename to
10537         set_array_declarator_inner.
10538         (build_c_parm, build_attrs_declarator, build_function_declarator):
10539         New prototypes.
10540         * c-parse.in (after_type_declarator,
10541         parm_declarator_starttypename, parm_declarator_nostarttypename,
10542         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
10543         firstparm): Use these functions
10544
10545 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
10546
10547         * c-decl.c (build_array_declarator, set_array_declarator_type,
10548         start_decl, grokdeclarator, grokparms): Change boolean parameters
10549         to type bool.
10550         * c-tree.h (build_array_declarator, set_array_declarator_type,
10551         start_decl): Update prototypes.
10552         * c-decl.c, c-parse.in: All callers changed.
10553
10554 2004-08-21  Mike Stump  <mrs@apple.com>
10555
10556         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
10557         (darwin_fix_and_continue): Likewise.
10558         (darwin_fix_and_continue_switch): Likewise.
10559         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
10560         (darwin_fix_and_continue): Likewise.
10561         (darwin_fix_and_continue_switch): Likewise.
10562
10563 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
10564
10565         PR  c++/16030
10566         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
10567         Remove, merging into ...
10568         (gen_stdcall_or_fastcall_suffix): New function, returning tree
10569         rather than const char*, and accepting additional parameter.
10570         Don't add suffix to '*'-prefixed symbols or variadic functions.
10571         (i386_pe_encode_section_info): Adjust for call to new function.
10572         Call change_decl_assembler_name.
10573
10574 2004-08-20  Mike Stump  <mrs@apple.com>
10575
10576         * config/darwin.c (machopic_indirect_data_reference): Mark
10577         stubs as defined.
10578         * config/386/386.c (darwin_local_data_pic): Add.
10579         (legitimate_constant_p): Reorder so that PLUS handling runs
10580         before darwin_local_data_pic to match the ordering in
10581         legitimate_pic_address_disp_p and so that MINUS runs after
10582         darwin_local_data_pic as otherwise the darwin_local_data_pic
10583         logic can be skipped, which would be very bad.
10584         (legitimate_pic_address_disp_p): Move from from here to
10585         darwin_local_data_pic so it can be reused.
10586
10587 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
10588
10589         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
10590         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
10591         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
10592         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
10593         (RS6000_ABI_NAME): Define as "linux".
10594         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
10595         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
10596         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
10597         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
10598         * config/rs6000/rs6000.c (dot_symbols): New global var.
10599         (rs6000_output_function_entry): New function, modified for
10600         !DOT_SYMBOLS..
10601         (print_operand <case 'z'>): ..extracted from here.
10602         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
10603         (rs6000_output_function_epilogue): Likewise.
10604         (rs6000_elf_declare_function_name): Likewise.
10605         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
10606         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
10607         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
10608         * configure: Regenerate.
10609         * config.in: Regenerate.
10610
10611 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10612
10613         * reload.c (find_reloads_address): Fix thinko in previous change.
10614
10615         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
10616         a CONST_INT.
10617
10618 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
10619
10620         PR rtl-optimization/17099
10621         * combine.c (force_to_mode): Check if inner_mask has any bits set
10622         outside of GET_MODE (x) instead of op_mode.
10623
10624 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
10625
10626         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
10627         fragment.
10628         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
10629         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
10630         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
10631         architecture.
10632         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
10633         configurations.
10634         * config/arm/t-symbian: New file.
10635
10636 2004-08-20  Andrew Pinski  <apinski@apple.com>
10637
10638         * regrename.c (kill_value_regno): ANSIfy.
10639
10640 2004-08-20  Dale Johannesen  <dalej@apple.com>
10641
10642         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
10643
10644 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
10645
10646         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
10647         (kill_value_regno): New function, derived from kill_value.
10648         (kill_value): Update.
10649         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
10650
10651 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
10652
10653         Fix PR tree-optimization/17111
10654         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
10655         of non-value_handles.
10656         (bitmap_set_contains): All constants are in every set.
10657
10658 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10659
10660         * fold-const.c (round_up, round_down): Use build_int_cst.
10661         Optimize common case.
10662
10663 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
10664             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10665
10666         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
10667         one_only_data_section): Rename to som_readonly_data_section,
10668         som_one_only_readonly_data_section and som_one_only_data_section.
10669         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
10670         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
10671         conditional defines.
10672         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
10673         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
10674         string values.
10675         (pa_select_section): Use renamed section functions.
10676         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
10677         SOM_READONLY_DATA_SECTION_FUNCTION,
10678         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
10679         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
10680         Define here ...
10681         * config/pa/som.h: ... not here.
10682         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
10683         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
10684         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
10685         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
10686         (READONLY_DATA_SECTION): Use som_readonly_data_section.
10687
10688 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
10689
10690         * fold-const.c (int_const_binop): Don't generate non-overflowing
10691         size-types specially.
10692         (fold_convert_const): Likewise.
10693
10694         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
10695         clear cache on copied sizetype.
10696
10697 2004-08-20  Ben Elliston  <bje@au.ibm.com>
10698
10699         * configure.ac: Don't escape apostrophe in --enable-coverage help.
10700         * configure: Regenerate.
10701
10702 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
10703
10704         PR 5620
10705         * gcc.c (struct stat input_stat): Don't define if
10706         HOST_LACKS_INODE_NUMBERS
10707         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
10708         than stat to determine if temp file is same as input file.
10709         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
10710         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
10711
10712 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
10713
10714         * configure.ac (mips*-*-*): Print an error if not using GAS.
10715         * configure: Regenerated.
10716         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
10717         comments about buggy MIPSpro assemblers.
10718         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
10719         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
10720         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
10721         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
10722         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
10723         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
10724         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
10725         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
10726         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
10727         of more general IRIX 6 definitions.
10728         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
10729         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
10730         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
10731         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
10732         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10733         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
10734         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
10735         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
10736         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
10737         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
10738         (LINK_SPEC): Move most of definition to iris.h.
10739         (SUBTARGET_LINK_SPEC): New macro.
10740         (IRIX_STARTFILE_SPEC): Fold into...
10741         (STARTFILE_SPEC): ...here.
10742         (IRIX_ENDFILE_SPEC): Fold into...
10743         (ENDFILE_SPEC): ...here.
10744         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
10745         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
10746         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
10747         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
10748         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
10749         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
10750         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
10751         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
10752         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
10753         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
10754         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
10755         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
10756         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
10757         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
10758         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
10759         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
10760         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
10761         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
10762         (TARGET_IRIX6): Define to 1.
10763         (DRIVER_SELF_SPECS): Define.
10764         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
10765         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
10766         (SUBTARGET_LINK_SPEC): New macro.
10767         (IRIX_STARTFILE_SPEC): Fold into...
10768         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
10769         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
10770         (LIB_SPEC, LIBGCC_SPEC): Use them.
10771         (LIB_SPEC): Remove !mabi=* case.
10772         (IRIX_ENDFILE_SPEC): Fold into...
10773         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
10774         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
10775         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
10776         (TARGET_IRIX6): New macro.
10777         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
10778         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
10779         (LABEL_AFTER_LOC): Delete.
10780         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
10781         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
10782         (mips_build_builtin_va_list): Check TARGET_IRIX6.
10783         (override_options): Remove TARGET_SGI_O32_AS-related code.
10784         (irix_output_external_libcall): Make static.
10785         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
10786         LABEL_AFTER_LOC.
10787         (mips_file_start): Tidy guard for ABI sections.  Remove use of
10788         ABICALLS_ASM_OP; use .abicalls instead.
10789         (mips_output_aligned_decl_common, mips_declare_object_name)
10790         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
10791         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
10792         .globl foo .text directives.
10793         (irix_asm_named_section_1, irix_asm_named_section)
10794         (irix_section_align_entry, irix_section_align_htab)
10795         (irix_orig_asm_out_file, irix_section_align_entry_eq)
10796         (irix_section_align_entry_hash, irix_asm_output_align)
10797         (irix_file_start, irix_section_align_1, copy_file_data)
10798         (irix_file_end, irix_section_type_flags): Delete.
10799         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
10800         Use standard section syntax.  Remove protective "jr $31".
10801         (__gcc_fini): Likewise .gcc_fini.
10802         * config/mips/irix-crtn.asm: Adjust sections accordingly.
10803         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
10804         iris5gas.h.
10805         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
10806         from t-irix-gld.
10807         (EXTRA_MULTILIB_PARTS): Define.
10808         * config/mips/t-iris6: Remove bogus comment.
10809         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
10810         * config/mips/iris5gas.h, config/mips/iris5gld.h,
10811         config/mips/iris6gas.h, config/mips/iris6gld.h,
10812         config/mips/t-iris5-as, config/mips/t-iris5-gas
10813         config/mips/t-irix-gld: Delete.
10814         * config/mips/iris.h: New file.
10815         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
10816
10817 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
10818
10819         * postreload.c (reload_cse_move2add): Allow any condjump, but check
10820         that the implicit set isn't clobbered in the jump insn.
10821
10822 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10823
10824         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
10825         * optabs.c (init_optabs): Don't check it.
10826         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
10827         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
10828
10829 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
10830
10831         * config/s390/s390.md (s390_warn_framesize_string)
10832         (s390_warn_dynamic_string, s390_stack_size_string)
10833         (s390_stack_guard_string): New global string variables.
10834         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
10835         (s390_stack_guard): New global variables.
10836         (override_options): Added checks for the new options.
10837         (s390_emit_prologue): Emit stack check and trap code and perform
10838         compile time stack size checking.
10839
10840         * config/s390/s390.h (TARGET_OPTIONS): Added new options
10841         "warn-framesize", "warn-dynamicstack", "stack-size" and
10842         "stack-guard".
10843
10844         * doc/invoke.texi: Added documentation for the new options.
10845
10846 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10847
10848         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
10849         to eliminate warning.
10850         (linear_search_fdes): Declare p as unsigned.
10851         (binary_search_mixed_encoding_fdes): Likewise.
10852         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
10853         to eliminate warning.
10854         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
10855         type cast.
10856
10857 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
10858
10859         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
10860         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
10861         instead of one.  Check for strictly legitimate address.
10862         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
10863         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
10864
10865 2004-08-19  Eric Christopher  <echristo@redhat.com>
10866
10867         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
10868         * langhooks.h (unsave_expr_now): Ditto.
10869         * tree.h (unsave_expr_1): Remove prototype.
10870         (lhd_unsave_expr_now): Rename to unsave_expr_now.
10871         * tree-inline.c (unsave_expr_1): Move here
10872         from tree.c. Make static.
10873         (unsave_expr_now): Rename from lhd_unsave_expr_now.
10874         * tree-sra.c: Fix up for rename.
10875         * tree-ssa-copy.c: Ditto.
10876         * tree-eh.c: Ditto.
10877         * tree.c (unsave_expr_1): Move to tree-inline.c.
10878
10879 2004-08-19  Caroline Tice  <ctice@apple.com>
10880
10881         * config/i386/cygming.h (switch_to_section):  Fix typo (change
10882         in_unlikely_text_section to in_unlikely_executed_text).
10883
10884 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
10885
10886         * vec.h (VEC_lower_bound): New macro.
10887
10888 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
10889
10890         PR target/16446
10891         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
10892         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
10893         treat each ABI separately.  Deal with n32/n64 complex float arguments.
10894         (function_arg): Add associated complex handling here.
10895
10896 2004-08-19  Richard Henderson  <rth@redhat.com>
10897
10898         * config/arm/arm.c (arm_gen_load_multiple): Use
10899         adjust_automodify_address.  Take base memory and offset instead
10900         of unchanging/struct/scalar bits.
10901         (arm_gen_store_multiple): Likewise.
10902         (arm_gen_movmemqi): Use adjust_automodify_address.
10903         * config/arm/arm-protos.h: Update decls.
10904         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
10905         (store_multiple): Similarly.
10906
10907 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
10908
10909         * regclass.c (globalize_reg): Update call_really_used_regs.
10910
10911 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
10912
10913         * doc/invoke.texi (integer-share-limit): Document.
10914
10915         * tree.h (TYPE_CACHED_VALUES_P): New.
10916         (TYPE_CACHED_VALUES): New.
10917         (TYPE_ORIG_SIZE_TYPE): Adjust.
10918         * tree.def (INTEGER_CST): Update documentation.
10919         * tree.c: Inlcude params.h.
10920         (build_int_cst): Cache small values.
10921         (build_type_copy): Do not copy the value cache.
10922         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
10923         unneeded zeroing.
10924         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
10925         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
10926         cache.
10927         * fold-const.c (force_fit_type): Copy value when setting
10928         overflows.
10929         (int_const_binop): Likewise.
10930         * stor-layout.c: Include params.h
10931         (set_sizetype): Create values cache.
10932         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
10933         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
10934         * params.h (INTEGER_SHARE_LIMIT): New.
10935         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
10936
10937 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
10938
10939         * gimplify.c (gimplify_minimax_expr): Remove.
10940         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
10941
10942 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
10943
10944         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
10945         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
10946
10947 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
10948
10949         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
10950
10951 2004-08-18  Andrew Pinski  <apinski@apple.com>
10952
10953         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
10954
10955 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
10956
10957         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
10958         (__aeabi_ul2f): Likewise.
10959
10960 2004-08-18  Richard Henderson  <rth@redhat.com>
10961
10962         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
10963         move to rtl completely.
10964         (struct meminsnbuf, xtensa_emit_block_move): Remove.
10965         (xtensa_find_mode_for_size): Remove.
10966         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
10967         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
10968
10969 2004-08-18  Richard Henderson  <rth@redhat.com>
10970
10971         * config/mcore/mcore.c (mode_from_align): Remove DImode.
10972         (block_move_sequence): Rewrite to use adjust_address.
10973         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
10974         Return boolean indicating success/failure.
10975         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
10976         * config/mcore/mcore.md (movmemsi): Update to match.
10977
10978 2004-08-18  Mike Stump  <mrs@apple.com>
10979
10980         * doc/invoke.texi (-mfix-and-continue): Add support for
10981         fast turn around debugging.
10982         (-ffix-and-continue): Likewise.
10983         (-mindirect-data): Likewise.
10984         (-findirect-data): Likewise.
10985         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
10986         (indirect_data): Likewise.
10987         (machopic_data_defined_p): Likewise.
10988         (machopic_output_indirection): Likewise.
10989         (darwin_encode_section_info): Likewise.
10990         (darwin_fix_and_continue): Likewise.
10991         (darwin_fix_and_continue_switch): Likewise.
10992         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
10993         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
10994         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
10995         (SUBTARGET_OPTIONS): Likewise.
10996         (darwin_fix_and_continue): Likewise.
10997         (darwin_fix_and_continue_switch): Likewise.
10998         (TARGET_FIX_AND_CONTINUE): Likewise.
10999         * config/rs6000.c (rs6000_emit_prologue): Likewise.
11000
11001 2004-08-19  Steven Bosscher  <stevenb@suse.de>
11002
11003         * basic-block.h (struct edge_def): Remove crossing_edge.
11004         (EDGE_CROSSING): New define.
11005         (EDGE_ALL_FLAGS): Update.
11006         * bb-reorder.c (find_traces_1_round, better_edge_p,
11007         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
11008         find_jump_block, fix_crossing_conditional_branches,
11009         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
11010         Replace all occurences of crossing_edge with an edge flag check
11011         or set/reset.
11012         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11013         try_crossjump_bb): Likewise.
11014         * cfglayout.c (fixup_reorder_chain): Likewise.
11015         * cfgrtl.c (force_nonfallthru_and_redirect,
11016         commit_one_edge_insertion): Likewise.
11017
11018         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
11019         * tree-flow.h (compute_dominance_frontiers): Move prototype...
11020         * basic-block.h:  ...here.
11021         * tree-cfg.c (compute_dominance_frontiers_1,
11022         compute_dominance_frontiers): Move from here...
11023         * cfganal.c: ...to here.  Include timevar.h.
11024
11025 2004-08-18  James E Wilson  <wilson@specifixinc.com>
11026
11027         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
11028         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
11029
11030         * config/mips/mips.md (type): Add frdiv.
11031         (divsf3+1, divsf3+2): Change type to frdiv.
11032         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
11033         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
11034
11035         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
11036         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
11037         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
11038         * config/mips/5000.md (r5k_fdiv_single): Likewise.
11039         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
11040         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
11041         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
11042         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
11043         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
11044         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
11045         Likewise.
11046         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
11047
11048 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
11049
11050         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
11051         get regression tester working again.
11052
11053 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
11054
11055         * insn-notes.def, reg-notes.def: New files.
11056         * rtl.h: Use them to define enum insn_note and enum reg_note.
11057         * rtl.c: Use them to define note_insn_name and reg_note_name.
11058         * Makefile.in (RTL_BASE_H): Update.
11059
11060         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
11061         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
11062
11063 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
11064
11065         * arm.c (arm_size_rtx_costs): New function.
11066         (arm_override_options): Use it if optimizing for space.
11067
11068 2004-08-18  Richard Henderson  <rth@redhat.com>
11069
11070         * emit-rtl.c (gen_const_mem): New.
11071         * rtl.h (gen_const_mem): Declare.
11072         * expr.c (do_tablejump): Use it.
11073         * varasm.c (force_const_mem): Likewise.
11074         * config/darwin.c (machopic_indirect_data_reference): Likewise.
11075         (machopic_legitimize_pic_address): Likewise.
11076         * config/arm/arm.c (legitimize_pic_address): Likewise.
11077         * config/i386/i386.c (legitimize_pic_address): Likewise.
11078         (legitimize_tls_address): Likewise.
11079         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
11080         * config/ia64/ia64.md (load_fptr): Likewise.
11081         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
11082         * config/pa/pa.c (legitimize_pic_address): Likewise.
11083         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
11084         (rs6000_emit_move): Likewise.
11085         * config/s390/s390.c (legitimize_pic_address): Likewise.
11086         (legitimize_tls_address): Likewise.
11087         * config/s390/s390.md (casesi): Likewise.
11088         * config/sh/sh.c (sh_reorg): Likewise.
11089         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
11090         * config/v850/v850.md (casesi): Likewise.
11091
11092         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
11093         * config/sh/sh.c (prepare_move_operands): Remove incorrect
11094         use of MEM_READONLY_P.
11095
11096 2004-08-18  Steven Bosscher  <stevenb@suse.de>
11097
11098         * Makefile.in (OBJS-common): Add postreload-gcse.c.
11099         Add new postreload-gcse.o.
11100         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
11101         (lookup_as_function, insert, rehash_using_reg, use_related_value,
11102         equiv_constant): Use SAFE_HASH instead of safe_hash.
11103         (exp_equiv_p): Export.  Add for_gcse argument when comparing
11104         for GCSE.
11105         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
11106         find_comparison_args, fold_rtx, cse_insn): Update callers.
11107         (hash_rtx): New function derived from old canon_hash and bits
11108         from gcse.c hash_expr_1.
11109         (canon_hash_string): Rename to hash_rtx_string.
11110         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
11111         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
11112         (cselib_lookup): Update this caller.
11113         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
11114         Make static.
11115         (hash_expr): Call hash_rtx.
11116         (ldst_entry): Likewise.
11117         (expr_equiv_p): Call exp_equiv_p.
11118         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
11119         reg_used_on_edge, reg_set_between_after_reload_p,
11120         reg_used_between_after_reload_p, get_avail_load_store_reg,
11121         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
11122         get_bb_avail_insn, hash_scan_set_after_reload,
11123         compute_hash_table_after_reload,
11124         eliminate_partially_redundant_loads, gcse_after_reload,
11125         get_bb_avail_insn, gcse_after_reload_main): Remove.
11126         * postreload-gcse.c: New file, reincarnating most of the above.
11127         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
11128         (gcse_after_reload_main): Update prototype.
11129         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
11130         * passes.c (rest_of_handle_gcse2): Use it.
11131
11132 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
11133
11134         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
11135         (pass_loop_done): Likewise.
11136
11137 2004-08-18  Andrew Pinski  <apinski@apple.com>
11138
11139         * config/rs6000/darwin.md: Delete the altivec patterns which are
11140         handled differently now.
11141         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
11142         (macho_correct_pic_di): Likewise.
11143         (call_indirect_nonlocal_darwin64): Likewise.
11144         Delete the save world/saveFP/saveVec patterns.
11145
11146         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
11147         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11148         * config/rs6000/rs6000.md: Include darwin.md.
11149         (builtin_setjmp_receiver): Add DImode case.
11150         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
11151         Darwin bits.
11152
11153 2004-08-18  Matt Austern  <austern@apple.com>
11154
11155         Dead code stripping
11156         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
11157         * darwin.c (darwin_file_end): Mark file as potentially strippable.
11158
11159 2004-08-18  Richard Henderson  <rth@redhat.com>
11160
11161         * alias.c (readonly_fields_p): Remove.
11162         (objects_must_conflict_p): Don't call it.
11163         * tree.h (readonly_fields_p): Remove.
11164         * langhooks.h (struct lang_hooks): Remove honor_readonly.
11165         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
11166
11167 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
11168
11169         * tree-dfa.c (add_referenced_var): Only global variables are
11170         call-clobbered.
11171         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
11172         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
11173         all pointers dereferenced if the statement dereferences them.
11174         (create_name_tags): Do not create memory tags for pointers
11175         that have PT_ANYTHING set.
11176         Also check if PT_VARS is not empty before creating a name tag.
11177         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
11178         variables that share the same alias set with a pointer that
11179         may point anywhere.
11180         (add_may_alias): Add FIXME comment to remove clobbering
11181         aliased variables and tags.
11182         (replace_may_alias): Likewise.
11183         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
11184         (merge_pointed_to_info): If the original variable has not
11185         points-to information, call set_pt_anything.
11186         (add_pointed_to_var): Do not prevent adding a pointed-to
11187         variable if the pointers is PT_ANYTHING.
11188         If the variable is a global, set PT_GLOBAL_MEM.
11189         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
11190         pointer type only come in PTR+OFFSET flavours.
11191         Always call merge_pointed_to_info on PHI arguments that are
11192         SSA_NAMEs.
11193         (get_nmt_for): Mark call-clobbered tags whose pointer points
11194         to global memory.
11195         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
11196         values.
11197         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
11198         FLAGS.
11199         (add_stmt_operand): Abort if the caller tried to add a killing
11200         definition for a memory tag.
11201         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
11202         unnecessary checks.
11203
11204 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
11205
11206         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
11207         from call_used_regs.  Update call_really_used_regs.
11208         (CALL_REALLY_USED_REGISTERS): Define.
11209         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
11210         Replace call_used_regs with call_really_used_regs.
11211         (calc_live_regs, sh_media_register_for_return): Likewise.
11212         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
11213         * sh.md (return_media): Likewise.
11214
11215 2004-08-18  Andrew Pinski  <apinski@apple.com>
11216
11217         * config/darwin.c (machopic_legitimize_pic_address): Only set
11218         MEM_READONLY_P in the non TARGET_TOC case.
11219
11220 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
11221
11222         * rtl.def (NIL): Delete.
11223         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
11224         Tighten the syntax a little.
11225
11226         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
11227         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
11228         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
11229         * config/i386/predicates.md, config/m32r/m32r.h
11230         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
11231         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
11232         * config/sparc/sparc.h, doc/tm.texi:
11233         Replace all occurrences of NIL with UNKNOWN.
11234
11235 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
11236
11237         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
11238         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
11239         sequence inline.  Move drop_through_label code into this
11240         block, being the only place it is used.  Adjust comments.
11241
11242 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
11243
11244         * config/rs6000/altivec.md: Add new patterns for calls to
11245         save_world/rest_world functions.
11246
11247         * config/rs6000/rs6000-protos.h: (save_world_operation,
11248         restore_world_operation) new declarations.
11249
11250         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
11251         field added.
11252         (rs6000_stack_info): Set world_save_p field.
11253         (save_world_operation): New function.
11254         (restore_world_operation): New function.
11255         (compute_save_world_info): New function.
11256         (rs6000_stack_info): Call compute_save_world_info.
11257         (rs6000_emit_prologue): Check for world_save_p and generate
11258         pattern to call save_world for saving all non-volatile and
11259         special registers.
11260         (rs6000_emit_epilogue): Check for world_save_p and generate
11261         pattern to call rest_world to restore saved registers.
11262
11263         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
11264         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
11265         (rs6000_reg_names): New entries added for save_world_operation and
11266         restore_world_operation.
11267
11268 2004-08-18  Caroline Tice  <ctice@apple.com>
11269
11270         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
11271         "-freorder-blocks-and-partition" to the flags used in second
11272         stage of profiledbootstrap.
11273         * bb-reorder.c (push_to_next_round_p): Add new variable,
11274         next_round_is_last; set and use variable to make sure, when
11275         partitioning, that the last trace construction round consists
11276         of all (and only) cold basic blocks.
11277         (rotate_loop): Don't copy blocks that end in a section
11278         crossing jump.
11279         (copy_bb): Correctly initialize "partition" of duplicated bb.
11280         (add_unlikely_executed_notes): Add a comment.
11281         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
11282         to make sure, if function contains hot blocks, that the
11283         successors of ENTRY_BLOCK_PTR are hot; also, only look for
11284         crossing edges if the architecture supports named sections.
11285         (mark_bb_for_unlikely_executed_section): Modify to always
11286         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
11287         the basic block note insn.
11288         (fix_crossing_unconditional_branches): Remove extra space.
11289         (fix_edges_for_rarely_executed_code): Modify to only do
11290         partitioning work if the architecture supports named sections.
11291         (reorder_basic_blocks): Modify to only add
11292         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
11293         supports named sections.
11294         * c-common.c (handle_section_attribute): Initialize new global
11295         variable, user_defined_section_attribute, to true if user has
11296         specified one.
11297         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
11298         forward edges that cross section boundaries.
11299         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
11300         partitioning information if the architecture supports named
11301         sections.
11302         * cfgrtl.c (target.h): Add statement to include this.
11303         (rtl_split_block): Make sure newly created bb gets correct
11304         partition.
11305         (try_redirect_by_replacing_jump): Make sure redirection isn't
11306         attempting to cross section boundaries.
11307         (force_nonfallthru_and_redirect): Only do partition fix up if
11308         architecture supports named sections.
11309         (rtl_split_edge): Make sure newly created bb ends up in
11310         correct partition.
11311         (commit_one_edge_insertion): Remove code that incorrectly
11312         updated basic block partition; Make sure partition fix up only
11313         happens if architecture supports named sections and it's not
11314         already done.
11315         (rtl_verify_flow_info_1): Fix if-condition on test/error
11316         condition that fallthru edges are not allowed to cross section
11317         boundaries.
11318         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
11319         * final.c (final_scan_insn): Remove redundant test from if-statement;
11320         change calls to text_section into calls to function_section; add code
11321         to only to partitioning fix up if architecture supports named
11322         sections.
11323         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
11324         partition.
11325         (if_convert): Add targetm.have_named_sections to test.
11326         * output.h (unlikely_section_label): Extern declaration for new global
11327         variable.
11328         (unlikely_text_section_name): Likewise.
11329         * opts.c (decode_options): If both partitioning and DWARF debugging
11330         are turned on, issue a warning that this doesn't work, and change
11331         partitiong to basic block reordering (without hot/cold partitions).
11332         * passes.c (rest_of_handle_final): Re-set new global variable,
11333         user_defined_section_attribute, to false.
11334         (rest_of_compilation): Change options for calling partitioning
11335         function: Don't call if the user defined the section attribute, and
11336         don't call if DECL_ONE_ONLY is true for the current function.
11337         * predict.c (choose_function_section): Return immediately if we
11338         are doing hot/cold partitioning (i.e. let the basic block partitioning
11339         determine where the function belongs).
11340         * reg-stack.c (emit_swap_insn): Add condition to step over
11341         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
11342         * toplev.c (user_defined_section_attribute): New global variable.
11343         * toplev.h (user_defined_section_attribute): Extern declaration
11344         for new global variable.
11345         * varasm.c (unlikely_section_label): New global variable.
11346         (unlikely_text_section_name): New global variable.
11347         (unlikely_text_section): Add code to initialize
11348         unlikely_text_section_name if necessary; modify to use
11349         unlikely_text_section_name and unlikely_section_label; also to use
11350         named_section properly.
11351         (in_unlikely_text_section):  Modify to work correctly with
11352         named_section and to use unlikely_text_section_name.
11353         (named_section):  Add code to work properly with cold section.
11354         (function_section): Clean up if-statement.
11355         * config/darwin.c (darwin_asm_named_section): Return to original
11356         code, removing use of SECTION_FORMAT_STRING.
11357         * config/arm/pe.h (switch_to_section):  Add case for
11358         in_unlikely_executed_text to switch statement.
11359         * config/i386/cygming.h (switch_to_section): Likewise.
11360         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
11361         (SECTION_FORMAT_STRING): Likewise.
11362         * config/mcore/mcore.h (switch_to_section): Likewise.
11363         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
11364         (SECTION_FORMAT_STRING): Remove.
11365
11366 2004-08-18  Roger Sayle  <roger@eyesopen.com>
11367
11368         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
11369         -ffixed-reg safe, by preserving the meanings of zero and one.
11370         (CALL_USED_REGISTERS): Likewise.
11371         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
11372
11373 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
11374
11375         * config/sh/sh.c (split_branches): Check the result of
11376         next_active_insn.
11377         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
11378         Call rtl_register_cfg_hooks.
11379
11380 2004-08-18  Richard Henderson  <rth@redhat.com>
11381
11382         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
11383         * alias.c (true_dependence): Update to match new semantics.
11384         (canon_true_dependence, write_dependence_p): Likewise.
11385         (anti_dependence, output_dependence): Update write_dependence_p args.
11386         (unchanging_anti_dependence): Remove.
11387         * calls.c (purge_mem_unchanging_flag): Remove.
11388         (fixup_tail_calls): Don't call it.
11389         (expand_call): Don't add unchanging memory to function usage.
11390         * expr.c (emit_block_move_via_libcall): Likewise.
11391         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
11392         (get_subtarget): Don't use RTX_UNCHANGING_P.
11393         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
11394         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
11395         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
11396         * cse.c (insert): Don't use RTX_UNCHANGING_P.
11397         (cse_insn, canon_hash): Use MEM_READONLY_P.
11398         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
11399         instead of RTX_UNCHANGING_P.
11400         * explow.c (maybe_set_unchanging): Remove.
11401         * expr.h (maybe_set_unchanging): Remove.
11402         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
11403         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
11404         (assign_parm_setup_reg, expand_function_start): Likewise.
11405         * integrate.c (copy_rtx_and_substitute): Likewise.
11406         * ra-rewrite.c (emit_colors): Likewise.
11407         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
11408         (fixup_match_1): Likewise.
11409         * reload1.c (reload, alter_reg): Likewise.
11410         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
11411         not RTX_UNCHANGING_P.
11412         (equiv_init_varies_p): Likewise.
11413         * loop-invariant.c (check_maybe_invariant): Likewise.
11414         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
11415         * loop.c (note_addr_stored): Likewise.
11416         (prescan_loop): Likewise. Don't check function usage for clobbered
11417         unchanging memory.
11418         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
11419         not RTX_UNCHANGING_P.
11420         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
11421         * varasm.c (force_const_mem): Likewise.
11422         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
11423         * web.c (entry_register): Likewise.
11424         * tree-gimple.h (get_base_address): Move decl ...
11425         * tree.h: ... here.
11426         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
11427
11428         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
11429         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
11430         (alpha_set_memflags): Update to match.
11431
11432         * config/darwin.c (machopic_indirect_data_reference): Set
11433         MEM_READONLY_P instead of RTX_UNCHANGING_P.
11434         (machopic_indirect_call_target): Likewise.
11435         (machopic_legitimize_pic_address): Likewise.
11436         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
11437         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
11438         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
11439         * config/frv/frv.md (symGOT2reg): Likewise.
11440         * config/i386/i386.c (legitimize_pic_address,
11441         legitimize_tls_address, ix86_split_to_parts): Likewise.
11442         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
11443         * config/ia64/ia64.md (load_fptr): Likewise.
11444         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
11445         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
11446         * config/mcore/mcore.c (block_move_sequence): Likewise.
11447         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
11448         * config/pa/pa.c (legitimize_pic_address): Likewise.
11449         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
11450         (rs6000_emit_move): Likewise.
11451         * config/s390/s390.c (legitimize_pic_address): Likewise.
11452         (legitimize_tls_address): Likewise.
11453         * config/s390/s390.md (casesi): Likewise.
11454         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
11455         * config/sh/sh.md (symGOT2reg): Likewise.
11456         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
11457         * config/v850/v850.md (casesi): Likewise.
11458
11459         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
11460         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
11461         * config/mips/mips.c (mips_restore_gp): Likewise.
11462         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
11463         * config/sh/sh.c (sh_reorg): Likewise.
11464
11465 2004-08-18  Richard Henderson  <rth@redhat.com>
11466
11467         * tree.h (struct tree_decl): Add gimple_formal_temp.
11468         (DECL_GIMPLE_FORMAL_TEMP_P): New.
11469         * gimplify.c (pop_gimplify_context): Clear it.
11470         (lookup_tmp_var): Set it, if is_formal.
11471         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
11472         Use is_gimple_val for VECTOR.  Simplify return value.
11473         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
11474         (gimplify_expr): Likewise.
11475         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
11476         is_gimple_tmp_rhs for clarity.  Update all callers.
11477         (is_gimple_reg_rhs): Simplify logic.
11478         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
11479         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
11480         (is_gimple_formal_tmp_reg): Similarly.
11481         * tree-gimple.h: Update decls.
11482         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
11483         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
11484         * tree-ssa-live.c (var_union, type_var_init): Likewise.
11485
11486 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
11487
11488         * c4x.c (legitimize_operands): Remove calls to
11489         preserve_subexpressions_p.
11490
11491 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
11492
11493         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
11494         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
11495
11496 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
11497
11498         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
11499         Objective-C++ extensions.
11500         * gengtype.c (get_file_basename): Match entire subdirectory name
11501         ('cp', 'objc', 'objcp') rather than just its suffix.
11502         (get_base_file_bitmap): Allow for files to belong to more than one
11503         language.
11504         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
11505         used by more than one front-end.
11506
11507 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
11508
11509         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
11510         avoid use of preserve_subexpressions_p.
11511
11512 2004-08-17  Richard Henderson  <rth@redhat.com>
11513
11514         PR 17051
11515         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
11516
11517 2004-08-17  DJ Delorie  <dj@redhat.com>
11518
11519         * doc/extend.texi: Document new xstormy16 attribute.
11520
11521         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
11522         (xstormy16_splittable_below100_or_register): New.
11523         (combine_bnp): New.
11524         (xstormy16_reorg): New.
11525         (TARGET_MACHINE_DEPENDENT_REORG): Define.
11526
11527         * config/stormy16/stormy16.md (movqi_internal): Make name public.
11528         (movhi_internal): Likewise.
11529         (cbhranchhi): Likewise.
11530         (cbhranchhi_neg): Likewise.
11531         (andhi3): Only allow splittable below100 operands.
11532         (iorhi3): Likewise.
11533         (peephole2): New and/zero_extend->and peephole.
11534         (peephole2): New load/ior/save->set1 peephole.
11535         (peephole2): New load/and/save->clr1 peephole.
11536         (bclrx, bclrx2, bclr7, bclr15): New.
11537         (bsetx, bsetx2, bset7, bset15): New.
11538
11539         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
11540         liberal about acceptable 'B' masks.
11541
11542         * config/stormy16/stormy16-protos.h
11543         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11544         xstormy16_below100_operand, xstormy16_below100_or_register,
11545         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11546         (PREDICATE_CODES): Add new predicates.
11547
11548         * config/stormy16/stormy16.c
11549         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
11550         xstormy16_below100_operand, xstormy16_below100_or_register,
11551         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
11552         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
11553         (xstormy16_legitimate_address_p): Allow below100 symbols.
11554         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
11555         (xstormy16_expand_move): Leave below100 operands as-is.
11556         (xstormy16_encode_section_info): Encode below100 symbols.
11557         (xstormy16_strip_name_encoding): New.
11558         (xstormy16_print_operand): Print 'b' as shift mask.
11559         (xstormy16_attribute_table): Add below100 attributes.
11560         (xstormy16_handle_below100_attribute): New.
11561
11562         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
11563         (XSTORMY16_SECTION_FUNCTION): New.
11564         (EXTRA_SECTION_FUNCTIONS): Define using the above.
11565         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11566         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
11567         (ASM_OUTPUT_LABELREF): Define.
11568
11569         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
11570         (movhi_internal): Add below100 support.
11571         (andhi3): Add below100 support.
11572         (iorhi3): Add below100 support.
11573         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
11574
11575 2004-08-17  James E Wilson  <wilson@specifixinc.com>
11576
11577         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
11578         of VOIDmode for comparison code mode.
11579         * config/mips/mips.md: For conditional move patterns, use mode of
11580         first compare operand for comparison mode, instead of VOIDmode.
11581
11582         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
11583         normal and -ffast-math code.
11584
11585 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
11586
11587         PR c++/15871
11588         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
11589
11590 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
11591
11592         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
11593
11594 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
11595
11596         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
11597         for non Darwin targets.
11598         (*call_value_nonlocal_darwin64): Likewise.
11599
11600 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
11601
11602         * config/rs6000/rs6000.c (rs6000_function_value): Check for
11603         altivec mode for altivec return register.
11604
11605 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
11606
11607         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
11608         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11609         * config/rs6000/rs6000.md: Include darwin.md.
11610         (builtin_setjmp_receiver): Add DImode case.
11611         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
11612         Darwin bits.
11613
11614 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
11615
11616         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
11617         trees.
11618         * tree-vectorizer.h: New File: Same.
11619         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
11620         * common.opt (ftree-vectorize): New flag to enable vectorization.
11621         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
11622         vectorization pass.
11623         * tree-data-ref.h (init_data_ref): Additional argument.
11624         (array_base_name_differ_p): Moved to tree-data-ref.c.
11625         * tree-data-ref.c (array_base_name_differ_p): Revised.
11626         (initialize_data_dependence_relation): Call array_base_name_differ_p
11627         with an extra argument.
11628         (analyze_all_data_dependences): Same.
11629         (init_data_ref): Additional argument is_read to set DR_IS_READ.
11630         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
11631         file.
11632         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
11633         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
11634         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
11635         vectorization pass.
11636         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
11637         (tree_ssa_loop_done): Call scev_finalize.
11638         (tree_vectorize): Define the new vectorization pass.
11639         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
11640         size of the vector they support (until support for multiple vector
11641         sizes is added to the vectorizer).
11642         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
11643         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
11644         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
11645         documentation.
11646
11647 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
11648
11649         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
11650         usage.
11651         (generate_protocol_list, handle_impent): Likewise.
11652
11653 2004-08-17  Roger Sayle  <roger@eyesopen.com>
11654
11655         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
11656         ensure that call_used_regs is a superset of both fixed_regs and
11657         call_really_used_regs.
11658
11659 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
11660
11661         PR target/17019
11662         * arm.md (addsi3_cbranch_scratch): Correct case labels.
11663
11664 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11665
11666         PR middle-end/17036
11667         * fold-const.c (fold): Check for integer operand when
11668         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
11669         Pinski  <pinskia@physics.uc.edu>.
11670
11671 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
11672
11673         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
11674         No need to check if in a cross configuration.
11675         * configure: Regenerate.
11676
11677         * calls.c (precompute_register_parameters):
11678         Inline preserve_subexpressions_p ().
11679         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
11680         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
11681         Likewise.
11682         * expr.c (get_subtarget): Likewise.
11683         * rtl.h (preserve_subexpressions_p): Remove.
11684         * stmt.c (preserve_subexpressions_p): Remove.
11685
11686         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
11687         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
11688         Abort on gimplified cases.
11689
11690 2004-08-16  James E Wilson  <wilson@specifixinc.com>
11691
11692         * tree.h (VECTOR_FLOAT_TYPE_P): New.
11693         (FLOAT_TYPE_P): Use it.
11694         * c-typeck.c (build_binary_op): After convert calls, check for
11695         check for ERROR_MARK operands.
11696
11697 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
11698
11699         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
11700         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
11701         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
11702         (genobjs static pattern rule): Remove %.c dependency.
11703         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
11704         Rename rules; delete commands; fix dependencies.
11705         (mostlyclean): Do not delete temporary source copies.
11706         * configure.ac: Delete all references to BUILD_PREFIX and
11707         BUILD_PREFIX_1.
11708         * configure: Regenerate.
11709
11710         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
11711         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
11712         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
11713         with #ifndef GENERATOR_FILE so that nothing from those headers
11714         is used.
11715
11716         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
11717
11718 2004-08-16  Adam Nemet  <anemet@lnxw.com>
11719
11720         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
11721
11722 2004-08-16  Andrew Pinski  <apinski@apple.com>
11723
11724         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
11725         extraneous semicolon.
11726
11727 2004-08-16  Devang Patel  <dpatel@apple.com>
11728
11729         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
11730         * print-tree.c (print_node): Print DECL_PRESERVE_P.
11731         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
11732         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
11733         * target.h (struct gcc_target): New member, mark_decl_preserved.
11734         * hooks.c (hook_void_charptr): Rename to ...
11735         (hook_void_constcharptr): ... new name.
11736         * hooks.h (hook_void_charptr): Rename to ..
11737         (hook_void_constcharptr): ... new name.
11738         * tree.h (DECL_PRESERVE_P): New #define.
11739         (struct tree_decl): New member, preserve_flag.
11740         * varasm.c (assemble_start_function): Mark decl preserved.
11741         (assemble_variable): Same.
11742         * darwin.c (darwin_mark_decl_preserved): New function.
11743         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
11744         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
11745         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
11746
11747 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11748
11749         * c-decl.c (grokdeclarator): Allow for function definition where
11750         innermost declarator has attributes.
11751
11752 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
11753
11754         * except.c (get_exception_filter, build_post_landing_pads,
11755         dw2_build_landing_pads): Use target-specific mode for 'filter'.
11756         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
11757         * target.h (eh_return_filter_mode): New field added.
11758         * targhooks.c (default_eh_return_filter_mode): Defined.
11759         * targhooks.h (default_eh_return_filter_mode): Declared.
11760         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
11761
11762 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11763
11764         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
11765         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
11766         * configure: Regenerate.
11767
11768 2004-08-16  Stan Shebs  <shebs@apple.com>
11769
11770         Basic support for 64-bit Darwin.
11771         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
11772         (machopic_legitimize_pic_address): Similarly, plus use Pmode
11773         instead of SImode.
11774         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
11775         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
11776         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
11777         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
11778         (PROCESSOR_DEFAULT64): Define.
11779         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
11780         Darwin.
11781         * config/rs6000/rs6000.md: Include darwin.md.
11782         (builtin_setjmp_receiver): Add DImode case.
11783         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
11784         Darwin.
11785         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
11786         (rs6000_emit_move): Add DImode case to Darwin bits.
11787         (machopic_output_stub): Use .quad if 64-bit.
11788         * invoke.texi: Document -m32 and -m64.
11789
11790 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
11791
11792         * doc/extend.texi (AltiVec builtins): Document additional differences
11793         from the Motorola AltiVec PIM.
11794
11795 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11796
11797         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
11798         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
11799         (struct tree_common): Update public_flag documentation.
11800
11801 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
11802
11803         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11804         Check for artificial variables, not is_gimple_tmp_var.
11805         * tree-ssa-live.c (var_union): Likewise.
11806
11807 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
11808
11809         * calls.c (load_register_parameters): Remove spurious FIXME token.
11810
11811 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
11812
11813         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
11814         (c-lang.o): Depend on c-objc-common.h.
11815         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
11816         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
11817         * c-lang.c: Include c-objc-common.h.
11818         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
11819         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
11820         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
11821         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
11822         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
11823         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
11824         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
11825         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
11826         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
11827         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
11828         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
11829         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
11830         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
11831         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
11832         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
11833         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
11834         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
11835         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
11836         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
11837         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
11838         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
11839         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
11840         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
11841         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
11842         Move to c-objc-common.h.
11843         * c-objc-common.c: Include c-objc-common.h.
11844         * c-objc-common.h: New file.
11845
11846 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
11847             Andrew Pinski  <pinskia@physics.uc.edu>
11848
11849         PR target/14931
11850         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
11851         style.
11852
11853 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
11854
11855         * tree.h (build_int_cst): New.
11856         (build_int_2): Remove.
11857         * tree.c (build_int_2): Remove.
11858         (build_int_cst): New.
11859         (make_vector_type, build_common_tree_nodes,
11860         build_common_tree_nodes_2): Use build_int_cst.
11861         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
11862         expand_builtin_strpbrk, expand_builtin_fputs,
11863         build_string_literal, expand_builtin_printf,
11864         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
11865         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
11866         fold_builtin_isdigit, simplify_builtin_strstr,
11867         simplify_builtin_strpbrk, fold_builtin_fputs,
11868         simplify_builtin_sprintf): Use build_int_cst.
11869         * c-common.c (start_fname_decls, fix_string_type,
11870         c_common_nodes_and_builtins, c_init_attributes,
11871         shorten_compare): Likewise.
11872         * c-decl.c (complete_array_type,
11873         check_bitfield_type_and_width): Likewise.
11874         * c-lex.c (interpret_integer, lex_charconst): Likewise.
11875         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
11876         * c-pretty-print.c (pp_c_integer_constant): Likewise.
11877         * c-typeck.c (really_start_incremental_init, push_init_level,
11878         set_nonincremental_init_from_string): Likewise.
11879         * calls.c (load_register_parameters): Likewise.
11880         * convert.c (convert_to_pointer): Likewise.
11881         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
11882         build_fn_info_type, build_ctr_info_value, build_gcov_info):
11883         Likewise.
11884         * except.c (init_eh, assign_filter_values, assign_filter_values):
11885         Likewise.
11886         * expmed.c (store_fixed_bit_field, extract_bit_field,
11887         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
11888         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
11889         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
11890         * expr.c (convert_move, emit_group_load, emit_group_store,
11891         expand_assignment, store_constructor, store_field,
11892         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
11893         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
11894         invert_truthvalue, optimize_bit_field_compare,
11895         decode_field_reference, all_ones_mask_p, constant_boolean_node,
11896         fold_div_compare, fold, fold_read_from_constant_string,
11897         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
11898         * function.c (assign_parm_setup_block): Likewise.
11899         * stmt.c (shift_return_value, expand_end_case_type,
11900         estimate_case_costs): Likewise.
11901         * stor-layout.c (layout_type, initialize_sizetypes,
11902         set_min_and_max_values_for_integral_type): Likewise.
11903         * tree-chrec.c (chrec_fold_multiply_poly_poly,
11904         reset_evolution_in_loop): Likewise.
11905         * tree-chrec.h (build_polynomial_chrec): Likewise.
11906         * tree-complex.c (build_replicated_const): Likewise.
11907         * tree-eh.c (honor_protect_cleanup_actions,
11908         lower_try_finally_onedest, lower_try_finally_copy,
11909         lower_try_finally_switch): Likewise.
11910         * tree-mudflap.c (mf_build_string, mx_register_decls,
11911         mudflap_register_call, mudflap_enqueue_constant): Likewise.
11912         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
11913         * tree-pretty-print.c (dump_generic_node): Likewise.
11914         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
11915         Likewise.
11916         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
11917         * tree-ssa-loop-niter.c (number_of_iterations_cond,
11918         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
11919         Likewise.
11920
11921         * config/alpha/alpha.c (alpha_initialize_trampoline,
11922         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
11923         * config/arm/arm.c (arm_get_cookie_size): Likewise.
11924         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
11925         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11926         * config/i860/i860.c (i860_va_start): Likewise.
11927         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
11928         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
11929         mips_gimplify_va_arg_expr): Likewise.
11930         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
11931         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
11932         add_compiler_branch_island): Likewise.
11933         * config/s390/s390.c (s390_va_start): Likewise.
11934         * config/sh/sh.c (sh_va_start): Likewise.
11935         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
11936         Likewise.
11937         * config/xtensa/xtensa.c (xtensa_va_start,
11938         xtensa_gimplify_va_arg_expr): Likewise.
11939
11940         * objc/objc-act.c (build_objc_string_object,
11941         build_objc_symtab_template, init_def_list, init_objc_symtab,
11942         init_module_descriptor, generate_static_references,
11943         build_selector_translation_table, get_proto_encoding,
11944         build_typed_selector_reference, build_selector_reference,
11945         build_next_objc_exception_stuff,
11946         build_method_prototype_list_template, generate_descriptor_table,
11947         generate_protocols, build_protocol_initializer,
11948         build_ivar_list_template, build_method_list_template,
11949         build_ivar_list_initializer, generate_ivars_list,
11950         generate_dispatch_table, generate_protocol_list,
11951         build_category_initializer, build_shared_structure_initializer,
11952         generate_shared_structures, handle_impent,
11953         generate_objc_image_info): Use build_int_cst.
11954
11955 2004-08-15  Ben Elliston  <bje@au.ibm.com>
11956
11957         * vec.h: Comment improvements.
11958
11959 2004-08-14  Roger Sayle  <roger@eyesopen.com>
11960
11961         * c-common.c (shorten_compare, pointer_int_sum,
11962         c_common_truthvalue_conversion, boolean_increment): Replace calls
11963         to build with calls to buildN.
11964         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
11965         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
11966         gimplify_switch_stmt): Likewise.
11967         * c-typeck.c (default_function_array_conversion,
11968         build_component_ref, build_array_ref, build_function_call,
11969         pointer_diff, build_unary_op, build_conditional_expr,
11970         build_compound_expr, build_modify_expr, c_finish_goto_label,
11971         c_finish_goto_ptr, c_finish_return, c_finish_loop,
11972         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
11973         build_binary_op): Likewise.
11974
11975 2004-08-15  Steven Bosscher  <stevenb@suse.de>
11976
11977         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
11978
11979 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11980
11981         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
11982         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
11983         * fixinc/fixincl.x: Rebuilt.
11984
11985 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
11986
11987         * config/mips/mips-protos.h (mips_symbolic_constant_p)
11988         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
11989         (mips_small_data_pattern_p): Declare.
11990         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
11991         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
11992         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
11993         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
11994         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
11995         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
11996         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
11997         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
11998         (pc_or_label_operand, call_insn_operand, move_operand)
11999         (consttable_operand, symbolic_operand, general_symbolic_operand)
12000         (global_got_operand, local_got_operand, stack_operand)
12001         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
12002         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
12003         (mips_small_data_pattern_p): Replace previous small_data_pattern
12004         predicate.  Turn into a bool () (rtx) function.
12005         * config/mips/predicates.md: New file.
12006         * config/mips/mips.md: Include it.  Use the target-independent
12007         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
12008         trap_comparison_operator and equality_op to equality_operator.
12009         Replace uses of small_int with the equivalent const_arith_operand.
12010         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
12011         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
12012         to fcc_reload_operand.
12013         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
12014
12015 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12016
12017         PR libstdc++/17005 partial fix.
12018         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
12019         except when generating ANSI/C89 code.
12020
12021 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
12022
12023         * c-common.c (shorten_compare): Use force_fit_type directly.
12024
12025 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
12026             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
12027             Dave Korn  <dk@artimi.com>
12028
12029         * doc/install.texi (Building): Avoid duplicate reference to GNU
12030         make requirement.
12031         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
12032
12033 2004-08-14  Richard Henderson  <rth@redhat.com>
12034
12035         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
12036         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
12037
12038 2004-08-13  Richard Henderson  <rth@redhat.com>
12039
12040         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
12041         for constant_call_address_operand.
12042         (call_value_pop_1, call_value_1): Likewise.
12043         (sibcall_value_1, call_value_1_rex64): Likewise.
12044
12045 2004-08-13  James E Wilson  <wilson@specifixinc.com>
12046
12047         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
12048         Correct mode from SFmode to DFmode.
12049
12050 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
12051
12052         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
12053         __cstring_object and __image_info sections with the no_dead_strip
12054         attribute.
12055
12056 2004-08-13  Roger Sayle  <roger@eyesopen.com>
12057             David Billinghurst  <David.Billinghurst@riotinto.com>
12058
12059         PR libgfortran/15930
12060         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
12061         * fixinc/fixincl.x: Regenerate.
12062         * fixinc/tests/base/internal/math_core.h: New file.
12063
12064 2004-08-13  Richard Henderson  <rth@redhat.com>
12065
12066         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
12067         (dbxout_function_end): Remove ifdefs for it.
12068         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
12069
12070 2004-08-13  Richard Henderson  <rth@redhat.com>
12071
12072         * Makefile.in (insn-preds.o): Depend on TREE_H.
12073         * genpreds.c (write_insn_preds_c): Include tree.h.
12074         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
12075         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
12076         const48_operand, and_operand, or_operand, mode_width_operand,
12077         mode_mask_operand, mul8_operand, const0_operand,
12078         hard_fp_register_operand, hard_int_register_operand,
12079         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
12080         samegp_function_operand, direct_call_operand, small_symbolic_operand,
12081         global_symbolic_operand, call_operand, symbolic_operand,
12082         dtp16_symbolic_operand, dtp32_symbolic_operand,
12083         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
12084         gottp_symbolic_operand, alpha_comparison_operator,
12085         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
12086         signed_comparison_operator, alpha_fp_comparison_operator,
12087         divmod_operator, fix_operator, aligned_memory_operand,
12088         unaligned_memory_operand, reg_or_unaligned_mem_operand,
12089         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
12090         reg_no_subreg_operand, addition_operation): Move to predicates.md.
12091         (reg_or_const_int_operand): Remove.  Replace all users with
12092         reg_or_cint_operand.
12093         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
12094         (resolve_reload_operand): Split out of aligned_memory_operand.
12095         * config/alpha/alpha-protos.h: Update for exports.
12096         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
12097         * config/alpha/alpha.md: Include predicates.md.
12098         * config/alpha/predicates.md: New file.
12099
12100 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
12101
12102         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
12103         fields with a pointer to the instruction definition.
12104         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
12105         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
12106         (write_attr_case, write_const_num_delay_slots): Update accordingly.
12107         (write_attr_case, write_const_num_delay_slots): Write the name of
12108         an insn next to its case statement.
12109         * genoutput.c (data): Add a filename field.
12110         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
12111         (output_insn_data): Print the location of each insn definition.
12112         * genrecog.c (write_action): Print the name of an insn above
12113         the statement that returns its code.
12114
12115 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
12116
12117         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
12118         * config/libgloss.h: Likewise.
12119         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
12120         * c4x/c4x-modes.def: Likewise.
12121         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
12122         (c4x_rptb_nop_p): Likewise.
12123         (c4x_rptb_valid_p): Likewise.
12124         (c4x_rptb_insert): Likewise.
12125         (c4x_address_conflict): Likewise.
12126         * config/c4x/c4x.md: Likewise.
12127         * config/frv/frv.md: Likewise.
12128         * config/i386/athlon.md: Likewise.
12129         * config/i386/i386.md: Likewise.
12130         * config/i386/predicates.md: Likewise.
12131         * config/ia64/ia64.c: Likewise.
12132         * config/ia64/itanium1.md: Likewise.
12133         * config/ia64/itanium2.md: Likewise.
12134         * config/iq2000/iq2000.md: Likewise.
12135         * config/mcore/mcore.c: Likewise.
12136         * config/mips/mips.c: Likewise.
12137         * config/mips/r3900.h: Likewise.
12138         * config/mips/sb1.md: Likewise.
12139         * config/pa/milli64.S: Likewise.
12140         * config/pa/pa.c: Likewise.
12141         * config/pa/pa.h: Likewise.
12142         * config/rs6000/8540.md: Likewise.
12143
12144 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
12145
12146         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
12147
12148 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
12149
12150         * sh.md (cbranch define_delay) Use cond_delay_slot for
12151         non-anulled condition too.
12152
12153 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
12154
12155         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
12156         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
12157         any_parallel_operand, lmw_operation, stmw_operation,
12158         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
12159         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
12160         any_parallel_operand.
12161         (return_and_restore_fpregs_{si,di}): Same.
12162
12163 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
12164
12165         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
12166         if pred->singleton != PARALLEL, issue a warning and pretend it was.
12167         Also issue a warning for any predicate we don't know about.
12168
12169 2004-08-12  Richard Henderson  <rth@redhat.com>
12170
12171         * config/i386/i386.c (internal_label_prefix): Export.
12172         (internal_label_prefix_len, struct ix86_address,
12173         ix86_decompose_address, maybe_get_pool_constant,
12174         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
12175         memory_address_length): Export.
12176         (any_fp_register_operand, fp_register_operand,
12177         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
12178         x86_64_general_operand, x86_64_szext_general_operand,
12179         x86_64_nonmemory_operand, x86_64_movabs_operand,
12180         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
12181         x86_64_zext_immediate_operand, const_int_1_31_operand,
12182         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
12183         tls_symbolic_operand, global_dynamic_symbolic_operand,
12184         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
12185         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
12186         constant_call_address_operand, const0_operand, const1_operand,
12187         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
12188         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
12189         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
12190         general_no_elim_operand, nonmemory_no_elim_operand,
12191         index_register_operand, q_regs_operand, flags_reg_operand,
12192         non_q_regs_operand, zero_extended_scalar_load_operand,
12193         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
12194         ix86_comparison_operator, ix86_carry_flag_operator,
12195         fcmov_comparison_operator, promotable_binary_operator,
12196         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
12197         mult_operator, div_operator, arith_or_logical_operator,
12198         memory_displacement_operand, cmpsi_operand, long_memory_operand,
12199         aligned_operand): Move to predicates.md as define_predicates.
12200         (tls_symbolic_operand_1): Remove.
12201         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
12202         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
12203         (legitimize_address): Merge tls_symbolic_operand contents.
12204         (ix86_expand_move): Likewise.
12205         * config/i386/i386-protos.h: Update for exports.
12206         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
12207         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
12208         * config/i386/i386.md: Include predicates.md.
12209         * config/i386/predicates.md: New file.
12210
12211 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
12212
12213         PR c++/16924
12214         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
12215         SYMBOL_REF_DECL.
12216         (i386_pe_mark_dllimport): Likewise.
12217         (i386_pe_encode_section_info): Likewise, when overriding
12218         dllimport attribute.
12219
12220 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
12221
12222         * configure.ac: When testing for flex, nm, ar, and bison, check
12223         that they will actually be built.
12224         * configure: Regenerate.
12225
12226 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
12227
12228         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
12229         (MOVE_MAX_PIECES): Define.
12230
12231 2004-08-12  Devang patel  <dpatel@apple.com>
12232
12233         * dbxout.c (dbxout_begin_prologue): New function.
12234         (dbx_debug_hooks): Use new begin prologue hook.
12235         (dbxout_function_end): Emit N_ENSYM.
12236         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
12237
12238 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
12239
12240         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
12241         argument is float*.
12242
12243         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
12244         for vec_dss.
12245
12246         * doc/extend.texi (AltiVec builtins): Fix description for recent
12247         changes.  Update operation list to match current support.
12248
12249 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
12250
12251         * config/s390/s390.c (struct s390_frame_layout): New struct as element
12252         of struct machine_function.
12253         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
12254         changed all uses.
12255         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
12256         changed all uses.
12257         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
12258         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
12259         (s390_frame_area, s390_register_info): New functions.
12260         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
12261         for base register.
12262         (s390_return_addr_rtx, s390_return_address_offset)
12263         (s390_va_start, s390_gimplify_va_arg)
12264         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
12265         layouts.
12266         (s390_frame_info): Functionality partly moved to s390_register_info.
12267         Made adaptions for new stack layout.
12268         (save_gprs, restore_gprs): Changed meaning of second parameter and
12269         adapted all callers.
12270
12271         * config/s390/s390.h (s390_backchain_string): New global variable.
12272         (MASK_BACKCHAIN): Removed definition.
12273         (TARGET_BACKCHAIN): Changed check.
12274         (TARGET_KERNEL_BACKCHAIN): New macro.
12275         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
12276         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
12277         "kernel-backchain".
12278         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
12279
12280         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
12281         as condition.  Adjusted for new stack layout.
12282
12283         * doc/invoke.texi: Added documentation for new option
12284         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
12285         "-mno-backchain".
12286
12287 2004-08-12  Paul Brook  <paul@codesourcery.com>
12288
12289         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
12290         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
12291
12292 2004-08-12  David Daney  <ddaney@avtrex.com>
12293
12294         * java/gcj.texi:  Add subsection on signal usage.
12295
12296 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
12297
12298         * expr.c (move_by_pieces): Set alignment for move to minimum of
12299         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
12300         alignment, but not less than the original alignment.
12301         (move_by_pieces_ninsns): Same.
12302         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
12303         (store_by_pieces_1): Same.
12304
12305 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
12306
12307         PR tree-optimization/16867
12308         * tree.c (is_global_var): New function.
12309         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
12310         Call is_global_var.
12311         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
12312         Update all users.
12313         (is_global_var): Declare.
12314         * tree-dfa.c (dump_variable): Display global and addressable
12315         attributes.
12316         (add_referenced_var): Clarify documentation when marking
12317         variables call-clobbered.
12318         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
12319         instead of needs_to_live_in_memory.
12320         (mark_call_clobbered): If the variable is a tag, mark it
12321         DECL_EXTERNAL.
12322         * tree-gimple.c (is_gimple_reg): Don't check for
12323         TREE_ADDRESSABLE.
12324         (is_gimple_non_addressable): Likewise.
12325         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
12326         needs to be marked call-clobbered.
12327         (setup_pointers_and_addressables): Call is_global_var instead
12328         of needs_to_live_in_memory.
12329         * tree-ssa-dce.c (need_to_preserve_store): Remove.
12330         Update all users with is_global_var.
12331         (mark_stmt_if_obviously_necessary): Fix processing of aliased
12332         stores.  Don't check the virtual definitions.  Rather, check
12333         whether the store is going into global memory.
12334         (find_obviously_necessary_stmts): Get the symbol from the PHI
12335         result.
12336         * tree-ssa-operands.c (get_call_expr_operands): Do not add
12337         clobbering may-defs if the call does not have side effects.
12338
12339 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
12340
12341         PR c++/16276
12342         * output.h (default_function_rodata_section,
12343         default_no_function_rodata_section): New prototypes.
12344         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
12345         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
12346         (TARGET_ASM_OUT): Add it.
12347         * varasm.c (default_function_rodata_section,
12348         default_no_function_rodata_section): New functions.
12349         * final.c (final_scan_insn): Call
12350         targetm.asm_out.function_rodata_section instead of
12351         readonly_data_section.
12352         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
12353         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12354         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12355         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12356         Likewise.
12357         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12358         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12359         Likewise.
12360         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
12361         Likewise.
12362         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12363         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
12364         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
12365
12366 2004-08-12  Paul Brook  <paul@codesourcery.com>
12367
12368         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
12369         frame info.
12370         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
12371         DWARF2_UNWIND_INFO.
12372
12373 2004-08-12  Ben Elliston  <bje@au.ibm.com>
12374
12375         PR target/16286
12376         * config/rs6000/altivec.h: Change vector to __vector throughout.
12377         (Except for the `vector' macro itself).
12378
12379 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
12380
12381         * genpreds.c: Add capability to generate predicate bodies as
12382         well as function prototypes.  Write function prototypes for
12383         the generic predicates too.
12384         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
12385         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
12386         (write_match_code, write_predicate_expr, write_one_predicate_function)
12387         (parse_option): New functions.
12388         (output_predicate_decls): Delete.
12389         (main): Read the machine description, process DEFINE_PREDICATE or
12390         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
12391         as appropriate.
12392
12393         * genrecog.c (struct decision_test): Replace index with
12394         struct pred_data pointer.
12395         (next_index): Remove, unused.
12396         (pred_table, preds, special_mode_pred_table): Delete.
12397         (compute_predicate_codes, process_define_predicate): New functions.
12398         (validate_pattern, add_to_sequence, write_switch): Update for
12399         new data structures.
12400         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12401         Check both error_count and have_error.
12402
12403         * gensupport.c (in_fname, first_predicate): New globals.
12404         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
12405         (predicate_table, last_predicate, old_pred_table)
12406         (old_special_pred_table): New statics.
12407         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
12408         (add_predicate, init_predicate_table): New functions.
12409         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
12410         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
12411         it or max_include_len.  Call init_predicate_table.
12412         (read_rtx): Run the predicate queue after the attribute queue
12413         but before all the others.
12414         * gensupport.h (in_fname, struct pred_data, first_predicate)
12415         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
12416         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
12417         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
12418         * dummy-conditions.c: Don't include bconfig.h, system.h,
12419         coretypes.h, tm.h, or system.h.  Do include stddef.h.
12420         Duplicate declaration of struct c_test from gensupport.h.
12421
12422         * Makefile.in (OBJS-common): Add insn-preds.o.
12423         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
12424         (insn-preds.c, insn-preds.o): New rules.
12425         (s-preds): Also generate insn-preds.c.
12426         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
12427         Update dependencies.
12428         (print-rtl.o, print-rtl1.o): Correct dependencies.
12429
12430         * recog.h: Delete prototypes of predicate functions.
12431
12432         * doc/md.texi (Predicates): New section with complete
12433         documentation of operand/operator predicates.  Remove some
12434         incomplete documentation of predicates from other places.
12435         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
12436         PREDICATE_CODES; indicate that both are deprecated in favor
12437         of define_predicate/define_special_predicate.
12438
12439         * config/ia64/ia64.c: All predicate function definitions moved
12440         to ia64.md, except
12441         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
12442         (ia64_expand_load_address, ia64_expand_move):
12443         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
12444
12445         * config/ia64/ia64.md: All predicates now defined here.
12446         (symbolic_operand): Is now a special predicate.
12447
12448         * config/ia64/ia64.h: Declare ia64_section_threshold.
12449         (PREDICATE_CODES): Delete.
12450
12451 2004-08-12  Richard Henderson  <rth@redhat.com>
12452
12453         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
12454         * c-semantics.c (add_stmt): Set it.
12455         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
12456         before instantiating a variable sized type.
12457
12458 2004-08-12  Richard Henderson  <rth@redhat.com>
12459
12460         * stor-layout.c (round_up, round_down): Move ...
12461         * fold-const.c (round_up, round_down): ... here.  Use
12462         multiple_of_p to avoid any arithmetic at all.
12463
12464 2004-08-12  Richard Henderson  <rth@redhat.com>
12465
12466         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
12467         (gimplify_init_ctor_preeval_1): New.
12468         (gimplify_init_ctor_preeval): New.
12469         (gimplify_init_ctor_eval): New.
12470         (gimplify_init_constructor): Use them.  Always gimplify the LHS
12471         object first.
12472
12473 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
12474
12475         (This patch is part of merge of objc-improvements-branch
12476         into mainline.)
12477
12478         * doc/frontends.texi: Mention Objective-C++ in addition to
12479         Objective-C.
12480         * doc/install.texi: Add 'obj-c++' to list of configurable
12481         languages.
12482         * doc/invoke.texi: Rename Objective-C option headings to
12483         indicate they also apply to Objective-C++.  List file
12484         extensions for Objective-C++ sources.  Mention that
12485         ObjC and ObjC++ compilations may also use C and C++ options,
12486         respectively.  Point users to doc/standards.texi for
12487         further info on ObjC and ObjC++.
12488         * doc/sourcebuild.texi: Mention the objcp/ directory and
12489         the Objective-C++ sources it contains.
12490         * doc/standards.texi: Update link to Apple ObjC site;
12491         add link to gcc readings.html WWW doc.
12492
12493 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
12494
12495         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
12496         and 2004-07-14 changes.
12497
12498 2004-08-12  Paul Brook  <paul@codesourcery.com>
12499
12500         * doc/invoke.texi: Fix typo.
12501
12502 2004-08-11 Devang Patel  <dpatel@apple.com>
12503
12504         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
12505         and -no_dead_strip_inits_and_terms.
12506         (LINK_SPEC): Same.
12507         * doc/invoke.texi (Darwin Options): Document -dead_strip and
12508         -no_dead_strip_inits_and_terms.
12509
12510 2004-08-11  Paul Brook  <paul@codesourcery.com>
12511
12512         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
12513         (arm_load_pic_register): ... to this.
12514         * config/arm/arm.c (arm_finalize_pic): Rename ...
12515         (arm_load_pic_register): ... to this.  Always output insns at the
12516         current location.  Load via low reg in thumb mode.
12517         (arm_expand_prologue): Call arm_load_pic_register.
12518         (thumb_expand_prologue): Ditto.
12519         * config/arm/arm.h (FINALIZE_PIC): Remove.
12520         * config/arm/arm.md (builtin_setjmp_receiver): Call
12521         arm_load_pic_register.
12522
12523 2004-08-11  Paul Brook  <paul@codesourcery.com>
12524
12525         * arm.c (thumb_force_lr_save): Add prototype.
12526         (thumb_compute_save_reg_mask): New function.
12527         (thumb_find_work_register): New function.
12528         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
12529         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
12530         Don't clobber r3 when removing pretend args.
12531         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
12532         (thumb_output_function_prologue): Use new functions.
12533         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
12534         * arm.h (THUMB_REG_PUSHED_P): Remove.
12535
12536 2004-08-11  James E Wilson  <wilson@specifixinc.com>
12537
12538         PR rtl-optimization/16490
12539         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
12540         global_live_at_end for new basic block if already set for other blocks.
12541
12542 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
12543
12544         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
12545
12546         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
12547         (mfcr rlwinm rlwinm patterns): Set length to 12.
12548
12549 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
12550
12551         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
12552         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
12553         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
12554         (start_ssa_stmt_operands): Delete.
12555         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
12556         struct stmt_operands_d.
12557         (build_ssa_operands): New extern entry point.
12558         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
12559         building code, replace with create_ssa_artficial_load_stmt().
12560         * tree-ssa-operands.c (struct voperands_d): Delete.
12561         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
12562         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
12563         (free_uses, free_defs, free_vuses, free_v_may_defs,
12564         free_v_must_defs): Remove dealloc parameter.
12565         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
12566         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
12567         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
12568         vector comparisons, ssa_name reuse, and allocations here.
12569         (verify_start_operands): Delete.
12570         (finalize_ssa_stmt_operands): Set new operands by calling finalize
12571         routines.
12572         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
12573         (append_def, append_usei): Simplify to simple accumulation.
12574         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
12575         duplicates and simple accumulation.
12576         (free_ssa_operands): Free vectors in a stmt_operand structure.
12577         (build_ssa_operands): New. Create a new stmt_operand structure from
12578         a stmt and an old set of stmt_operands.
12579         (get_stmt_operands): Simplify and call build_ssa_operands.
12580         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
12581         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
12582         add_call_read_ops): Don't pass prev_vops around anymore.
12583         (note_addressable): Return if no stmt annotation.
12584         (copy_virtual_operands): Access v_may_def operands through a struct.
12585         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
12586         hash tables without treating the stmt as a real stmt.
12587         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
12588         v_may_def def and use through a struct instead of 2 array elements.
12589         (struct v_may_def_optype_d): Use v_may_def_operand_type.
12590         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
12591
12592 2004-08-11  Nick Clifton  <nickc@redhat.com>
12593
12594         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
12595         this funciton's behaviour.  Return true when the current function
12596         has a section attribute and -mlong-calls is in effect.
12597         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
12598         short-call marker when -mlong-calls is in effect and the function
12599         has a section attribute.
12600
12601 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
12602
12603         * stmt.c (expand_return): If asked to return the RESULT_DECL,
12604         just call expand_value_return on result_rtl.
12605
12606 2004-08-10  Richard Henderson  <rth@redhat.com>
12607
12608         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
12609         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
12610         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
12611         (add_location_or_const_value_attribute): ... not here.  Use
12612         loc_descriptor_from_tree if possible.
12613         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
12614         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
12615         values specially.
12616         (loc_descriptor_from_tree): New.  Update callers.
12617         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
12618         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
12619         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
12620         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
12621         and BUILT_IN_STACK_RESTORE.
12622         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
12623         * stmt.c (expand_stack_alloc): Remove.
12624         * tree-mudflap.c (mx_register_decls): Don't look for
12625         BUILT_IN_STACK_ALLOC.
12626         * tree-nested.c (convert_local_reference): Likewise.
12627         * tree.h (DECL_VALUE_EXPR): New.
12628
12629 2004-08-10  Richard Henderson  <rth@redhat.com>
12630
12631         * stor-layout.c (round_up): Check for 0/1 before dividing.
12632         (round_down): Likewise.
12633
12634         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
12635
12636 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
12637
12638         * config.gcc (arm*-*-eabi*): New target.
12639         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
12640         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12641         * expmed.c (expand_divmod): Try a two-valued divmod function as a
12642         last resort.
12643         * gthr.h: Remove bogus tokens at end of #pragma.
12644         * optabs.c (expand_twoval_binop_libfunc): New function.
12645         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
12646         (prepare_float_lib_cmp): Try reversing the condition.
12647         (debug_optab_libfuncs): New function.
12648         * optabs.h (expand_twoval_binop_libfunc): Declare.
12649         * config/arm/arm.c (arm_init_libfuncs): New function.
12650         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
12651         (TARGET_INIT_LIBFUNCS): Define it.
12652         * config/arm/arm.h (TARGET_BPABI): New macro.
12653         * config/arm/arm-protos.h
12654         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
12655         * config/arm/bpabi.S: New file.
12656         * config/arm/bpabi.c: Likewise.
12657         * config/arm/bpabi.h: Likewise.
12658         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
12659         (__aeabi_drsub): Likewise.
12660         (__aeabi_dsub): Likewise.
12661         (__aeabi_dadd): Likewise.
12662         (__aeabi_ui2d): Likewise.
12663         (__aeabi_i2d): Likewise.
12664         (__aeabi_f2d): Likewise.
12665         (__aeabi_dmul): Likewise.
12666         (__aeabi_ddiv): Likewise.
12667         (__aeabi_cdrcmple): Likewise.
12668         (__aeabi_cdcmpeq): Likewise.
12669         (__aeabi_cdcmple): Likewise.
12670         (__aeabi_dcmpeq): Likewise.
12671         (__aeabi_dcmplt): Likewise.
12672         (__aeabi_dcmple): Likewise.
12673         (__aeabi_dcmpge): Likewise.
12674         (__aeabi_dcmpgt): Likewise.
12675         (__aeabi_dcmpun): Likewise.
12676         (__aeabi_d2iz): Likewise.
12677         (__aeabi_d2uiz): Likewise.
12678         (__aeabi_d2f): Likewise.
12679         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
12680         (__aeabi_frsub): Likewise.
12681         (__aeabi_fsub): Likewise.
12682         (__aeabi_fadd): Likewise.
12683         (__aeabi_ui2f): Likewise.
12684         (__aeabi_i2f): Likewise.
12685         (__aeabi_fmul): Likewise.
12686         (__aeabi_fdiv): Likewise.
12687         (__aeabi_cfrcmple): Likewise.
12688         (__aeabi_cfcmpeq): Likewise.
12689         (__aeabi_cfcmple): Likewise.
12690         (__aeabi_fcmpeq): Likewise.
12691         (__aeabi_fcmplt): Likewise.
12692         (__aeabi_fcmple): Likewise.
12693         (__aeabi_fcmpge): Likewise.
12694         (__aeabi_fcmpgt): Likewise.
12695         (__aeabi_fcmpun): Likewise.
12696         (__aeabi_f2iz): Likewise.
12697         (__aeabi_f2uiz): Likewise.
12698         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
12699         (__aeabi_uidivmod): New function or alias.
12700         (__aeabi_idivmod): Likewise.
12701         (__aeabi_idiv0): Likewise.
12702         (__aeabi_ldiv0): Likewise.
12703         (__aeabi_llsr): Likewise.
12704         (__aeabi_lasr): Likewise.
12705         (__aeabi_llsl): Likewise.
12706         (bpabi.S): Include it.
12707         * config/arm/libgcc-bpabi.ver: New file.
12708         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
12709         (LINK_SPEC): Remove.
12710         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
12711         __aeabi_ulcmp.
12712         * config/arm/t-bpabi: New file.
12713         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
12714         (TARGET_LIB_INT_CMP_BIASED): Likewise.
12715
12716 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
12717
12718         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
12719         * config/rs6000/rs6000.md (clrmemsi): New pattern.
12720         * config/rs6000/rs6000.c (expand_block_clear): New function.
12721         (expand_block_move): Convert alignment to bits.  Use SImode and
12722         HImode for unaligned addresses if not STRICT_ALIGNMENT.
12723
12724 2004-08-10  Caroline Tice  <ctice@apple.com>
12725
12726         * varasm.c (unlikely_section_label): New global variable.
12727         (unlikely_text_section_name): New global variable.
12728         (text_section):  Remove alignment statement.
12729         (unlikely_text_section): Remove alignment statement; use
12730         unlikely_section_label rather than hard-coded string.
12731         (assemble_start_function): Initialize unlikely_section_label and
12732         unlikely_text_section_name;  make sure cold section is properly
12733         aligned at start of function; output unlikely_section_label if
12734         appropriate.
12735
12736 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
12737
12738         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
12739         * config/s390/s390.c (s390_canonicalize_comparison): New function.
12740         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
12741         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
12742         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
12743         ("*tmqi_mem"): Remove SUBREG from pattern.
12744         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
12745         ("*andsi3_cconly"): Likewise.
12746
12747 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
12748
12749         PR target/16909
12750         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
12751
12752 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
12753
12754         * doc/sourcebuild.texi (compat testing): Document available test
12755         framework commands.  Use the preferred spelling of DejaGnu.
12756
12757 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
12758
12759         * lambda.h: Add matrix type, and prototypes for remainder of
12760         matrix and vector functions.
12761         (lambda_vector_mult_const): New function.
12762         (lambda_vector_negate): Ditto.
12763         (lambda_vector_add): Ditto.
12764         (lambda_vector_add_mc): Ditto.
12765         (lambda_vector_copy): Ditto.
12766         (lambda_vector_zerop): Ditto.
12767         (lambda_vector_equal): Ditto.
12768         (lambda_vector_min_nz): Ditto.
12769         (lambda_vector_first_nz): Ditto.
12770         (lambda_vector_matrix_mult): Ditto.
12771         * lambda-mat.c: New file.
12772         * Makefile.in (lambda-mat.o): New.
12773
12774 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
12775
12776         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
12777         after linking stmt into the program.
12778         (bsi_remove): Don't call modify_stmt.
12779         * tree-complex.c (update_complex_assignment,
12780         expand_complex_comparison): Call modify_stmt after changing the stmt.
12781         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
12782         removing the stmt.
12783         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
12784         the stmt, and only if needed.
12785         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
12786         expression.
12787         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
12788         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
12789         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
12790         (eliminate_redundant_computations): Don't pass an annotation. Call
12791         modify_stmt rather than setting the annotation directly.
12792         (record_equivalences_from_stmt): Remove unused local 'j'.
12793         (cprop_operand): Take a stmt rather than an annotation as a parameter.
12794         Call modify_stmt.
12795         (cprop_into_stmt): Pass stmt rather than annotation.
12796         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
12797         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
12798         modify_stmt.
12799         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
12800
12801 2004-08-10  Jason Merrill  <jason@redhat.com>
12802
12803         PR middle-end/16948
12804         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
12805         the RESULT_DECL.
12806
12807 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
12808
12809         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
12810         hash function.
12811
12812 2004-08-10  Roger Sayle  <roger@eyesopen.com>
12813
12814         * config/mips/mips.md: New reciprocal square root patterns that
12815         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
12816
12817 2004-08-10  Paul Brook  <paul@codesourcery.com>
12818
12819         * config/arm/arm-protos.h (arm_set_return_address,
12820         thumb_set_return_address): Add prototypes.
12821         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
12822         * config/arm/arm.c (arm_compute_func_type,
12823         use_return_insn, arm_compute_save_reg0_reg12_mask,
12824         arm_compute_save_reg_mask, arm_output_function_prologue,
12825         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
12826         current_function_calls_eh_return.
12827         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
12828         old eh code.
12829         (arm_set_return_address, thumb_set_return_address): New functions.
12830         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
12831         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
12832         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
12833         (epilogue): Use the stackadj register.
12834         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
12835
12836 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
12837
12838         PR target/3144
12839         * expr.c (move_by_pieces_ninsns): Add max_size argument.
12840         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
12841         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
12842         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
12843         but using MOVE_RATIO.
12844         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
12845         (can_store_by_pieces): Change max_size type to unsigned int.
12846         (store_by_pieces_1): Likewise.  Pass max_size to
12847         move_by_pieces_ninsns.
12848         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
12849         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
12850         to move_by_pieces_ninsns.
12851         (STORE_BY_PIECES_P): Define.
12852         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
12853         to move_by_pieces_ninsns.
12854         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
12855
12856         * config/i386/i386.h (CLEAR_RATIO): Define.
12857
12858 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12859
12860         * expr.c (expand_expr_real_1): Add back code that was not dead.
12861
12862 2004-08-09  Andrew Pinski  <apinski@apple.com>
12863
12864         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
12865         which is found to be compatible before returning the aliasing set.
12866
12867 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
12868
12869         * ggc-zone.c (struct alloc_zone): Add statistics counters.
12870         (always_collect): New flag.
12871         (ggc_alloc_zone_1): Update statistics support.  Don't include
12872         overhead in allocated counter.
12873         (sweep_pages): Update allocated counter for large pages.  Don'y
12874         include overhead.
12875         (ggc_collect_1): Always collect.
12876         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
12877         whether to collect.
12878         (SCALE, LABEL): New macros.
12879         (ggc_print_statistics): Add statistics support.
12880
12881 2004-08-09  Roger Sayle  <roger@eyesopen.com>
12882
12883         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
12884         (init_expmed): Fix potential overrun problem with "all.reg".
12885         (expand_sdiv2_pow2): Add an alternate implementation for signed
12886         division, if the target provides a suitable conditional move insn.
12887
12888 2004-08-09  Paul Brook  <paul@codesourcery.com>
12889         Richard Henderson  <rth@redhat.com>
12890
12891         * unwind-dw2.c (uw_install_context_1): Update target saved stack
12892         pointer.
12893
12894 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
12895
12896         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
12897         Check DATA limit only if there's no AS limit.  Ignore insanely
12898         low DATA limits.
12899         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
12900         but take care that the AS limit isn't overrun.
12901         * doc/invoke.texi: Update documentation of min-heapsize parameter.
12902
12903 2004-08-09  Jeff Law  <law@redhat.com>
12904
12905         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
12906         (tree-ssa-threadupdate.o): Add dependencies.
12907         * tree-ssa-threadupdate.c: New file.
12908         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
12909         (rewrite_vars_out_of_ssa): Remove prototype.
12910         (cleanup_tree_cfg): Returns a bool.
12911         * tree.h (thread_through_all_blocks): Prototype.
12912         * tree-outof-ssa.c  (SSANORM_*): Move into here.
12913         (remove_ssa_form): Now static.
12914         (rewrite_vars_out_of_ssa): Kill.
12915         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
12916         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
12917         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
12918         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
12919         anything was changed.
12920         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
12921         from the PHI's annotation rather than the edge associated with
12922         the new argument.
12923         * tree-ssa-dom.c (redirection_edges): Kill.
12924         (redirect_edges_and_update_ssa_graph): Kill.
12925         (tree_ssa_dominator_optimize): Do not reset forwardable flag
12926         for blocks anymore.  Do not initialize redirection_edges.
12927         Call thread_through_all_blocks.  Simplify code for cleanup
12928         of the CFG and iterating.  No longer call cleanup_tree_cfg
12929         outside the iteration loop.
12930         (thread_across_edge): No longer mess with forwardable blocks.
12931
12932 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
12933
12934         * explow.c (memory_address): Use memory_address_p.
12935         * recog.c (general_operand): Likewise.
12936         * regrename.c: No need to define REG_OK_STRICT.
12937
12938 2004-08-09  Steven Bosscher  <stevenb@suse.de>
12939
12940         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
12941         New timers.
12942         * gcse.c: Include timevar.h.
12943         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
12944         and global_copy_prop_count.
12945         (local_const_prop_count, local_copy_prop_count): New static globals.
12946         (gcse_main): Set the right timevar for each pass.
12947         (cprop_jump): Increment global_const_prop_count when a constant is
12948         propagated.  Add "GLOBAL" to dump output.
12949         (cprop_insn): Increment global_const_prop_count when a constant is
12950         propagated, or global_copy_prop_count when a copy is propagated.
12951         (do_local_cprop): Likewise for local_const_prop_count and
12952         local_copy_prop_count.
12953         (one_cprop_pass): Initialize const/cprop counters to zero.
12954         Print out results of local and global const/cprop separately.
12955         (bypass_block): Break over-length line.
12956         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
12957         for bb-reorder.o and tracer.o.
12958
12959 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12960
12961         * Makefile.in (GTFILES): Remove stmt.c
12962         (stmt.o): Do not depend on gt-stmt.h.
12963         * emit-rtl.c (emit_line_note): Do not call
12964         set_file_and_line_for_stmt.
12965         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
12966         do everything.
12967         * function.c (free_after_parsing): Do not free STMT field.
12968         (allocate_struct_function): Do not call init_stmt_for_function.
12969         (assign_stack_temp_for_type): Do not accept values of keep
12970         other than 0 or 1.
12971         (init_temp_slots): Do not initialize removed variables.
12972         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
12973         and X_VAR_TEMP_SLOT_LEVEL fields.
12974         * rtl.h (set_file_and_line_for_stmt): Remove.
12975         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
12976         struct stmt_status, cond_stack, case_stack, nesting_stack,
12977         nesting_depth, emit_locus, set_file_and_line_for_stmt,
12978         same_case_target_p, init_stmt_for_function, emit_nop,
12979         expand_start_cond, expand_start_elseif, expand_start_else,
12980         expand_elseif, expand_end_cond): Remove.
12981         (preserve_subexpressions_p): Remove references to CFUN->STMT.
12982         (expand_start_case, expand_end_case_type): Remove, merge into...
12983         (expand_case): ... this one, including other bits from
12984         expand_expr_real_1.  Inline same_case_target_p.  Turn members
12985         of CASE_STACK into local variables.
12986         (emit_case_bit_tests): Inline same_case_target_p.
12987         (add_case_node): Add HEAD argument, return new head of the list,
12988         do not handle default label here.
12989         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
12990         expand_start_elseif, current_nesting_level, expand_start_case,
12991         expand_end_case_type, expand_end_case, add_case_node,
12992         init_stmt_for_function, expand_elseif): Remove prototypes.
12993         (expand_case): Add prototype.
12994
12995 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
12996
12997         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
12998
12999 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
13000
13001         * expr.c (var_rtx): Remove.
13002         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
13003         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
13004         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
13005         Abort.
13006         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
13007         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
13008         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
13009
13010 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
13011         Ayal Zaks <zaks@il.ibm.com>
13012
13013         * common.opt (freschedule-modulo-scheduled-loops): New flag.
13014         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
13015         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
13016         when -freschedule-modulo-scheduled-loops flag is not specified.
13017         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
13018         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
13019         More accurate placing of insn in row of partial schedule.
13020         (ps_insn_find_column): New function.
13021         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
13022         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
13023         (schedule_region): Use sched_is_disabled_for_current_region_p.
13024         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
13025
13026 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
13027
13028         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
13029         change.
13030
13031 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
13032
13033         * config/i386/i386.c (ix86_expand_clrmem): Properly call
13034         gen_strset for 64bit target.
13035
13036 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
13037
13038         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
13039
13040 2004-08-07  Jason Merrill  <jason@redhat.com>
13041
13042         Make return in memory explicit.
13043         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
13044         (assign_parm_find_data_types): Remove code for old front end
13045         invisible reference handling.
13046         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
13047         (expand_function_end): Likewise.
13048         * gimplify.c (gimplify_return_expr): Handle a dereferenced
13049         RESULT_DECL.
13050         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
13051         (declare_return_variable): Handle DECL_BY_REFERENCE.
13052         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
13053         (cp_genericize_r): Use convert_from_reference.
13054         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
13055         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
13056
13057         * c-common.c (c_warn_unused_result): Check TREE_USED before
13058         warning about a CALL_EXPR with an unused value.
13059
13060 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
13061
13062         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
13063         to the compiler.  Use -fshort-wchar by default.
13064
13065 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
13066
13067         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
13068         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
13069         threshhold.
13070         * doc/invoke.texi (param): Document min-crossjump-insns.
13071
13072 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
13073
13074         PR c/13282
13075         * c.opt (Wmissing-field-initializers): New option.
13076         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
13077         * c-typeck.c (pop_init_level): Guard the missing field warning with
13078         warn_missing_field_initializers rather than extra_warnings.
13079         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
13080         some of the explanation from...
13081         (-Wextra): ...here.  Say that the missing field warning can be
13082         seperately controlled by -Wmissing-field-initializers.
13083
13084 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
13085
13086         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
13087         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
13088         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
13089         * tree.def (ENTRY_VALUE_EXPR): Remove.
13090
13091 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
13092
13093         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
13094         the places where it is actually needed.  Don't use repz; stosb
13095         for -Os with sufficiently small constant sizes.
13096         For sufficiently small repz; stos{l,q} repeat counts use a sequence
13097         of stos{l,q} instructions instead.
13098
13099 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13100
13101         PR tree-optimization/16807
13102         * loop-iv.c (dump_iv_info): Dump invariants correctly.
13103         (iv_subreg, iv_extend): Express value of invariant purely in
13104         base field.
13105
13106 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
13107
13108         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
13109         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
13110
13111 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
13112
13113         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
13114         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
13115         pre_dec_operand.
13116         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
13117         pattern until reload is finished to allow better code generation
13118         and split them completely into separate instrunctions.
13119         (*andsi3_split): New pattern.
13120
13121 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
13122
13123         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
13124         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
13125         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13126         * tree.h (handle_dll_attribute): Declare.  Test
13127         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13128         * c-common.h (c_determine_visibility): Declare.
13129         * c-common.c (c_determine_visibility): New function.
13130         * c-decl.c (finish_decl): Use it.
13131         (finish_function): Likewise.
13132         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
13133         zero, by default.  Use #if, not #ifdef, to test it.
13134         * config/arm/arm.c (arm_attribute_table): Use
13135         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
13136         #if.
13137         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
13138         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13139         to 1.
13140         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
13141         * config/i386/i386.c (ix86_attribute_table): Use
13142         handle_dll_attribute for dllimport/dllexport.  Test
13143         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
13144         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
13145         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13146         it to 1.
13147         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
13148         with #if.
13149         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
13150         it to 1.
13151         * doc/extend.texi (dllexport): Clarify and correct documentation.
13152         (dllimport): Likewise.
13153         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
13154         handle_dll_attribute.
13155
13156 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13157
13158         * tree-ssa-loop-manip.c: New file.
13159         * Makefile.in (tree-ssa-loop-manip.o): Add.
13160         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
13161         Declare.
13162         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
13163         form.
13164         (tree_ssa_loop_done): Verify loop closed ssa form.
13165         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
13166
13167 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13168
13169         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
13170         pa_asm_output_aligned_local): New functions.
13171         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
13172         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
13173         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
13174         pa_asm_output_aligned_common.
13175         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13176         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
13177         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
13178         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13179         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
13180         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
13181         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
13182         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
13183         common data.
13184
13185 2004-08-05  Andrew Pinski  <apinski@apple.com>
13186
13187         * objc/objc-act.c (build_objc_string_object): Mark the address
13188         expression as constant.
13189
13190 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
13191
13192         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
13193         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
13194         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
13195
13196 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13197
13198         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
13199         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
13200         out, and associated obsolete comments.
13201
13202 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
13203
13204         * tree.h (force_fit_type): Return a tree, take three flags.
13205         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
13206         TREE_CONSTANT_OVERFLOW here.
13207         (int_const_binop, const_binop): Adjust.
13208         (size_int_type): Do sign extension here.
13209         (fold_convert_const, optimize_bit_field_compare,
13210         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
13211         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
13212         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
13213
13214 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13215
13216         PR tree-optimization/16864
13217         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
13218         for ssa names without default_def.
13219
13220 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
13221
13222         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
13223         frame pointer, restore eax with an ebp-relative address.
13224
13225 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
13226
13227         PR 14516
13228         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
13229         * c-common.h (make_rtl_for_local_static): Delete.
13230         * c-decl.c (shadow_tag_warned): Clean up comment.
13231         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
13232         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
13233         * c-semantics.c (make_rtl_for_local_static): Delete.
13234         * expr.c (init_block_move_fn): Use set_user_assembler_name.
13235         (init_block_clear_fn): Likewise.
13236         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
13237         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
13238         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
13239         * tree.h (make_decl_rtl): Remove second parameter.
13240         (set_user_assembler_name): New.
13241         * varasm.c (set_user_assembler_name): New.
13242         (make_decl_rtl): Remove second parameter.  Update callers in many
13243         files.
13244
13245 2004-08-05  Adam Nemet  <anemet@lnxw.com>
13246
13247         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
13248         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
13249         to LynxOS 4.0.
13250         * gthr-lynx.h: New file.
13251         * config/lynx-ng.h: Remove file.
13252         * config/lynx.h: Update to LynxOS 4.0.
13253         * config/t-lynx: New file.
13254         * config/i386/lynx-ng.h: Remove file.
13255         * config/i386/lynx.h: Update to LynxOS 4.0.
13256         * config/rs6000/lynxbase.h: Remove file.
13257         * config/rs6000/lynx.h: Update to LynxOS 4.0.
13258         * config/rs6000/t-lynx: New file.
13259         * doc/install.texi (Options specification): Remove reference to
13260         LynxOS from systems where --with-gnu-as makes a difference.
13261
13262 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13263
13264         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
13265         __UINTMAX_TYPE__.
13266         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
13267         __INTMAX_MAX__.
13268         (c_cpp_builtins): Call it.
13269         * doc/cpp.texi: Update.
13270
13271 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
13272
13273         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
13274         cost.
13275
13276 2004-08-04  Jan Hubicka  <jh@suse.cz>
13277
13278         * basic-block.h (profile_staus): New global variable.
13279         * cfg.c (profile_status): Declare.
13280         (check_bb_profile): Break out from ....; use profile_status
13281         (dump_flow_info): ... here.
13282         * cfgbuild.c (find_basic_blocks): Set profile_status.
13283         * cfgexpand.c (tree_expand_cfg): Likewise.
13284         * predict.c (estimate_probability): Likewise.
13285         * profile.c (branch_prob): Likewise.
13286         * tree-cfg.c (build_tree_cfg): Likewise.
13287         (dump_function_to_file): Use check_bb_profile.
13288         * tree-pretty-print (dump_bb_header): Likewise.
13289         * tree-profile.c (do_tree_profiling): Cleanup.
13290
13291 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
13292
13293         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
13294         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
13295         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
13296         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
13297         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
13298         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
13299         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
13300         (ggc-none.o, errors.o): Move rule to generators section;
13301         correct dependencies.
13302         (min-insn-modes.o): Move rule to generators section; remove
13303         unnecessary explicit command; correct dependencies.
13304         (print-rtl.o, print-rtl1.o): Correct dependencies.
13305         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
13306         (mostlyclean): Update.
13307
13308         * errors.c: Include bconfig.h not config.h.  Correct comment.
13309         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
13310         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
13311         * print-rtl.c: Don't include tm_p.h.
13312
13313         * rtl.h: Move forward-decl of struct function down where it's
13314         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
13315         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
13316
13317 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13318             Jeff Law  <law@redhat.com>
13319
13320         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
13321         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
13322         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
13323         manipulate the duplicated ssa names.
13324         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
13325         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
13326         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
13327         New functions.
13328         (release_ssa_name): Do not release ssa names that may have multiple
13329         definitions.
13330         * tree.h (release_ssa_name_force, mark_for_rewrite,
13331         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
13332         marked_ssa_names): Declare.
13333         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
13334         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
13335         Update call to rewrite_ssa_into_ssa.
13336
13337 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
13338
13339         * defaults.h (TARGET_DECLSPEC): New macro.
13340         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
13341         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
13342         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
13343         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
13344         __declspec support.
13345         (TARGET_DECLSPEC): Define.
13346         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
13347         __declspec support.
13348         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
13349         __declspec support.
13350         (TARGET_DECLSPEC): Define.
13351         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
13352         __declspec support.
13353         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
13354         support.
13355         * doc/tm.texi (TARGET_DECLSPEC): Document.
13356
13357         * doc/extend.texi: Fix typo in comment.
13358
13359 2004-08-04  Paul Brook  <paul@codesourcery.com>
13360
13361         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
13362         (TARGET_CXX): Use it.
13363         * target.h (struct gcc_target): Add cdtor_returns_this.
13364         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
13365         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
13366         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
13367
13368 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
13369
13370         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
13371         low/high pair. Do range checking directly.
13372         (interpret_integer): Adjust.
13373
13374 2004-08-04  Nick Clifton  <nickc@redhat.com>
13375
13376         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
13377         GCC ABI.
13378         * doc/invoke.texi: Document this new switch and also the -mrenesas
13379         switch.
13380
13381 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
13382
13383         * cfglayout.c (insn_locators_initialize): Update the current
13384         location before initializing a location.
13385
13386 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13387
13388         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
13389         (dbxout_function_end): Return after emitting the "Lscope" symbol
13390         under the same conditions that this function formerly wasn't called.
13391         Add explanatory comments.
13392
13393         PR 14860
13394         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
13395         on the new decl.
13396
13397         PR 13956
13398         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
13399         functions, broken out of dbxout_block.
13400         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
13401         stabs too, if it contains symbols.  Use the begin_label and
13402         the Lscope label (emitted by dbxout_function_end) for the
13403         range of this block.
13404
13405 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
13406
13407         * doc/install.texi: Update autoconf version requirements.
13408
13409 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13410
13411         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
13412         * recog.c (general_operand, immediate_operand, nonmemory_operand)
13413         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
13414         * regclass.c (record_reg_classes): Likewise.
13415         * reload.c (find_reloads): Likewise.
13416         * reload1.c (reload): Likewise.
13417
13418 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
13419
13420         * gensupport.c (init_md_reader_args_cb): Renamed from
13421         init_md_reader_args.  Add third option, callback function for
13422         parsing program-specific options.  Add diagnosis of incorrect
13423         number of input files.
13424         (init_md_reader): Fold into init_md_reader_args_cb.
13425         (init_md_reader_args): Now a thin wrapper around
13426         init_md_reader_args_cb.
13427         * gensupport.h: Update prototypes.
13428
13429         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
13430         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
13431         * genrecog.c: No need to diagnose lack of an input file;
13432         init_md_reader_args will handle it.
13433         * genconditions.c: Likewise, and use init_md_reader_args.
13434         * genconstants.c: Likewise, and no need to call read_md_rtx.
13435
13436 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13437
13438         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
13439         declarations.
13440
13441 2004-08-03  Mike Stump  <mrs@apple.com>
13442
13443         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
13444         for frameworks.
13445         * doc/invoke.texi (Darwin Options): Update to reflect above.
13446
13447 2004-08-03  Roger Sayle  <roger@eyesopen.com>
13448
13449         PR middle-end/16790
13450         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
13451         truncations, not just global truncations.
13452
13453 2004-08-03  Andrew Pinski  <apinski@apple.com>
13454
13455         PR bootstrap/16865
13456         * loop-iv.c (simplify_using_assignment): Initialize lhs.
13457
13458 2004-08-03  Paul Brook  <paul@codesourcery.com>
13459
13460         * gcc/doc/install.texi: Document MPFR requirement.
13461
13462 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
13463
13464         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
13465         and mmap() explicitly instead of relying on preset autoconf cache
13466         variables.
13467         * configure: Regenerate.
13468
13469 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13470
13471         PR target/16570
13472         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
13473         to tmake_file.
13474         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
13475         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
13476         to tmake_file.
13477
13478         * config/i386/t-gmm_malloc: New file.
13479         * config/i386/t-pmm_malloc: Likewise.
13480
13481         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
13482
13483 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
13484             Tanguy Fautrà <tfautre@pandora.be>
13485
13486         * config/i386/pmm_malloc.h: New file.
13487
13488 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
13489
13490         * config/i386/gmm_malloc.h: New file.
13491
13492 2004-08-03  Dale Johannesen  <dalej@apple.com>
13493
13494         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
13495         * c-common.c: Include opts.h.
13496         (c_common_get_alias_set): Fix check for a single input file.
13497         * toplev.c: Remove current_file_decl.
13498         * tree.h: Ditto.
13499
13500 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
13501
13502         * config.gcc (arm*-*-symbianelf*): New target.
13503         * config/arm/symbian.h: New file.
13504
13505         * gthr-gnat.c: Add visibility #pragmas.
13506         * gthr-gnat.h : Likewise.
13507         * gthr.h: Likewise.
13508         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
13509         (__ffsDI2): Likewise.
13510         (__clzSI2): Likewise.
13511         (__ctzSI2): Likewise.
13512         (__ctzDI2): Likewise.
13513         (__popcountSI2): Likewise.
13514         (__popcountDI2): Likewise.
13515         (__paritySI2): Likewise.
13516         (__parityDI2): Likewise.
13517         * libgcc2.h: Add visibility #pragmas.
13518         (__clzDI2): Add prototype.
13519         (__clzSI2): Likewise.
13520         (__ctzSI2): Likewise.
13521         (__ffsDI2): Likewise.
13522         (__ffsSI2): Likewise.
13523         (__ctzDI2): Likewise.
13524         (__popcountSI2): Likewise.
13525         (__popcountDI2): Likewise.
13526         (__paritySI2): Likewise.
13527         (__parityDI2): Likewise.
13528         * unwind-dw2-fde.h: Add visibility #pragmas.
13529         * unwind.h: Likewise.
13530
13531 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
13532             Dale Johannesen  <dalej@apple.com>
13533             Roger Sayle  <roger@eyesopen.com>
13534
13535         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
13536         constants more accurately.  Adjust costs for FMA instructions.
13537         Add cases for most logical and float operations.  Recurse into
13538         most operands.
13539
13540 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13541
13542         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
13543
13544 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
13545
13546         * ra-build.c (conflicts_between_webs): For webs that cross a call add
13547         conflicts to regs_invalidated_by_call.
13548
13549 2004-08-03  Paul Brook  <paul@codesourcery.com>
13550
13551         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
13552
13553 2004-08-03  Jan Hubicka  <jh@suse.cz>
13554
13555         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
13556         ARRAY_REF argument.
13557
13558 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
13559
13560         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
13561         arm968es, arm10e, arm1020e, arm1022e.
13562         * invoke.texi: Update list of ARM cores.
13563         * arm-tune.md: Regenerate.
13564
13565 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
13566
13567         * arm/gentune.sh: New file.
13568         * arm/t-arm: New file.
13569         * arm/arm-tune.md: New file (autogenerated).
13570         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
13571         * arm.md (attribute tune): Delete.  Include arm-tune.md.
13572
13573 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
13574
13575         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
13576         penultimate parameter.  All callers adjusted.
13577         (struct prefix_list): Remove used_flag_ptr.
13578         (find_a_file): Do not set *pl->used_flag_ptr.
13579         (warn_B, warn_std_ptr): Remove.
13580
13581 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
13582             Mostafa Hagog <mustafa@il.ibm.com>
13583
13584         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
13585
13586 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
13587
13588         * dwarf2out.c (output_call_frame_info): Don't change data format
13589         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
13590         label.  Use 'true' not '1'.
13591         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
13592         required.
13593
13594 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13595
13596         * gdbinit.in: Reflect previous changes to rtunion_def.
13597
13598 2004-08-02  Roger Sayle  <roger@eyesopen.com>
13599
13600         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
13601         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
13602
13603 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13604
13605         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
13606         vec_p_reserve.
13607         * langhooks.h (lang_hooks::builtin_function): Rename parameter
13608         from "class" to "bt_class".
13609
13610 2004-08-02  Paul Brook  <paul@codesourcery.com>
13611
13612         PR rtl-optimization/15068
13613         * flow.c (init_propagate_block_info): Check condition is reversible.
13614
13615 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13616
13617         * gengtype.h (options::info): Change type to const char *.
13618         (enum gc_used_enum): Move out of struct type scope.
13619         * gengtype.c (create_option): Convert initializer for option::info to
13620         appropiate type.
13621         (adjust_field_type, walk_type, write_func_for_structure,
13622         write_root, write_roots): Remove pointless cast.
13623
13624 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
13625
13626         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
13627
13628 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13629
13630         * rtl.h (union rtunion_def): Have all members  start with the
13631         prefix "rt_".
13632         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
13633         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
13634         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
13635         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
13636         access.
13637         * gengtype.c (adjust_field_rtx_def): Likewise.
13638         * rtlanal.c (loc_mentioned_in_p): Likewise.
13639
13640 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
13641
13642         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
13643         Replace uses of mips/elf64.h with mips/elf.h
13644         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
13645         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
13646         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
13647         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
13648         (HANDLE_SYSV_PRAGMA): Delete.
13649         (ASM_OUTPUT_DEF): Fix formatting.
13650         * config/mips/elf64.h: Delete.
13651
13652 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
13653
13654         * config/ia64/ia64.c (got_symbolic_operand): Do require a
13655         symbol+offset operand to have its offset be zero mod 0x3fff
13656         when GOT entries are in use.  Clarify logic in SYMBOL_REF
13657         case.  Clarify comments.
13658         (ia64_expand_load_address): Split a symbol+offset load when
13659         the offset is nonzero mod 0x3fff, not 0x1fff.
13660
13661 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
13662
13663         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
13664         if trying to *store* to a non-offsettable address.
13665         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
13666         a nonoffsettable address.
13667         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
13668         Clean up.
13669         (movti_string): Don't move GPRs to a nonoffsettable address.
13670         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
13671
13672 2004-08-02  Ben Elliston  <bje@au.ibm.com>
13673
13674         PR target/16155
13675         * config/rs6000/altivec.h: Replace typeof with __typeof__.
13676
13677 2004-08-01  Richard Henderson  <rth@redhat.com>
13678
13679         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
13680         variable sized types.
13681
13682 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13683
13684         * doc/invoke.texi: In the MIPS options section, remove the passage
13685         saying that -mexplicit-relocs is usually disabled for -mabicalls
13686         -fno-unit-at-a-time.
13687         * config/mips/mips.c (override_options): Remove the code that enforced
13688         this rule.
13689
13690 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13691
13692         * config/mips/mips.md (cprestore): Provide two alternatives, one for
13693         an in-range offset and one for an out-of-range offset.  Wrap the latter
13694         in .set macro/.set nomacro if it's inside a .set nomacro block.
13695
13696 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
13697
13698         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
13699         (mips_restore_gp): Declare.
13700         * config/mips/mips.c (mips_add_offset): Add a scratch register
13701         argument.  Reimplement in rtl only, reusing MIPS16 logic from
13702         mips_output_mi_thunk.
13703         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
13704         to mips_add_offset.
13705         (mips_gp_save_slot): Delete.
13706         (mips_restore_gp): New function.
13707         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
13708         * config/mips/mips.md (exception_receiver): Turn into a
13709         define_insn_and_split.  Use mips_restore_gp to do the split.
13710         (call_internal, call_value_internal, call_value_multiple_internal): Use
13711         mips_restore_gp to restore $gp.
13712
13713 2004-07-31  Andrew Pinski  <apinski@apple.com>
13714
13715         PR other/16842
13716         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
13717
13718 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
13719
13720         * c-decl.c (diagnose_mismatched_decls): Give error for external
13721         redeclaration of identifier declared with no linkage, not just
13722         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
13723         error for redeclaration with no linkage.
13724
13725 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
13726             Fariborz Jahanian <fjahanian@apple.com>
13727
13728         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
13729         non-offsettable addresses even for DImode.
13730         (rs6000_split_multireg_move): Cope with non-offsettable addresses
13731         being moved into multiple GPRs.
13732
13733         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
13734         to 64.
13735         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
13736         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
13737         to 128.
13738         * config/rs6000/darwin-ldouble.c (isless): New macro.
13739         (inf): New macro.
13740         (nonfinite): New macro.
13741         (FPKINF): Delete.
13742         (_xlqadd): Completely rewrite.
13743         (_xlqmul): Correct overflow handling.
13744         (_xlqdiv): Correct overflow handling.
13745         * config/rs6000/darwin-ldouble-format: New file.
13746
13747 2004-07-30  Roger Sayle  <roger@eyesopen.com>
13748             Richard Henderson  <rth@redhat.com>
13749
13750         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
13751         9 into the equivalent lea instruction.
13752
13753 2004-07-30  Richard Henderson  <rth@redhat.com>
13754
13755         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
13756         with DECL_INITIAL if fb_lvalue.
13757         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
13758         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
13759         with <Cxxx>.
13760         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
13761
13762 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13763
13764         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
13765         pointer escapes through a function call, assume that the
13766         callee will dereference it.
13767         (add_pointed_to_var): Assume that VALUE is always an
13768         ADDR_EXPR.
13769         (collect_points_to_info_r): Only call add_pointed_to_var if
13770         the value is an ADDR_EXPR.
13771
13772 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
13773
13774         * tree-ssa-alias.c (create_alias_map_for): Do not get the
13775         alias set of the inner type of ARRAY_TYPEs.
13776
13777 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13778
13779         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
13780         setting a non-register to UNDEFINED right before the call to
13781         set_lattice_value.
13782
13783 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13784
13785         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
13786
13787 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13788
13789         * tree-ssa.c (verify_flow_sensitive_alias_info): When
13790         comparing points-to sets of different pointers, make sure the
13791         second pointer is actually referenced in the code.
13792
13793 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
13794
13795         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
13796         (got_symbolic_operand): Remove unreachable code.
13797         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
13798         setjmp_operand; add entry for tls_symbolic_operand.
13799         * config/ia64/ia64-protos.h: Remove all prototypes of
13800         predicate functions.
13801
13802 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
13803
13804         * c-common.h (lang_post_pch_load): New variable.
13805         * c-pch.c (lang_post_pch_load): Define it.
13806         (c_common_read_pch): Use it.
13807         * cgraphunit.c (record_call_1): Give the front end a chance to
13808         record additional needed entities when a variable is marked as
13809         needed.
13810         * tlink.c (recompile_files): Robustify.
13811         (scan_linker_output): If a symbol is assigned to a file,
13812         but after recompilation is not present there, issue an error
13813         message.
13814
13815 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13816
13817         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
13818         Take orig_loop argument and pass it to set_level.
13819         (schedule_sm): Pass the correct orig_loop to force_move_till.
13820
13821 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13822
13823         * cfgloop.c (update_latch_info): Update dominator of the new block.
13824         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
13825         info.
13826         * dominance.c (verify_dominators): Check that the dominance tree is
13827         connected.
13828         (recount_dominator): Ignore unreachable blocks.
13829         (iterate_fix_dominators): Cleanup old dominance information before
13830         recomputing it.
13831
13832 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
13833
13834         * tree-ssa-operands.c (get_expr_operands): Revert changes
13835         to ADDR_EXPR processing introduced by:
13836             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13837             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
13838
13839 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
13840
13841         * doc/implement-c.texi: Add C90 subclause references.  Point to
13842         preprocessor documentation instead of duplicating it.  Add points
13843         only present in C90.  Fill in documentation for all points.
13844
13845 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13846
13847         * pa.c (output_movb): Correct typo.
13848
13849 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
13850
13851         * ra.h (single_reg_in_regclass): Declare.
13852         * ra.c (single_reg_in_regclass): Define.
13853         (first_hard_reg): New.
13854         (init_ra): Initialize single_reg_in_regclass.
13855         * ra-colorize.c (ok_class): New.
13856         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
13857
13858 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
13859
13860         * gcov-io.h: Allow zero tag as EOF indicator.
13861         (gcov_is_eof): Remove.
13862         (gcov_truncate): Remove.
13863         * gcov-io.c (gcov_seek): Always SEEK_SET.
13864         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
13865         EOF tag.
13866         * coverage.c (read_counts_file): Don't use gcov_is_eof.
13867         * gcov-dump.c (dump_file): Likewise.
13868         * gcov.c (read_graph_file, read_count_file): Likewise.
13869
13870         * c-decl.c (complete_array_type): Don't gratuitously copy
13871         maxindex.  Check it always has a type.
13872
13873 2004-07-29  Steven Bosscher  <stevenb@suse.de>
13874
13875         * rtl.c (currently_expanding_to_rtl): New.
13876         * rtl.h (currently_expanding_to_rtl): Export it.
13877         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
13878
13879         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
13880         inliner hack.
13881         * config/sh/sh.c: Replace rtx_equal_function_value_matters
13882         with currently_expanding_to_rtl.
13883         * config/sh/sh.md: Likewise.
13884         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
13885
13886 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13887
13888         Introduce sh2a support.
13889         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
13890         * config.gcc: Build multilibs for sh2a and sh2a-single by
13891         default.
13892         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
13893         default.  Split their tests out of the corresponding SH4
13894         multilibs.
13895         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
13896         multilibs for SH2a.
13897         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13898         * config.gcc: Handle sh2a multilibs and cpu selection.
13899         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
13900         * config/sh/t-mlib-sh2a: New.
13901         * config/sh/t-mlib-sh2a-nofpu: New.
13902         * config/sh/t-mlib-sh2a-single: New.
13903         * config/sh/t-mlib-sh2a-single-only: New.
13904         2004-07-09  Nick Clifton  <nickc@redhat.com>
13905         Issue 43400
13906         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
13907         -ml and -m2a are used together.
13908         2004-03-23  DJ Delorie  <dj@redhat.com>
13909         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
13910         when we have a double-sized FPU.
13911         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13912         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
13913         is set.
13914         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
13915         -msh2a-single and -msh2a-single-only
13916         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
13917         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
13918         is set.
13919         2004-02-20  DJ Delorie  <dj@delorie.com>
13920         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
13921         2004-02-20  Fred Fish <fnf@redhat.com>,
13922         Corinna Vinschen <vinschen@redhat.com>
13923         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
13924         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
13925         2004-02-18  DJ Delorie  <dj@redhat.com>
13926         * config/sh/sh.c (broken_move): Add support for movi20.
13927         * config/sh/sh.h: Likewise.
13928         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
13929         * config/sh/sh.md (udivsi3_sh2a): New.
13930         (udivsi3): Call it.
13931         (divsi3_sh2a): New.
13932         (divsi3): Call it.
13933         (mul_r): New.
13934         (ashlsi3_sh2a): New.
13935         (ashrsi3_sh2a): New.
13936         (lshrsi3_sh2a): New.
13937         (movsi_i): Disable for sh2a.
13938         (movsi_ie): Add movi20.
13939         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
13940         sh2a, for -m2a-nofpu mode.
13941         2004-02-13  DJ Delorie  <dj@redhat.com>
13942         * config/sh/lib1funcs.asm: Handle double vs single better.
13943         * config/sh/sh.h: Likewise.
13944         2004-02-09  DJ Delorie  <dj@redhat.com>
13945         * config/sh/crt1.asm: Add support for sh2a.
13946         * config/sh/elf.h: Likewise.
13947         * config/sh/lib1funcs.asm: Likewise.
13948         * config/sh/sh.c: Likewise.
13949         * config/sh/sh.md: Likewise.
13950         * config/sh/sh.h: Likewise.
13951         * config/sh/t-sh: Likewise.
13952
13953 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13954
13955         * config/frv/frv.md (movqi_internal, movhi_internal,
13956         movsi_internal): Add backup alternatives for memory inputs.
13957
13958 2004-07-28  Matt Austern  <austern@apple.com>
13959
13960         * config/darwin.c (darwin_one_byte_bool): New global variable.
13961         * config/darwin.h (darwin_one_byte_bool): Declare.
13962         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
13963         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
13964         value of darwin_one_byte_bool.
13965         * doc/invoke.texi: Document -mone-byte-bool flag.
13966
13967 2004-07-28  Eric Christopher  <echristo@redhat.com>
13968
13969         * c-common.c (c_common_unsafe_for_reeval): Delete.
13970         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
13971         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
13972         * calls.c (fix_unsafe_tree): Delete.
13973         (expand_call): Delete code which used above.
13974         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
13975         * expr.c (expand_expr_real_1): Ditto.
13976         * fold-const.c (non_lvalue): Ditto.
13977         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13978         (lhd_unsafe_for_reeval): Ditto.
13979         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
13980         * langhooks.h (unsafe_for_reeval): Ditto.
13981         (unsave_expr_now): Adjust comment.
13982         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
13983         (estimate_num_insns_1): Ditto.
13984         * tree-pretty-print.c (dump_generic_node): Ditto.
13985         * tree.c (expr_align): Ditto.
13986         (unsave_expr): Delete.
13987         (unsafe_for_reeval): Ditto.
13988         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
13989         * tree.def (UNSAVE_EXPR): Delete.
13990         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
13991
13992 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
13993
13994         * tree.h (enum tls_model): Move ...
13995         * coretypes.h: ... here.
13996
13997 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
13998
13999         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
14000
14001 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
14002
14003         * cse.c (validate_canon_reg): New function, split out from...
14004         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
14005
14006 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14007
14008         * tree-ssa-alias.c (maybe_create_global_var): Don't just
14009         return if .GLOBAL_VAR has been created.
14010
14011 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14012
14013         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
14014         every variable that may have aliases, not just tags.
14015
14016 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
14017
14018         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
14019         move_from_CR_eq_bit.
14020         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
14021
14022
14023         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
14024         e500_flip_eq_bit.
14025
14026         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
14027         output_e500_flip_eq_bit.
14028
14029         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
14030         output_e500_flip_eq_bit.
14031         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
14032         output_e500_flip_eq_bit.
14033         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
14034         (print_operand): case D.  Get to EQ bit.
14035
14036 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
14037
14038         * gcov.c (function_summary): Add missing \n.
14039
14040 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
14041
14042         Introduce sh4a support.
14043         * config.gcc: Handle sh4a multilibs and cpu selection.
14044         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
14045         * config/sh/t-mlib-sh4a: New.
14046         * config/sh/t-mlib-sh4al: New.
14047         * config/sh/t-mlib-sh4a-nofpu: New.
14048         * config/sh/t-mlib-sh4a-single: New.
14049         * config/sh/t-mlib-sh4a-single-only: New.
14050         2004-02-20  DJ Delorie  <dj@redhat.com>
14051         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
14052         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
14053         2003-08-22  Eric Christopher  <echristo@redhat.com>
14054         * config/sh/sh4a.md: Update for chip errata.
14055         2003-08-07  Eric Christopher  <echristo@redhat.com>
14056         * config/sh/sh4a.md: New file. sh4a processor description.
14057         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
14058         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
14059         of -m4a-nofpu.
14060         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
14061         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
14062         * doc/invoke.texi (SH Options): Document -m4al.
14063         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
14064         * config/sh/sh.c (expand_block_move): Remove commented-out code
14065         checked in by mistake.
14066         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
14067         single elements from SFmode vectors.
14068         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
14069         register.
14070         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
14071         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
14072         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
14073         sh_fsca_int2sf): Remove variable declarations.
14074         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
14075         sh_fsca_int2sf): New functions.
14076         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
14077         sh_fsca_int2sf_rtx): New static variables.
14078         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
14079         sh_fsca_int2sf): Declare.
14080         * config/sh/sh.md: Adjust.
14081         * doc/invoke.texi (SH Options): Document new options.
14082         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
14083         compatibility from SH4 code.
14084         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
14085         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
14086         early.
14087         (memory_movsrc_operand): Renamed to...
14088         (unaligned_load_operand): ... this.  Simplified.
14089         * config/sh/sh.h (PREDICATE_CODES): Adjust.
14090         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
14091         input operand to SImode, and adjust the others.  Introduce
14092         post-increment by peephole.
14093         * config/sh/sh.c (expand_block_move): Give the target address the
14094         same mode as the temp reg.
14095         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
14096         copying.
14097         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
14098         Introduce support for SH4a.
14099         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
14100         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
14101         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
14102         sh_fsca_int2sf): New.
14103         (sh_init_builtins): Initialize them.
14104         (print_operand): Support `d'.
14105         (expand_block_move): Use movua if src is misaligned.
14106         (memory_movsrc_operand): New.
14107         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
14108         and one of the SH4 macros.
14109         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
14110         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
14111         SELECT_SH4A_SINGLE): New.
14112         (TARGET_NONE): Add SH4A_BIT.
14113         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
14114         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
14115         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
14116         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
14117         (enum processor_type): Added PROCESSOR_SH4A.
14118         (PREDICATE_CODES): Add memory_movsrc_operand.
14119         * config/sh/sh.md: Removed unused variables.
14120         (attr cpu): Add sh4a.
14121         (attr type): Add movua, fsrra and fsca.
14122         (prefetch): New, for SH4.
14123         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
14124         (toggle_sz): Set type to fp.
14125         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
14126         (movua, extv, extzv): New.
14127         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
14128         and 4a-single-only.
14129
14130 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14131
14132         * tree-optimize.c (init_tree_optimization_passes): Schedule
14133         pass_may_alias right after the program is renamed into SSA.
14134         * tree-pass.h (PROP_alias): Define.
14135         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
14136         * tree-sra.c (pass_sra): Likewise.
14137         * tree-ssa-ccp.c (pass_ccp): Likewise.
14138         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
14139         * tree-ssa-dce.c (pass_dce): Likewise.
14140         * tree-ssa-dom.c (pass_dominator): Likewise.
14141         * tree-ssa-dse.c (pass_dse): Likewise.
14142         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
14143         * tree-ssa-loop-ch.c (pass_ch): Likewise.
14144         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
14145         * tree-ssa-pre.c (pass_pre): Likewise.
14146         * tree-tailcall.c (pass_tail_recursion): Likewise.
14147         * tree-ssa.c (pass_redundant_phi): Likewise.
14148         * tree-ssa-alias.c (aliases_computed_p): Remove.
14149         Update all users.
14150         (init_alias_info): Do not mark all type tags for renaming
14151         unconditionally.
14152         Clear may_aliases from every symbol.
14153         (setup_pointers_and_addressables): If a pointer has not been
14154         dereferenced and it had a type tag, clear it and mark the old
14155         tag for renaming.
14156
14157 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
14158
14159         PR tree-optimization/16705
14160         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
14161         .GLOBAL_VAR.
14162
14163 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14164
14165         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
14166         check.
14167
14168         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
14169         don't make another one.
14170
14171         PR optimization/15077
14172         * function.h (struct function): Add field saved_static_chain_decl.
14173         Fix comment for static_chain_decl.
14174         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
14175         * tree-inline.h (save_body): Add new arg.
14176         * tree-optimize.c (tree_rest_of_compilation): Handle saving
14177         static_chain_decl.
14178
14179 2004-07-27  Richard Henderson  <rth@redhat.com>
14180
14181         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
14182         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
14183         is_gimple_addressable.
14184         * tree-gimple.c (is_gimple_addressable): Rename from
14185         is_gimple_addr_expr_arg; accept INDIRECT_REF.
14186         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
14187         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
14188         rename to is_gimple_addressable.
14189
14190 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
14191
14192         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
14193
14194 2004-07-27  Richard Henderson  <rth@redhat.com>
14195
14196         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
14197         before rounding.
14198
14199 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
14200
14201         * libgcc2.c: Change all conditionals testing
14202         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
14203         * libgcc2.h: Likewise.
14204         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
14205         TYPE_PRECISION of float80_type to 80.
14206         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
14207         of fpreg_type and float80_type to 80.
14208         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
14209         * config/m68k/netbsd-elf.h:
14210         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
14211         to evaluate to 80 whenever they would formerly have evaluated to 96.
14212         * config/i386/sco5.h: Remove unnecessary redefinition of
14213         LONG_DOUBLE_TYPE_SIZE.
14214         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
14215         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
14216         XFmode, with a bitsize of 80.  Update commentary.
14217         * config/ia64/ia64-modes.def: Likewise.
14218         * config/m68k/m68k-modes.def: Likewise.
14219
14220 2004-07-27  Steven Bosscher  <stevenb@suse.de>
14221
14222         * cfgexpand.c (tree_expand_cfg): Fix comment.
14223
14224         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
14225         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
14226         Remove.
14227         (prepare_function_start): Don't set rtx_equal_function_value_matters.
14228         * integrate.c (copy_rtx_and_substitute): Don't test for it.
14229         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
14230         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
14231         here again.  Update leading comment.
14232         * rtl.c (rtx_equal_function_value_matters): Remove.
14233         (rtx_equal_p): Don't test for it.
14234         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
14235         Likewise.
14236
14237         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
14238         * rtl.c (note_insn_name): Likewise.
14239         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
14240         * final.c (final_scan_insn): Likewise.
14241
14242         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
14243         * passes.c (rest_of_handle_eh): Do it here.
14244
14245         * stmt.c (struct nesting): Remove struct nesting block member.
14246         (struct stmt_status): Remove x_block_start_count field.
14247         (current_block_start_count): Remove.
14248
14249 2004-07-27  Brian Booth  <bbooth@redhat.com>
14250
14251         * tree-optimize.c (register_one_dump_file): Update condition that uses
14252         static_pass_number.
14253         (dup_pass_1): Replace with...
14254         (next_pass_1): This.
14255         (NEXT_PASS): Call next_pass_1.
14256         (DUP_PASS): Remove.
14257         (init_tree_optimization_passes): Remove uses of DUP_PASS.
14258         (execute_one_pass): Update condition that uses
14259         static_pass_number.
14260         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
14261         integer.
14262
14263 2004-07-27  Nick Clifton  <nickc@redhat.com>
14264
14265         * config/m32r/m32r.c: Include integrate.h in order to get the
14266         prototype for get_hard_reg_initial_val().
14267
14268         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
14269         and tidy up indentation.
14270         (final_presence_set): Use absence_set instead, so that if there is
14271         nothing in the "o" pipe the "s" pipe can be scheduled.
14272
14273 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
14274
14275         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
14276         don't have PT_VARS nor PT_MALLOC set.
14277         Clear name tag from pointers that have not been dereferenced.
14278         (set_pt_anything, set_pt_malloc): Forward declare.
14279         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
14280         not type compatibility when determining if a pointer can be
14281         copy propagated.
14282
14283 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
14284
14285         * expr.h (canonicalize_condition, get_condition): Add an int argument.
14286         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
14287         it to check whether the condition is still valid at the jump insn.
14288         * ifcvt.c (noce_get_condition): Likewise.
14289         (noce_get_alt_condition): Update call to canonicalize_condition.
14290         * loop-iv.c (simplify_using_initial_values): Update call to
14291         get_condition.  Remove FIXME.
14292         (check_simple_exit): Update call to get_condition.
14293         * loop-unswitch.c (may_unswitch_on): Likewise.
14294         * loop.c (check_dbra_loop): Likewise.
14295         (canonicalize_condition, get_condition): Add an argument to say whether
14296         the condition must still be valid at INSN.
14297         (get_condition_for_loop): Update call to get_condition.  Require that
14298         the condition be valid at INSN.
14299         * predict.c (estimate_probability): Update call to get_condition.
14300         Remove unused earliest parameter.
14301         (expected_value_to_br_prob): Update call to canonicalize_condition.
14302
14303 2004-07-26  Eric Christopher  <echristo@redhat.com>
14304
14305         * tree-dfa.c (add_referenced_var): Register initializers of global
14306         variables.
14307
14308 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
14309
14310         * config/i386/i386.c (function_arg): Always treat 8-
14311         and 16-byte wide vectors the same, even if MMX/SSE
14312         are disabled.
14313         (contains_128bit_aligned_vector_p): Add comment.
14314
14315 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
14316
14317         * ra.h (enum node_type): Rename to:
14318         (enum ra_node_type).
14319         * ra-colorize.c: Likewise.
14320
14321 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
14322
14323         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
14324         after simplifying the jump.
14325
14326 2004-06-26  Richard Henderson  <rth@redhat.com>
14327
14328         * calls.c (combine_pending_stack_adjustment_and_call): Make
14329         preferred_unit_stack_boundary argument unsigned.  Make
14330         unadjusted_alignment unsigned.
14331         (expand_call): Make preferred_stack_boundary and
14332         preferred_unit_stack_boundary variables unsigned.
14333         * function.c (assign_stack_local_1): Make alignment unsigned.
14334         * function.h (struct function): Make stack_alignment_needed,
14335         preferred_stack_boundary unsigned.
14336         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
14337         (ix86_compute_frame_layout): Make stack_alignment_needed,
14338         preferred_alignment variables unsigned.
14339         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
14340
14341 2004-07-26  Tom Tromey  <tromey@redhat.com>
14342
14343         * tree.h: Fix typo in comment.
14344
14345 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
14346
14347         PR bootstrap/12804
14348         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
14349         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
14350         (ggc_free): Remove incorrect freeing.
14351         (sweep_pages): Advance PP for large pages.  Fix indentation.
14352
14353 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
14354
14355         PR rtl-optimization/16643
14356         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
14357         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
14358         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
14359         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
14360         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
14361         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14362         * rtl.h (tracer): Add a flags parameter.
14363         * tracer.c (tracer): Pass it to cfg_layout_initialise.
14364         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
14365         (rest_of_handle_reorder_blocks): Update calls to tracer and
14366         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
14367         (rest_of_handle_tracer): Pass 0 to tracer.
14368         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
14369
14370 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
14371
14372         PR target/16239
14373         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
14374         f->f.
14375
14376 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
14377
14378         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
14379         (BINFO_BASE_ACCESS): Adjust.
14380         (BINFO_BASE_ACCESS_APPEND): New.
14381         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
14382         * dbxout.c (dbxout_type): Adjust binfo access accessing.
14383         * dwarf2out.c (gen_member_die): Likewise.
14384         * tree-dump.c (deque_and_dump): Likewise.
14385
14386 2004-07-26  Falk Hueffner  <falk@debian.org>
14387
14388         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
14389         costs.
14390
14391 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14392
14393         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
14394         value off of the stack if TARGET_USE_FFREEP.
14395
14396 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14397
14398         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
14399         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
14400         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
14401         check on invocation of XRESIZEVEC ().
14402
14403 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14404
14405         * c-common.c (disable_builtin_function): Rename variable n to
14406         new_disabled_builtin.
14407         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
14408         Rename local variable old to old_decl.
14409         * gensupport.c (shift_output_template): Rename parameter old to src.
14410         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
14411         old_rtx and newx to new_rtx.
14412
14413 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
14414
14415         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
14416         of c-pragma.h.
14417         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
14418         enum cpp_ttype.
14419         * c-lex.c: Likewise.
14420
14421 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14422
14423         * fold-const.c (constant_boolean_node): Make extern.
14424         (make_range): Wrap long lines.
14425         (fold_cond_expr_with_comparison): Remove unnecessary call to
14426         pedantic_non_lvalue.  Add missing calls to fold_convert.
14427         (fold_truthop): Add missing calls to fold_convert.
14428         (fold): Likewise.
14429         * tree.h (constant_boolean_node): Add prototype here.
14430         * builtins.c (expand_builtin_strncmp): Add missing calls to
14431         fold_convert.
14432         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
14433         Call fold_convert and constant_boolean_node to correct types.
14434         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
14435         missing call to fold_convert to correct types.
14436
14437 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
14438             Brian Ryner  <bryner@brianryner.com>
14439
14440         PR c++/9283
14441         PR c++/15000
14442         * c-common.c (c_common_attribute_table): Allow
14443         handle_visibility_attribute to be called for types.
14444         (handle_visibility_attribute) When given a type, set the visibility
14445         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
14446         so that we can check later whether the attribute was present. Added
14447         warning if attribute applied to non class type.
14448         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
14449         decls and checking that they are consistent.
14450         * common.opt: Added -fvisibility.
14451         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
14452         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
14453         * flags.h, tree.h: Added assorted support defines for overall patch
14454         * opts.c: Added parsing support for -fvisibility.
14455         * tree.c (build_decl): Set visibility for all decls to be whatever
14456         is in force at that time.
14457         * varasm.c (default_binds_local_p_1): Reworked logic determining
14458         when to make a symbol locally bound.
14459         * doc/invoke.texi: Added documentation for -fvisibility and
14460         -fvisibility-inlines-hidden.
14461
14462 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14463
14464         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
14465         * c-common.c: Add missing casts from void * to other types.
14466         * c-decl.c: Likewise.
14467         * c-format.c: Likewise.
14468         * c-lex.c: Likewise.
14469         * c-pragma.c: Likewise.
14470         * c-typeck.c: Likewise.
14471         * defaults.h: Likewise.
14472         * genconstants.c: Likewise.
14473         * gengtype-lex.l: Likewise.
14474         * genmodes.c: Likewise.
14475         * read-rtl.c: Likewise.
14476         * rtl.c: Likewise.
14477
14478 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14479
14480         * bitmap.c: Use type-safe memory allocation macros from libiberty.
14481         * c-common.c: Likewise.
14482         * c-decl.c: Likewise.
14483         * c-lang.c: Likewise.
14484         * c-lex.c: Likewise.
14485         * c-opts.c: Likewise.
14486         * c-parse.in: Likewise.
14487         * c-typeck.c: Likewise.
14488         * genconditions.c: Likewise.
14489         * gengtype-lex.l: Likewise.
14490         * gengtype-yacc.y: Likewise.
14491         * gengtype.c: Likewise.
14492         * genmodes.c: Likewise.
14493         * gensupport.c: Likewise.
14494         * read-rtl.c: Likewise.
14495         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
14496         htab_find_slot().
14497
14498 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14499
14500         * c-decl.c (groktypename, groktypename_in_param_context): Rename
14501         variable typename to type_name.
14502         * c-lex.c (interpret_float): Likewise.
14503
14504 2004-07-25  Roger Sayle  <roger@eyesopen.com>
14505
14506         * convert.c (convert_to_real, convert_to_integer,
14507         convert_to_complex): Replace calls to build with calls to buildN.
14508         * coverage.c (tree_coverage_counter_ref): Likewise.
14509         * dojump.c (do_jump): Likewise.
14510         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
14511         * emit-rtl.c (component_ref_for_mem_expr,
14512         set_mem_attributes_minus_bitpos): Likewise.
14513         * explow.c (update_nonlocal_goto_save_area): Likewise.
14514         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
14515         expand_mult_add): Likewise.
14516         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
14517         store_constructor, get_inner_reference, expand_expr_real_1,
14518         try_casesi, try_tablejump): Likewise.
14519         * function.c (expand_function_start): Likewise.
14520         * stmt.c (emit_case_bit_tests, expand_end_case_type,
14521         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
14522         * stor-layout.c (place_union_field, layout_type): Likewise.
14523         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
14524         * varasm.c (copy_constant): Likewise.
14525
14526 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14527
14528         * c-common.c: Rename all identifiers named `new'.
14529         * c-decl.c: Likewise.
14530         * gensupport.c: Likewise.
14531         * simplify-rtx.c: Likewise.
14532         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
14533         with XNEW().
14534         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
14535         with XNEWVEC().
14536
14537 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14538
14539         PR c/15360
14540         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
14541         declarations until after calling pushdecl.
14542         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
14543         "extern" and not on whether the declaration is initialized.
14544
14545 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14546
14547         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
14548         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
14549         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
14550         "cpplib.h", "c-pragma.h", "c-common.h".
14551         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
14552         (solaris_register_pragmas): New functions.
14553         * config/sol2-protos.h: New file.
14554         * config/sol2.c: New file.
14555         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
14556         (REGISTER_TARGET_PRAGMAS): New macros.
14557         (solaris_pending_aligns, solaris_pending_inits)
14558         (solaris_pending_finis): New variables.
14559         * config/t-sol2 (sol2-c.o): Update dependencies.
14560         (sol2.o): New rule.
14561         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
14562         SUBTARGET_INSERT_ATTRIBUTES.
14563         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
14564         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14565         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14566         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14567         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
14568         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
14569         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
14570         * config/sparc/sparc.c (sparc_attribute_table): New.
14571         (TARGET_INSERT_ATTRIBUTES): Define in terms of
14572         SUBTARGET_INSERT_ATTRIBUTES.
14573         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
14574         is defined.
14575         * doc/extend.texi (Solaris Pragmas): New section.
14576
14577 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14578
14579         * c-common.c: Rename all identifiers named `class' to `cl'.
14580         * c-common.h: Likewise.
14581         * c-parse.in: Likewise.
14582         * c-typeck.c: Likewise.
14583         * genmodes.c: Likewise.
14584         * real.c: Likewise.
14585         * real.h: Likewise.
14586         * recog.c: Likewise.
14587         * recog.h: Likewise.
14588         * regrename.c: Likewise.
14589         * tree.h: Likewise.
14590         * c-common.c (builtin_function_2): Change type of 5th parameter from
14591         int to enum built_in_function. Change type of 8th parameter from int
14592         to bool.
14593         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
14594         with GGC_CNEW().
14595         * c-typeck.c (convert_arguments): Change type of formal_prec from
14596         int to unsigned int.
14597         * genmodes.c (blank_mode): Make a few negative constants unsigned.
14598         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
14599         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
14600         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
14601         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
14602         iterator to for_all_modes () instead of an enum because enums can't
14603         be incremented in C++.
14604
14605
14606 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
14607
14608         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
14609         hard registers.
14610
14611 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14612
14613         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
14614         Handle ARRAY_RANGE_REF like ARRAY_REF.
14615
14616 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
14617
14618         * c-typeck.c (digest_init): Don't allow arrays of signed or
14619         unsigned variants of wchar_t to be initialized by wide string
14620         constants.  Do allow arrays of enumerated types compatible with
14621         wchar_t to be initialized by wide string constants.  Refine tests
14622         distinguishing wide and narrow strings and arrays.  Give specific
14623         error for arrays of other integer types initialized by string
14624         constants.
14625         (output_init_element, process_init_element): Check for
14626         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
14627         initializing with string constants.
14628
14629 2004-07-25  Richard Henderson  <rth@redhat.com>
14630
14631         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
14632         on the RESULT_DECL.
14633         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
14634         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
14635         DECL_IGNORED_P to new decl.
14636
14637 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
14638
14639         * config/ia64/ia64.c (general_xfmode_operand)
14640         (destination_xfmode_operand): Delete.
14641         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
14642         * config/ia64/ia64.md (*movxf_internal): Use general_operand
14643         and destination_operand.
14644
14645 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14646
14647         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
14648         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
14649
14650 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
14651             Zack Weinberg  <zack@codesourcery.com
14652
14653         PR 16684
14654         * c-decl.c (diagnose_mismatched_decls): Don't issue a
14655         redundant-declaration warning the first time a builtin is
14656         declared explicitly.
14657
14658 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14659
14660         * tree.h (staticp): Change return type to bool.
14661
14662 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14663
14664         * c-common.c (c_staticp): Last episode of the staticp saga.
14665
14666 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14667
14668         * c-common.h (c_staticp): Change return type from int to bool.
14669         * tree.c (staticp): Likewise.
14670         * langhooks.h (staticp): Likewise.
14671
14672 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14673
14674         * langhooks-def.h (lhd_staticp): Change return type from int to
14675         bool in prototype to match definition.
14676
14677 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14678
14679         * system.h (bool, true, false): Don't redefine as preprocessor macros
14680         in C++.
14681
14682 2004-07-24  Roger Sayle  <roger@eyesopen.com>
14683
14684         * expmed.c (init_expmed): A signed modulus by a power of two is
14685         considered cheap if its less than or equal to four instructions.
14686
14687 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14688
14689         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
14690         GGC_CNEWVAR): New macros.
14691
14692 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
14693
14694         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
14695         lists.
14696         * c-decl.c: Likewise.
14697         * c-format.c: Likewise.
14698         * c-lex.c: Likewise.
14699         * c-opts.c: Likewise.
14700         * c-pragma.c: Likewise.
14701         * c-typeck.c: Likewise.
14702         * gencheck.c: Likewise.
14703         * genconditions.c: Likewise.
14704         * genconfig.c: Likewise.
14705         * genflags.c: Likewise.
14706         * gengtype.c: Likewise.
14707         * gensupport.c: Likewise.
14708         * ggc-none.c: Likewise.
14709         * langhooks.c: Likewise.
14710         * statistics.h: Likewise.
14711         * stub-objc.c: Likewise.
14712         * java/decl.c: Likewise.
14713
14714 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
14715
14716         * config/m68k/m68k.c (output_scc_di): Fix coding style.
14717         (symbolic_operand): Fix prototype.
14718         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
14719         * config/m68k/m68k.md: Add constants for registers a0 and sp and
14720         use them, change from the "{...}" syntax to the simpler {...}
14721         syntax.
14722         (*cfv4_extendqisi2): Fix destination predicate.
14723         * config/m68k/m68k-protos.h: Remove various declarations also
14724         generated via PREDICATE_CODES.
14725
14726 2004-07-23  Mike Stump  <mrs@apple.com>
14727
14728         * c-typeck.c (convert_for_assignment): Tightened up pointer
14729         converstions that differ in signedness.
14730
14731 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14732
14733         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
14734
14735 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14736
14737         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
14738         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
14739
14740         * gimplify.c (gimplify_compound_lval): Check for no handled
14741         operations, rather than checking for explicit list of nodes.
14742         (is_gimple_addr_expr_arg_or_indirect): New function.
14743         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
14744         redundant setting of TREE_INVARIANT.
14745         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
14746         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
14747
14748 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
14749
14750         PR tree-optimization/16688
14751         PR tree-optimization/16689
14752         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
14753         unnecessary initialization of 'tag'.
14754         (get_tmt_for): Check that the new type tag has the same alias
14755         set as the pointed-to type.
14756         (group_aliases): Only regular variables need to be removed
14757         from the alias set of a name tag.
14758         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
14759         propagation if the two types are not compatible.
14760         (merge_alias_info): Rename from replace_ssa_names_ann.
14761         Add more checking.
14762         (replace_exp_1): If both arguments are SSA_NAMEs, check that
14763         the propagation can be done.
14764         Only call merge_alias_info on pointers.
14765         (propagate_value): Likewise.
14766         * tree-ssa-copyrename.c: Include langhooks.h.
14767         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
14768         to do the merging.
14769         Do not coalesce variables with incompatible types.
14770         (rename_ssa_copies): Call replace_ssa_name_symbol.
14771         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
14772         the same type as the underlying _DECL.
14773         * tree-ssanames.c (replace_ssa_name_symbol): New function.
14774         * tree.h (replace_ssa_name_symbol): Declare.
14775
14776 2004-07-23  Richard Henderson  <rth@redhat.com>
14777
14778         PR c++/16277
14779         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
14780         unshare it properly.
14781         (gimplify_modify_expr_rhs): Push assignment from a conditional into
14782         the conditional for all non-register types.
14783
14784 2004-07-23  Richard Henderson  <rth@redhat.com>
14785
14786         * expr.c (expand_expr_real_1): Don't handle non-local variables.
14787         * expr.h (fix_lexical_addr): Remove.
14788         * function.c (NEED_SEPARATE_AP): Remove.
14789         (fix_lexical_addr): Remove.
14790         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
14791         not null decl_function_context.
14792         (create_alias_vars): Likewise.
14793         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
14794         (simple_goto_p): Likewise.
14795         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
14796         * tree-ssa-ccp.c (get_default_value): Likewise.
14797         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
14798         * tree.c (needs_to_live_in_memory): Likewise.
14799         * tree-flow-inline.h (may_be_aliased): Move...
14800         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
14801         when TREE_STATIC variables may be addressable.
14802
14803 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
14804
14805         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
14806
14807 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
14808
14809         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
14810         bitmap contents if GENERATOR_FILE is defined.
14811         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
14812         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
14813
14814 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
14815
14816         * c-decl.c (start_function): Form composite type of function types
14817         rather than copying type from previous prototype declaration.
14818
14819 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
14820
14821         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
14822         the const qualifier for the second argument in the C++ functions.
14823
14824         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
14825         specific pointer types.
14826
14827         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
14828         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
14829         for vector bool and/or vector pixel, add C++ and C missing support.
14830         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
14831         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
14832         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
14833         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
14834         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
14835         missing C++ and C support for vector bool and/or vector pixel.
14836         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
14837         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
14838         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
14839         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
14840         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
14841         C++ and C types used for vector bool and/or vector pixel.
14842         (vec_st, vec_stl): Add C++ support for vector pixel.
14843         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
14844         (vec_all_ne): Add C++ support for vector pixel.
14845
14846         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
14847         (vec_vmulesb): Add missing C++ function.
14848         (vec_perm): Fix type of third argument in C++ function.
14849         (vec_vsum4shs): Fix C++ function name.
14850         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
14851         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
14852         argument passed to the error handler in C macro.
14853         (vec_nmsub): Remove extra parens around argument names in C macro.
14854         (vec_packpx): Add missing parens in C macro.
14855
14856 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14857
14858         * machmode.def: Remove vector modes.
14859         * config/alpha/alpha-modes.def: Add supported vector modes.
14860         * config/arm/arm-modes.def: Likewise.
14861         * config/frv/frv-modes.def: Likewise.
14862         * config/i386/i386-modes.def: Likewise.
14863         * config/rs6000/rs6000-modes.def: Likewise.
14864         * config/sh/sh-modes.def: Likewise.
14865
14866 2004-07-23  Matthias Klose  <doko@debian.org>
14867
14868         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
14869         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
14870         * config.h: Regenerate.
14871         * configure: Likewise.
14872
14873 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
14874
14875         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
14876         generated SYMBOL_REFs for labels.
14877         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
14878         Change prototype.
14879         (machopic_stub_name): Remove.
14880         (machopic_indirection_name): New function.
14881         (machopic_mcount_stub_name): Likewise.
14882         (machopic_classify_name): Remove.
14883         (machopic_function_base_sym): New function.
14884         (machpoic_classify_symbol): Likewise.
14885         (machopic_classify_ident): Remove.
14886         (machopic_define_ident): Likewise.
14887         (machopic_define_name): Likewise.
14888         (machopic_name_defined_p): Likewise.
14889         (machopic_ident_defined_p): Likewise.
14890         (darwin_strip_name_encoding): Likewise.
14891         (machopic_define_symbol): New function.
14892         * config/darwin.c (hashtab.h): Include.
14893         (machopic_defined_list): Remove.
14894         (machopic_classify_ident): Likewise.
14895         (machopic_classify_name): Likewise.
14896         (machopic_ident_defined_p): Likewise.
14897         (machopic_define_ident): Likewise.
14898         (machopic_define_name): Likewise.
14899         (machopic_symbol_defined_p): New function.
14900         (machopic_classify_symbol): Likewise.
14901         (machopic_data_defined_p): Use machopic_classify_symbol.
14902         (machopic_define_symbol): New function.
14903         (machopic_function_base_sym): New function.
14904         (machopic_non_lazy_pointers): Remove.
14905         (machopic_non_lazy_ptr_name): Likewise.
14906         (machopic_stubs): Likewise.
14907         (machopic_stub_name): Likewise.
14908         (NON_LAZY_POINTER_SUFFIX): New macro.
14909         (STUB_SUFFIX): Likewise.
14910         (machopic_indirection): New structure.
14911         (machopic_indirections): New variable.
14912         (machopic_indirection_hash): New function.
14913         (machopic_indirection_eq): Likewise.
14914         (machopic_indirection_name): Likewise.
14915         (machopic_mcount_stub_name): New function.
14916         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
14917         hash table.
14918         (machopic_indirect_data_reference): Rework to use new functions.
14919         (machopic_indirect_call_target): Likewise.
14920         (machopic_legitimize_pic_address): Likewise.
14921         (machopic_output_indirection): New function.
14922         (machopic_finish): Use it.
14923         (machopic_operand_p): Rework to use new functions.
14924         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
14925         (darwin_strip_name_encoding): Remove.
14926         (update_non_lazy_ptrs): Remove.
14927         (update_stubs): Likewise.
14928         (darwin_non_lazy_pcrel): Use new functions.
14929         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14930         (ASM_OUTPUT_LABELREF): Likewise.
14931         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14932         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
14933         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
14934         (TARGET_STRIP_NAME_ENCODING): Do not use
14935         darwin_strip_name_encoding.
14936         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
14937         darwin_strip_name_encoding.
14938         * config/i386/darwin.h (FUNCTION_PROFILER): Use
14939         machopic_mcount_stub_name.
14940         * config/i386/i386.c (x86_output_mi_thunk): Use
14941         machopic_indirection_name, not machopic_stub_name.
14942         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
14943         machopic_function_base_sym.
14944         (print_operand): Use machopic_classify_symbol.
14945         (rs6000_emit_prologue): Use machopic_function_base_sym.
14946         (output_profile_hook): Do not use machopic_stub_name.
14947         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
14948
14949 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14950
14951         PR c/7284
14952         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
14953         as multiplication.
14954
14955 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14956
14957         * doc/implement-c.texi: New file.
14958         * doc/extend.texi (C Implementation): Move to there.
14959         * doc/gcc.texi: Include implement-c.texi.
14960         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
14961
14962 2004-07-22  Jason Merrill  <jason@redhat.com>
14963
14964         * integrate.c (copy_decl_for_inlining): Remove invisible reference
14965         handling.
14966         * tree-inline.c (setup_one_parameter): Likewise.
14967
14968 2004-07-22  Brian Booth  <bbooth@redhat.com>
14969
14970         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
14971         (substitute_and_fold): Propigate into VUSE operands when possible.
14972         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
14973         (cp_lattice_meet): Handle merging of latticevalues when
14974         UNKNOWN_VAL is present.
14975         (visit_stmt): Visit assignments with V_MUST_DEFs.
14976         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
14977         (ccp_fold): Deal with RHS' that are constant and virtual.
14978         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
14979         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
14980         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
14981         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
14982         computing immediate uses.
14983         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
14984         transition.
14985         (replace_vuse_in): New function.
14986         (likely_value): Add check of vuse operands.
14987         (get_default_value): Set the default value of virtually defined
14988         variables to UKNOWN_VAL instead of VARYING.
14989
14990 2004-07-22  Richard Henderson  <rth@redhat.com>
14991
14992         * expr.c (emit_push_insn): Don't use set_mem_attributes.
14993
14994 2004-07-22  Richard Henderson  <rth@redhat.com>
14995
14996         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
14997         variables due to conditional compilation.
14998
14999 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
15000
15001         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
15002         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
15003         Release SSA names that have been re-renamed.
15004         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
15005         variable.
15006         * tree-ssa-alias.c (init_alias_info): If aliases have been
15007         computed before, clear existing alias information.
15008         (create_name_tags): Do no fixup PT_ANYTHING pointers.
15009         If the new name tag for a pointer is different than the one it
15010         had before, mark the old tag for renaming.
15011         (replace_may_alias): New function.
15012         (group_aliases): Call it.
15013         (setup_pointers_and_addressables): Always call get_tmt_for.
15014         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
15015         once.
15016         (set_pt_anything): New local function.
15017         (set_pt_malloc): New local function.
15018         (merge_pointed_to_info): Don't merge pointed-to variables from
15019         the original pointer if the destination is pointing to an
15020         unknown location.
15021         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
15022         (add_pointed_to_var): Do not add a variable to the points-to
15023         set if the pointer is already pointing to anywhere.
15024         (collect_points_to_info_r): If the defining statement is a PHI
15025         node, only merge pointed-to information if the argument has
15026         already been visited.
15027         (get_tmt_for): Only create a new tag if the pointer didn't
15028         have one already.
15029         (dump_alias_info): Emit more information.
15030         (dump_points_to_info_for): Likewise.
15031         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
15032         try to get the annotation of an SSA_NAME.
15033         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
15034         alias sets when checking is enabled.
15035         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
15036         (eliminate): Mark basic blocks that will need
15037         EH information cleaned up.
15038         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
15039         predecessor.
15040         Initialize need_eh_cleanup.
15041         (fini_pre): Call tree_purge_all_dead_eh_edges and
15042         cleanup_tree_cfg if needed.
15043         Free need_eh_cleanup.
15044         * tree-ssa.c (verify_ssa_name): New function.
15045         (verify_def): Call it.
15046         Re-arrange to avoid printing too many error messages.
15047         (verify_use): Likewise.
15048         (verify_phi_args): Likewise.
15049         (verify_flow_insensitive_alias_info): New function.
15050         (verify_flow_sensitive_alias_info): New function.
15051         (verify_alias_info): New function.
15052         (verify_ssa): Call verify_alias_info.
15053         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
15054         program.
15055         Re-arrange to avoid printing too many error messages.
15056         * tree-ssanames.c (make_ssa_name): Clear
15057         SSA_NAME_IN_FREE_LIST.
15058         (release_ssa_name): Never release a default definition.
15059         (release_defs): New function.
15060         * tree.h: Declare it.
15061         * tree-ssa-dce.c (remove_dead_stmt): Call it.
15062
15063 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
15064
15065         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
15066         If true, do a depth-first search.  Do a breadht-first search,
15067         otherwise.
15068         (walk_use_def_chains): Add new argument IS_DFS.
15069         Update all users.
15070         * tree-flow.h (walk_use_def_chains): Update prototype.
15071
15072 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
15073
15074         * config/cris/cris.md: Tweak formatting.
15075         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
15076         (mover2side, moverside, movemside, movei, op3, andu): Replace
15077         live define_peephole:s with define_peephole2 near-equivalents.
15078         Delete the rest.
15079         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
15080         word-size modes.
15081         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
15082         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
15083         "*mov_sidesi_mem" respectively.
15084
15085 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
15086
15087         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
15088         (gimplify_build1): Move from tree-complex.c do_unop.
15089         (gimplify_build2): Move from tree-complex.c do_binop.
15090         (gimplify_build3): New.
15091         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
15092         Adjust throughout to call the functions above.
15093         * tree-flow.h: Declare the functions above.
15094         * tree-nested.c (gimplify_val): Rename to...
15095         (tsi_gimplify_val): ... this.
15096
15097         * Makefile.in (tree_complex.o): Update dependencies.
15098         (stor-layout.o): Depend on regs.h.
15099         * c-common.c (handle_vector_size_attribute): Update for
15100         vector types without corresponding vector modes.
15101         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
15102         a corresponding vector mode is not available.
15103         * print-tree.c (print_node): Print nunits for vector types
15104         * regclass.c (have_regs_of_mode): New.
15105         (init_reg_sets_1): Initialize it and use it instead
15106         of allocatable_regs_of_mode.
15107         * regs.h (have_regs_of_mode): Declare it.
15108         * stor-layout.c (layout_type): Pick a mode for vector types.
15109         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
15110         build_replicated_const, do_unop, do_binop, do_plus_minus,
15111         do_negate, expand_vector_piecewise, expand_vector_parallel,
15112         expand_vector_addition, expand_vector_operations_1,
15113         expand_vector_operations, tree_lower_operations,
15114         pass_lower_vector_ssa, pass_pre_expand): New.
15115         (expand_complex_operations, pass_lower_complex): Remove.
15116         * tree-optimize.c (init_tree_optimization_passes): Adjust
15117         pass ordering for changes in tree-complex.c.
15118         * tree-pass.h: Declare new passes.
15119         * tree.c (finish_vector_type): Remove.
15120         (make_vector_type): New.
15121         (build_vector_type_for_mode, build_vector_type): Rewritten.
15122         * tree.def (VECTOR_TYPE): Document where the number of
15123         subparts is stored.
15124         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
15125         (make_vector): Remove declaration.
15126
15127 2004-07-21  Richard Henderson  <rth@redhat.com>
15128
15129         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
15130         TREE_THIS_VOLATILE, may_aliases, or optimization level.
15131         (remove_useless_vars): Dump debugging info.
15132         (expand_used_vars): Move ...
15133         * cfgexpand.c (expand_used_vars): ... here.  Make static.
15134         * tree-flow-inline.h (set_is_used): New.
15135         (set_default_def): Use get_var_ann.
15136         * tree-flow.h: Update decls.
15137         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
15138         (create_ssa_var_map): Use it.
15139         * tree-ssa.c (set_is_used): Remove.
15140
15141 2004-07-22  Ben Elliston  <bje@au.ibm.com>
15142
15143         * gdbinit.in: Set a breakpoint on internal_error.
15144
15145 2004-07-21  Richard Henderson  <rth@redhat.com>
15146
15147         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
15148         to create a new basic block.
15149
15150 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15151
15152         PR c/15052
15153         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
15154         return type on function definitions.  Move other warnings for
15155         qualified return type to -Wreturn-type.  Do not condition any such
15156         warnings on -pedantic.  Update comments.
15157         (start_function): Only copy function type from previous prototype
15158         declaration if return types are compatible.
15159         * c-typeck.c (function_types_compatible_p): Don't condition
15160         warning for incompatibility of volatile qualifiers on the return
15161         type on -pedantic.  Update comment.
15162         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
15163
15164 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15165
15166         * c-typeck.c (set_init_index): Require designator to be of integer
15167         type.
15168
15169 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
15170
15171         PR c/11250
15172         * c-parse.in (init): Change to exprtype.
15173         (primary): Set original_code for STRING to STRING_CST.
15174         Call maybe_warn_string_init for compound literals.
15175         (initdcl, notype_initdcl): Call maybe_warn_string_init.
15176         (initval): Update.
15177         * c-tree.h (maybe_warn_string_init): New.
15178         (pop_init_level, process_init_element): Use struct c_expr.
15179         (struct c_expr): Update comment.
15180         * c-typeck.c (maybe_warn_string_init): New function.
15181         (digest_init): Call it.  Additional parameter strict_string.  All
15182         callers changed.
15183         (output_init_element): Likewise.
15184         (struct constructor_stack): Use struct c_expr for
15185         replacement_value.
15186         (really_start_incremental_init, push_init_level): Update.
15187         (pop_init_level): Update.  Return struct c_expr.
15188         (process_init_level): Update.  Take struct c_expr argument.
15189
15190 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
15191
15192         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
15193         commit.
15194
15195 2004-07-21  Eric Christopher  <echristo@redhat.com>
15196
15197         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
15198         removal.
15199         * c-decl.c (pop_scope): Ditto.
15200         * calls.c (expand_call): Remove call to current_nesting_level,
15201         update comment accordingly. Remove calls to expand_start_target_temps
15202         and expand_end_target_temps.
15203         * cfgexpand.c (construct_init_block): Remove call to
15204         expand_start_bindings_and_block.
15205         (construct_exit_block): Remove call to expand_end_bindings.
15206         * expr.c (safe_from_p): Remove BIND_EXPR handling.
15207         (expand_expr_real_1): Ditto. Fix formatting.
15208         (expand_vars): Delete.
15209         * stmt.c (POPSTACK): Remove block_stack.
15210         (stmt_status): Remove x_block_stack.
15211         (block_stack): Delete.
15212         (expand_start_bindings_and_block): Ditto.
15213         (expand_start_target_temps): Ditto.
15214         (expand_end_target_temps): Ditto.
15215         (current_nesting_level): Ditto.
15216         (warn_about_unused_variables): Ditto.
15217         (expand_end_bindings): Ditto.
15218         * tree.h: Remove declarations for above.
15219
15220 2004-07-21  Steven Bosscher  <stevenb@suse.de>
15221
15222         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
15223         * rtl.c (note_insn_name): Likewise.
15224         * print-rtl.c (print_rtx): Don't print it.
15225         * cfgrtl.h (can_delete_note_p): Don't handle it.
15226         (rtl_delete_block): Likewise.
15227         * passes.c (rest_of_handle_guess_branch_prob): Remove.
15228         (rest_of_compilation): Don't call it.
15229         * predict.c (process_note_predictions, process_note_prediction,
15230         note_prediction_to_br_prob): Remove.
15231         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
15232         * stmt.c (return_prediction): Remove.
15233         (expand_value_return): Don't call it.  Don't add prediction
15234         notes for return statements.
15235
15236 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
15237
15238         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
15239         once.
15240
15241 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
15242
15243         * c-common.c (vector_types_convertible_p): Use vector types'
15244         TYPE_SIZE and TREE_TYPE instead of their mode.
15245         * convert.c (convert_to_integer): Likewise.
15246         (convert_to_vector): Likewise.
15247         * fold-const.c (fold_convert): Likewise.
15248         * varasm.c (output_constant): Likewise.
15249         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
15250         Allow a VECTOR_TYPE initializer to be made of several vectors.
15251         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
15252         of cleared and need_to_clear, and use fold_convert.
15253         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
15254         integer vectors.
15255
15256 2004-07-20  Richard Henderson  <rth@redhat.com>
15257
15258         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
15259         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
15260
15261 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
15262
15263         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
15264         enormous cost if not TARGET_HARD_MUL.
15265
15266 2004-07-20  Andrew Pinski  <apinski@apple.com>
15267
15268         PR target/16557
15269         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
15270         (ASM_SPEC): here.
15271
15272 2004-07-21  Paul brook  <paul@codesourcery.com>
15273
15274         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
15275
15276 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15277
15278         * fold-const.c (operand_equal_p): Temporarily support NULL args.
15279         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
15280         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
15281
15282 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
15283
15284         * rtl.h (plus_constant): Delete.
15285         (plus_constant_wide): Rename to plus_constant.
15286         (plus_constant_for_output_wide): Delete vestigial prototype.
15287         (GEN_INT): Remove unnecessary cast.
15288         * tree.h (build_int_2, size_int_type): Delete.
15289         (build_int_2_wide): Rename to build_int_2.
15290         (size_int_wide): Rename to size_int_kind.
15291         (size_int_type_wide): Rename to size_int_type.
15292         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
15293         Remove unnecessary cast.
15294         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
15295         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
15296         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
15297         (size_int_type_wide): Rename size_int_type.
15298         (int_const_binop): Use size_int_type.
15299         * c-lex.c (interpret_integer): Use build_int_2.
15300         * final.c (split_double): Remove unnecessary casts.
15301         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
15302
15303 2004-07-20  Richard Henderson  <rth@redhat.com>
15304
15305         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
15306         (gimplify_compound_lval): Use is_gimple_tmp_reg.
15307         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
15308         (is_gimple_tmp_reg): New.
15309         * tree-gimple.h (is_gimple_tmp_reg): Declare.
15310
15311 2004-07-20  Richard Henderson  <rth@redhat.com>
15312
15313         * tree-pretty-print.c (dump_generic_node): Dump
15314         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
15315
15316 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
15317
15318         * tree-mudflap.c (mf_set_options_fndecl): New tree.
15319         (mudflap_init): Set it.
15320         (mudflap_register_call): Remove __mf_init call.
15321         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
15322         to pass "-ignore-reads" option to libmudflap if needed.
15323
15324 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
15325
15326         PR c++/14607
15327         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
15328         (MAKE_DECL_ONE_ONLY): Undefine.
15329         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
15330         readonly_data, one_only_data_section, forget_section): New prototypes.
15331         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
15332         functions.
15333         (pa_select_section): Add one-only (COMDAT) support.
15334         * pa.h (struct machine_function): Define.
15335         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
15336         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
15337         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
15338         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
15339         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
15340         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
15341         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
15342         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
15343         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
15344         for EXTRA_SECTION_FUNCTIONS.
15345         * doc/install.texi: Update binutils requirements.
15346
15347 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
15348
15349         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
15350         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
15351         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
15352         size_t.
15353         (struct VEC): Use unsigned for num and alloc.
15354         * vec.c (struct vec_prefix): Likewise.
15355         (vec_o_reserve): Adjust.
15356
15357         * dbxout.c (dbxout_type): Fix printf format.
15358
15359         * tree.h (binfo_member): Remove.
15360         * tree.c (binfo_member): Remove.
15361
15362 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
15363
15364         * tree.h: Include vec.h
15365         (DEF_VEC_P(tree)): New type.
15366         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
15367         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
15368         (BINFO_LANG_SLOT): Remove.
15369         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
15370         (struct tree_binfo): Turn base_binfos into a trailing
15371         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
15372         (binfo_lang_slots): Remove.
15373         * tree.c (binfo_lang_slots): Remove.
15374         (make_tree_binfo_stat): Take a base binfo count, not a
15375         lang slot count.  Adjust.
15376         * Makefile.in (TREE_H): Add vec.h
15377         * alias.c (record_component_aliases): Adjust BINFO access.
15378         * dbxout.c (dbxout_type): Likewise.
15379         * dwarf2out.c (gen_member_die): Likewise.
15380         * sdbout.c (sdbout_one_type): Likewise.
15381         * tree-dump.c (deque_and_dump): Likewise.
15382         * config/i386/i386.c (classify_argument,
15383         contains_128bit_aligned_vector_p): Likewise.
15384         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
15385         * doc/c-tree.texi (Classes): Update BINFO documentation.
15386
15387 2004-07-20  Steven Bosscher  <stevenb@suse.de>
15388
15389         * c-common.h (check_case_value): Remove prototype.
15390         (c_add_case_label): Adjust prototype.
15391         * c-common.c (check_case_value): Make static.
15392         (check_case_bounds): New function.
15393         (c_add_case_label): Use it.  Take new argument orig_type.
15394         * c-typeck.c (struct c_switch): New orig_type field.
15395         (c_start_case): Set it.
15396         (do_case): Pass it to c_add_case_label.
15397         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
15398         cases from here.  Add the labels in reverse order.
15399         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
15400         (add_case_node): Return nothing, don't check for duplicate cases.
15401         Insert new case nodes in a list, not in an AVL tree.
15402         (expand_end_case_type): Don't turn a case tree into a case list.
15403         (case_tree2list): Remove.
15404         * tree.h (add_case_node): Adjust prototype.
15405
15406 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
15407
15408         * genattr.c (struct range, struct function_unit,
15409         write_units, extend_range, init_range): Remove them.
15410         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15411         Output "#define INSN_SCHEDULING" here.
15412         * genattrtab.c (struct range, struct function_unit_op,
15413         struct function_unit, struct dimension, enum operator,
15414         operate_exp, expand_units, simplify_knowing,
15415         encode_units_mask, simplify_by_exploding,
15416         find_and_mark_used_attributes, unmark_used_attributes,
15417         add_values_to_cover, increment_current_value,
15418         test_for_current_value, simplify_with_current_value,
15419         simplify_with_current_value_aux, gen_unit,
15420         write_unit_name, write_function_unit_info,
15421         write_complex_function, write_toplevel_expr,
15422         find_single_value, extend_range): Remove.
15423         (write_attr_get): Do not handle common_av->value
15424         being an FFS.
15425         (struct attr_desc): Remove func_units_p and blockage_p.
15426         (write_attr_valueq): Do not handle them.
15427         (find_attr): Do not clear them.
15428         (make_internal_attr): Do not initialize them.
15429         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
15430         * sched-vis.c (init_target_units, insn_print_units,
15431         init_block_visualization, print_block_visualization,
15432         visualize_scheduled_insns, visualize_no_unit,
15433         visualize_stall_cycles, visualize_alloc,
15434         visualize_free, target_units, get_visual_tbl_length,
15435         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
15436         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
15437         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
15438         * haifa-sched.c (blockage_range, clear_units,
15439         schedule_unit, actual_hazard, potential_hazard,
15440         insn_unit, unit_last_insn, unit_tick,
15441         actual_hazard_this_instance, potential_hazard,
15442         schedule_unit, max_insn_queue_index_value): Remove.
15443         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
15444         max_insn_queue_index.
15445         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
15446         * doc/md.texi (Processor pipeline description): Remove
15447         references to old pipeline descriptions.
15448         (Automaton pipeline description): Merge with the above.
15449         (Old pipeline description, Comparison of the two descriptions):
15450         Remove.
15451
15452         * bt-load.c (migrate_btr_def): Remove references to
15453         use_pipeline_interface.
15454         * haifa-sched.c (insn_cost, schedule_insn,
15455         schedule_block, advance_one_cycle, sched_init,
15456         queue_to_ready, sched_finish): Likewise.
15457         * modulo-sched.c (sms_schedule, advance_one_cycle,
15458         ps_has_conflicts): Likewise.
15459         * sched-rgn.c (init_ready): Likewise.
15460         (debug_dependencies): Likewise, and remove an "if (1)".
15461         * target.h (use_dfa_pipeline_interface): Remove.
15462         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15463         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15464         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15465         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15466         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15467         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15468         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15469         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15470         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15471         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15472         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15473         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15474         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15475         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15476         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15477         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15478         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15479         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15480         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
15481
15482 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15483
15484         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
15485
15486 2004-07-19  Jeff Law  <law@redhat.com>
15487
15488         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
15489         (get_eq_expr_value): Use it.  Simplify slightly.
15490
15491 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
15492
15493         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
15494         (umulsidi3_32bit_r4000): Likewise.
15495
15496 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
15497
15498         * vec.h: Propagate location information properly.
15499         (VEC_T_iterate): Add result pointer parameter.
15500         (VEC_T_space): New.
15501         (VEC_T_reserve): Use it.
15502
15503 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
15504
15505         * Makefile.in (c-format.o): Depend on c-format.h.
15506         * c-format.h: New file.
15507         (struct format_char_info): Add CHAIN member.
15508         * c-format.c: Move some types and constants to c-format.h.
15509         (format_type_error): Set to -1.
15510         (struct function_format_info): Use an int for format_type.
15511         (decode_format_type): Return an int.  Return format_type_error
15512         on error.
15513         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
15514         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
15515         (scan_char_table, time_char_table, monetary_char_table): Initialize
15516         CHAIN to NULL.
15517         (n_format_types): New variable.
15518         (check_format_info_main): Handle CHAIN in format_char_info.
15519         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
15520         TARGET_N_FORMAT_TYPES.
15521         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
15522         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
15523         * config/sol2-c.c: New file.
15524         * config/t-sol2: New file.
15525         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
15526         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
15527         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
15528
15529         * doc/extend.texi (Target Format Checks): New section.
15530         (Function Attributes): Mention it.
15531         * doc/invoke.texi: Mention target format checks.
15532         * doc/sourcebuild.texi: Mention target format checks.
15533         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
15534         TARGET_FORMAT_TYPES.
15535
15536 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
15537
15538         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
15539         added.
15540         * config/s390/s390.c (regclass_map initializer): Register 35 added to
15541         ADDR_REGS.
15542         (load_multiple_operation, store_multiple_operation): Removed
15543         pointless sanity check.
15544         (s390_decompose_address): Added check for return_address_pointer_rtx.
15545         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
15546         (s390_return_address_offset): New function.
15547         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
15548         (FRAME_REGNO_P): Added check for register 35.
15549         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
15550         REG_ALLOC_ORDER): Appended entry for register 35.
15551         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
15552         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
15553         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
15554         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
15555         is eliminable using stack pointer or hard frame pointer.
15556         (REGISTER_NAMES): Added name for register 35.
15557         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
15558         pointless sanity check.
15559
15560 2004-07-19  Roger Sayle  <roger@eyesopen.com>
15561
15562         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
15563         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
15564         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
15565         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
15566         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
15567         (fold_relational_const): Tidy up handling of floating point
15568         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
15569         transformation; fold_relational_const assumes constant operands.
15570
15571 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
15572
15573         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
15574         directory.
15575
15576 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
15577
15578         * c-tree.h (struct c_expr): Define.
15579         (C_SET_EXP_ORIGINAL_CODE): Remove.
15580         (parser_build_binary_op, build_compound_expr): Update prototypes.
15581         * c-parse.in (%union): Add exprtype.
15582         (FUNC_NAME): Mark as ttype.
15583         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
15584         exprtype.
15585         (expr): Update.  Define directly in terms of expr_no_commas
15586         instead of using nonnull_exprlist.
15587         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
15588         offsetof_member_designator, typespec_nonreserved_nonattr, init,
15589         initval, designator, component_declarator,
15590         component_notype_declarator, enumerator, array_declarator,
15591         condition, exexpr, switch_statement, stmt_nocomp, stmt,
15592         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
15593         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
15594         where appropriate.
15595         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
15596         * c-common.c (c_common_truthvalue_conversion): Don't check
15597         C_EXP_ORIGINAL_CODE.
15598         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
15599         Don't use C_EXP_ORIGINAL_CODE.
15600         (default_conversion, default_function_array_conversion): Don't use
15601         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
15602         (internal_build_compound_expr): Merge into build_compound_expr.
15603         (build_compound_expr): Take two operands instead of a TREE_LIST.
15604         * objc/objc-act.c (get_super_receiver): Update calls to
15605         build_compound_expr.
15606
15607 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
15608
15609         * config/sh/sh.c (sh_use_dfa_interface): Remove.
15610         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
15611         hook_int_void_1.
15612         * config/sh/sh.md: Extract pipeline descriptions
15613         into separate files.
15614         * config/sh/sh1.md: New file, extracted from sh.md.
15615         * config/sh/sh4.md: New file, extracted from sh.md.
15616         * config/sh/shmedia.md: New file, extracted from sh.md
15617         and rewritten using new-style pipeline description.
15618
15619 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
15620
15621         * config/pa/pa.md: Delete the two remaining define_peephole
15622         patterns.
15623
15624 2004-07-18  Steven Bosscher  <stevenb@suse.de>
15625             Joseph S. Myers  <jsm@polyomino.org.uk>
15626
15627         * c-common.c (c_common_truthvalue_conversion): Don't warn if
15628         TREE_NO_WARNING is set.
15629
15630 2004-07-18  Roger Sayle  <roger@eyesopen.com>
15631
15632         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
15633         simplify_builtin_strncmp): Delete.
15634         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
15635         Change argument to accept an arglist instead of an "exp".  Assume
15636         that the return type is always integer_type_node.  Copy missing
15637         transformations from their now obsolete simplify_builtin_*
15638         equivalents.
15639         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
15640         fold_builtin_strcmp and fold_builtin_strncmp.
15641         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
15642         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
15643         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
15644
15645 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
15646
15647         * Makefile.in (tree-alias-common.o): Update dependencies.
15648
15649 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
15650
15651         * cfgloop.c (flow_loop_nested_p): Fix comment.
15652
15653 2004-07-17  Jason Merrill  <jason@redhat.com>
15654
15655         PR c++/16115
15656         * stor-layout.c (relayout_decl): New fn.
15657         * tree.h: Declare it.
15658         (DECL_BY_REFERENCE): New macro.
15659
15660 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
15661
15662         * libgcc2.c (__enable_execute_stack): New symbol.
15663         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
15664         and declare __enable_execute_stack.
15665         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
15666         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
15667         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15668         ENABLE_EXECUTE_STACK.
15669         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
15670         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15671         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15672         ENABLE_EXECUTE_STACK.
15673         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15674         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
15675         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15676         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
15677         ENABLE_EXECUTE_STACK.
15678         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15679         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15680         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15681         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
15682         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
15683         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
15684         (sparc64_initialize_trampoline): Likewise.
15685         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
15686
15687 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15688
15689         * langhooks.h (builtin_function): New langhook.
15690         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
15691         (LANG_HOOKS_INITIALIZER): Update.
15692         * tree.h (builtin_function): Remove.
15693         * doc/tm.texi: Update.
15694         * c-tree.h (builtin_function): Declare.
15695         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
15696         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
15697         config/ia64/ia64.c, config/iq2000/iq2000.c,
15698         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
15699         config/stormy16/stormy16.c: All callers of builtin_function
15700         changed.
15701
15702 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
15703
15704         PR target/16556
15705         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
15706         Remove white space after the backslash.
15707
15708 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
15709
15710         PR rtl-optimization/16294
15711         * resource.c (return_insn_p): New predicate.
15712         (mark_target_live_regs): Use it.  Special-case return insns.
15713         (init_resource_info): Use it.  Don't scan the epilogue past
15714         a return.
15715
15716 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15717
15718         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
15719         destroy dominance information.
15720         * passes.c (rest_of_handle_loop2):  Free dominance information.
15721         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
15722         jump threading.
15723         (thread_jumps): Update dominance information and remove unreachable
15724         blocks.
15725         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
15726         information and remove the unreachable block.
15727
15728 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
15729
15730         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
15731
15732 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
15733
15734         * doc/sourcebuild.texi: Remove libf2c entry.
15735
15736 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
15737
15738         * config/i386/i386.md (movv16qi_internal): Fix typo.
15739
15740 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15741
15742         * final.c (final_scan_insn): Fix broken commit from previous
15743         patch.
15744
15745 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15746
15747         * c-typeck.c (parser_build_binary_op): Condition warnings for
15748         X<=Y<=Z on -Wparentheses instead of -Wextra.
15749         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
15750         supported for C only.
15751
15752 2004-07-17  Steven Bosscher  <stevenb@suse.de>
15753
15754         * cfgcleanup.c (try_simplify_condjump): Don't remove line
15755         notes to avoid unreachable code warnings.
15756         * toplev.c (backend_init): Don't emit line notes for
15757         unreachable code warnings.
15758
15759         * combine.c (distribute_notes): Don't distribute a
15760         REG_VTABLE_REF note.
15761         * final.c (final_scan_insn): Don't handle it.
15762         * rtl.c (reg_note_name): Remove it.
15763         * rtl.h (enum reg_node): Dito.
15764
15765         * emit-rtl.c (force_line_numbers, restore_line_number_status):
15766         Remove.
15767         * rtl.h (force_line_numbers, restore_line_number_status):
15768         Remove prototypes.
15769
15770         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
15771         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
15772         (using_eh_for_cleanups): Also moved here.
15773
15774         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
15775         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
15776         to expand_start_case and add_case_node.
15777         * stmt.c (struct nesting): Cleanup unused fields condition_code,
15778         last_unconditional_cleanup, nominal_type, printname, and
15779         line_number_status.
15780         (struct fixup_goto): Remove.
15781         (struct stmt_status): Remove x_goto_fixup_chain field.
15782         (goto_fixup_chain): Remove.
15783         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
15784         pushcase, pushcase_range): Remove.
15785         (expand_start_bindings_and_block): Don't set unused fields in
15786         the nesting stack.
15787         (expand_start_case, add_case_node): Cleanup unused formal arguments.
15788         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
15789         instead of emit_jump_if_reachable.
15790         (emit_case_nodes): Likewise.
15791         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
15792         static.
15793         (update_eh_label): Work around left-over exception handing regions.
15794         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
15795         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
15796         (pass_cleanup_cfg_post_optimizing): New pass.
15797         (init_tree_optimization_passes): Run the new pass after all
15798         optimizations.
15799         * tree.h (pushcase, pushcase_range): Remove prototypes.
15800         (expand_start_case, add_case_node): Update prototypes.
15801
15802 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
15803
15804         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
15805
15806 2004-07-16  Richard Henderson  <rth@redhat.com>
15807
15808         * builtins.c (std_expand_builtin_va_arg): Remove.
15809         (expand_builtin_va_arg): Remove.
15810         * expr.h: Don't declare them.
15811         * gimplify.c (mark_decls_volatile_r): Remove.
15812         (copy_if_shared_r): Don't call it.
15813         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
15814         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
15815         * gimple-low.c (lower_stmt): Likewise.
15816         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
15817         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
15818         * tree-ssa-operands.c (get_expr_operands): Likewise.
15819         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
15820         EXPAND_BUILTIN_VA_ARG.
15821         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
15822         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
15823         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
15824         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
15825
15826 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
15827
15828         * tree-ssa-pre.c (insert_aux): Break out if we hit
15829         a critical edge.
15830
15831 2004-07-16  Richard Henderson  <rth@redhat.com>
15832
15833         * basic-block.h (remove_fake_exit_edges): Declare.
15834         * cfganal.c (remove_fake_predecessors): Rename from
15835         remove_fake_successors; iterate over predecessors.
15836         (remove_fake_exit_edges): New.
15837         * cfgcleanup.c (try_optimize_cfg): Use it.
15838         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
15839         * predict.c (estimate_probability): Likewise.
15840         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
15841         * tree-cfg.c (make_edges): Likewise.
15842         * tree-ssa-pre.c (fini_pre): Likewise.
15843         * profile.c (instrument_edges): Don't remove_fake_edges.
15844         (branch_prob): Do it earlier here.
15845
15846 2004-07-16  Richard Henderson  <rth@redhat.com>
15847
15848         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
15849         switchification wrt CONSTRUCTOR.  Document the reason.
15850
15851 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
15852
15853         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
15854         that prevented descriptive __mf_check source location strings.
15855
15856 2004-07-16  Richard Henderson  <rth@redhat.com>
15857
15858         * tree-def (WITH_SIZE_EXPR): New.
15859         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
15860         * expr.c (expand_expr_real_1): Likewise.
15861         * gimplify.c (maybe_with_size_expr): New.
15862         (gimplify_arg, gimplify_modify_expr): Use it.
15863         (gimplify_modify_expr_to_memcpy): Take size parameter.
15864         (gimplify_modify_expr_to_memset): Likewise.
15865         (gimplify_expr): Handle WITH_SIZE_EXPR.
15866         * tree-alias-common.c (find_func_aliases): Likewise.
15867         * tree-eh.c (tree_could_trap_p): Likewise.
15868         (tree_could_throw_p): Likewise.
15869         * tree-gimple.c (is_gimple_lvalue): Likewise.
15870         (get_call_expr_in): Likewise.
15871         * tree-inline.c (estimate_num_insns_1): Likewise.
15872         (expand_calls_inline): Likewise.
15873         * tree-nested.c (convert_call_expr): Likewise.
15874         * tree-pretty-print.c (dump_generic_node): Likewise.
15875         * tree-sra.c (sra_walk_expr): Likewise.
15876         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
15877         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
15878         * tree-ssa-operands.c (get_expr_operands): Likewise.
15879         * tree-tailcall.c (find_tail_calls): Likewise.
15880
15881         * calls.c (expand_call): Reset old_stack_allocated after
15882         calling emit_stack_restore.
15883
15884 2004-07-16  Richard Henderson  <rth@redhat.com>
15885
15886         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
15887         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15888         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
15889         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
15890         copy_res_decl_for_inlining.
15891
15892         * tree-inline.c (declare_return_variable): New modify_dest argument.
15893         Use it as the return value, when possible or manditory.  Handle
15894         TREE_ADDRESSABLE types.
15895         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
15896         replacement of CALL_EXPR.
15897
15898 2004-07-16  Richard Henderson  <rth@redhat.com>
15899
15900         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
15901         * gimple-low.c (expand_var_p): Don't check it.
15902         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
15903         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
15904         * tree-ssa-operands.c (add_stmt_operand): Likewise.
15905         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
15906         (find_referenced_vars): Don't call them.
15907         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
15908
15909 2004-07-16  Richard Henderson  <rth@redhat.com>
15910
15911         * function.c (pass_by_reference): True for all variable sized types.
15912
15913 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
15914
15915         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
15916         * tree-pretty-print.c: Include tree-chrec.h.
15917         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
15918         and POLYNOMIAL_CHREC nodes.
15919
15920 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
15921
15922         * builtins.c (expand_builtin_stpcpy): Do not create temporary
15923         reg with VOIDmode.
15924
15925 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15926
15927         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
15928
15929 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
15930
15931         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
15932         to BASE_REGNUM.
15933         * config/s390/s390.c: Likewise.
15934         * config/s390/s390.h: Likewise.
15935
15936 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15937
15938         * config/mips/mips.md (addsi3, adddi3): Remove special handling
15939         of $sp adds.  Remove REGNO checks from mips16 patterns.
15940
15941 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15942
15943         * config/mips/mips.md: Delete outdated comment.
15944
15945 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15946
15947         * config/mips/mips.c (get_float_compare_codes): Delete.
15948         (mips_emit_compare): New function, mostly extracted from
15949         get_float_compare_codes and gen_conditional_branch.
15950         (gen_conditional_branch, gen_conditional_move): Use it.
15951
15952 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
15953
15954         * genautomata.c (add_vect): Speedup by using integers as
15955         bit-vectors for walking through the comb_vect and finding
15956         a match.
15957
15958 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15959
15960         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
15961         operand is an uns_arith_operand; use subtraction otherwise.
15962         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
15963         not just arith_operands.
15964
15965 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15966
15967         * config/mips/mips-protos.h (gen_int_relational): Delete.
15968         (mips_emit_scc): Declare.
15969         * config/mips/mips.c (internal_test): Delete.
15970         (sle_operand, sleu_operand): New functions.
15971         (map_test_to_internal_test, gen_int_relational): Delete.
15972         (mips_emit_binary, mips_relational_operand_ok_p)
15973         (mips_emit_int_relational, mips_zero_if_equal)
15974         (mips_emit_scc): New functions.
15975         (gen_conditional_branch): Rework to use mips_emit_int_relational.
15976         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
15977         sleu_operand.
15978         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
15979         (sltu, sleu): Use mips_emit_scc.
15980         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
15981         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
15982         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
15983
15984 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15985
15986         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
15987
15988 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
15989
15990         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
15991         (*sne_[sd]i): Likewise sne_[sd]i_zero.
15992         (*sgt_[sd]i): ...and sgt_[sd]i.
15993         (*slt_[sd]i): ...and slt_[sd]i.
15994         (*sgtu_[sd]i): ...and sgtu_[sd]i.
15995         (*sltu_[sd]i): ...and sltu_[sd]i.
15996         (*sleu_[sd]i): ...and sleu_[sd]i_const.
15997         Name previously unnamed mips16 patterns.  Formatting fixes.
15998
15999 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
16000
16001         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
16002         (branch_type): Delete.
16003         (gen_conditional_branch, gen_conditional_move)
16004         (mips_gen_conditional_trap): Update after name change.  Get the
16005         comparison mode from cmp_operands[0].
16006         * config/mips/mips.h (cmp_type, branch_type): Delete.
16007         (cmp_operands): Renamed from branch_cmp.
16008         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
16009         name change.  Don't set branch_type.
16010         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
16011         mode class of cmp_operands[0] rather than branch_type.  Update after
16012         name change.
16013
16014 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
16015
16016         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
16017         of 0...255 to 0 when inside a SET.
16018
16019 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
16020
16021         * config/mips/mips.md: Remove mips16 define_peepholes.
16022
16023 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
16024
16025         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
16026         (fini_pre): Remove fake edges.
16027
16028 2004-07-15  Richard Henderson  <rth@redhat.com>
16029
16030         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
16031         (get_indirect_ref_operands, get_call_expr_operands): ... these.
16032
16033 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
16034
16035         * vec.h (VEC_address): New function.
16036
16037 2004-07-14  Jason Merrill  <jason@redhat.com>
16038
16039         PR middle-end/15885
16040         * gimplify.c (gimplify_arg): New fn, split out from...
16041         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
16042
16043 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
16044
16045         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
16046         generate code which is generated by pushqi1 now
16047         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
16048
16049 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
16050
16051         * combine.c (simplify_set): match the mode of the constant 0 with
16052         the tested operand to match the compare behaviour and the
16053         simplify_relational_operation() expectation.
16054
16055 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
16056
16057         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
16058         ("bordered"): Same.
16059
16060 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
16061
16062         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
16063         unconditionally.
16064         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
16065
16066 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
16067
16068         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
16069         calls in mips16 code.
16070
16071 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
16072
16073         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
16074         the destination of the li as well as for the neg.
16075
16076 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
16077
16078         g++/15861
16079         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
16080         * cgraph.h: Update declaration.
16081         * c-decl.c (build_cdtor): Update call with default priority.
16082         * coverage.c (create_coverage): Ditto.
16083         * tree-mudflap.c (mf_init_fndecl): New tree.
16084         (mudflap_init): Set it.
16085         (mudflap_register_call): Arrange to call __mf_init before the first
16086         __mf_register call.
16087         (mudflap_finish_file): Mark the mudflap static initializer as extra
16088         high priority, to beat all C++ static constructors.
16089
16090 2004-07-15  Jeff Law  <law@redhat.com>
16091
16092         * loop.c (check_insn_for_givs): Restore check for code labels that was
16093         accidentally deleted by a recent checkin.
16094
16095 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
16096
16097         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
16098         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
16099
16100 2004-07-14  Richard Henderson  <rth@redhat.com>
16101
16102         * print-tree.c (print_node): Fix casts last change.
16103
16104 2004-07-15  Paul Brook  <paul@codesourcery.com>
16105
16106         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
16107         to TARGET_UNWIND_INFO.
16108         * except.c (output_function_exception_table): Ditto.
16109         * except.h: Ditto.
16110         * opts.c (decode_options): Ditto.
16111         * passes.c (rest_of_handle_final): Ditto.
16112         * final.c (final_start_function): Ditto.
16113         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
16114         target hook.
16115         * targhooks.h (default_unwind_emit): Declare.
16116         * targhooks.c (default_unwind_emit): New function.
16117         * target-def.h: Define and use TARGET_UNWIND_EMIT.
16118         * target.h (struct gcc_target): Add unwind_emit.
16119         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
16120         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
16121         Remove IA64_UNWIND_EMIT.
16122         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
16123
16124 2004-07-14  Richard Henderson  <rth@redhat.com>
16125
16126         * print-tree.c (print_node): Handle SSA_NAME.
16127
16128 2004-07-14  James E Wilson  <wilson@specifixinc.com>
16129
16130         PR target/16325
16131         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
16132         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
16133
16134 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
16135
16136         * expr.c (expand_assignment): Reenable bitfield += optimizations.
16137         Use alias set 0 for memory, do proper mode calculations and adjust
16138         address for memories.
16139
16140 2004-07-14  Per Bothner  <per@bothner.com>
16141
16142         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
16143         structure with extra column field.
16144         * tree.c (expand_location):  Also fill in column field.
16145         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
16146         gets confused by the two conditionally-compiled definitions.
16147
16148 2004-07-14  Eric Christopher  <echristo@redhat.com>
16149
16150         * calls.c (expand_call): Fix typo in comment.
16151
16152 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
16153
16154         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
16155         comparision of TFmode.
16156
16157 2004-07-14  Richard Henderson  <rth@redhat.com>
16158
16159         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
16160         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
16161         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
16162         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
16163         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
16164         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
16165         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
16166         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
16167         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
16168
16169 2004-07-14  Mike Stump  <mrs@apple.com>
16170
16171         * config/darwin.h (WINT_TYPE): Define to be int to match
16172         system header files.
16173
16174 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
16175
16176         * config/xtensa/xtensa.c (function_arg_advance): Check for args
16177         that must be passed in the stack.
16178         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
16179         arguments if the size is not a constant.
16180
16181 2004-07-14  Per Bothner  <per@bothner.com>
16182
16183         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
16184         instead of EXPR_LOCUS in a boolean context, which is always true
16185         if --enable-mapped-location.
16186         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
16187
16188 2004-07-14  Richard Henderson  <rth@redhat.com>
16189
16190         * dominance.c (struct dom_info): Add fake_exit_edge.
16191         (init_dom_info): Allocate it.
16192         (free_dom_info): Free it.
16193         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
16194         in two passes.
16195         (calc_idoms): Honor fake_exit_edge.
16196
16197 2004-07-13  Jason Merrill  <jason@redhat.com>
16198
16199         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
16200         (rhs_test_for): New fn.
16201         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
16202         * tree-gimple.h: Declare them.
16203         * gimplify.c (gimplify_modify_expr): Use the new fns.
16204
16205 2004-07-14  Richard Henderson  <rth@redhat.com>
16206
16207         * config/arm/arm-protos.h (arm_va_arg): Remove.
16208         * config/arm/arm.c (arm_va_arg): Remove.
16209         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
16210         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
16211
16212 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16213
16214         * pa.c (fix_range): New function to mark a range(s) of registers as
16215         fixed registers.
16216         (override_options): Call fix_range if the -mfixed-range option string
16217         is not empty.
16218         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
16219         * doc/invoke.texi (-mfixed-range): Document new option.
16220
16221 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
16222
16223         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
16224         for TARGET_64BIT.
16225         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
16226
16227 2004-07-14  Roger Sayle  <roger@eyesopen.com>
16228
16229         * expmed.c (expand_sdiv_pow2): New function to expand signed division
16230         by a positive power of two, split out from expand_divmod.  Provide
16231         an alternate implementation when shifts are expensive.  Lower the
16232         threshold for using a branchless implementation to BRANCH_COST >= 2.
16233         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
16234
16235 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16236
16237         * tree-dfa.c (make_rename_temp): *Really* work just
16238         like create_tmp_var if called while outside SSA form.
16239
16240 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
16241
16242         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
16243         for division by zero.
16244         ("umodsi3"): Likewise.
16245
16246 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
16247
16248         * config/mips/mips.c (mips_output_move): When generating mips16 code,
16249         force loads of negative constants to be split.
16250         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
16251         Generalize SImode li/neg splitter to cope with other modes.
16252
16253 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16254
16255         * expmed.c: Remove more references to QUEUED in the comments.
16256         * expr.c: Likewise.
16257
16258 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
16259
16260         Revert:
16261         2004-07-13  Richard Henderson  <rth@redhat.com>
16262         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
16263         correctly.
16264
16265 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16266
16267         * tree-dfa.c (make_rename_temp): Work just like
16268         create_tmp_var if called while outside SSA form.
16269
16270 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
16271
16272         * expr.c (enqueue_insn, finish_expr_for_function,
16273         protect_from_queue, queued_subexp_p, mark_queue,
16274         emit_insns_enqueued_after_mark, emit_queue,
16275         expand_increment): Remove.
16276         (store_constructor): Expand increment as an assignment.
16277         (expand_expr_real_1 <case PREINCREMENT_EXPR,
16278         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
16279         case POSTDECREMENT_EXPR>): Abort.
16280         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
16281         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
16282         protect_from_queue, emit_queue, queued_subexp_p): Remove.
16283         * function.h (pending_chain, x_pending_chain): Remove.
16284         * rtl.def (QUEUED): Remove.
16285
16286         * emit-rtl.c (copy_insn_1, copy_most_rtx,
16287         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
16288         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
16289         encode_units_mask): Likewise.
16290         * local-alloc.c (equiv_init_varies_p): Likewise.
16291         * rtl.c (copy_rtx): Likewise.
16292         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
16293         * simplify-rtx.c (simplify_gen_subreg): Likewise.
16294         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
16295
16296         * builtins.c (expand_builtin, expand_builtin_apply,
16297         expand_builtin_mathfn, expand_builtin_mathfn_2,
16298         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
16299         Remove calls to emit_queue and protect_from_queue.
16300         * calls.c (expand_call, precompute_arguments,
16301         precompute_register_parameters, rtx_for_function_call,
16302         store_one_arg): Likewise.
16303         * dojump.c (do_compare_and_jump, do_jump): Likewise.
16304         * explow.c (memory_address): Likewise.
16305         * expmed.c (clear_by_pieces_1, clear_storage,
16306         clear_storage_via_libcall, emit_group_load,
16307         emit_group_store, emit_store_flag,
16308         expand_expr_real_1, store_by_pieces,
16309         store_constructor, store_expr, try_casesi,
16310         try_tablejump): Likewise.
16311         * function.c (expand_pending_sizes): Likewise.
16312         * optabs.c (emit_cmp_and_jump_insns,
16313         emit_conditional_add, emit_conditional_move,
16314         expand_fix, expand_float, prepare_cmp_insn): Likewise.
16315         * stmt.c (emit_case_bit_tests,
16316         expand_asm_expr, expand_computed_goto,
16317         expand_decl_init, expand_end_case_type,
16318         expand_end_stmt_expr, expand_expr_stmt_value,
16319         expand_return, expand_start_case,
16320         optimize_tail_recursion): Likewise.
16321         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
16322         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
16323
16324 2004-07-14  Ben Elliston  <bje@au.ibm.com>
16325
16326         * vec.h: Comment fix.
16327
16328 2004-07-13  Richard Henderson  <rth@redhat.com>
16329
16330         * target.h (struct gcc_target): Add calls.pass_by_reference.
16331         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
16332         * function.c (pass_by_reference): Use the hook.
16333         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
16334         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
16335         (hook_pass_by_reference_must_pass_in_stack): New.
16336         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
16337         (alpha_pass_by_reference): New.
16338         (TARGET_PASS_BY_REFERENCE): New.
16339         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16340         * config/arc/arc.c (arc_pass_by_reference): New.
16341         (TARGET_PASS_BY_REFERENCE): New.
16342         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16343         (FUNCTION_ARG_CALLEE_COPIES): True.
16344         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
16345         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
16346         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
16347         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16348         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16349         * config/cris/cris.c (cris_pass_by_reference): New.
16350         (TARGET_PASS_BY_REFERENCE): New.
16351         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
16352         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
16353         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16354         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
16355         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16356         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
16357         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
16358         (frv_function_arg_pass_by_reference): Remove.
16359         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16360         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
16361         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
16362         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
16363         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16364         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
16365         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
16366         (ia64_pass_by_reference): Rename from
16367         ia64_function_arg_pass_by_reference.
16368         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16369         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16370         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
16371         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
16372         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
16373         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16374         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16375         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
16376         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
16377         (m32r_pass_by_reference): Adjust prototype.  Make static.
16378         Handle mode sizes correctly.
16379         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16380         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
16381         (m68hc11_function_arg_pass_by_reference): Remove.
16382         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16383         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16384         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
16385         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16386         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
16387         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
16388         (mips_va_arg): Use pass_by_reference.
16389         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
16390         Handle mode sizes correctly.
16391         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16392         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
16393         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
16394         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
16395         (mmix_pass_by_reference): Rename from
16396         mmix_function_arg_pass_by_reference.
16397         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16398         (FUNCTION_ARG_CALLEE_COPIES): True.
16399         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
16400         (mn10300_pass_by_reference): New.
16401         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16402         (FUNCTION_ARG_CALLEE_COPIES): True.
16403         * config/pa/pa.c (pa_pass_by_reference): New.
16404         (TARGET_PASS_BY_REFERENCE): New.
16405         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16406         (FUNCTION_ARG_CALLEE_COPIES): True.
16407         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
16408         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
16409         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
16410         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16411         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
16412         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
16413         (s390_pass_by_reference): Rename from
16414         s390_function_arg_pass_by_reference.
16415         (s390_function_arg_advance): Don't query pass-by-ref.
16416         (s390_function_arg): Likewise.
16417         (s390_gimplify_va_arg): Use pass_by_reference.
16418         (s390_call_saved_register_used): Likewise.
16419         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16420         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
16421         (shcompact_byref, sh_pass_by_reference): New.
16422         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16423         (SHCOMPACT_BYREF): Remove.
16424         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
16425         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
16426         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
16427         (sparc_gimplify_va_arg): Use pass_by_reference.
16428         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16429         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16430         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
16431         (v850_pass_by_reference): New.
16432         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16433         (FUNCTION_ARG_CALLEE_COPIES): True.
16434         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
16435         FUNCTION_ARG_PASS_BY_REFERENCE docs.
16436
16437 2004-07-14  Richard Henderson  <rth@redhat.com>
16438             Richard Sandiford  <rsandifo@redhat.com>
16439
16440         * config/mips/mips-protos.h (mips_va_arg): Delete.
16441         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
16442         * config/mips/mips.c: Include tree-gimple.h.
16443         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
16444         (mips_arg_info): Remove special handling of must_pass_in_stck args.
16445         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
16446         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
16447
16448 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
16449
16450         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
16451         arguments for COND_EXPR in big-endian adjustment code.
16452
16453 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16454
16455         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
16456         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
16457         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
16458         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
16459
16460 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16461
16462         PR tree-optimization/16443
16463         * tree-ssa-alias.c: Add more description for
16464         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
16465         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
16466         clobbering of call-clobbered and addressable variables.  If
16467         there are any before aliases have been computed, add them.
16468
16469 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
16470
16471         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
16472         verification.
16473
16474 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
16475
16476         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
16477         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
16478         to the same type.
16479
16480 2004-07-13  Per Bothner  <per@bothner.com>
16481
16482         * collect2.c (main):  Handle --no-demangle and --demangle flags.
16483
16484 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
16485
16486         * Makefile.in (OBJS-common): Add tree-data-ref.o.
16487         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
16488         (tree-data-ref.o): New rule.
16489         * lambda.h: New file.
16490         * tree-data-ref.c: New file.
16491         * tree-data-ref.h: New file.
16492         * tree.c (int_cst_value, tree_fold_gcd): New functions.
16493         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
16494
16495 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16496
16497         PR target/13926
16498         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
16499         * config/sparc/sparc.c (output_ubranch): New function.
16500         * config/sparc/sparc.md (jump pattern): Use it.
16501
16502 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16503
16504         PR target/16494
16505         * config/sparc/sparc.c (output_cbranch): Properly guard
16506         the code handling far branches with TARGET_V9.
16507         * config/sparc/sparc.md (length attribute): Document the
16508         side-effect of having a length greater or equal to 3.
16509
16510 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16511             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
16512
16513         PR target/15186
16514         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
16515         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
16516
16517 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
16518             Martin Sebor  <sebor@roguewave.com>
16519
16520         PR target/12602
16521         * doc/invoke.texi (SPARC options): Document -threads
16522         and -pthreads on Solaris.
16523
16524 2004-07-13  Richard Henderson  <rth@redhat.com>
16525
16526         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
16527         by reference.
16528         (ind_gimplify_va_arg_expr): Remove.
16529         * tree.h (ind_gimplify_va_arg_expr): Remove.
16530         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
16531         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
16532         argsp to be null.
16533
16534         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
16535         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
16536         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
16537         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
16538         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
16539
16540 2004-07-13  Richard Henderson  <rth@redhat.com>
16541
16542         * function.c (pass_by_reference): New.
16543         (assign_parm_find_data_types): Use it.
16544         * calls.c (initialize_argument_information): Likewise.
16545         (emit_library_call_value_1): Likewise.
16546         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
16547         * function.h (pass_by_reference): Declare.
16548
16549 2004-07-13  Richard Henderson  <rth@redhat.com>
16550
16551         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
16552         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
16553         * expr.h (MUST_PASS_IN_STACK): Remove.
16554         * system.h (MUST_PASS_IN_STACK): Poison.
16555         * tree.h (must_pass_in_stack_var_size): Declare.
16556         (must_pass_in_stack_var_size_or_pad): Declare.
16557         * calls.c (must_pass_in_stack_var_size): New.
16558         (must_pass_in_stack_var_size_or_pad): Rename from
16559         default_must_pass_in_stack.
16560         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
16561         (TARGET_MUST_PASS_IN_STACK): New.
16562         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
16563         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
16564         (TARGET_MUST_PASS_IN_STACK): New.
16565         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
16566         * config/frv/frv.c (frv_must_pass_in_stack): New.
16567         (TARGET_MUST_PASS_IN_STACK): New.
16568         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
16569         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
16570         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
16571         (ix86_must_pass_in_stack): Make static.
16572         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
16573         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
16574         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
16575         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
16576         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
16577         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
16578         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
16579         (mcore_must_pass_on_stack): Remove.
16580         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
16581         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
16582         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
16583         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
16584         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
16585         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
16586         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
16587         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
16588         (TARGET_MUST_PASS_IN_STACK): New.
16589         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
16590         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
16591         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
16592         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
16593         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
16594         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
16595         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
16596         MUST_PASS_IN_STACK.
16597
16598         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
16599         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
16600         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
16601         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
16602         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
16603         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
16604         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
16605         config/xtensa/xtensa.c: Use target hook.
16606
16607 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
16608
16609         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
16610         * configure: Rebuilt.
16611
16612 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16613
16614         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
16615         * config/mips/mips.h (mips_reg_names): Don't declare.
16616         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
16617         (TARGET_NAME_REGS): Delete.
16618         (TARGET_SWITCHES): Remove -mrnames.
16619         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
16620         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
16621         in REGISTER_NAMES.
16622         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
16623         (override_options): Remove handling of TARGET_NAME_REGS.
16624
16625 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
16626
16627         * config/mips/mips.h (TARGET_*): Boolify.
16628
16629 2004-07-12  Nick Clifton  <nickc@redhat.com>
16630
16631         * config.gcc: Add sh-*-symbianelf target.
16632         * config/sh/sh.c: Add new target macros:
16633         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
16634         TARGET_CXX_IMPORT_EXPORT_CLASS.
16635         (sh_file_start): Create a definition of the .directive section.
16636         (sh_attribute): Add dllimport and dllexport attributes.
16637         * config/sh/symbian-pre.h: New file.
16638         * config/sh/symbian-post.h: New file.
16639         * config/sh/symbian.c: New file. Contains Symbian specific
16640         functions.
16641         * config/sh/sh-protos.h: Add prototypes for new functions
16642         provided by symbian.c.
16643         * config/sh/t-symbian: New file.
16644         * doc/extend.texi: Document support for dllimport and dllexport
16645         attributes by the sh-symbianelf target.
16646
16647 2004-07-12  James E Wilson  <wilson@specifixinc.com>
16648
16649         * Makefile.in (AR): Use @AR@ not ar.
16650         (NM): New.
16651         (AR_FOR_TARGET): Use $(AR) not ar for native.
16652         (NM_FOR_TARGET): Use $(NM) not nm for native.
16653         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
16654         * configure: Regenerate.
16655
16656 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
16657
16658         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
16659         special case.
16660         (ashldi3_sp64): Likewise.
16661
16662 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16663
16664         PR target/16477
16665         * pa.c (function_arg): Update comment.
16666         * pa.h (BLOCK_REG_PADDING): Define.
16667
16668 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16669
16670         PR tree-optimization/16461
16671         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
16672         arguments of phi nodes.
16673
16674 2004-07-12  Devang Patel  <dpatel@apple.com>
16675
16676         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
16677
16678 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
16679
16680         * function.c (expand_function_start): Ensure r_save is in Pmode.
16681         * calls.c (prepare_call_address): Ensure static_chain_value is
16682         in Pmode.
16683         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
16684         r_save_area are in Pmode.
16685         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
16686         fnaddr, and static_chain are in Pmode.
16687
16688 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
16689
16690         PR target/16445
16691         * config/ia64/ia64.c (bundling): Don't count ignored insns.
16692
16693 2004-07-12  Richard Henderson  <rth@redhat.com>
16694
16695         * target.h (struct gcc_target): Move gimplify_va_arg_expr
16696         next to build_builtin_va_list.
16697         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
16698         * builtins.c (gimplify_va_arg_expr): Likewise.
16699         * gimplify.c (copy_if_shared_r): Likewise.
16700
16701 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
16702
16703         * passes.c (rest_of_decl_compilation): Don't defer call of
16704         assemble_variable if its DECL_RTL is already set.
16705
16706 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
16707
16708         * cfgloop.h (struct loop): Add nb_iterations field.
16709         (current_loops): Declare.
16710         * tree-chrec.c (chrec_not_analyzed_yet,
16711         chrec_dont_know, chrec_known, count_ev_in_wider_type,
16712         chrec_contains_symbols_defined_in_loop): Remove the temporary
16713         hooks.
16714         * tree-flow-inline.h (loop_containing_stmt): New function.
16715         * tree-scalar-evolution.c: Add implementation.
16716         * tree-scalar-evolution.h: Add declarations.
16717
16718 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
16719
16720         PR rtl-optimization/15921
16721         * Makefile.in (global.o): Add recog.h.
16722
16723         * global.c (recog.h): Add the include-clause.
16724         (bb_info): New member earlyclobber.
16725         (allocate_bb_info, free_bb_info): Initialize/finish the new
16726         member.
16727         (earlyclobber_regclass, earlyclobber_regclass_length): The new
16728         global variables.
16729         (check_earlyclobber, regclass_intersect,
16730         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
16731         New functions.
16732         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
16733         (make_accurate_live_analysis): Modify pavin.
16734
16735 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
16736
16737         * tree-cfg.c (find_taken_edge): Statically compute the truth
16738         value of a predicate comparing an SSA_NAME to itself.
16739
16740 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16741
16742         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
16743         rs6000 doesn't have shift-and-add or shift-and-sub instructions
16744         by returning the cost of a multiplication plus an addition.
16745
16746 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
16747
16748         PR tree-optimization/14107
16749         * gimplify.c (gimplify_return_expr): Accept a
16750         RETURN_EXPR with an error argument.
16751         * tree-optimize.c (init_tree_optimization_passes):
16752         Run pass_warn_function_return at -O0.
16753
16754 2004-07-12  Roger Sayle  <roger@eyesopen.com>
16755
16756         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
16757         index entry.
16758
16759 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
16760
16761         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
16762         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
16763         * config/mips/3000.md: Add copyright notice.  Remove automota and
16764         function units; use generic ones instead.  Only define reservations
16765         for things that are different from generic.md.  Extend each clause
16766         to include r3900.
16767         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
16768         * config/mips/mips.md: Include them. Remove define_function_units.
16769         (alu, imuldiv): New automata and units.
16770
16771 2004-07-12  Ben Elliston  <bje@au.ibm.com>
16772
16773         * doc/invoke.texi (Optimize Options): Document -frename-registers
16774         not being enabled by default at -O3.
16775
16776 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16777
16778         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
16779         floating point additions, to keep real immediate constant positive.
16780         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
16781         into X + C, and leave positive real constants as X - C.
16782
16783 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16784
16785         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
16786
16787 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16788
16789         PR tree-optimization/15654
16790         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
16791
16792 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16793
16794         * builtins.c (fold_builtin_fputs): Don't bother converting the
16795         return type to integer_type_node, as we've already checked that
16796         the result will be ignored.
16797
16798         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
16799         that signed addition, subtraction, multiplication, division,
16800         remainder, negation and absolute value may potentially trap.
16801
16802         * fold-const.c (fold_ignored_result): New function to strip
16803         non-side-effecting tree nodes from an expression whose result
16804         is ignored.
16805         (fold_convert): Call fold_ignored_result when casting a value
16806         to VOID_TYPE.
16807         (omit_one_operand):  Call fold_ignored_result on the "omitted"
16808         operand when building a COMPOUND_EXPR.
16809         (pedantic_omit_one_operand): Likewise.
16810         * tree.h (fold_ignored_result): Prototype here.
16811         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
16812         when we're going to ignore the result.
16813
16814 2004-07-11  Richard Henderson  <rth@redhat.com>
16815
16816         PR tree-opt/16383
16817         * tree-ssa-ccp.c (fold_stmt_r): Split out...
16818         * tree.c (fields_compatible_p, find_compatible_field): ... new.
16819         * tree.h (fields_compatible_p, find_compatible_field): Declare.
16820         * tree-sra.c (sra_hash_tree): Hash fields by offset.
16821         (sra_elt_eq): Use fields_compatible_p.
16822         (generate_one_element_ref): Use find_compatible_field.
16823
16824 2004-07-11  Richard Henderson  <rth@redhat.com>
16825
16826         PR tree-opt/16422
16827         * tree-sra.c (generate_one_element_init): New.
16828         (generate_element_init): Use it.
16829         (scalarize_init): Push/pop gimplify context around it.
16830         (find_new_referenced_vars_1, find_new_referenced_vars): New.
16831         * gimplify.c (gimplify_expr): Allow SSA_NAME.
16832
16833 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16834
16835         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
16836         combine.c's combine_insn_cost.
16837         * rtl.h (insn_rtx_cost): Prototype here.
16838         * combine.c (combine_insn_cost): Delete function.
16839         (combine_validate_cost): Update callers of combine_insn_cost to
16840         call insn_rtx_cost instead.
16841         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
16842         requesting the rtx_cost of call and/or jump instructions.
16843
16844         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
16845         rtx_cost directly.  Don't request/use the cost of call or jump
16846         instructions.  Return -1 if the cost of any instruction can't be
16847         determined (or the BB contains a function call).
16848         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
16849         -1 (i.e. can't determine the cost of any instruction or the basic
16850         block contains a subroutine call).
16851         (find_if_case_2): Likewise.
16852
16853 2004-07-11  Roger Sayle  <roger@eyesopen.com>
16854
16855         * rs6000.c (struct processor_costs): Change semantics of fields to
16856         include the COST_N_INSNS scaling, and update all initializers.
16857         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
16858         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
16859         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
16860         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
16861
16862 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16863
16864         * LANGUAGES: Remove obsolete information.
16865
16866 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16867
16868         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
16869         SIGBUS signal frames, the PSW address points *to* the faulting
16870         instruction, not after it.
16871
16872 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
16873
16874         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
16875         added to TLS symbol addresses.
16876
16877 2004-07-11  Richard Henderson  <rth@redhat.com>
16878
16879         * expmed.c (init_expmed): Use stack-local structures for
16880         temporary rtl.  Don't recognize shifts.
16881
16882 2004-07-11  Richard Henderson  <rth@redhat.com>
16883
16884         * expr.c (store_expr): Don't fiddle subreg promotion for types
16885         with precision smaller than the mode.
16886
16887 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16888
16889         * tree.h (all_types_permanent): Remove.
16890
16891 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16892
16893         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
16894         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
16895         * langhooks.c (lhd_clear_binding_stack): Remove.
16896         * langhooks-def.h (lhd_clear_binding_stack,
16897         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16898         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
16899         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
16900         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16901         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
16902         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
16903         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
16904         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
16905         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
16906         * tree.h (poplevel): Don't declare.
16907         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
16908         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
16909         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
16910         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16911         Remove.
16912
16913 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
16914
16915         PR tree-optimization/16437
16916         * c-common.c (shorten_compare): Don't mark result of conversion to
16917         narrower signed type as overflowing.
16918         * fold-const.c (decode_field_reference): Determine whether
16919         signedness comes from outer type using precision rather than size.
16920
16921 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16922
16923         * configure.ac:  Alphabetize --enable-checking list, add
16924         missing valgrind entry.
16925         * configure:  Regenerate.
16926
16927 2004-07-11  Phil Edwards  <phil@codesourcery.com>
16928
16929         * doc/install.texi (Testing):  Fix syntax in "make check" example.
16930
16931 2004-07-10  James E Wilson  <wilson@specifixinc.com>
16932
16933         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
16934
16935 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16936
16937         PR rtl-optimization/16001
16938         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
16939         niter_expr.
16940
16941 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
16942
16943         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
16944
16945 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
16946             James Morrison  <phython@gcc.gnu.org>
16947
16948         * doc/contrib.texi (Contributors): Add gfortran contributors and
16949         fix a couple of typos.
16950
16951 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16952
16953         PR rtl-optimization/15387
16954         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
16955         to incoming args space correctly.
16956
16957 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16958
16959         * pa.c (output_indirect_call): Only use %r2 as the link register in
16960         indirect calls with the long PA 2.0 pc-relative branch.
16961
16962 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
16963
16964         * config/i386/i386.c (override_options): Pick a 64-bit CPU
16965         for the default tuning if TARGET_64BIT.
16966
16967 2004-07-10  Richard Henderson  <rth@redhat.com>
16968
16969         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
16970         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
16971
16972 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
16973
16974         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
16975         * expmed.c (store_bit_field, extract_bit_field): Remove last
16976         argument.
16977         * builtins.c (expand_builtin_signbit): Adjust callers.
16978         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
16979         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
16980         * ifcvt.c (noce_emit_move_insn): Likewise.
16981         * stmt.c (expand_return): Likewise.
16982         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
16983         store_field, expand_expr_real_1): Likewise.
16984
16985 2004-07-10  Richard Henderson  <rth@redhat.com>
16986
16987         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
16988
16989 2004-07-09  Mike Stump  <mrs@apple.com>
16990
16991         * config/darwin.c (no_dead_strip): Add.
16992         (HAVE_DEAD_STRIP): Add.
16993         (darwin_emit_unwind_label): Ensure that we don't dead code strip
16994         the .eh label.
16995
16996 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16997
16998         * tree-ssa-loop-im.c: New file.
16999         * Makefile.in (tree-ssa-loop-im.o): Add.
17000         * cfgloop.c (superloop_at_depth): New function.
17001         * cfgloop.h (superloop_at_depth): Declare.
17002         * common.opt (ftree-lim): New flag.
17003         * expr.c (array_ref_up_bound): New function.
17004         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
17005         * timevar.def (TV_LIM): New timevar.
17006         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
17007         computing immediate uses of a phi node.
17008         * tree-flow.h (struct tree_ann_common_d): Add aux field.
17009         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
17010         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
17011         * tree-pass.h (pass_lim): Declare.
17012         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
17013         functions.
17014         (pass_lim): New pass structure.
17015         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
17016         * tree.c (in_array_bounds_p): New function.
17017         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
17018         (in_array_bounds_p, array_ref_up_bound): Declare.
17019         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
17020         * doc/passes.texi (tree-ssa-loop-im.c): Document.
17021
17022 2004-07-09  Richard Henderson  <rth@redhat.com>
17023
17024         * builtins.c (expand_builtin_stpcpy): Don't modify len.
17025
17026         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
17027         with prejudice.
17028
17029 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
17030
17031         * flags.h: Delete redundant prototypes that are being generated
17032         in options.h from common.opt.
17033         * common.opt: Add in the expository comments formerly in flags.h.
17034
17035 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17036
17037         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
17038         available for use only when TARGET_MMX/_SSE is set, and check for
17039         variable argument function if any register count is non-zero.
17040         (function_arg): Correctly suppress repeated warnings for passing SSE
17041         vectors are arguments without SSE enabled.
17042         (ix86_function_arg_boundary): Without SSE enabled, the use of what
17043         would be SSE register modes does no longer influence the alignment.
17044
17045 2004-07-09  Richard Henderson  <rth@redhat.com>
17046
17047         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
17048         Always align upward to arg boundary.  Use size_in_bytes/round_up.
17049         Maintain type-correctness of constants.
17050         * stor-layout.c (round_up, round_down): Special-case powers of 2.
17051
17052 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
17053
17054         * config/sparc/sparc.c (*_costs): Scale instruction costs
17055         by COSTS_N_INSNS.
17056         (sparc_rtx_costs): Adjust as appropriate.
17057
17058 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17059
17060         * config/i386/mm3dnow.h: New.
17061         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
17062
17063 2004-07-09  Richard Henderson  <rth@redhat.com>
17064
17065         * simplify-rtx.c (simplify_const_relational_operation): Only
17066         look at bounds of scalar integers.
17067
17068 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17069
17070         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
17071
17072 2004-07-09  Andrew Pinski  <apinski@apple.com>
17073
17074         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
17075         always referenced.
17076         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
17077         UOBJC_METACLASS_decl.
17078
17079 2004-07-09  James E Wilson  <wilson@specifixinc.com>
17080
17081         PR target/16364
17082         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
17083         do return a parallel if hfa_mode == XFmode and mode == TImode.
17084
17085 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17086
17087         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
17088         permissible for unary plus.
17089
17090 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17091
17092         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
17093         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
17094         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
17095         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
17096         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
17097         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
17098         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
17099         (BUILTIN_xxxIMAX): New.
17100         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
17101         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
17102         BUILT_IN_PARITYIMAX.
17103
17104 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
17105
17106         * config/sparc/sparc.h (processor_costs): Define.
17107         (sparc_costs): Declare.
17108         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
17109         hypersparc_costs, sparclet_costs, ultrasparc_costs,
17110         ultrasparc3_costs): New.
17111         (sparc_override_options): Set sparc_costs as appropriate.
17112         (sparc_rtx_costs): Use sparc_costs instead of messy
17113         conditionals.
17114
17115 2004-07-09  Steven Bosscher  <stevenb@suse.de>
17116
17117         * doc/md.texi (Processor pipeline description): Mention that
17118         the old pipeline description is deprecated.
17119
17120         * config/rs6000/7450.md (automaton ppc7450): Split up, move
17121         mciu_7450 function unit to...
17122         (automaton ppc7450mciu): ...new automaton.
17123
17124         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
17125         (schedule_block): Don't consider inserting bubbles.
17126         (sched_init): Don't initialize DFA bubbles.
17127         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
17128         TARGET_SCHED_DFA_BUBBLE): Remove.
17129         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
17130         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
17131         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
17132
17133         * stmt.c (conditional_context): Remove prototype.
17134         * tree.h (conditional_context): Remove.
17135         * tree-cfg.c (pre_insert_on_edge): Remove.
17136
17137         * c-common.h (c_expand_asm_operands): Remove prototype.
17138         * c-typeck.c (c_expand_asm_operands): Remove.
17139
17140 2004-07-09  Jan Beulich  <jbeulich@novell.com>
17141
17142         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
17143         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
17144         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
17145         and V8QI are class SSE. All sufficiently small remaining vector modes
17146         must be passed in one or two integer registers.
17147         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
17148         returned in memory.
17149         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
17150         __builtin_ia32_pmuludq128 have non-uniform argument and return types
17151         and must thus be handled explicitly.
17152         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
17153         MMX and XMM regs.
17154         (movv8qi_internal, movv4hi_internal, movv2si_internal,
17155         movv2sf_internal): Permit moving between MMX and XMM registers (since
17156         MMX areguments and return values are passed in XMM registers).
17157         (sse2_umulsidi3): Correct type and mode.
17158
17159 2004-07-09  Richard Henderson  <rth@redhat.com>
17160
17161         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
17162
17163 2004-07-09  Eric Christopher  <echristo@redhat.com>
17164
17165         * config/rs6000/40x.md: Split into two automatons.
17166
17167 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
17168             Andrew Pinski  <apinski@apple.com>
17169
17170         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
17171         on when we have more than one input file.
17172         (c_common_parse_file): Restore loop over all input files.
17173         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
17174
17175         * c-decl.c (set_type_context): New function.
17176         (pop_scope): Use it to set context of types.  When we
17177         encounter a TYPE_DECL, set the context of the attached type too.
17178         (pop_file_scope): Don't call cpp_undef_all here.
17179         (diagnose_mismatched_decls): Do not complain about a second
17180         definition of an 'extern inline' function if it's not in the
17181         same translation unit.  Do not complain about inline
17182         declaration after use if the use was in a different
17183         translation unit.
17184         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
17185         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
17186         the external scope.
17187         (pushdecl_top_level): Likewise.
17188         (grokdeclarator): Clarify what is going on with setting
17189         DECL_EXTERNAL on function types, a little.
17190         (c_write_global_declarations): Don't do anything if
17191         -fsyntax-only or errors have been encountered.
17192
17193 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
17194
17195         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
17196
17197 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17198
17199         PR target/16459
17200         * pa.c (output_indirect_call): Use %r2 as the link register when
17201         calling $$dyncall with a pc-relative branch.
17202
17203 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
17204
17205         * doc/install.texi (Binaries): Mention OpenPKG.
17206
17207 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
17208
17209         Fix PR tree-optimization/15555
17210         * tree-dfa.c (dump_variable): If the variable is a pointer
17211         SSA_NAME, also dump its points-to information.
17212         * tree-flow.h (struct ptr_info_def): Add field
17213         is_dereferenced.
17214         (dump_points_to_info_for): Declare.
17215         (debug_points_to_info_for): Declare.
17216         * tree-optimize.c (init_tree_optimization_passes): Add a
17217         second alias analysis pass after DOM2.
17218         Move pass_del_pta to a later spot.
17219         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
17220         create a name tags when we find a dereferenced pointer.  Just
17221         mark the pointer dereferenced.
17222         (collect_points_to_info_for): Move code to clear points-to
17223         information to create_name_tags.
17224         (create_name_tags): New function.
17225         (compute_flow_sensitive_aliasing): Call it.
17226         (setup_pointers_and_addressables): Mark type tags for renaming
17227         here instead of ...
17228         (create_memory_tag): ... here.
17229         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
17230         (dump_points_to_info_for): Declare extern.
17231         (debug_points_to_info_for): New function.
17232
17233 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
17234
17235         * config/arc/arc.md: Switch to DFA-based scheduler description.
17236         * config/arc/arc.c: Switch to DFA-based scheduler description.
17237
17238 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17239
17240         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
17241         pointer.
17242
17243 2004-07-09  Richard Henderson  <rth@redhat.com>
17244
17245         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
17246         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17247         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
17248         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
17249
17250         * config/v850/v850-protos.h (v850_va_arg): Remove.
17251         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17252         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
17253         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
17254         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
17255         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
17256
17257 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17258
17259         PR target/12133
17260         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
17261         and DImode to use +/-4k offset.
17262
17263 2004-07-09  Richard Henderson  <rth@redhat.com>
17264
17265         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
17266         Remove.
17267         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17268         (xstormy16_gimplify_va_arg_expr): Rewrite from
17269         xstormy16_expand_builtin_va_arg.
17270         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
17271
17272         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
17273         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
17274
17275         * config/sh/sh-protos.h (sh_va_arg): Remove.
17276         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17277         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
17278         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
17279
17280         * config/pa/pa-protos.h (hppa_va_arg): Remove.
17281         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17282         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
17283         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
17284
17285         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
17286         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17287         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
17288         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
17289
17290 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17291
17292         * config/sparc/sparc.md (return): Rewrite length formula.
17293         * config/sparc/sparc.c (output_return): Pass 1 as 5th
17294         argument to final_scan_insn when in a delay slot.
17295         (output_sibcall): Likewise.
17296
17297 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
17298
17299         * arm.c (arm_cpp_interwork): New variable.
17300         (arm_override_options): Set it if TARGET_INTERWORK was on the command
17301         line.
17302         * arm.h (arm_cpp_interwork): Declare it.
17303         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
17304         __THUMB_INTERWORK__ in the preprocessor.
17305
17306 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
17307
17308         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
17309
17310 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
17311
17312         PR target/16416
17313         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
17314         Override default settings to account for -m32 and -m64.
17315
17316 2004-07-08  Randolph Chung  <tausq@debian.org>
17317
17318         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
17319
17320 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
17321
17322         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
17323         before comparing it as such.
17324
17325 2004-07-08  Richard Henderson  <rth@redhat.com>
17326
17327         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
17328         temporary.  Use bit arithmetic to align.
17329
17330 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
17331
17332         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
17333         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
17334         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
17335         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
17336         add_labels_and_missing_jumps, find_jump_block,
17337         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
17338         Likewise.
17339         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
17340         link_btr_uses, move_btr_def): Likewise.
17341         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
17342         expand_builtin_expect_jump): Likewise.
17343         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
17344         * calls.c (expand_call, emit_library_call_value_1): Likewise.
17345         * cfganal.c (forwarder_block_p): Likewise.
17346         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
17347         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
17348         find_bb_boundaries): Likewise.
17349         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
17350         merge_blocks_move_predecessor_nojumps,
17351         merge_blocks_move_successor_nojumps, insns_match_p,
17352         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
17353         try_optimize_cfg): Likewise.
17354         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
17355         * cfglayout.c (skip_insns_after_block, label_for_bb,
17356         record_effective_endpoints, insn_locators_initialize,
17357         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
17358         * cfgmainloop.c (create_loop_notes): Likewise.
17359         * cfgrtl.c (delete_insn, delete_insn_chain,
17360         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
17361         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
17362         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
17363         redirect_branch_edge, force_nonfallthru_and_redirect,
17364         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
17365         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
17366         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
17367         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
17368         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
17369         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
17370         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
17371         * combine.c (combine_instructions, can_combine_p, try_combine,
17372         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
17373         distribute_notes, distribute_links, insn_cuid): Likewise.
17374         * cse.c (fold_rtx, cse_insn, cse_around_loop,
17375         invalidate_skipped_block, cse_set_around_loop,
17376         cse_end_of_basic_block, cse_main, cse_basic_block,
17377         cse_condition_code_reg): Likewise.
17378         * cselib.c (cselib_process_insn): Likewise.
17379         * ddg.c (create_ddg): Likewise.
17380         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
17381         Likewise.
17382         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
17383         gen_label_die, dwarf2out_var_location): Likewise.
17384         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
17385         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
17386         last_call_insn, active_insn_p, next_label, prev_label,
17387         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
17388         add_insn_before, remove_insn, add_function_usage_to,
17389         reorder_insns, find_line_note, remove_unnecessary_notes,
17390         emit_insn_after_1, classify_insn): Likewise.
17391         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
17392         connect_post_landing_pads, sjlj_mark_call_sites,
17393         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
17394         can_throw_internal, can_throw_external, set_nothrow_function_flags,
17395         convert_to_eh_region_ranges): Likewise.
17396         * explow.c (optimize_save_area_alloca): Likewise.
17397         * expr.c (expand_expr_real): Likewise.
17398         * final.c (insn_current_reference_address, compute_alignments,
17399         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
17400         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
17401         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
17402         propagate_block_delete_insn, propagate_one_insn,
17403         init_propagate_block_info, propagate_block, libcall_dead_p,
17404         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
17405         Likewise.
17406         * function.c (instantiate_virtual_regs, reorder_blocks_1,
17407         expand_function_start, expand_function_end, contains,
17408         thread_prologue_and_epilogue_insns,
17409         reposition_prologue_and_epilogue_notes): Likewise.
17410         * gcse.c (constprop_register, bypass_conditional_jumps,
17411         insert_insn_end_bb, gcse_after_reload): Likewise.
17412         * genemit.c (gen_expand, gen_split): Likewise.
17413         * genpeep.c (gen_peephole, main): Likewise.
17414         * global.c (build_insn_chain): Likewise.
17415         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
17416         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
17417         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
17418         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
17419         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
17420         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
17421         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
17422         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
17423         dead_or_predicable): Likewise.
17424         * integrate.c (try_constants): Likewise.
17425         * jump.c (rebuild_jump_labels, cleanup_barriers,
17426         purge_line_number_notes, init_label_info, mark_all_labels,
17427         squeeze_notes, get_label_before, get_label_after,
17428         reversed_comparison_code_parts, simplejump_p, pc_set,
17429         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
17430         delete_barrier, delete_prior_computation, delete_computation,
17431         delete_related_insns, delete_for_peephole, redirect_jump):
17432         Likewise.
17433         * lcm.c (optimize_mode_switching): Likewise.
17434         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
17435         Likewise.
17436         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
17437         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
17438         * loop-iv.c (simplify_using_assignment): Likewise.
17439         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
17440         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
17441         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
17442         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
17443         check_insn_for_givs, check_final_value, update_giv_derive,
17444         basic_induction_var, product_cheap_p, check_dbra_loop,
17445         loop_insn_first_p, last_use_this_basic_block,
17446         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
17447         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
17448         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
17449         sms_schedule_by_order): Likewise.
17450         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
17451         * postreload.c (reload_cse_simplify_operands, reload_combine,
17452         reload_cse_move2add): Likewise.
17453         * predict.c (can_predict_insn_p, estimate_probability,
17454         expected_value_to_br_prob, process_note_predictions): Likewise.
17455         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
17456         * profile.c (branch_prob): Likewise.
17457         * ra-build.c (live_out_1, livethrough_conflicts_bb,
17458         detect_webs_set_in_cond_jump): Likewise.
17459         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
17460         ra_print_rtl_with_bb): Likewise.
17461         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
17462         * recog.c (next_insn_tests_no_inequality, find_single_use,
17463         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
17464         * reg-stack.c (next_flags_user, record_label_references,
17465         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
17466         compensate_edge, convert_regs_1): Likewise.
17467         * regclass.c (scan_one_insn): Likewise.
17468         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
17469         regmove_optimize, fixup_match_1, single_set_for_csa,
17470         combine_stack_adjustments_for_block): Likewise.
17471         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
17472         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
17473         find_equiv_reg): Likewise.
17474         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
17475         reload_as_needed, emit_input_reload_insns, do_output_reload,
17476         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
17477         Likewise.
17478         * reorg.c (find_end_label, emit_delay_sequence,
17479         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
17480         get_jump_flags, rare_destination, mostly_true_jump,
17481         try_merge_delay_insns, redundant_insn, own_thread_p,
17482         fill_simple_delay_slots, fill_slots_from_thread,
17483         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
17484         dbr_schedule): Likewise.
17485         * resource.c (find_basic_block, next_insn_no_annul,
17486         find_dead_or_set_registers, mark_target_live_regs): Likewise.
17487         * rtl.h (RTX_PREV): Likewise.
17488         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
17489         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
17490         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
17491         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
17492         tablejump_p, computed_jump_p, insns_safe_to_move_p,
17493         find_first_parameter_load, can_hoist_insn_p): Likewise.
17494         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
17495         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
17496         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
17497         schedule_ebbs): Likewise.
17498         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
17499         is_conditionally_protected, can_schedule_ready_p,
17500         add_branch_dependences, debug_dependencies): Likewise.
17501         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
17502         Likewise.
17503         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
17504         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
17505         set_dominates_use, ujump_to_loop_cont): Likewise.
17506         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
17507         * varasm.c (output_constant_pool_1): Likewise.
17508
17509 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
17510
17511         * tree-scalar-evolution.c: New file.
17512         * tree-scalar-evolution.h: New file.
17513         * tree-ssa-loop-niter.c: New file.
17514         * Makefile.in (SCEV_H): New.
17515         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
17516         * cfgloop.h (struct loop): Add bounds field.
17517         * tree-flow.h (struct tree_niter_desc): New type.
17518         (number_of_iterations_cond, number_of_iterations_exit,
17519         loop_niter_by_eval, find_loop_niter_by_eval,
17520         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
17521         free_numbers_of_iterations_estimates): Declare.
17522         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
17523         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
17524         * doc/invoke.texi (max-iterations-to-track): Document.
17525
17526 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
17527
17528         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
17529         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
17530         (MODE_AFTER): Add cast appropriately.
17531         * config/sh/sh.md (movdi splitter): Likewise.
17532         (casesi_worker_2): Add const qualifier appropriately.
17533         (eh_return): Remove unused variable.
17534         (insv): Initialize v;
17535
17536 2004-07-08  Richard Henderson  <rth@redhat.com>
17537
17538         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
17539         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17540         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
17541         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
17542         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
17543
17544         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
17545         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17546         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
17547         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
17548
17549         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
17550         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17551         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
17552         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
17553
17554         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
17555         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17556         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
17557         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
17558
17559         * config/i860/i860-protos.h (i860_va_arg): Remove.
17560         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17561         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
17562         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
17563
17564 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17565
17566         * system.h: Prototype getpagesize if missing.
17567         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
17568         * configure: Regenerate.
17569         * config.in: Regenerate.
17570
17571 2004-07-08  Richard Henderson  <rth@redhat.com>
17572
17573         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
17574         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17575         (fr30_gimplify_va_arg_expr): New.
17576         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
17577         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
17578
17579 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
17580
17581         PR target/16414
17582         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
17583         of asm_noperands result.
17584
17585 2004-07-08  Richard Henderson  <rth@redhat.com>
17586
17587         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
17588         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17589         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
17590         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
17591
17592 2004-07-08  Richard Henderson  <rth@redhat.com>
17593
17594         * builtins.c (ind_gimplify_va_arg_expr): New.
17595         * tree.h (ind_gimplify_va_arg_expr): Declare.
17596         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
17597
17598 2004-07-08  Jan Beulich  <jbeulich@novell.com>
17599
17600         * expmed.c (extract_bit_field): Correct condition to use vec_extract
17601         patterns also on vector elements other than the first one.
17602         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
17603         break statements.
17604
17605 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
17606
17607         * config/rs6000/darwin-ldouble.c: Correct reference
17608         to the Linnainmaa paper.
17609
17610 2004-07-08  Richard Henderson  <rth@redhat.com>
17611
17612         * config/arc/arc-protos.h (arc_va_arg): Remove.
17613         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17614         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
17615         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
17616
17617         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
17618         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
17619         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
17620         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
17621
17622 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17623
17624         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
17625
17626 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17627
17628         * c-decl.c (static_ctors, static_dtors): Make static.
17629         (pop_file_scope): Call c_common_write_pch and
17630         cgraph_finalize_compilation_unit here.
17631         (build_cdtor): Moved here from c-objc-common.c; simplify.
17632         (c_write_global_declarations_1): Clarify comment.
17633         (c_write_global_declarations): Close the external scope before
17634         doing anything else.  Call build_cdtor, cgraph_optimize, and
17635         mudflap_finish_file here.
17636         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
17637         Clarify comment.
17638         * c-objc-common.c: No need to include cgraph.h.
17639         (build_cdtor): Moved to c-decl.c.
17640         (c_objc_common_finish_file): Delete.
17641         * c-tree.h: Update to match.
17642         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
17643         (generate_static_references): Set TREE_USED before calling finish_decl.
17644         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
17645         on the static_instances_decl.
17646
17647 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
17648
17649         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
17650         decls when there is only one input translation unit.
17651         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
17652         change of 2004-07-05; do not treat declarations with
17653         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
17654         * opts.c (cur_in_fname): Delete.
17655         * opts.h: Likewise.
17656         * tree.c: Revert changes of 2004-07-05; no special treatment
17657         for TRANSLATION_UNIT_DECLs.
17658         * Makefile.in (tree.o): Update dependencies.
17659
17660 2004-07-08  Roger Sayle  <roger@eyesopen.com>
17661
17662         * builtins.c (fold_builtin_strcpy): Merge functionality from
17663         simplify_builtin_strcpy.  Add additional len argument.  No longer
17664         static.  Remove function prototype.
17665         (fold_builtin_strncpy): Likewise integrate functionality from
17666         simplify_builtin_strncpy.  Add additional slen argument.  No
17667         longer static.  Remove function prototype.
17668         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
17669         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
17670         types of "ignore" and "unlocked" parameters to bool.
17671         (fold_builtin_1):  Add additional ignore argument.  Call renamed
17672         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
17673         builtins.  Update arguments to fold_builtin_strncpy and
17674         fold_builtin_strcpy.  Add function prototype.
17675         (fold_builtin): Add additional Boolean ignore argument to pass
17676         to fold_builtin_1.
17677         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
17678         and fold_builtin_strncpy instead of simplify_builtin_fputs,
17679         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
17680
17681         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
17682         simplify_builtin_strncpy): Delete function prototypes.
17683         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
17684         fold_builtin_strncpy): Add function prototypes here.
17685         (fold_builtin): Update function prototype with new "bool ignore".
17686
17687         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
17688         (ccp_fold_builtin):  Update call to fold_builtin.  Call
17689         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
17690         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
17691         simplify_builtin_strncpy respectively.
17692         * fold-const.c (fold): Update call to fold_builtin.
17693
17694 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17695
17696         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
17697         to strcpy.
17698
17699         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
17700         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
17701         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
17702         * calls.c: Remove ifdefs of macros above.
17703         * functions.c: Likewise.
17704         * expr.c: Likewise.
17705
17706 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17707
17708         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
17709         (arch attribute): Delete.
17710         (current_function_calls_alloca attribute): Rename into calls_alloca.
17711         (calls_eh_return): New attribute.
17712         (leaf_function): Likewise.
17713         (length attribute): Fix formula for sibcalls.
17714         (return insn): Correctly compute the 'length' attribute.
17715         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
17716
17717 2004-07-08  Richard Henderson  <rth@redhat.com>
17718
17719         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
17720         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
17721         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
17722         * tree-eh.c (lower_eh_constructs_1): Likewise.
17723         * tree-sra.c (sra_walk_modify_expr): Likewise.
17724         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
17725         (eliminate_unnecessary_stmts): Likewise.
17726         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
17727         * tree-tailcall.c (optimize_tail_call): Likewise.
17728         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
17729
17730 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17731             Jakub Jelinek  <jakub@redhat.com>
17732
17733         * config/i386/i386.c (override_options): Enable
17734         SSE prefetches with -mtune, as long as we are
17735         compiling for i686 or higher.  All i686 processors
17736         accept SSE prefetches as NOPS, some i586's don't.
17737
17738 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17739
17740         PR target/10567
17741         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
17742
17743 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17744
17745         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
17746         the handling of clobbering ASM_EXPRs.
17747
17748 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17749
17750         PR target/16430
17751         * config/sparc/sparc.c (function_value): In 64-bit mode,
17752         return the aggregates larger than 16 bytes like unions.
17753
17754 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17755
17756         PR target/16199
17757         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
17758         'temp' is zero, generate new pseudos as needed and emit the
17759         sequence of insns in single-assignment form.  Resync comments
17760         with code.
17761         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
17762         function before reload.
17763
17764 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
17765
17766         * vec.c (vec_assert_fail): Remove duplicate 'function'.
17767
17768         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
17769
17770         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
17771         Allocation is signed.
17772         (VEC_reserve): Return flag, allocation is signed.
17773
17774 2004-07-08  Richard Henderson  <rth@redhat.com>
17775
17776         * tree-ssa-ccp.c (fold_stmt): Get type directly from
17777         OBJ_TYPE_REF_OBJECT.
17778
17779 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
17780             Neil Booth  <neil@daikokuya.co.uk>
17781
17782         PR c/2511
17783         PR c/3325
17784         * c-decl.c (finish_struct): Ensure bit-fields are given the
17785         correct type.
17786         * c-common.c (c_common_signed_or_unsigned_type): For C, require
17787         the precision to match as well as the mode.
17788         * expr.c (reduce_to_bit_field_precision): New function.
17789         (expand_expr_real_1): Reduce expressions of bit-field type to
17790         proper precision.
17791         * langhooks.h (reduce_bit_field_operations): New hook.
17792         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
17793         Define.
17794         * c-lang.c, objc/objc-lang.c
17795         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
17796         * objc/objc-act.c (check_ivars): Convert types to bit-field types
17797         before checking.
17798         * tree.c (build_nonstandard_integer_type): New function.
17799         * tree.h (build_nonstandard_integer_type): New prototype.
17800         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
17801         conversions between integer and boolean types as useless.
17802
17803 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17804
17805         * c-common.c (c_common_nodes_and_builtins): Do not
17806         create __builtin_ptrdiff_t and __builtin_size_t.
17807
17808 2004-07-08  Andrew Pinski  <apinski@apple.com>
17809
17810         * Makefile.in (libbackend.o): Add -combine to the gcc
17811         command line.
17812
17813 2004-07-08  Nick Clifton  <nickc@redhat.com>
17814
17815         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
17816         Set to -Os.
17817
17818 2004-07-08  Richard Henderson  <rth@redhat.com>
17819
17820         * except.c (expand_eh_region_start, expand_eh_region_end,
17821         expand_eh_handler, expand_eh_region_end_cleanup,
17822         expand_start_all_catch, expand_start_catch, expand_end_catch,
17823         expand_end_all_catch, expand_eh_region_end_allowed,
17824         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
17825         expand_eh_region_end_fixup): Remove.
17826         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
17827         cleanups, outer_cleanups, label_chain, exception_region.
17828         (struct goto_fixup): Remove stack_level, cleanup_list_list.
17829         (struct label_chain): Remove.
17830         (struct stmt_status): Remove x_stack_block_stack.
17831         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
17832         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
17833         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
17834         end_cleanup_deferral, last_cleanup_this_contour,
17835         containing_blocks_have_cleanups_or_stack_level,
17836         any_pending_cleanups): Remove.
17837         (expand_null_return_1): Take no arguments.
17838         (expand_label, expand_naked_return, expand_return,
17839         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
17840         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
17841         expand_end_case_type): Don't use any of them.
17842         * calls.c (expand_call): Likewise.
17843         * dojump.c (do_jump): Likewise.
17844         * function.c (expand_function_end): Likewise.
17845         * expr.c (store_expr, expand_expr_real_1): Likewise.
17846         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
17847         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
17848         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
17849         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
17850         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
17851         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
17852         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
17853         for WITH_CLEANUP_EXPR.
17854         (gimple_push_cleanup): Likewise.
17855         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
17856         * print-tree.c (print_node): Likewise.
17857         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
17858         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
17859         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
17860         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
17861         (GOTO_SUBROUTINE_EXPR): Remove.
17862         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
17863         (DECL_TOO_LATE): Remove.
17864         * except.h, tree.h: Update decls.
17865
17866 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
17867
17868         * explow.c (optimize_save_area_alloca): Do not accept parameters.
17869         * passes.c (rest_of_handle_final): Handle symout.
17870         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
17871         Push timevar here.
17872         (rest_of_handle_sched): Break out SMS.  Remove ifs for
17873         flag_schedule_insns and flag_modulo_sched.
17874         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
17875         collect at the end.
17876         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
17877         (rest_of_handle_partition_blocks, rest_of_handle_sms,
17878         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
17879         rest_of_handle_mode_switching, rest_of_handle_jump,
17880         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
17881         rest_of_handle_jump2, rest_of_handle_postreload,
17882         rest_of_handle_flow2, rest_of_clean_state,
17883         rest_of_handle_shorten_branches,
17884         rest_of_handle_prologue_epilogue,
17885         rest_of_handle_branch_target_load_optimize): New.
17886         (rest_of_compilation): Call the above.  Remove ggc_collect
17887         calls moved to rest_of_handle_*.
17888         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
17889
17890         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
17891         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
17892         * except.h (set_nothrow_function_flags): Update comment.
17893         * function.c (current_function_nothrow): Remove.
17894         * output.h (current_function_nothrow): Remove.
17895         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
17896         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
17897
17898 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
17899
17900         PR bootstrap/16326
17901         * reorg.c: Revert 2004-06-30 change.
17902         (find_end_label): If HAVE_epilogue and !HAVE_return,
17903         return 0 instead of creating a label at the end of the insn chain.
17904         (optimize_skip): Account for the failure mode of find_end_label.
17905         (fill_simple_delay_slots): Likewise.
17906         (fill_slots_from_thread): Likewise.
17907         (relax_delay_slots): Likewise.
17908
17909 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
17910
17911         * tree-flow.h (addressable_vars): Declare.
17912         * tree-ssa-alias.c (addressable_vars): Define.
17913         (setup_pointers_and_addressables): Add addressable variables
17914         to addressable_vars.
17915         * tree-ssa-operands.c (get_stmt_operands): Move
17916         handling of ASM_EXPRs ...
17917         (get_asm_expr_operands): ... here.
17918         When the ASM_EXPR clobbers memory, also clobber addressable
17919         variables.
17920         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
17921         (delete_tree_ssa): Reset addressable_vars.
17922
17923 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17924             Richard Henderson  <rth@redhat.com>
17925
17926         * varasm.c (assemble_variable): Use assemble_zeros for
17927         zero-initialized variables.
17928         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
17929         for SECCAT_BSS and SECCAT_TBSS.
17930
17931 2004-07-07  Jan Beulich  <jbeulich@novell.com>
17932
17933         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
17934
17935         * expmed.c (emit_store_flag): Also special-case double-word
17936         (in-)equality comparison against -1.
17937
17938         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
17939         passing arguments the containers for which are registers.
17940
17941         * calls.c (emit_library_call_value_1): Use mode of function parameter
17942         rather than that of argument since constants have none.
17943
17944 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
17945
17946         Introduce H8SX support.
17947         * expr.c (expand_strcpy): Renamed and moved to...
17948         * builtins.c (expand_movstr): ... here.  Tweak.
17949         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
17950         computed or has side effects.
17951         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
17952         unused, or if mempcpy fails.  Adjust the return value in the
17953         latter case.  Use movstr if everything else fails.
17954         * doc/md.texi (movstr): Document.
17955         (movmemM, clrmemM): Fix explanation of memory block operands.
17956         * config/h8300/h8300.md (stpcpy): Renamed to...
17957         (movstr): ... this.  Adjust.
17958         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17959         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
17960         movmem* and clrstr* to clrmem*.
17961         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
17962         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
17963         GENERAL_REGS, always.
17964         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
17965         getting the stack pointer as addr.
17966         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
17967         from general_operand_dst.
17968         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
17969         variant of...
17970         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
17971         instead of requiring it to match only before reload.
17972         (stpcpy_internal_normal): New, normal-mode variant of...
17973         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
17974         `D' instead of requiring it to match only before reload.
17975         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
17976         mode argument.
17977         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
17978         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
17979         h8300_get_index.
17980         * config/h8300/h8300.md (attr type): Add call.
17981         (attr can_delay): If type is call, set it no.
17982         (call, call_value): Set type to call.
17983         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
17984         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
17985         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
17986         * tree.c (get_narrower): Don't narrow integral types into
17987         non-integral types.
17988         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
17989         frame_size *before* the first use.
17990         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
17991         on input.
17992         (peephole2): Don't widen instructions that push SP.  Move
17993         decrement of SP to the end of all stm-generating peepholes.
17994         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17995         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
17996         and OR to set it to all ones.
17997         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
17998         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
17999         (call, call_value): Set can_delay to "no".
18000         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
18001         * config/h8300/h8300.md (extzv): Make subreg check more robust.
18002         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
18003         * config/h8300/h8300.md (*brabit): Remove.
18004         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
18005         zero_extract.  Use bit_memory_operand as the predicate for
18006         operand 1 and 'WU' as the constraint.  Check the difference
18007         between the base length and the final one when deciding which
18008         type of branch to use.
18009         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
18010         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
18011         Use convert_move to extend the result for TARGET_H8300SX.  Check
18012         for QImode memory references.  Optimize the case where the
18013         destination is a paradoxical subreg.
18014         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
18015         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
18016         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
18017         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
18018         * config/h8300/h8300.md: Include mova.md
18019         (length_table): Add mova and mova_zero.
18020         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
18021         after all constant addresses for '%R', '%X', '%T' and '%S'.
18022         (h8300_mova_length): New function.
18023         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
18024         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
18025         dependencies for s-config, etc.
18026         * config/h8300/gemova.sh: New file.
18027         * config/h8300/mova.md: Generated.
18028         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
18029         * config/h8300/h8300.c (h8300_bitfield_length): New.
18030         (nibble_operand): Adjust.
18031         (h8300_binary_length): Handle conditional binary op.
18032         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
18033         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
18034         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
18035         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
18036         constraints.  WU is introduced as a variant of U that requires a
18037         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
18038         * config/h8300/h8300.md (attr type): Added bitbranch.
18039         (attr length_table): Added bitfield and bitbranch.
18040         (attr length): Compute bitbranch length.
18041         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
18042         least-significant bit of a byte.
18043         (brabit, brabc, brabs): New.
18044         (insv, extzv): Emit bfst and bfld on H8300SX.
18045         (bfld, bfst, seq, sne): New.
18046         (bstzhireg, cmpstz, bstz, bistz): New.
18047         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
18048         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
18049         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
18050         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
18051         (h8sx_unary_memory_operator): New function.
18052         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
18053         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
18054         * config/h8300/h8300.md: Add peepholes to combine reloads and
18055         arithmetic insns.
18056         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
18057         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
18058         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
18059         (and?i, ior?i, xor?i): Likewise.
18060         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
18061         * config/h8300/h8300.c: Move enums and prototypes to head of file.
18062         Various whitespace fixes.
18063         (h8300_constant_length): New function, split out from...
18064         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
18065         (h8300_classify_operand): Use IN_RANGE.
18066         (h8300_classify_operand): Use h8300_constant_length.
18067         (h8300_short_move_mem_p): Tighten size check.
18068         (h8sx_mergeable_memrefs_p): Tighten equality check.
18069         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
18070         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
18071         for -msx.
18072         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
18073         * config/h8300/crtn.asm: Likewise.
18074         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
18075         if __H8300SX__ is defined.
18076         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
18077         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
18078         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
18079         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
18080         addresses as mode-dependent.
18081         * config/h8300/h8300.c (print_operand_address): Update call to
18082         h8300_get_index.
18083         (h8300_get_index): Take a mode argument.  Rework to fix an
18084         earlier misunderstanding.
18085         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
18086         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
18087         into a register if TARGET_H8300SX.
18088         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
18089         TARGET_H8300SX.  Also disable related define_splits.
18090         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
18091         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
18092         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
18093         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
18094         * config/h8300/h8300.h (OK_FOR_Z): New macro.
18095         (EXTRA_CONSTRAINT_STR): Check it.
18096         * config/h8300/h8300.c (h8300_classify_operand): Accept null
18097         class arguments.
18098         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
18099         * config/h8300/h8300.md (length_table): Add mov_imm4.
18100         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
18101         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
18102         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
18103         be a label.
18104         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
18105         * config/h8300/h8300.c (h8300_reorg): New function.
18106         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18107         * config/h8300/h8300.md (length): Subtract the length of the
18108         delay slot from (pc) when checking the range of forward branches.
18109         (delay_slot, can_delay): New attributes.
18110         (define_delay): Add bra/s handling.
18111         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
18112         (jump): Add delayed-branch handling.
18113         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
18114         * expr.c (expand_strcpy): New function.
18115         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
18116         (expand_builtin_stpcpy): Likewise.
18117         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
18118         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
18119         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
18120         handling to improve register allocation for -fno-omit-frame-pointer.
18121         (h8sx_split_movmd): Delete, moving er6 handling into...
18122         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
18123         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
18124         (movmd): Add calls to copy_rtx.
18125         (movmd_internal): In the second alternative, allow the initial and
18126         final destination registers to be different .  Update the splitter
18127         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
18128         instead of h8sx_split_movmd.
18129         (stpcpy, movsd): New expanders.
18130         (movsd_internal): New define_insn.
18131         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
18132         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
18133         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
18134         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
18135         and DESTINATION_REGS.
18136         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
18137         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
18138         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
18139         (h8300_move_ratio): Declare.
18140         (MOVE_RATIO): Use it.
18141         * config/h8300/h8300.c (h8300_move_ratio): New variable.
18142         (h8300_init_once): Initialize it.
18143         (h8300_reg_class_from_letter): New function.
18144         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
18145         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
18146         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
18147         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
18148         (movstrsi, movmd): New expanders.
18149         (movmd_internal): New insn.
18150         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
18151         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
18152         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
18153         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
18154         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
18155         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18156         * config/h8300/h8300.c (nibble_operand): Fix warning.
18157         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
18158         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
18159         (movsf_h8300h): Disable for TARGET_H8300SX.
18160         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18161         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
18162         h8300_stm_parallel and h8300_return_parallel.
18163         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
18164         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
18165         h8300_stm_parallel, h8300_return_parallel): New functions.
18166         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
18167         if TARGET_H8300SX.  Use h8300_push_pop.
18168         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
18169         and final pop when generating h8sx code.  Always emit some form
18170         of return insn.
18171         * config/h8300/h8300.md: Don't enforce register alignment in
18172         stm peepholes if TARGET_H8300SX.
18173         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
18174         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
18175         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
18176         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
18177         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
18178         (MULTILIB_DIRNAMES): Add a directory for it.
18179         (MULTILIB_MATCHES): Delete.
18180         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
18181         * final.c (walk_alter_subreg): Handle addresses with subregs
18182         inside a ZERO_EXTEND or AND.
18183         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
18184         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
18185         if TARGET_H8300SX.
18186         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
18187         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
18188         @(dd,Rn.w) and @(dd,ERn.L).
18189         (h8300_displacement_size): Take the whole address as argument.
18190         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
18191         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
18192         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
18193         (h8sx_mergeable_memrefs_p): Declare.
18194         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
18195         (HAVE_PRE_INCREMENT): Likewise.
18196         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
18197         addresses for TARGET_H8300SX,
18198         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
18199         and POST_DEC.
18200         (movb_length_table, movl_length_table): New tables.
18201         (movw_length_table): Define to movb_length_table.
18202         (h8300_displacement_size): New, split out from...
18203         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
18204         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
18205         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
18206         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
18207         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
18208         (compute_plussi_length, compute_plussi_cc): Update accordingly.
18209         (h8sx_unary_shift_operator): Get the mode from the operator.
18210         (binary_shift_operator): Likewise.
18211         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
18212         a memory reference, check whether the reference is offsettable.
18213         (length_table): Add movb, movw and movl.
18214         (movqi): Add new h8sx pattern.  Don't force one operand to be a
18215         register when generating h8sx code.
18216         (movhi, movsi, movsf): Likewise.
18217         (movstrictqi): Use the length_table attribute.
18218         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
18219         (addqi3): Split into a define_expand and define_insn.  Don't accept
18220         memory operands in the expander.  Use h8300_operands_match_p to
18221         check for matching operands in the define_insn.
18222         (subqi3, negqi2, one_cmplqi2): Likewise.
18223         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
18224         in any patterns that are unused in h8sx code.  In the h8sx patterns,
18225         use h8300_operands_match_p to check whether operands match.
18226         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
18227         one_cmpl[hs]i3): Likewise.
18228         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
18229         in the expander.
18230         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
18231         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
18232         (h8300_insn_length_from_table): Add a second parameter.
18233         (output_h8sx_shift): Declare.
18234         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
18235         (EXTRA_CONSTRAINT): Replace with...
18236         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
18237         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
18238         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
18239         and h8sx_binary_shift_operator.
18240         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
18241         for TARGET_H8300SX.
18242         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
18243         (bit_memory_operand, fix_bit_operand): Likewise.
18244         (h8300_length_table_for_insn): Remove.
18245         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
18246         instructions.
18247         (h8300_short_immediate_length, h8300_binary_length): New functions.
18248         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
18249         (output_plussi): Use sub to add negative constants.
18250         (compute_plussi_length): Adjust accordingly.
18251         (h8sx_single_shift_type): New enum.
18252         (h8sx_single_shift, h8sx_unary_shift_operator,
18253         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
18254         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
18255         single h8sx instruction.  Return false in this case.
18256         * config/h8300/h8300.md (length_table): Add short_immediate.
18257         (length): Pass the operand array to h8300_insn_length_from_table.
18258         (adjust_length): Assume "no" for insns with a length_table attribute.
18259         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
18260         (*addhi3_h8300hs): Don't use for h8sx.
18261         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
18262         and sub.w #xx:3.
18263         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
18264         1's predicate to nonimmediate_operand.  Only skip default expansion
18265         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
18266         for single h8sx shift instructions.
18267         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
18268         * config/h8300/h8300.c (nibble_operand): Split out of...
18269         (reg_or_nibble_operand): ... this.
18270         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
18271         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
18272         umulhisi3): Introduce expand, and introduce separate insns for
18273         sign- or zero-extended REG and already-extended CONST_INT.
18274         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
18275         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
18276         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
18277         (subhi3): Likewise.  Don't accept immediates for operand 1.
18278         Remove the early clobber from second alternative of the h8300s pattern.
18279         (subsi3): Generalize for h8sx.  Force operand 2 into a register
18280         on plain h8300 targets.
18281         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
18282         (subsi3_h8300h): Generalize for h8sx.
18283         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
18284         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
18285         * config/h8300/h8300.c (reg_or_nibble_operand): New.
18286         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
18287         (TARGET_H8300SXMUL): New.
18288         (CONST_OK_FOR_P): New.
18289         (CONST_OK_FOR_LETTER_P): Adjust.
18290         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
18291         umulhisi3): Accept 4-bit immediate on H8SX.
18292         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
18293         (udivsi3, divhi3, udivsi3, divsi3): New.
18294         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
18295         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
18296         * config/h8300/h8300.h (OK_FOR_Q): New macro.
18297         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
18298         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
18299         Add ADDRESSOF to the bit_operand entry.
18300         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
18301         (h8300_src_operand): Likewise.
18302         (bit_operand): Check nonimmediate_operand rather than general_operand.
18303         Accept any nonimmediate_operand in h8sx code.
18304         (h8300_and_costs): Initialize operands[1].
18305         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
18306         (h8300_operand_class): New enum.
18307         (h8300_length_table): New typedef.
18308         (addb_length_table, addw_length_table, addl_length_table,
18309         logicl_length_table): New tables.
18310         (logicb_length_table, logicw_length_table): New macros.
18311         (h8300_classify_operand, h8300_length_from_table,
18312         h8300_length_table_for_insn, h8300_unary_length,
18313         h8300_insn_length_from_table): New functions.
18314         (output_plussi): Only use adds and subs for register destinations.
18315         Disable redundant clause.
18316         (compute_plussi_cc): Likewise.
18317         (compute_plussi_length): Likewise.  Use h8300_length_from_table
18318         to work out the length of an insn.
18319         (output_logical_op): Only use narrower immediate instructions
18320         if the destination is a register.
18321         (compute_logical_op_cc): Likewise.
18322         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
18323         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
18324         * config/h8300/h8300.md (length_table): New attribute.
18325         (length): When an instruction has a length_table attribute, use
18326         h8300_insn_length_from_table to calculate its default length.
18327         (cmpqi): Use h8300_dst_operand for the first operand and
18328         h8300_src_operand for the second.
18329         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
18330         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
18331         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
18332         iorsi3, xorhi3, xorsi3): Likewise.
18333         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
18334         so that it allows any combination of operands for TARGET_H8300SX.
18335         (iorqi3, xorqi3): Likewise.
18336         (cmpqi): Use the length_table attribute.
18337         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
18338         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
18339         (cmpqi): Add 'Q' constraint.
18340         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
18341         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
18342         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
18343         * config/h8300/h8300.h (MASK_H8300SX): New macro.
18344         (TARGET_H8300S): True for both -ms and -msx.
18345         (TARGET_H8300SX): New macro.
18346         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
18347         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
18348         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
18349         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
18350         [Temporary change.]
18351         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
18352         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
18353         16-bit pointers and 32-bit ints.
18354         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
18355         CONST_DOUBLE with mode no wider than SImode.
18356         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
18357         output operand.
18358         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
18359         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
18360         or SUBREG thereof.
18361         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
18362         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
18363         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
18364
18365 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
18366
18367         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
18368
18369 2004-07-07  Per Bothner  <per@bothner.com>
18370
18371         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
18372
18373 2004-07-07  Mike Stump  <mrs@apple.com>
18374
18375         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
18376         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
18377         (machopic_finish): Likewise.
18378
18379 2004-07-07  Richard Henderson  <rth@redhat.com>
18380
18381         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
18382         through any value-preserving cast.
18383
18384 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
18385
18386         * function.c (assign_parm_find_data_types): Call
18387         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
18388
18389 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18390
18391         * tree-cfg.c (group_case_labels): Remove case labels that have
18392         the same target as the default case.
18393
18394 2004-07-07  Steven Bosscher  <stevenb@suse.de>
18395
18396         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
18397         regardless of DECL_LANG_SPECIFIC being present or not.
18398         * tree.h (DECL_NUM_STMTS): Purge.
18399
18400 2004-07-07  Andrew Pinski  <apinski@apple.com>
18401
18402         * configure: Regenerate with the right autoconf.
18403
18404 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
18405
18406         * ifcvt.c (total_bb_rtx_cost): New function.
18407         (find_if_case_1): Compare rtx_cost of basic block to cost of
18408         BRANCH_COST insns.
18409         (find_if_case_2): Same.
18410
18411 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
18412
18413         PR target/10567
18414         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
18415         (output_return): Likewise.
18416         (output_sibcall): Abort if !flag_delayed_branch.
18417         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
18418         (emit_and_preserve): New function.
18419         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
18420         indirect jump to the thunked-to function if !flag_delayed_branch.
18421         * config/sparc/sparc.md (delayed_branch): New attribute.
18422         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
18423         attribute to compute the length of the insn.
18424         (goto_handler_and_restore): Likewise.
18425
18426 2004-07-07  Andrew Pinski  <apinski@apple.com>
18427
18428         PR tree-optimization/15777
18429         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
18430
18431         * expr.c (expand_expr_real_1): Fix formating.
18432         BUFFER_REF and IN_EXPR are dead.
18433         * fold-const.c (non_lvalue): BUFFER_REF is dead.
18434         * tree-inline.c (estimate_num_insns_1): Likewise.
18435         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
18436         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
18437         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
18438
18439 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
18440
18441         * collect2.c (dump_file): Don't call cplus_demangle if
18442         HAVE_LD_DEMANGLE is defined.
18443         (main): Pass "--demangle" to ld if no_demangle is not 0 and
18444         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
18445         if HAVE_LD_DEMANGLE is defined.
18446
18447         * configure.ac (--with-demangler-in-ld): Added
18448         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
18449         --with-demangler-in-ld is used.
18450         * config.in: Regenerated.
18451         * configure: Likewise.
18452
18453 2004-07-07  Roger Sayle  <roger@eyesopen.com>
18454
18455         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
18456         for simple floating point operations "fp", double precision
18457         multiplication "dmul", and single and double precision division
18458         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
18459         (ppc630_cost): New table split from ppc620_cost, to distinguish
18460         differences in floating point latencies.
18461         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
18462         (rs6000_rtx_costs): Add support for single and double precision
18463         floating point addition, subtraction, multiplication, division,
18464         fused-multiply-add, fused-multiply-sub, negation, absolute value
18465         and negative absolute value.  Tweak MEM case to use prefered idiom.
18466
18467 2004-07-07  Richard Henderson  <rth@redhat.com>
18468
18469         * tree-flow-inline.h (may_propagate_copy): Move...
18470         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
18471         attempt to copy between types requiring conversion.
18472         * tree-flow.h (may_propagate_copy): Update decl.
18473         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
18474
18475 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
18476
18477         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
18478         from -mtune= option.
18479
18480 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
18481
18482         * builtins.c: Rename movstr*, except for movstrict*, to
18483         movmem* and clrstr* to clrmem*.
18484         * expr.c: Likewise.
18485         * expr.h: Likewise.
18486         * genopinit.c: Likewise.
18487         * integrate.c: Likewise.
18488         * local-alloc.c: Likewise.
18489         * optabs.c: Likewise.
18490         * optabs.h: Likewise.
18491         * config/alpha/alpha.h: Likewise.
18492         * config/alpha/alpha.md: Likewise.
18493         * config/arm/arm-protos.h: Likewise.
18494         * config/arm/arm.c: Likewise.
18495         * config/arm/arm.md: Likewise.
18496         * config/avr/avr.md: Likewise.
18497         * config/c4x/c4x.c: Likewise.
18498         * config/c4x/c4x.md: Likewise.
18499         * config/frv/frv.md: Likewise.
18500         * config/i386/i386-protos.h: Likewise.
18501         * config/i386/i386.c: Likewise.
18502         * config/i386/i386.h: Likewise.
18503         * config/i386/i386.md: Likewise.
18504         * config/i860/i860.c: Likewise.
18505         * config/i860/i860.md: Likewise.
18506         * config/ip2k/ip2k.md: Likewise.
18507         * config/ip2k/libgcc.S: Likewise.
18508         * config/ip2k/t-ip2k: Likewise.
18509         * config/m32r/m32r.c: Likewise.
18510         * config/m32r/m32r.md: Likewise.
18511         * config/mcore/mcore.md: Likewise.
18512         * config/mips/mips.c: Likewise.
18513         * config/mips/mips.md: Likewise.
18514         * config/ns32k/ns32k.c: Likewise.
18515         * config/ns32k/ns32k.h: Likewise.
18516         * config/ns32k/ns32k.md: Likewise.
18517         * config/pa/pa.c: Likewise.
18518         * config/pa/pa.md: Likewise.
18519         * config/pdp11/pdp11.h: Likewise.
18520         * config/pdp11/pdp11.md: Likewise.
18521         * config/rs6000/rs6000.c: Likewise.
18522         * config/rs6000/rs6000.md: Likewise.
18523         * config/s390/s390-protos.h: Likewise.
18524         * config/s390/s390.c: Likewise.
18525         * config/s390/s390.md: Likewise.
18526         * config/sh/lib1funcs.asm: Likewise.
18527         * config/sh/sh.c: Likewise.
18528         * config/sh/sh.md: Likewise.
18529         * config/sh/t-sh: Likewise.
18530         * config/sparc/sparc.h: Likewise.
18531         * config/vax/vax.md: Likewise.
18532         * config/xtensa/xtensa.c: Likewise.
18533         * config/xtensa/xtensa.md: Likewise.
18534         * doc/invoke.texi: Likewise.
18535         * doc/md.texi: Likewise.
18536         * doc/rtl.texi: Likewise.
18537
18538 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
18539
18540         PR target/16407
18541         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
18542         * config/mips/mips.c (mips_declare_common_object): New function,
18543         mostly split out from...
18544         (mips_output_aligned_decl_common): ...here.
18545         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
18546         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
18547         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
18548         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
18549
18550 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18551
18552         PR c/16392
18553         * function.c (assign_parms): Fix typo from previous change.
18554
18555 2004-07-07  Jason Merrill  <jason@redhat.com>
18556
18557         PR c++/15815
18558         * doc/extend.texi (C++ Interface): Correct information and
18559         discourage use.
18560
18561 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
18562
18563         PR target/16130
18564         PR target/16142
18565         PR target/16143
18566         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
18567         insn.
18568
18569 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
18570
18571         PR target/1679.
18572         * config/m32r/m32r.c (m32r_function_symbol): New function:
18573         Generate a symbol name RTX with the correct m32r specific flags
18574         set.
18575         (block_move_call): Use new function to generate correct symbol.
18576         * config/m32r/m32r-protos.h: Add prototype for new funcion.
18577         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
18578         function.
18579
18580 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18581
18582         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
18583         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
18584         TYPE_BINFO_BASETYPE): Remove.
18585         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
18586         to ...
18587         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
18588         here.
18589         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
18590         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
18591         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
18592         (struct tree_binfo): Rename base_types to base_binfos.
18593         * alias.c (record_component_aliases): Adjust BINFO macros.
18594         * dbxout.c (dbxout_type): Likewise.
18595         * dwarf2out.c (gen_member_die): Likewise.
18596         * sdbout.c (sdbout_one_type): Likewise.
18597         * tree-dump.c (deque_and_dump): Likewise.
18598         * config/i386/i386.c (classify_argument,
18599         contains_128bit_aligned_vector_p): Likewise.
18600
18601 2004-07-07  Nick Clifton  <nickc@redhat.com>
18602
18603         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
18604         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
18605
18606 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
18607
18608         * vec.h: Fix the example use.
18609
18610 2004-07-06  Richard Henderson  <rth@redhat.com>
18611
18612         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
18613         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
18614         * tree-inline.c (copy_body_r, setup_one_parameter,
18615         initialize_inlined_parameters, expand_call_inline,
18616         declare_inline_vars): Don't check it.
18617         (expand_calls_inline): Remove old version, rename new version
18618         from gimple_expand_calls_inline.
18619         * tree-optimize.c (execute_gimple): Remove.
18620         (pass_gimple): Don't run anything.
18621
18622 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18623
18624         * doc/sourcebuild.texi: Use semicolons instead of commas in
18625         section title.
18626
18627 2004-07-06  Richard Henderson  <rth@redhat.com>
18628
18629         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
18630         (sra_walk_modify_expr, scan_init): Likewise.
18631         (generate_element_zero): Check visited before scanning children.
18632         (generate_element_init): Set visited on error.
18633         (scalarize_init): Handle generate_element_init failure similar
18634         to use_block_copy.
18635
18636 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
18637
18638         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
18639         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
18640
18641 2004-07-06  Richard Henderson  <rth@redhat.com>
18642
18643         * config/i386/i386.c (legitimize_pic_address): Make static.
18644         (legitimize_address): Handle CONST with TLS operand.
18645         (ix86_expand_move): Don't call legitimize_pic_address directly.
18646         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
18647
18648 2004-07-06  Roger Sayle  <roger@eyesopen.com>
18649
18650         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
18651         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
18652         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
18653         is currently executed unconditionally, i.e. not in "else_bb".
18654
18655 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18656
18657         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
18658         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18659         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
18660         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18661         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
18662         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18663         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
18664         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18665         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
18666         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18667         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
18668         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18669         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
18670         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18671         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
18672         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
18673
18674 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18675
18676         * dojump.c (do_jump): REFERENCE_EXPR is dead.
18677         * expr.c (expand_expr_real_1): Ditto.
18678         * tree-inline.c (estimate_num_insns_1): Ditto.
18679         * tree-pretty-print.c (dump_generic_node): Ditto.
18680         (op_symbol): Ditto.
18681         * tree.def: Ditto.
18682
18683 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
18684
18685         * tree-ssa-pre.c (reference_node_pool): New pool.
18686         (find_or_generate_expression): Class 'r' is okay too.
18687         (create_value_expr_from): Ditto.
18688         (add_to_sets): LHS should not include vuses.
18689         (eliminate): Ditto.
18690         (compute_avail): Reverse ordering of tests.
18691         Valuize INDIRECT_REF as well.
18692
18693 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
18694
18695         PR rtl-optimization/16380
18696         * loop.c (check_dbra_loop): Sink comparison instructions if they
18697         do something other than set cc0.
18698
18699 2004-07-06  James E Wilson  <wilson@specifixinc.com>
18700
18701         * doc/interface.texi (longjmp and automatic variables): Delete
18702         paragraph recommending taking the address of a variable.
18703
18704 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18705
18706         * vec.h (VEC_embedded_alloc): Remove.
18707         (VEC_embedded_size, VEC_embedded_init): New.
18708         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
18709         MEM_STAT_INFO.
18710         (VEC_truncate): New.
18711         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
18712         (vec_embedded_alloc): Remove.
18713         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
18714         (vec_embedded_alloc): Remove.
18715
18716 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
18717
18718         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
18719         (gt-langhooks.h): Remove.
18720
18721 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
18722
18723         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
18724
18725 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
18726
18727         * config/sparc/sparc.c (get_pc_symbol): Rename into
18728         add_pc_to_pic_symbol.
18729         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
18730         (load_pic_register): Account for previous changes.
18731         Use reg_names.  Don't create the label twice.
18732         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
18733         UNSPEC_LOAD_PCREL_SYM.
18734         (get_pc): Rename into load_pcrel_sym.  Add predicate to
18735         operands.  Remove condition.
18736
18737 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
18738
18739         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
18740         RECORD, UNION & QUAL_UNION is actually a binfo.
18741
18742         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
18743         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
18744         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
18745         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
18746         * dwarf2out.c (add_data_member_location_attribute): Likewise.
18747         (gen_inheritance_die): Likewise.
18748         * tree-dump.c (deque_and_dump): Likewise.
18749         * doc/c-tree.texi (Binfos): Add under reconstruction note.
18750
18751 2004-07-06  Steven Bosscher  <stevenb@suse.de>
18752
18753         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18754         Define.
18755         * config/mcore/mcore.md: Model memory latency with a simple DFA
18756         pipeline description instead of a define_function_unit.
18757
18758 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18759
18760         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
18761         * langhooks.h (var_mod_type_p): Likewise.
18762         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
18763         * expr.c (count_type_elements): Properly handle return from
18764         array_type_nelts and properly test for overflow.
18765         * gimplify.c (gimplify_init_constructor): Properly handle return
18766         from array_type_nelts.
18767         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
18768         * integrate.c (copy_decl_for_inlining): Correct comments.
18769         * tree-inline.c (remap_decl): Update comments, remove dead code,
18770         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
18771         (remap_type): Only remap if variably modified by vars in function
18772         being inlined.
18773         (copy_body_r): Use compatible_type langhooks to see when can fold.
18774         (setup_one_parameter): Don't remap type.
18775         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
18776         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
18777         compute TREE_INVARIANT for decl case.
18778         (find_var_from_fn): New function.
18779         (variably_modified_type_p): Add arg and call new function.
18780         * tree.h (variably_modified_type_p): Add extra arg.
18781
18782 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
18783
18784         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
18785         (goto_handler_and_restore_v9): Delete disabled insn.
18786         (goto_handler_and_restore_v9_sp64): Likewise.
18787
18788 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18789
18790         * calls.c (load_register_parameters): Call expand_shift instead
18791         of expand_binop with ashl_optab (or other shift optab) directly.
18792         * expr.c (emit_group_load, emit_group_store): Likewise.
18793         * function.c (assign_parm_setup_block): Likewise.
18794         * stmt.c (shift_return_value): Likewise.
18795
18796 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
18797
18798         * expr.c (expand_assignment): Disable the bitfield += optimizations.
18799
18800 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18801
18802         * doc/sourcebuild.texi: Revert previous patch.
18803
18804 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18805
18806         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
18807         TARGET_MEM_FUNCTIONS.
18808         * system.h: Poison TARGET_MEM_FUNCTIONS.
18809         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
18810         bcmp_libfunc, bzero_libfunc): Remove.
18811         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
18812         bzero_libfunc.
18813         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
18814         * doc/standards.texi: Don't mention calling BSD string functions.
18815         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
18816         * config/vax/t-memfuncs: New.
18817         * config/memcmp.c, config/memcpy.c, config/memmove.c,
18818         config/memset.c: New.
18819         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
18820         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
18821         vax/t-memfuncs.
18822         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
18823         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
18824         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
18825         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
18826         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
18827         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
18828         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
18829         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
18830         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
18831         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
18832
18833 2004-07-05  Richard Henderson  <rth@redhat.com>
18834
18835         * function.c (assign_parm_setup_reg): Properly rename variables in
18836         FUNCTION_ARG_CALLEE_COPIES section.
18837
18838 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18839
18840         * tree-mudflap.c: Include cgraph.h.
18841         (mf_init_extern_trees): Rename to mudflap_init.  Export.
18842         Rewrite to create synthetic declarations instead of looking
18843         up declarations from mf-runtime.h.
18844         (mf_make_builtin, mf_make_cache_struct_type): New functions.
18845         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
18846         Correct commentary.
18847         (execute_mudflap_function_decls, mudflap_register_call):
18848         Don't call mf_init_extern_trees.
18849         (mudflap_finish_file): Use cgraph_build_static_cdtor.
18850
18851         * tree-mudflap.h: Update prototypes.
18852         * c-mudflap.c: Delete file.
18853         * c-common.c: Include tree-mudflap.h.
18854         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
18855         * Makefile.in: Remove all references to c-mudflap.o.
18856         Update dependencies.
18857
18858 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18859
18860         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
18861         displacements with the spatial-locality cache-control completer.
18862
18863 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
18864
18865         * langhooks.c: Don't include gt-langhooks.h.
18866         (var_labelno): Delete.
18867         (lhd_set_decl_assembler_name): Do not append a distinguishing
18868         number to file-scope internal-linkage declarations for the first
18869         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
18870         the declaration itself (if at block scope), or its containing
18871         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
18872         number.
18873
18874         * opts.c (cur_in_fname): New global.
18875         * opts.h: Declare it.
18876         * tree.c: Include opts.h.
18877         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
18878         DECL_UID equal to cur_in_fname.
18879         (copy_node_stat): Do not change DECL_UID when copying a
18880         TRANSLATION_UNIT_DECL.
18881         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
18882         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
18883
18884         * c-decl.c (c_static_assembler_name): Delete.
18885         * c-tree.h (c_static_assembler_name): Delete prototype.
18886         * c-lang.c, objc/objc-lang.c: Don't override
18887         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
18888
18889         * Makefile.in (tree.o): Update dependencies.
18890         (GTFILES): Remove langhooks.c.
18891
18892 2004-07-05  Roger Sayle  <roger@eyesopen.com>
18893
18894         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
18895         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
18896         Normalize "X % C" as "X % -C" for signed modulus and negative C.
18897         Optimize "X % -Y" as "X % Y" for signed modulus.
18898         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
18899         into "((unsigned) X % Y) == 0".
18900
18901 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
18902
18903         * sourcebuild.texi (Config Fragments): Use @comma{} in
18904         cross-reference to section title.
18905
18906 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18907
18908         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
18909         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
18910         (gimplify_target_expr, gimplify_expr): Likewise.
18911         (copy_if_shared_r): No longer need special case for BIND_EXPR.
18912         (unshare_body, unvisit_body): Only look at nested if BODY_P is
18913         whole function.
18914         (gimplify_compound_lval): See if we can strip any useless conversion.
18915         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
18916         from RHS, not LHS.
18917         (gimplify_modify_expr_to_memset): Likewise.
18918         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
18919         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
18920         (declare_inline_vars): Likewise.
18921         (walk_type_fields): New function.
18922         (walk_tree): Use it.
18923         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
18924
18925         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
18926         (sra_walk_modify_expr): Allow init function to fail.
18927         (scan_init): Now returns bool.
18928         (generate_element_init): If can't understand INIT, return false.
18929         (scalarize_init): Return false if generate_element_init does.
18930
18931         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
18932         print bounds.
18933
18934         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
18935         bounds if bounds aren't constant.
18936
18937         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
18938
18939         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
18940         to type hooks; remove bogus PARAMS.
18941
18942 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18943
18944         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
18945         * dwarf2out.c (add_data_member_location_attribute): Check for
18946         TREE_BINFO.
18947         * tree.c (tree_node_kinds): Add "binfos".
18948         (binfo_lang_slots): New.
18949         (make_node_stat): Add TREE_BINFO.
18950         (make_tree_binfo_stat): New.
18951         (tree_node_structure): Add TREE_BINFO.
18952         * tree.def (TREE_BINFO): New.
18953         * tree.h (REC_OR_UNION_CHECK): Rename to ...
18954         (RECORD_OR_UNION_CHECK): ... here.
18955         (NOT_RECORD_OR_UNION_CHECK): New.
18956         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
18957         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
18958         RECORD_OR_UNION_CHECK.
18959         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
18960         (TYPE_LANG_SLOT_1): New.
18961         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
18962         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
18963         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
18964         (BINFO_ELTS): Remove.
18965         (BINFO_LANG_SLOT): New.
18966         (struct tree_binfo): New.
18967         (binfo_lang_slots): Declare.
18968         (enum tree_node_structure_enum): Add TS_BINFO.
18969         (union tree_node): Add binfo.
18970         (make_tree_binfo_stat): Declare.
18971         (make_tree_binfo): New.
18972         (enum tree_node_kind): Add binfo_kind.
18973
18974         * objc/objc-act.c (start_class, objc_declare_protocols,
18975         start_protocols): Use TYPE_LANG_SLOT_1.
18976         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
18977         to ...
18978         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
18979         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
18980         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
18981         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
18982
18983 2004-07-05  Steven Bosscher  <stevenb@suse.de>
18984
18985         * rtl.h (struct rtx_def): Remove the integrated flag.
18986         Use the return_val flag for MEM_SCALAR_P.
18987         Reshuffle and update flags in CLEAR_RTX_FLAGS.
18988
18989 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
18990
18991         PR target/16357
18992         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
18993         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
18994         move_by_pieces.
18995
18996 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
18997
18998         * var-tracking.c: Fix some comments.
18999         (frame_stack_adjust): New.
19000         (vt_stack_adjustments): Init stack_adjust of entry block to
19001         minus stack adjustment of function prologue.
19002         (adjust_stack_reference): Do not adjust if adjustment == 0.
19003         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
19004         (emit_notes_in_bb): Likewise.
19005         (vt_add_function_parameters): Do not adjust locations of
19006         function arguments.
19007         (vt_initialize): Compute the stack adjustment of function
19008         prologue and offset the initial "location" of frame_base_decl
19009         from the stack pointer after prologue.
19010
19011 2004-07-04  Richard Henderson  <rth@redhat.com>
19012
19013         * function.c (struct assign_parm_data_all): New.
19014         (struct assign_parm_data_one): New.
19015         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
19016         assign_parm_find_data_types, assign_parms_setup_varargs,
19017         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
19018         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
19019         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
19020         assign_parm_setup_block, assign_parm_setup_reg,
19021         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
19022         (assign_parms): ... here.
19023
19024 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
19025
19026         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
19027         now are bitmap_set_t's.
19028         (bitmap_insert_into_set): No point in inserting the value if
19029         it's invariant.
19030         (bitmap_set_contains): New function.
19031         (bitmap_set_replace_value): Add comment on why we do it
19032         this way.
19033         (set_contains): Removed.
19034         (bitmap_set_subtract_from_value_set): New name of
19035         set_subtract now that it's arguments are two different
19036         types of sets.
19037         Update callers.
19038         (bitmap_find_leader): Change algorithm used.
19039         (find_or_generate_expression): Update use of functions for new
19040         bitmap sets.
19041         (create_expression_by_pieces): Ditto.
19042         (insert_aux): Ditto.
19043         (insert): Ditto.
19044         (add_to_sets): Ditto.
19045         (init_pre): Ditto.
19046         (execute_pre): Ditto.
19047         (compute_avail): Ditto.
19048         Also ignore virtual phis.
19049
19050 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
19051
19052         * combine.c (simplify_comparison): Fix comment typo.
19053
19054 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
19055
19056         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
19057         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
19058         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
19059         (output_restore): Change parameter from 'insn' to 'pat'.
19060         (output_return): Adjust call to output_restore.
19061         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
19062         Adjust call to output_restore.
19063
19064 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
19065
19066         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
19067         and assert system is bsd.
19068
19069 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
19070
19071         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
19072         (TARGET_SWITCHES): Remove -mdebugc.
19073         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
19074         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
19075         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
19076         (sle_[sd]i_reg): Delete.
19077
19078 2004-07-04  Steven Bosscher  <stevenb@suse.de>
19079
19080         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
19081         Define.
19082         * config/iq2000/iq2000.md: Translate old pipeline description to an
19083         equivalent new one.
19084
19085 2004-07-04  Roger Sayle  <roger@eyesopen.com>
19086
19087         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
19088         Ensure the replacement rhs is valid gimple before performing
19089         the substitution.  Return false if these sanity checks fail.
19090         (fold_stmt): Only set changed to true, if set_rhs returns true.
19091         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
19092         succeeds.
19093
19094 2004-07-04  Richard Henderson  <rth@redhat.com>
19095
19096         PR c/16348
19097         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
19098
19099 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
19100
19101         * configure.ac (ranlib_flags): New variable.
19102         * Makefile.in (RANLIB_FLAGS): New variable.
19103         (libbackend.a): Use it.
19104         * configure: Regenerated.
19105
19106 2004-07-04  Roger Sayle  <roger@eyesopen.com>
19107
19108         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
19109         a "sign mask" instead of using ashr_optab directly.
19110
19111 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
19112
19113         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
19114         * doc/cppopts.texi: Clarify processing of command-line defines.
19115
19116 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
19117
19118         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
19119
19120 2004-07-04  Richard Henderson  <rth@redhat.com>
19121
19122         * rtl.def (ADDRESSOF): Remove.
19123         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
19124         (find_base_term, memrefs_conflict_p): Likewise.
19125         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
19126         (fold_rtx, cse_insn, set_live_p): Likewise.
19127         * dwarf2out.c (mem_loc_descriptor): Likewise.
19128         (add_location_or_const_value_attribute): Likewise.
19129         * emit-rtl.c (copy_insn_1): Likewise.
19130         * explow.c (memory_address): Likewise.
19131         * expmed.c (store_split_bit_field): Likewise.
19132         * expr.c (expand_expr_real_1): Likewise.
19133         * function.c (instantiate_decl
19134         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
19135         * genrecog.c (preds, validate_pattern): Likewise.
19136         * integrate.c (copy_rtx_and_substitute): Likewise.
19137         * recog.c (general_operand, register_operand): Likewise.
19138         (memory_address_p): Likwise.
19139         * reload1.c (eliminate_regs, elimination_effects): Likewise.
19140         * rtl.c (copy_rtx): Likewise.
19141         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
19142         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
19143         * rtlhooks.c (gen_lowpart_general): Likewise.
19144         * stmt.c (expand_asm_operands): Likewise.
19145         * web.c (entry_register, replace_ref, web_main): Likewise.
19146         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
19147         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
19148         * config/arm/arm.c (thumb_rtx_costs): Likewise.
19149         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
19150         * config/frv/frv.c (move_destination_operand, move_source_operand,
19151         condexec_dest_operand, condexec_source_operand,
19152         condexec_memory_operand): Likewise.
19153         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
19154         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
19155         (destination_xfmode_operand): Likewise.
19156         * config/mips/mips.h (PREDICATE_CODES): Likewise.
19157         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
19158         * config/s390/s390.c (general_s_operand): Likewise.
19159         * config/s390/s390.md (mov*): Likewise.
19160         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
19161
19162         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
19163         * expr.c (expand_expr_real_1): Likewise.
19164         * stmt.c (expand_decl): Likewise.
19165         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
19166
19167         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
19168         postponed_insns, put_var_into_stack, put_reg_into_stack,
19169         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
19170         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
19171         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
19172         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
19173         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
19174         purge_bitfield_addressof_replacements, purge_addressof_replacements,
19175         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
19176         struct insns_for_mem_walk_info, insns_for_mem_walk,
19177         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
19178         setjmp_protect_args): Remove.
19179         (push_function_context_to): Don't handle var_refs_queue.
19180         (pop_function_context_from, free_after_compilation): Likewise.
19181         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
19182         (assign_parms, allocate_struct_function): Likewise.
19183         (use_register_for_decl): New.
19184         (expand_function_end): Don't setjmp_protect.
19185         * function.h (struct emit_status): Update commentary.
19186         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
19187         (max_parm_reg, parm_reg_stack_loc): Remove.
19188         * passes.c (DFI_addressof): Remove.
19189         (dump_file_info): Remove addressof.
19190         (rest_of_handle_addressof): Remove.
19191         (rest_of_compilation): Don't call it.
19192         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
19193         * stmt.c (expand_decl): Use use_register_for_decl.
19194         * tree.h: Update decls.
19195         * web.c (mark_addressof): Remove.
19196         * doc/invoke.texi (-dF): Remove.
19197
19198 2004-07-03  Richard Henderson  <rth@redhat.com>
19199
19200         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
19201         instead of gen_mem_addressof.
19202         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
19203         TImode output register.
19204
19205 2004-07-03  Richard Henderson  <rth@redhat.com>
19206
19207         PR tree-optimization/16341
19208         * tree-sra.c (sra_walk_function): Increment to next stmt before
19209         processing the current stmt.
19210         (sra_insert_after): Always use BSI_SAME_STMT.
19211
19212 2004-07-03  Richard Henderson  <rth@redhat.com>
19213
19214         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
19215         fp plus with minus.
19216
19217 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19218
19219         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
19220         with tree_int_cst_equal.
19221
19222 2004-07-03  Andreas Schwab  <schwab@suse.de>
19223
19224         * config/ia64/ia64.md: Define new attribute "empty".
19225         (prologue_use, nop_x, insn_group_barrier): Set it.
19226
19227         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
19228         skip over "empty" insns.
19229
19230 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19231
19232         * tree-inline.c (initialize_inlined_parameters): Pass proper function
19233         context to gimplify_body.
19234         (walk_tree): Don't walk into types twice.
19235         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
19236
19237         * tree-sra.c (generate_element_init): Remove any useless conversions.
19238
19239         * gimplify.c (gimplify_conversion): Remove stripping useless
19240         conversions from here.
19241         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
19242         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
19243         Unshare before substituting PLACEHOLDER_EXPR.
19244         (gimplify_modify_expr_to_memset): Likewise.
19245         Pass address of TO to memset, not TO itself.
19246         (gimplify_init_constructor): Make copy of OBJECT so we have it each
19247         time we make an expression (to match a PLACEHOLDER_EXPR).
19248
19249         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
19250         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
19251         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
19252         * tree-ssa-dom.c (local_fold): Likewise.
19253
19254         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
19255         * langhooks.h (strct lang_hooks): New field type_max_size.
19256         * function.c (assign_temp): Call it.
19257
19258 2004-07-03  Steven Bosscher  <stevenb@suse.de>
19259
19260         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
19261         * config/sh/sh.md: Convert the SH1 pipeline description to
19262         a DFA model.
19263
19264 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
19265
19266         * c-decl.c (struct c_binding): Remove contour field; add
19267         depth, invisible, nested fields.
19268         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
19269         (B_IN_EXTERNAL_SCOPE): New convenience macros.
19270         (bind): Add invisible and nested arguments. Initialize
19271         new fields of struct c_binding; adjust loop scanning for
19272         insertion point.
19273         (free_binding_and_advance): Clear structure with memset.
19274         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
19275         in file scope, even if it's in external scope too.
19276         (pushdecl): Adjust to match.  Create invisible file-scope
19277         declarations for block-scope forward declarations of static functions.
19278         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
19279         (undeclared_variable, lookup_label, declare_label, define_label)
19280         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
19281         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
19282         (store_parm_decls_oldstyle): Adjust to match.
19283         (diagnose_mismatched_decls): Correct handling of linkage clashes.
19284         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
19285
19286         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
19287         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
19288
19289 2004-07-02  Richard Henderson  <rth@redhat.com>
19290
19291         * c-decl.c (grokdeclarator): Don't frob current_function_decl
19292         around variable_size.
19293         (set_decl_nonlocal): Remove.
19294         (store_parm_decls): Add stmts for pending sizes.
19295         * calls.c (calls_function, calls_function_1): Remove.
19296         (precompute_arguments): Don't call it.
19297         * cfgexpand.c (set_save_expr_context): Remove.
19298         (tree_expand_cfg): Don't call it.
19299         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
19300         (dwarf2out_finish): Likewise.
19301         * expr.c (emit_block_move): Adjust addresses to BLKmode.
19302         (store_constructor): Don't pre-evaluate SAVE_EXPR.
19303         (safe_from_p): Don't queue SAVE_EXPRs.
19304         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
19305         or build plain VAR_DECLs.
19306         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
19307         (fold): Likewise.
19308         (fold_checksum_tree): Don't special-case SAVE_EXPR.
19309         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
19310         (put_var_into_stack): Don't handle SAVE_EXPR.
19311         (gen_mem_addressof): Likewise.
19312         * function.h (struct function): Remove x_save_expr_regs.
19313         (save_expr_regs): Remove.
19314         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
19315         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
19316         * stor-layout.c (variable_size): Don't set it.
19317         (force_type_save_exprs, force_type_save_exprs_1): Remove.
19318         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
19319         all callers.  Don't set SAVE_EXPR_CONTEXT.
19320         * tree-inline.h (remap_save_expr): Update decl.
19321         * tree.c (save_expr): Update build size.
19322         (first_rtl_op): Don't handle SAVE_EXPR.
19323         (unsave_expr_1, contains_placeholder_p): Likewise.
19324         (decl_function_context): Likewise.
19325         * tree.def (SAVE_EXPR): Remove args 1 and 2.
19326         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
19327         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
19328
19329 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
19330
19331         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
19332         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
19333         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
19334         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
19335         some first-person references and patronizing comments.  Based on
19336         printed manual.
19337         * doc/invoke.texi: Don't reference fortran@gnu.org.
19338         * doc/trouble.texi (Warning when a non-void function value is
19339         ignored): Rewrite.  From Russ Allbery and Chris Devers.
19340
19341 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
19342
19343         * tree-ssa-pre.c (bitmap_set_t): New.
19344         (bb_value_sets): avail_out is now a bitmap_set_t.
19345         (bitmap_find_leader): New function.
19346         (bitmap_value_insert_into_set): Ditto.
19347         (bitmap_set_copy): Ditto.
19348         (bitmap_value_replace_in_set): Ditto.
19349         (bitmap_set_contains_value): Ditto.
19350         (bitmap_set_new): Ditto.
19351         (bitmap_set_pool): New pool.
19352         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
19353         (insert_aux): Ditto.
19354         (add_to_sets): Ditto.
19355         (compute_avail): Ditto
19356         (eliminate): Ditto.
19357         (init_pre): Ditto.
19358         (fini_pre): Ditto.
19359         (execute_pre): Ditto.
19360
19361 2004-07-02  Roger Sayle  <roger@eyesopen.com>
19362
19363         * config/rs6000/rs6000.c (struct processor_costs): New structure
19364         used to hold instruction latencies/sizes for processor types.
19365         (rs6000_cost): New global variable pointing to current CPU's costs.
19366         (rs6000_override_options): Initialize rs6000_cost to point to the
19367         appropriate cost table based upon rs6000_cpu and optimize_size.
19368         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
19369         timings inline.
19370
19371 2004-07-02  Richard Henderson  <rth@redhat.com>
19372
19373         * expmed.c (make_tree): Don't use SET_DECL_RTL.
19374
19375 2004-07-02  Steven Bosscher  <stevenb@suse.de>
19376
19377         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
19378
19379 2004-07-01  Richard Henderson  <rth@redhat.com>
19380
19381         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
19382         (alpha_gp_save_rtx): Use assign_stack_local instead of
19383         gen_mem_addressof.
19384
19385 2004-07-01  Richard Henderson  <rth@redhat.com>
19386
19387         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
19388         (alpha_rtx_cost_data): Update to match.
19389         (alpha_rtx_cost_size): New.
19390         (alpha_rtx_costs): Honor optimize_size.
19391
19392 2004-07-01  Richard Henderson  <rth@redhat.com>
19393
19394         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
19395         * cfgexpand.c (tree_expand_cfg): Do it here.
19396         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
19397         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
19398         * config/mips/mips.c (mips_output_mi_thunk): And here.
19399         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
19400         * config/sh/sh.c (sh_output_mi_thunk): And here.
19401         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
19402
19403 2004-07-01  Richard Henderson  <rth@redhat.com>
19404
19405         * tree.def (RTL_EXPR): Remove.
19406         * c-typeck.c (lvalue_p): Don't handle it.
19407         * expr.c (safe_from_p): Likewise.
19408         (expand_expr_real_1): Likewise.
19409         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
19410         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
19411         * gengtype.c (adjust_field_tree_exp): Likewise.
19412         * stmt.c (warn_if_unused_value): Likewise.
19413         * tree-gimple.c (recalculate_side_effects): Likewise.
19414         * tree-pretty-print.c (dump_generic_node): Likewise.
19415         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
19416         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
19417         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
19418
19419         * stmt.c (struct stmt_status): Remove x_last_expr_type,
19420         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
19421         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
19422         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
19423         all the bits that tracked last_expr.
19424         (expand_end_bindings): Don't track last_expr.
19425         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
19426         (clear_last_expr): Remove.
19427         (expand_asm): Don't call it.
19428         (expand_asm_operands, expand_end_cond): Likewise.
19429         (expand_naked_return, expand_null_return_1): Likewise.
19430         * c-typeck.c (c_begin_compound_stmt): Likewise.
19431         * cfgexpand.c (expand_block): Use expand_expr_stmt.
19432         * expr.c (expand_expr_real_1): Likewise.
19433         * tree.h: Update prototypes.
19434
19435         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
19436         (struct emit_status): Remove sequence_rtl_expr.
19437         (struct function): Remove x_rtl_expr_chain.
19438         (seq_rtl_expr, rtl_expr_chain): Remove.
19439         * function.c (struct temp_slot): Remove rtl_expr.
19440         (assign_stack_temp_for_type): Don't set it.
19441         (free_temp_slots, pop_temp_slots): Don't check it.
19442         (free_after_compilation): Don't clear x_rtl_expr_chain.
19443         (fixup_var_refs): Don't search it.
19444         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
19445         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
19446         or seq_rtl_expr.
19447         (push_topmost_sequence): Likewise.
19448         (end_sequence, init_emit): Likewise.
19449         (start_sequence_for_rtl_expr): Remove.
19450         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
19451         * rtl.h (preserve_rtl_expr_result): Remove.
19452
19453 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
19454
19455         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
19456         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
19457         typos.
19458
19459 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
19460
19461         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
19462         (STANDARD_STARTFILE_PREFIX_2): Define.
19463         (standard_startfile_prefix_1): Initialize to
19464         STANDARD_STARTFILE_PREFIX_1.
19465         (standard_startfile_prefix_2): Initialize to
19466         STANDARD_STARTFILE_PREFIX_2.
19467         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
19468         (STANDARD_STARTFILE_PREFIX_1): Define.
19469         (STANDARD_STARTFILE_PREFIX_2): Define.
19470         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
19471         (STANDARD_STARTFILE_PREFIX_2): Document.
19472
19473 2004-07-01  Richard Henderson  <rth@redhat.com>
19474
19475         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
19476         in order to disable scalarization.  Instead set a flag and wait
19477         for a candidate decl.
19478
19479 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19480
19481         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
19482         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
19483         Use terminology "testsuite" and "enumerated".
19484
19485 2004-07-01  Richard Henderson  <rth@redhat.com>
19486
19487         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
19488         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
19489         (initial_return_save): Likewise.
19490         (flush_queued_reg_saves): Remap register numbers.
19491         (dwarf2out_return_reg): Likewise.
19492
19493 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19494
19495         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
19496
19497         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
19498         access functions for lower bound and element size and only output
19499         if lower bound nonzero or element size not same as that of type.
19500         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
19501
19502 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19503
19504         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
19505
19506 2004-07-01  Per Bothner  <per@bothner.com>
19507
19508         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
19509
19510 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
19511
19512         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
19513         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
19514         first operand.  Don't optimize if the bitfield is volatile.
19515
19516 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19517
19518         * c-pretty-print.c (pp_c_postfix_expression): Handle
19519         floating-point comparison operators.
19520         (pp_c_expression): Pass floating-point comparison
19521         operators to pp_c_postfix_expression.
19522
19523 2004-07-01  Roger Sayle  <roger@eyesopen.com>
19524
19525         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
19526         rtx_cost instead of "had_mult" to determine whether the transformed
19527         expression is cheaper than the original.
19528
19529 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
19530
19531         * alias.c (get_alias_set, canon_rtx, get_addr,
19532         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
19533         Use MEM_P.
19534         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
19535         expand_builtin): Likewise.
19536         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
19537         Likewise.
19538         * combine.c (can_combine_p, combinable_i3pat, try_combine,
19539         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
19540         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
19541         record_dead_and_set_regs_1, get_last_value_validate,
19542         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
19543         * cse.c (check_dependence, canon_hash, equiv_constant,
19544         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
19545         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
19546         count_reg_usage): Likewise.
19547         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
19548         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
19549         cselib_record_sets): Likewise.
19550         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
19551         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
19552         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
19553         * df.c (df_uses_record): Likewise.
19554         * dojump (do_jump): Likewise.
19555         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
19556         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
19557         decl_start_label): Likewise.
19558         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
19559         operand_subword, change_address_1, make_safe_from): Likewise.
19560         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
19561         stabilize, force_not_mem): Likewise.
19562         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
19563         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
19564         * expr.c (convert_move, convert_modes, emit_block_move,
19565         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
19566         emit_move_insn_1, expand_assignment, store_expr,
19567         store_constructor_field, store_constructor, store_field,
19568         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
19569         Likewise.
19570         * final.c (cleanup_subreg_operands, alter_subreg,
19571         get_mem_expr_from_op): Likewise.
19572         * flow.c (notice_stack_pointer_modification_1,
19573         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
19574         Likewise.
19575         * function.c (mark_temp_addr_taken, preserve_temp_slots,
19576         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
19577         optimize_bit_field, flush_addressof, purge_addressof_1,
19578         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
19579         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
19580         keep_stack_depressed): Likewise.
19581         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
19582         noce_process_if_block, find_memory): Likewise.
19583         * integrate.c (subst_constants, allocate_initial_values): Likewise.
19584         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
19585         update_equiv_regs): Likewise.
19586         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
19587         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
19588         * optabs.c (expand_abs, emit_unop_insn): Likewise.
19589         * passes.c (rest_of_handle_final): Likewise.
19590         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
19591         move2add_note_store): Likewise.
19592         * ra-build.c (detect_remat_webs): Likewise.
19593         * ra-debug.c (dump_static_insn_cost): Likewise.
19594         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
19595         * recog.c (validate_change, apply_change_group, cancel_changes,
19596         validate_replace_rtx_1, general_operand, register_operand,
19597         nonmemory_operand, push_operand, pop_operand, memory_operand,
19598         indirect_operand, asm_operand_ok, offsettable_memref_p,
19599         offsettable_nonstrict_memref_p, constrain_operands,
19600         store_data_bypass_p): Likewise.
19601         * reg-stack.c (subst_stack_regs_pat): Likewise.
19602         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
19603         copy_cost, reg_scan_mark_refs): Likewise.
19604         * regmove.c (optimize_reg_copy_3, stack_memref_p,
19605         combine_stack_adjustments_for_block): Likewise.
19606         * regrename.c (copyprop_hardreg_forward_1): Likewise.
19607         * reload.c (can_reload_into, push_reload, decompose, immune_p,
19608         find_reloads, find_reloads_address, find_reloads_address_1,
19609         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
19610         find_equiv_reg): Likewise.
19611         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
19612         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
19613         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
19614         delete_address_reloads): Likewise.
19615         * resource.c (mark_referenced_resources): Likewise.
19616         * rtlanal.c (get_jump_table_offset, count_occurrences,
19617         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
19618         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
19619         num_sign_bit_copies1): Likewise.
19620         * rtlhooks.c (gen_lowpart_general): Likewise.
19621         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
19622         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
19623         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
19624         sdbout_global_decl): Likewise.
19625         * simplify-rtx.c (simplify_subreg): Likewise.
19626         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
19627         expand_anon_union_decl, expand_end_case_type): Likewise.
19628         * unroll.c (calculate_giv_inc): Likewise.
19629         * var-tracking.c (stack_adjust_offset_pre_post,
19630         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
19631         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
19632         vt_add_function_parameters): Likewise.
19633         * varasm.c (make_var_volatile, notice_global_symbol,
19634         assemble_external, decode_addr_const, mark_weak,
19635         default_encode_section_info): Likewise.
19636
19637 2004-07-01  Steven Bosscher  <stevenb@suse.de>
19638
19639         * stmt.c (check_seenlabel): Remove.
19640         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
19641
19642 2004-07-01  Richard Henderson  <rth@redhat.com>
19643
19644         * function.h (struct function): Remove x_function_call_count.
19645         (function_call_count): Remove.
19646         * calls.c (expand_call): Don't set it.
19647         * integrate.c (copy_rtx_and_substitute): Likewise.
19648
19649         * function.h (struct function): Remove x_cleanup_label.
19650         (cleanup_label): Remove.
19651         * stmt.c (expand_value_return): Don't use it.
19652         * function.c (free_after_compilation): Don't set it.
19653         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
19654         * cfgexpand.c (tree_expand_cfg): Update call.
19655         * tree.h (expand_function_start): Update decl.
19656
19657 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
19658
19659         PR c/1027
19660         * c-lang.c (c_initialize_diagnostics): Move from here ...
19661         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
19662         (c_tree_printer): Use pretty-printer to format %T.
19663         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
19664         before '*' if not C++.
19665         (pp_c_direct_abstract_declarator): Don't try to print array upper
19666         bound for flexible array members.
19667         * c-tree.h: Include "diagnostic.h".
19668         (c_initialize_diagnostics): Declare.
19669         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
19670         * c-format.c (format_type_warning): New function.  Improve
19671         diagnostics for incorrect format argument types.
19672         (check_format_types): Use it.  Add two parameters.  Use the
19673         TYPE_MAIN_VARIANT of wanted_type.
19674         (check_format_info_main): Pass new parameters to
19675         check_format_types.
19676         (struct format_wanted_type): Update comment.
19677
19678 2004-07-01  Nick Clifton  <nickc@redhat.com>
19679
19680         * target.h (struct gcc_target): Add new field to struct cxx:
19681         import_export_class.
19682         * target-def.h (TARGET_CXX): Initialise the new field.
19683         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
19684         the new field.
19685         * doc/tm.texi: Document the new target hook.
19686
19687 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19688
19689         * builtins.c (fold_builtin_classify): Fix typo.
19690
19691 2004-07-01  Richard Henderson  <rth@redhat.com>
19692
19693         * function.c (identify_blocks, identify_blocks_1): Remove.
19694         * function.h (identify_blocks): Remove.
19695         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
19696
19697 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
19698
19699         * builtins.c (fold_builtin_classify): New.
19700         (fold_builtin_unordered_cmp): Fix commentary.
19701         (fold_builtin): Use it.
19702         * builtins.def: Define builtins for isnan,
19703         isnanf, isnanl, finite, finitef, finitel,
19704         isinf, isinff, isinfl.
19705
19706 2004-07-01  Richard Henderson  <rth@redhat.com>
19707
19708         * function.h (struct function): Remove dont_emit_block_notes.
19709         * gimple-low.c (lower_function_body): Don't set it.
19710         * cfgexpand.c (expand_block): Don't check it.
19711         * cfglayout.c (insn_locators_initialize): Likewise.
19712         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
19713         * passes.c (rest_of_compilation): Likewise.
19714         * stmt.c (expand_start_bindings_and_block): Likewise.
19715         (expand_end_bindings): Likewise.
19716
19717 2004-07-01  Richard Henderson  <rth@redhat.com>
19718
19719         * cgraph.h (cgraph_build_static_cdtor): Declare.
19720         * cgraphunit.c (cgraph_build_static_cdtor): New.
19721         * c-objc-common.c (build_cdtor): Use it.
19722         * coverage.c (create_coverage): Likewise.
19723         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
19724         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
19725
19726 See ChangeLog.11 for earlier changes.