OSDN Git Service

PR middle-end/17885
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-10-19  Richard Hendeson  <rth@redhat.com>
2
3         PR middle-end/17885
4         * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address
5         of INDIRECT_REF.
6
7 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
8
9         * tree-cfg.c (thread_jumps): Use a do-while loop instead of a
10         loop with goto.
11
12 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
13
14         * expr.c (expand_assignment): Remove the last argument.
15         Change the return type to void.
16         * expr.h: Update the prototype of expand_assignment.
17         * function.c (assign_parm_setup_reg): Update a call to
18         expand_assignment.
19         * stmt.c (expand_asm_expr): Likewise.
20
21 2004-10-19  Kazu Hirata  <kazu@cs.umass.edu>
22
23         * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove
24         unnecessary assignments to temp.  Return const0_rtx.
25
26 2004-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
27
28         * config/sh/sh.c (sh5_schedule_saves): Fix typo.
29
30 2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
31
32         * configure.ac (powerpc-*-darwin*): Require assembler to support
33         .machine directive.
34         * configure: Regenerate.
35
36 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
37
38         * reload1.c (ior_hard_reg_set): Remove.
39         (finish_spills): Use IOR_HARD_REG_SET instead of
40         ior_hard_reg_set.
41
42 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
43
44         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting
45         the currently visited word to right.
46
47 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
48
49         PR middle-end/18045
50         * expmed.c (expand_smod_pow2): Handle modes whose size
51         is greater than that of HOST_WIDE_INT.
52
53 2004-10-18  Ziemowit Laski  <zlaski@apple.com>
54
55         * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative.
56
57 2004-10-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
58             Roger Sayle  <roger@eyesopen.com>
59
60         PR middle-end/17813
61         * dojump.c (discard_pending_stack_adjust): New function.
62         (clear_pending_stack_adjust): Call it.
63         * expr.h (discard_pending_stack_adjust): Declare it.
64         * explow.c (emit_stack_save): Emit pending stack adjustments
65         before saving the stack pointer.
66         (emit_stack_restore): Discard pending stack adjustments before
67         restoring the stack pointer.
68
69 2004-10-18  Richard Henderson  <rth@redhat.com>
70
71         * c-common.c (handle_mode_attribute): Allow scalar->vector 
72         type changes yet.
73
74 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
75
76         * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a
77         value to expand_assignment.
78
79 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
80
81         * tree-cfg.c (cleanup_tree_cfg): Don't iterate on
82         thread_jumps.
83         (thread_jumps): Iterate until no new forwarder block arises.
84
85 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
86
87         * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable.
88         (thread_jumps): Use forwardable as cache of
89         tree_forwarder_block_p throughout the function.
90
91 2004-10-18  Andreas Krebbel  <krebbel1@de.ibm.com>
92
93         * cfg.c (dump_flow_info): Remove redundant dump of reg life info.
94
95 2004-10-18  Andrew Pinski  <pinskia@physics.uc.edu>
96
97         PR middle-end/15014
98         PR middle-end/16973
99         * tree-cfg.c (remove_bb): If we have a label expression in the
100         basic block and the label we have taken the address, move the
101         label expression to the basic block which is previous in the
102         linked list.
103         (tree_verify_flow_info): Fix printing out the label name of the
104         problematic label expression.
105
106 2004-10-18  Pat Haugen  <pthaugen@us.ibm.com>
107
108         PR rtl-optimization/18002
109         * simplify-rtx.c (mode_signbit_p): Externalize function...
110         * rtl.h (mode_signbit_p): ... to here.
111         * combine.c (simplify_shift_const): Recognize PLUS signbit as
112         canonical form of XOR signbit and move to outer op.
113
114 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
115
116         * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.
117         Update all callers.
118         * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt.
119         Don't call fold_stmt more than once, use bsi_replace.
120
121 2004-10-18  Diego Novillo  <dnovillo@redhat.com>
122
123         PR tree-optimization/17656
124         * tree-ssa.c (replace_immediate_uses): When replacing a
125         constant, if the call to fold_stmt produced a different
126         statement, get an appropriate statement pointer by scanning
127         STMT's basic block.
128
129 2004-10-18  Richard Henderson  <rth@redhat.com>
130
131         * pointer-set.c (hash1): Don't use libm functions in fallback case.
132
133 2004-10-18  H.J. Lu  <hongjiu.lu@intel.com>
134
135         PR bootstrap/17684
136         * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?.
137         (stage1-start): Remove and copy libunwind.a and
138         libunwind*$(SHLIB_EXT) instead of libunwind*.
139         (stage2-start): Likewise.
140         (stage3-start): Likewise.
141         (stage4-start): Likewise.
142         (stageprofile-start): Likewise.
143         (stagefeedback-start): Likewise.
144
145         * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for
146         the shared library to be created and don't remove the existing
147         shared library.
148         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
149         * config/i386/t-nwld (SHLIB_LINK): Likewise.
150         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
151         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
152         * config/sh/t-linux (SHLIB_LINK): Likewise.
153         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
154         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
155         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
156         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
157
158         * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s"
159         files.
160
161 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
162
163         * basic-block.h (reg_set_iterator): New.
164         (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style.
165         (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise.
166         (EXECUTE_IF_AND_IN_REG_SET): Likewise.
167         * caller-save.c (save_call_clobbered_regs): Adjust to the new
168         style.
169         * cfgcleanup.c (thread_jump): Likewise.
170         * cfgrtl.c (safe_insert_insn_on_edge): Likewise.
171         * conflict.c (conflict_graph_compute): Likewise.
172         * flow.c (verify_local_live_at_start, update_life_info,
173         initialize_uninitialized_subregs, propagate_one_insn,
174         init_propagate_block_info, free_propagate_block_info,
175         propagate_block, dump_regset): Likewise.
176         * global.c (global_conflicts): Likewise.
177         * graph.c (start_bb): Likewise.
178         * local-alloc.c (update_equiv_regs): Likewise.
179         * loop.c (load_mems): Likewise.
180         * reload1.c (compute_use_by_pseudos, order_regs_for_reload,
181         find_reg, finish_spills): Likewise.
182         * resource.c (mark_target_live_regs): Likewise.
183         * sched-deps.c (sched_analyze_insn): Likewise.
184         * sched-rgn.c (sched-rgn.c): Likewise.
185         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
186
187 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
188
189         * config/i386/i386.md (addqi_1_slp): Test for incdec_operand
190         operand 1 instead of 2
191
192 2004-10-18  Kazu Hirata  <kazu@cs.umass.edu>
193
194         * loop-unroll.c: Fix comment typos.
195
196 2004-10-18  Revital Eres  <eres@il.ibm.com>
197
198         * Makefile.in (loop-unroll.o): Add VARRAY_H dependency.
199         * loop-unroll.c: Include varray.h.
200         (struct var_to_expand, struct opt_info): Rename split_ivs_info to
201         opt_info and expand it to support variable expansion.
202         (analyze_insns_in_loop): Rename analyze_ivs_to_split and
203         expand it to support variable expansion.
204         (pt_info_start_duplication): Rename si_info_start_duplication.
205         (apply_opt_in_copies): Rename split_ivs_in_copies and add support
206         to the variable expansion optimization.
207         (free_opt_info): Rename free_si_info.
208         (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p,
209         expand_var_during_unrolling, insert_var_expansion_initialization,
210         combine_var_copies_in_loop_exit, release_var_copies,
211         get_expansion): New functions.
212         (peel_loop_completely, unroll_loop_constant_iterations,
213         unroll_loop_runtime_iterations, peel_loop_simple,
214         unroll_loop_stupid): Change uses of struct si_info
215         to struct opt_info
216         and add uses of fvariable-expansion-in-unroller flag.
217         * params.def: Add parameter to restrict the number of expansions.
218         * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict
219         the number of expansions.
220         * common.opt: (fvariable-expansion-in-unroller): New flag. 
221         * doc/invoke.texi: (fvariable-expansion-in-unroller): Document.
222
223 2004-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
224
225         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
226         __GXX_MERGED_TYPEINFO_NAMES to 0.
227
228 2004-10-17  Hans-Peter Nilsson  <hp@bitrange.com>
229
230         * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb,
231         handle barriers in a bb by checking that it points to a NULL bb.
232         * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL.
233         (emit_barrier_after, emit_barrier): Ditto.
234
235 2004-10-18  Joseph S. Myers  <jsm@polyomino.org.uk>
236
237         * doc/extend.texi (Attribute Syntax): Clarify details of
238         attributes on parameters.
239
240 2004-10-17  Zdenek Dvorak  <dvorakz@suse.cz>
241
242         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of
243         loop.
244
245 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
246
247         Revert:
248         2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
249
250         * c-typeck.c (default_function_array_conversion): Always create
251         &a[0] for array types.
252         (build_unary_op): Do not fold &a[x] into a + x.
253
254 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
255
256         PR middle-end/17925
257         * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic
258         block if there is a goto with a locus.
259
260 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
261
262         * config/elfos.h, config/gofast.h, config/interix.h,
263         config/netbsd.h, config/svr3.h, config/vxworks.h,
264         config/alpha/alpha-modes.def, config/alpha/alpha-protos.h,
265         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
266         config/alpha/netbsd.h, config/arm/arm-modes.def,
267         config/arm/unknown-elf.h, config/c4x/c4x-modes.def,
268         config/cris/aout.h, config/frv/frv-modes.def,
269         config/i386/beos-elf.h, config/i386/gas.h,
270         config/i386/i386-coff.h, config/i386/i386-modes.def,
271         config/i386/linux.h, config/i386/linux64.h,
272         config/i386/mingw32.h, config/i386/netbsd-elf.h,
273         config/i386/netbsd64.h, config/i386/sco5.h,
274         config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md,
275         config/ia64/ia64-modes.def, config/ia64/itanium1.md,
276         config/ia64/itanium2.md, config/m68k/m68k-modes.def,
277         config/mips/mips-modes.def, config/mips/sdb.h,
278         config/mips/vr.h, config/mips/vxworks.h,
279         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
280         config/pa/pa32-linux.h, config/rs6000/40x.md,
281         config/rs6000/7450.md, config/rs6000/8540.md,
282         config/rs6000/linuxspe.h, config/rs6000/power4.md,
283         config/rs6000/rs6000-modes.def, config/rs6000/rtems.h,
284         config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h,
285         config/s390/s390-modes.def, config/sh/elf.h,
286         config/sh/sh-modes.def, config/sh/sh64.h,
287         config/sparc/ultra1_2.md, config/sparc/ultra3.md,
288         config/stormy16/stormy16.md, config/v850/v850-protos.h,
289         config/vax/vax.md: Update copyright.
290
291 2004-10-17  Kazu Hirata  <kazu@cs.umass.edu>
292
293         * expr.c (expand_expr_real_1): Remove an obsolete comment.
294
295 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
296
297         * c-typeck.c (default_function_array_conversion): Always create
298         &a[0] for array types.
299         (build_unary_op): Do not fold &a[x] into a + x.
300
301 2004-10-17  Jakub Jelinek  <jakub@redhat.com>
302
303         * pointer-set.c (hash1): Use integer part of 2^64 / phi
304         instead 2^32 / phi if long is 64-bit.
305
306 2004-10-17  Joseph S. Myers  <jsm@polyomino.org.uk>
307
308         * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and
309         RID_PTRVALUE.
310         * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token
311         declarations.
312         (reswords): Remove __ptrbase, __ptrbase__, __ptrextent,
313         __ptrextent__, __ptrvalue and __ptrvalue__.
314         (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE
315         entries.
316
317 2004-10-16  Dale Johannesen  <dalej@apple.com>
318
319         * c-common.c (c_common_get_alias_set):  Use GGC for type_hash_table.
320
321 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
322
323         PR tree-optimization/17766
324         * basic-block.h (enum dom_state): DOM_CONS_OK removed.
325         (dom_info_available_p): Declare.
326         * cfghooks.c (split_block, make_forwarder_block): Use
327         dom_info_available_p.
328         * dominance.c (compute_dom_fast_query, calculate_dominance_info,
329         free_dominance_info, verify_dominators): Ditto.
330         (dom_info_available_p): New function.
331         * tree-cfg.c (cleanup_control_expr_graph): Free dominance information.
332         (thread_jumps): Use dom_info_available_p.
333         * tree-complex.c (expand_complex_div_wide): Ditto.
334         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
335
336 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
337
338         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates.
339         (find_best_candidate): Take also important candidates into account.
340         (find_optimal_iv_set): Initialize important_candidates bitmap.
341
342 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
343
344         PR tree-optimization/17560
345         * predict.c (tree_estimate_probability): Mark irreducible
346         loops.
347
348 2004-10-16  Zdenek Dvorak  <dvorakz@suse.cz>
349
350         PR rtl-optimization/17723
351         * cfgcleanup.c (merge_memattrs): Handle case when
352         MEM_SIZE == NULL_RTX.
353
354 2004-10-15  Andrew Pinski  <pinskia@physics.uc.edu>
355
356         * toplev.c (dump_file_name): Change type to be const.
357
358 2004-10-15  Joseph S. Myers  <jsm@polyomino.org.uk>
359
360         * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use
361         non_lvalue to stop something being a null pointer constant.
362
363 2004-10-15  Aldy Hernandez  <aldyh@redhat.com>
364
365         * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only
366         available for TARGET_FPRS.
367         (FUNCTION_VALUE_REGNO_P): Same.
368
369 2004-10-15  Geoffrey Keating  <geoffk@apple.com>
370
371         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
372         -maltivec in same style as other ISA options.
373
374 2004-10-15  Jon Grimm <jgrimm2@us.ibm.com>
375
376         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__
377         definition.
378
379 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
380
381         * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
382         collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
383         gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
384         genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
385         gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
386         gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
387         lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
388         predict.def, predict.h, protoize.c, reload.h, resource.h,
389         rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
390         tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
391         unwind-sjlj.c, value-prof.h: Update copyright.
392
393 2004-10-15  Kazu Hirata  <kazu@cs.umass.edu>
394
395         * pointer-set.c, tree-vectorizer.c: Fix comment typos.
396
397 2004-10-15  Diego Novillo  <dnovillo@redhat.com>
398
399         * tree-optimize.c (execute_one_pass): Stop timer right after
400         executing the pass.
401
402 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
403
404         Revert:
405         2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
406         PR middle-end/17967
407         Revert:
408                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
409                 (remove_useless_stmts_1):  Fold trees we know how to fold.
410
411 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
412
413         * configure.ac: Add .machine power4 directive when testing for
414         mfcr field.
415         * configure: Regenerate.
416
417 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
418
419         * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define.
420
421 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
422
423         * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor
424         always.
425
426 2004-10-14  Daniel Jacobowitz  <dan@codesourcery.com>
427
428         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS
429         for 'f' if !TARGET_FPRS.
430
431 2004-10-14  Richard Henderson  <rth@redhat.com>
432
433         PR debug/14492
434         * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR.
435
436 2004-10-14  Richard Henderson  <rth@redhat.com>
437
438         PR c/17023
439         * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
440         as error_mark_node.
441         * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
442         instaed of current_function_decl non-null.
443
444 2004-10-14  Matt Austern  <austern@apple.com>
445
446         * pointer-set.c: New file, special-purpose hash table.
447         * pointer-set.h: New file.
448         * tree.h (struct pointer_set_t): Declare as opaque type.
449         (tree_walk): Last argument is pointer_set_t* now.
450         * tree-inline.c (WALK_SUBTREE): Convert from htab to pset.
451         (walk_type_fields): 
452         (walk_tree): Convert from htab_t to pointer_set_t for keeping
453         track of which nodes have already been visited.
454         (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t.
455         * cgraphunit.c (cgraph_create_edges): Likewise.
456         (cgraph_characterize_statics_local): Likewise.
457         * tree-dfa.c (collect_dfa_stats): Likewise.
458         * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is
459         pointer_set_t* now.
460         * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise.
461         * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type
462         of walk_subtrees is pointer_set_t* now.
463         * Makefile.in (OBJS-common): add pointer-set.o
464         (tree-inline.o): Depends on pointer-set.h
465         (tree-dfa.o): Likewise
466         (cgraphunit.o): Likewise
467         
468 2004-10-14  Geoffrey Keating  <geoffk@apple.com>
469
470         * config/rs6000/darwin.h (ASM_SPEC): Delete.
471         (TARGET_ASM_FILE_START): Define.
472         * config/darwin.h (ASM_SPEC): Define.
473         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply
474         -mlong-double-128, it's the default.  Update comment about reason
475         for force_cpusubtype_ALL.
476         * config/rs6000/darwin-vecsave.asm: Supply .machine.
477         * config/rs6000/darwin-world.asm: Likewise.
478         * config/rs6000/rs6000.c (rs6000_darwin_file_start): New.
479         (symbolic_operand): Delete #if 0ed code.
480
481 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
482
483         * stmt.c (add_case_node): Make sure that we have integer
484         constant before calling tree_int_cst_compare.
485
486 2004-10-14  Andrew Pinski  <pinskia@physics.uc.edu>
487
488         PR middle-end/17967
489         Revert:
490                 * tree-cfg.c (remove_usless_stmts_cond):  Fold statement.
491                 (remove_useless_stmts_1):  Fold trees we know how to fold.
492
493 2004-10-14  Joseph S. Myers  <joseph@codesourcery.com>
494
495         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS),
496         config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow
497         -m64.
498
499 2004-10-14  Ulrich Weigand  <uweigand@de.ibm.com>
500
501         * reload.c (find_reloads): When reloading a PLUS with constant
502         operand, make sure the constant is pushed to the constant pool
503         if required.
504         * config/s390/s390.c (s390_secondary_input_reload_class): Remove
505         reload bug workaround.
506         (s390_expand_plus_operand): Likewise.
507
508 2004-10-14  David Edelsohn  <edelsohn@gnu.org>
509
510         * opts.c (common_handle_option): Do not enable
511         flag_speculative_prefetching for -fprofile-generate/use.
512
513 2004-10-14  Devang Patel  <dpatel@apple.com>
514
515         PR 17635
516         * tree-if-conv.c (process_phi_nodes): Process latch block.
517         (combine_blocks): Process latch block and update loop structure.
518         
519 2004-10-14  Olga Golovanevsky  <olga@il.ibm.com>
520
521         * tree-vectorizer.c (vect_generate_tmps_on_preheader):
522         (vect_update_ivs_after_vectorizer):
523         (vect_transform_for_unknown_loop_bound):
524         (tree_duplicate_loop_to_edge):
525         (allocate_new_names):
526         (rename_use_op):
527         (rename_def_op):
528         (rename_variables_in_bb):
529         (free_new_names):
530         (rename_variables_in_loop):
531         (copy_phi_nodes):
532         (update_phis_for_duplicate_loop):
533         (update_phi_nodes_for_guard):
534         (make_loop_iterate_ntimes):
535         (tree_duplicate_loop_to_edge_cfg):
536         (add_loop_guard):
537         (vect_analyze_loop_with_symbolic_num_of_iters):
538         (verify_loop_for_duplication): 
539         (vect_gen_niters_for_prolog_loop):
540         (vect_update_niters_after_peeling):
541         (vect_update_inits_of_dr):
542         (vect_update_inits_of_drs):
543         (vect_build_loop_niters):
544         (vect_do_peeling_for_alignment): New functions.
545         (vect_transform_loop): Add unknown and known but indivisible loop
546         bound support; add peeling for unalignment support. 
547         (vect_analyze_loop_form): Support symbolic number of iterations.
548         (vect_transform_loop_bound): New input parameter.
549         (vect_get_loop_niters): Change input parameter type.
550         (new_loop_vec_info): LOOP_VINFO_NITERS is tree now.
551         (vectorizable_store): Allow unaligned access.
552         (vectorize_loops): Add rewrite_into_loop_closed_ssa.
553         (vect_analyze_data_refs_alignment): Allowed one unaligned
554         store.
555         * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined 
556         to use tree.
557         (LOOP_VINFO_INT_NITERS): New macro.
558         (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define.
559         (do_peeling_for_alignment):
560         (unaligned_drs): New members of _loop_vec_info.
561         (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro.
562
563 2004-10-14  Ranjit Mathew  <rmathew@hotmail.com>
564
565         * tree.h (TREE_STRING_POINTER): Wrap in "const char *".
566         (struct tree_string): Remove "const" qualifier for "str".
567
568 2004-10-14  Ira Rosen  <irar@il.ibm.com>
569
570         * tree-vectorizer.c (vect_analyze_data_refs): Call
571         vect_get_base_and_bit_offset to get memory tag for array ref.
572         (vect_create_addr_base_for_vector_ref): Remove redundant checks.
573
574 2004-10-14  Richard Earnshaw  <rearnsha@arm.com>
575
576         * configure.ac: Use $LN_S for creating symlinks (not $LN).
577         * configure: Regenerate.
578
579 2004-10-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
580
581         * doc/install.texi (*-*-solaris2*): Update with info about kernel
582         patches to solve spurious testsuite failures.
583
584 2004-10-14  Dorit Naishlos  <dorit@il.bim.com>
585
586         * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts.
587         Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode.
588         (vect_analyze_operations): Make sure the vectorization factor > 1. Add
589         gcc_assert under ENABLE_CHECKING.
590         (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to
591         get_vectype_for_scalar_type).
592
593         (vect_get_vec_def_for_operand): Remove redundant variables.
594         (vect_transform_loop): Likewise.
595
596 2004-10-14  Richard Sandiford  <rsandifo@redhat.com>
597
598         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and
599         global for -mcaller-super-interworking.
600         (CALLER_INTERWORKING_SLOT_SIZE): New macro.
601         * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if
602         CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does
603         not need a frame pointer.
604         (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to
605         the soft frame pointer offset.
606         (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking.
607         * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use
608         _interwork_{r7,r11}_call_via_rN if some arguments are passed on
609         the stack.  Use frame_pointer_needed to choose between them.
610         * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions.
611         (interwork_with_frame): New macro.
612         (interwork): Add _interwork_{r7,r11}_call_via_rN().
613
614 2004-10-14  Ben Elliston  <bje@au.ibm.com>
615
616         PR other/17900
617         * diagnostic.c (trim_filename): Fix logic bug in walking backwards
618         up the filename looking for a previous directory separator.
619
620 2004-10-14  Joseph S. Myers  <jsm@polyomino.org.uk>
621
622         * c-tree.h (enum c_typespec_kind, struct c_typespec,
623         parser_xref_tag): New.
624         (struct c_declspecs): Add tag_defined_p.  Adjust definition of
625         typedef_p.
626         (declspecs_add_type): Adjust prototypes.
627         * c-parse.in (%union): Add tstype.
628         (typespec_nonattr, typespec_attr, typespec_reserved_nonattr,
629         typespec_reserved_attr, typespec_nonreserved_nonattr,
630         structsp_attr, structsp_nonattr): Change to tstype.  Update
631         actions.
632         * c-decl.c (build_null_declspecs): Initialize tag_defined_p.
633         (declspecs_add_type): Update to take struct c_typespec argument.
634         Set tag_defined_p and typedef_p as appropriate.
635         (xref_tag): Rename to parser_xref_tag and replace by wrapper.
636         Update to return struct c_typespec.
637         (shadow_tag_warned): Don't let empty declarations with qualifiers
638         or storage class specifiers redeclare a tag if a previous
639         declaration is visible.
640
641 2004-10-13  Richard Henderson  <rth@redhat.com>
642
643         PR debug/15860
644         * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction
645         for DECL_INCOMING_RTL.
646
647 2004-10-14  Hans-Peter Nilsson  <hp@axis.com>
648
649         PR target/17984
650         * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply
651         trunc_int_for_mode for constants used in shortened mode.
652
653 2004-10-13  Richard Henderson  <rth@redhat.com>
654
655         PR c/17384
656         * c-common.c (handle_mode_attribute): Disallow mode changes that
657         alter the CODE of the top-level type.
658  
659         * crtstuff.c (__FRAME_END__): Remove mode attribute.  Find 32-bit
660         integer from internal limits macros.
661         * config/i386/mm3dnow.h (__v2sf): Fix base type.
662
663 2004-10-13  Richard Henderson  <rth@redhat.com>
664  
665         PR debug/13841
666         * function.c (instantiate_decl): Recurse for CONCAT.
667
668 2004-10-13  David Edelsohn  <edelsohn@gnu.org>
669
670         * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for
671         andi./andis.
672         (anddi3): Same.
673         (extzvdi_internal1): Add attribute "compare".
674         (extzvdi_internal2): Same.
675
676 2004-10-12  Tom Tromey  <tromey@redhat.com>
677
678         * doc/md.texi (Insn Canonicalizations): Removed extraneous quote.
679
680 2004-10-13  Dale Johannesen  <dalej@apple.com>
681
682         * doc/extend.texi (Extended Asm):  Rewrite asm volatile description.
683
684 2004-10-13  Frank Ch. Eigler  <fche@redhat.com>
685
686         * toplev.c (compile_file): Call mudflap_finish_file from here ...
687         * c-decl.c (c_write_global_declarations): ... instead of here ...
688         * cp/decl.c (cp_finish_file): ... and here.
689         * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message.
690
691 2004-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
692
693         * tree-ssa-dom.c (record_range): Free the element if we are not
694         going to use it.
695
696 2004-10-13  Tom Tromey  <tromey@redhat.com>
697
698         PR java/15578:
699         * gcc.c (option_map): Added --extdirs and --encoding.
700
701 2004-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
702
703         PR target/14454
704         * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to
705         sparc_can_output_mi_thunk.
706         (sparc_output_mi_thunk): Simplify handling of delta offset.  Add
707         handling of vcall offset.
708         (sparc_can_output_mi_thunk): New predicate.
709         * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET.
710         (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete.
711         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook.
712
713         * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment.
714
715         * config/sparc/sparc.md (movdi): Remove redundant test.
716
717 2004-10-13  Paolo Bonzini  <bonzini@gnu.org>
718
719         * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL,
720         TDF_IPA from -fdump-tree-*-all.
721
722 2004-10-13  Paul Brook  <paul@codesourcery.com>
723
724         * config/arm/arm-protos.h (arm_load_pic_register): Update prototype.
725         * config/arm/arm.c (thumb_find_work_register): Update comments.
726         (arm_load_pic_register): Add argument for scratch register.
727         (arm_expand_prologue, thumb_expand_prologue): Pass extra argument.
728         * config/arm/arm.md (builtin_setjmp_receiver): Ditto.
729
730 2004-10-13  Kazu Hirata  <kazu@cs.umass.edu>
731
732         * tree-data-ref.c: Fix comment typos.
733
734 2004-10-13  Jakub Jelinek  <jakub@redhat.com>
735             Zdenek Dvorak  <dvorakz@suse.cz>
736
737         PR tree-optimization/17724
738         * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info.
739
740 2004-10-13  Dorit Naishlos  <dorit@il.ibm.com>
741
742         * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()).
743         (altivec_builtin_mask_for_store): Likewise.
744         (altivec_init_builtins): Use lang_hooks.builtin_function to
745         create the decls for builtin_altivec_mask_for_load/store.
746
747 2004-10-13  Nick Clifton  <nickc@redhat.com>
748
749         * config/c4x/c4x.c: Remove inclusion of loop.h.
750
751 2004-10-12  Ben Elliston  <bje@au.ibm.com>
752
753         * basic-block.h (edge_iterator): Keep the address of VEC(edge) *.
754         (ei_container): New; renamed.
755         (ei_start, ei_last): New macros.
756         (ei_start_1, ei_last_1): Renamed from ei_start.
757         (ei_last_1, ei_end_p): Use ei_container() where applicable.
758         (ei_one_before_end_p, ei_next, ei_edge): Likewise.
759         * gcse.c (remove_reachable_equiv_notes): Use ei_container().
760
761 2004-10-11  Sebastian Pop  <pop@cri.ensmp.fr>
762
763         * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h.
764         * cfgloop.c (initialize_loops_parallel_p): New.
765         (flow_loops_find): Initialize the parallel_p field to true for all 
766         the loops.
767         * tree-ssa-loop-niter.c: Include "tree-data-ref.h".
768         (estimate_numbers_of_iterations_loop): Infers the loop bounds from 
769         the size of the data accessed in the loop.
770         (struct nb_iter_bound): Moved... 
771         * cfgloop.h (struct nb_iter_bound): ... here.
772         (estimated_nb_iterations, parallel_p): New fields in struct loop.
773         (record_estimate): Declare extern here.
774         * tree-chrec.c: Fix comments.
775         (nb_vars_in_chrec): New function.
776         * tree-chrec.h (nb_vars_in_chrec): Declared here.
777         * tree-data-ref.c: Don't include lambda.h, that is already included 
778         in tree-data-ref.h.
779         (tree_fold_divides_p): Don't check for integer_onep.
780         (tree_fold_bezout): Removed.
781         (gcd): New static duplicated function.
782         (int_divides_p, dump_subscript): New.
783         (dump_data_dependence_relation): Use dump_subscript.
784         (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations, 
785         estimate_niter_from_size_of_data): New.
786         (analyze_array_indexes, analyze_array): Call 
787         estimate_niter_from_size_of_data during the detection of array 
788         references.  Pass in a pointer to the statement that contains the 
789         array reference.
790         (all_chrecs_equal_p): New.
791         (compute_distance_vector): Renamed compute_subscript_distance.
792         Deal with multivariate conflict functions.
793         (initialize_data_dependence_relation): Initialize DDR_AFFINE_P, 
794         DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT.
795         (non_affine_dependence_relation): New.
796         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, 
797         analyze_siv_subscript, analyze_miv_subscript, 
798         analyze_overlapping_iterations, subscript_dependence_tester): 
799         Initialize and return last_conflicts function.
800         (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar,
801         compute_overlap_steps_for_affine_1_2): New.
802         (analyze_siv_subscript_affine_cst): Removed.
803         (analyze_subscript_affine_affine): Disprove dependences based on the 
804         iteration domains.  Solve the univariate dependence case as before, 
805         but use lambda_matrix_right_hermite instead of tree_fold_bezout.
806         Implement the multivariate case of 2 versus 1 variables.
807         (build_classic_dist_vector, build_classic_dir_vector): Implement some 
808         unhandled cases.
809         (find_data_references_in_loop): Compute and initialize 
810         loop->estimated_nb_iterations and loop->parallel_p.
811         (analyze_all_data_dependences): Modify the debug dump order.
812         * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B,
813         subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed.
814         (SUB_LAST_CONFLICT, subscript->last_conflict, 
815         data_dependence_relation->affine_p, data_dependence_relation->size_vect,
816         DDR_AFFINE_P, DDR_SIZE_VECT): New.
817         (find_data_references_in_loop, initialize_data_dependence_relation,
818         dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here.
819
820 2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
821
822         * configure: Regenerate.
823
824 2004-10-12  Fariborz Jahanian <fjahanian@apple.com>
825
826         PR 17892
827         * tree-ssa-dom.c (unsafe_associative_fp_binop): New function.
828         (simplify_rhs_and_lookup_avail_expr): Disallow associativity
829         and constant folding of floating point MULT_EXPR/PLUS_EXPR 
830         expressions.
831
832 2004-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
833
834         * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref.
835         (s390_gimplify_va_arg): Likewise.
836
837 2004-10-12  Daniel Jacobowitz  <dan@debian.org>
838
839         * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P)
840         (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P)
841         (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions.
842         * regclass.c (record_address_regs): Remove ifdef.  Use
843         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
844         * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary
845         definition.
846         (scan_rtx_address, replace_oldest_value_addr): Use
847         REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS.
848         * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove
849         unnecessary definitions.
850         (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P
851         and MODE_BASE_REG_REG_CLASS.
852         * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed.
853         (MODE_BASE_REG_REG_CLASS): Define.
854         (REGNO_MODE_OK_FOR_REG_BASE_P): Define.
855         (REG_MODE_OK_FOR_REG_BASE_P): Define.
856         * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS,
857         REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P.
858
859 2004-10-12  Daniel Berlin <dberlin@dberlin.org>
860
861         * tree-ssa-alias.c (verify_name_tags): New function.
862         (verify_flow_sensitive_alias_info): Remove code that used to check name tags.
863         (verify_alias_info): Call verify_name_tags.
864
865 2004-10-12  Kazu Hirata  <kazu@cs.umass.edu>
866
867         PR rtl-optimization/17931
868         * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with
869         ZERO_EXTRACT in it.
870
871 2004-10-12  Richard Earnshaw  <rearnsha@arm.com>
872
873         * arm.c (arm_print_operand): Use output_operand_lossage where possible
874         rather than aborting.
875
876 2004-10-12  Paul Brook  <paul@coudesourcery.com>
877
878         * config.gcc: Add armv6{k,z,zk}
879         * config/arm/arm-cores.def: Add arm1176 and mpcore.
880         * config/arm/tune.md: Regenerate.
881         * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK):
882         Define.
883         (all_architectures): Add armv6k, armv6z, armv6zk.
884         * config/arm/lib1funcs.asm: Recognise new arm arcitectures.
885         * doc/invoke.texi: Document new arch and cpu values.
886
887 2004-10-12  Paul Brook  <paul@coodesourcery.com>
888
889         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to
890         meabi=4.
891
892 2004-10-12  Paul Brook  <paul@codesourcery.com>
893
894         * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints.
895         Handle negative constants.
896
897 2004-10-12  Joseph S. Myers  <jsm@polyomino.org.uk>
898
899         PR c/17301
900         * c-typeck.c (convert_arguments): Return error_mark_node if there
901         are too few arguments.
902         (build_function_call): Handle error_mark_node return from
903         convert_arguments.
904
905 2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
906
907         * configure.ac (symbolic_link): Replace with $LN_S.
908         (Assembler/Linker): Hard link from gas and binutils trees.
909         * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp.
910         * configure: Regenerate.
911
912 2004-10-12  Paul Brook  <paul@codesourcery.com>
913
914         * configure.ac: Don't look for host assembler when building a canadian
915         cross.
916         * configure: Regenerate.
917
918 2004-10-11  Roger Sayle  <roger@eyesopen.com>
919
920         PR other/17361
921         * c-opts.c (permit_fortran_options): Delete/obsolete global variable.
922         (c_common_init_options): Remove #ifdef CL_F77 code.  Scan command
923         line options for "-lang-asm" and if found allow any of the C-family
924         front-end options.
925         (c_common_handle_option): Remove last use of permit_fortran_options.
926
927 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
928
929         * config/s390/s390.c (print_operand): Support 'S' format flag.
930         * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag.
931         ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise.
932         ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise.
933         ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise.
934         ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise
935         ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise.
936         ("*movstricthi"): Likewise.
937         ("*load_multiple_di", "*load_multiple_si"): Likewise.
938         ("*store_multiple_di", "*store_multiple_si"): Likewise.
939         ("*sethiqisi", "*sethihisi"): Likewise.
940         ("*sethiqidi_64", "*sethiqidi_31"): Likewise.
941         ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise.
942         ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise.
943         ("*xorqi3", "*xc", "*xc_zero"): Likewise.
944         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise.
945
946         ("*tmhi_full"): Fix incorrect op_type attribute.
947
948         ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash.
949         ("*subdi3_slb_cc", "*subdi3_slb"): Likewise.
950         ("*addsi3_alc_cc", "*addsi3_alc"): Likewise.
951         ("*subsi3_slb_cc", "*subsi3_slb"): Likewise.
952
953 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu
954
955         PR middle-end/16266
956         * function.c (temp_slots_at_level): Fix typo which creates too
957         many temp stack slots levels.
958
959 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
960
961         * config/s390/s390.c (s390_trampoline_template): Generate shorter
962         trampoline code.
963         (s390_trampoline_instantiate): Adapt.
964         * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code.
965
966 2004-10-11  Roger Sayle  <roger@eyesopen.com>
967
968         PR middle-end/17657
969         * stmt.c (add_case_node): Add additional type argument.  Declare
970         as static to match prototype.  Convert the upper and lower bounds
971         to the specified index type.  Optimize away case ranges/values 
972         that are outside the index type's bounds.  Truncate case ranges
973         that span the index type's bounds.
974         (expand_case): Avoid unnessary computation and memory allocation
975         when index type is error_mark_node.  Pass index_type as required
976         by change to add_case_node API.  No need to convert case range
977         bounds to index_type, this is now done by add_case_node.
978
979 2004-10-11  Ulrich Weigand  <uweigand@de.ibm.com>
980
981         * config/s390/s390-protos.h (s390_offset_p): Add prototype.
982         * config/s390/s390.c (s390_offset_p): New function.
983         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu",
984         "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to
985         transform Q->Q alternatives to *clc pattern.
986         ("*clc"): Move.
987         ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa",
988         "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter
989         to transform Q->Q alternatives to *mvc pattern.
990         ("*mvc"): Move.  Add peephole to merge adjacent MVCs.
991         ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch",
992         "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to
993         transform Q->Q alternatives to *nc pattern.
994         ("*nc"): New insn.  New peephole to merge adjacent NCs.
995         ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch",
996         "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to
997         transform Q->Q alternatives to *oc pattern.
998         ("*oc"): New insn.  New peephole to merge adjacent OCs.
999         ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to
1000         transform Q->Q alternatives to *xc pattern.
1001         ("*xc"): New insn.  New peephole to merge adjacent XCs.
1002         ("*xc_zero"): Move.  Add peephole to merge adjacent XCs.
1003
1004 2004-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
1005
1006         * gimplify.c (gimple_push_condition): Make sure that we don't
1007         have any saved condition cleanup if we were at the top level.
1008
1009 2004-10-11  Richard Sandiford  <rsandifo@redhat.com>
1010
1011         * config/frv/frv.md (*adddi3_internal): Change name to...
1012         (adddi3): ...replacing the exisiting define_expand.  Combine
1013         alternatives.  Fix the range of the constant constraints ('J' instead
1014         of 'NOP').  Remove bogus operands[2] check.  Use simplify_gen_subreg
1015         to extract the lower and upper halves of the DImode operands.
1016         Always use addi3_lower and adddi3_upper, not the subdi3 forms.
1017         (adddi3_lower): Fix the range of the constant constraints and
1018         remove the bogus operands[2] check.
1019         (adddi3_upper): Use gpr_or_int10_operand as the predicate for
1020         operand 2.  Use addxi to handle constant operands.
1021         (subdi3_lower, subdi3_upper): Don't handle constant operands.
1022
1023 2004-10-11  Nathan Sidwell  <nathan@codesourcery.com>
1024
1025         * gengtype-lex.l: Add commented } & ) characters to unconfuse
1026         editor's paren matching. Allow #define inside a struct.
1027
1028 2004-10-10  Andrew Pinski  <pinskia@physics.uc.edu>
1029
1030         PR middle-end/17703
1031         part of PR c++/17657
1032         * fold-const.c (fold_build_cleanup_point_expr): New function.
1033         * tree.h (fold_build_cleanup_point_expr): Prototype.
1034
1035 2004-10-10  Eric Christopher  <echristo@redhat.com>
1036
1037         * dwarf2out.c: Move attribute to subprogram declaration
1038         instead of subroutine type.
1039
1040 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1041
1042         * basic-block.h: Remove the prototypes for can_hoist_insn_p,
1043         hoist_insn_after, and hoist_insn_to_edge.
1044         * rtl.h: Remove the prototypes for reg_referenced_between_p,
1045         no_jumps_between_p, and insn_dependent_p.
1046         * rtlanal.c (no_jumps_between_p, reg_referenced_between_p,
1047         insn_dependent_p, insn_dependent_p_1, hoist_test_store,
1048         can_hoist_insn_p, hoist_update_store, hoist_insn_after,
1049         hoist_insn_to_edge): Remove.
1050
1051 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1052
1053         PR c/17881
1054         * c-decl.c (grokparms): Don't warn for parameters of incomplete
1055         type in declarations that are not definitions except for the case
1056         of parameters of void type.
1057
1058 2004-10-10  Kazu Hirata  <kazu@cs.umass.edu>
1059
1060         * tree-cfg.c: Fix comment typos.
1061
1062 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1063
1064         PR c/17301
1065         * builtins.c (expand_builtin_va_start): Check for too few
1066         arguments to va_start.
1067
1068 2004-10-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1069
1070         PR c/17189
1071         * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed
1072         fields a pedwarn.  Pedwarn here for unnamed structs/unions if
1073         pedantic.
1074         * c-parse.in (component_decl): Don't pedwarn here for unnamed
1075         fields.
1076
1077 2004-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
1078
1079         PR tree-optimization/17906
1080         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to
1081         copy non-gimple reg arguments.
1082
1083 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1084
1085         PR rtl-optimization/17853
1086         * simplify-rtx.c (simplify_relational_operation): Correct comment.
1087         Reorganize handling of comparison operations with floating point
1088         results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE).
1089         Likewise, introduce support for comparison operations with vector
1090         result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro.
1091
1092         * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro.
1093         * doc/tm.texi: Likewise.
1094
1095 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1096
1097         * regs.h (struct reg_info_def): Remove the last_node_uid and
1098         changes_mode fields.
1099         (REGNO_LAST_NOTE_UID): Don't define.
1100         * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID.
1101         * regmove.c (copy_src_to_dest): Likewise.
1102
1103 2004-10-09  Roger Sayle  <roger@eyesopen.com>
1104
1105         PR middle-end/17894
1106         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the
1107         relational comparison operator op needs to be swapped/reversed when
1108         C1 is negative.  i.e. X/-10 < 1 becomes X >= -9, not X < -9.
1109
1110 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1111
1112         PR tree-opt/17902
1113         * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels
1114         instead of bsi_start.
1115         (value_replacement): Likewise.
1116         (abs_replacement): Likewise
1117
1118 2004-10-09  Steven Bosscher  <stevenb@suse.de>
1119
1120         * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function.
1121         (expand_gimple_cond_expr, expand_gimple_tailcall,
1122         expand_gimple_basic_block): Use it to dump RTL for each stmt.
1123         (tree_expand_cfg): Announce full RTL function dump.
1124         * tree-optimize.c (execute_one_pass): Use normal RTL printing,
1125         not the graph version.
1126         * tree-pretty-print.c (dump_generic_node): Allow empty statements
1127         in the arms of a COND_EXPR for lowered nodes.
1128
1129 2004-10-08  Joseph S. Myers  <joseph@codesourcery.com>
1130
1131         * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16,
1132         atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64,
1133         strtoufix16, strtoufix32, strtoufix64): Declare.
1134
1135 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1136
1137         * c-lex.c (interpret_float): Give a pedwarn rather than a warning
1138         for an out-of-range floating point constant.
1139         * builtins.c (fold_builtin_inf): Give a pedwarn rather than a
1140         warning if the target format does not support infinities.
1141
1142 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1143
1144         * emit-rtl.c (last_label_num, base_label_num): Remove.
1145         (max_label_num): Always return label_num.
1146         (set_new_last_label_num, restore_emit_status): Remove.
1147         (init_emit): Don't initialize last_label_num.
1148         * function.c (pop_function_context_from): Don't call
1149         restore_emit_status.
1150         * function.h: Remove the prototype for restore_emit_status.
1151         * rtl.h: Remove the prototype for set_new_last_label_num.
1152
1153 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1154
1155         * stmt.c (expand_decl_init): Remove.
1156         * tree.h: Remove the corresponding prototype.
1157
1158 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1159
1160         * integrate.c (try_constants, subst_constants, mark_stores):
1161         Remove.
1162         * integrate.h: Remove the prototype for try_constants.
1163
1164 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1165
1166         * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto.
1167         (convert_for_assignment): Handle ic_argpass_nonproto.  Add
1168         comments about its relevance to errors.
1169         (c_convert_parm_for_inlining): Use ic_argpass_nonproto.
1170
1171 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1172
1173         PR c/16999
1174         * c-ppoutput.c (cb_ident): Don't quote string as it is already
1175         quoted.
1176
1177 2004-10-08  Diego Novillo  <dnovillo@redhat.com>
1178
1179         * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate
1180         reference_node_pool.
1181
1182 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1183
1184         * tree-cfg.c: Fix a comment typo.
1185
1186 2004-10-08  Andreas Krebbel  <krebbel1@de.ibm.com>
1187
1188         * config/s390/s390.c (s390_register_info): Don't save fprs for
1189         -msoft-float.
1190         (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float.
1191
1192 2004-10-08  Ulrich Weigand  <uweigand@de.ibm.com>
1193
1194         * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define.
1195         (TARGET_DEFAULT): Use symbolic values.
1196         * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine.
1197         (TARGET_DEFAULT): Use symbolic values.
1198         * config/s390/s390.c (s390_backchain_string): Initialize to
1199         TARGET_DEFAULT_BACKCHAIN.
1200
1201 2004-10-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1202
1203         * builtins.c (expand_builtin_mempcpy): Move tree handling code to
1204         fold_builtin_mempcpy.  Accept a type parameter.  Delete duplicate
1205         code.
1206         (expand_builtin_strcat): Accept a type parameter.
1207         (fold_builtin_mempcpy): Accept a type and endp parameter.
1208
1209         * builtins.c (expand_builtin_strncpy): Delete duplicate code.
1210         Accept an `exp' instead of an `arglist'.
1211
1212 2004-10-08  Nathan Sidwell  <nathan@codesourcery.com>
1213
1214         * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert,
1215         reverting my 2004-09-07 patch to use build_int_cst.
1216
1217 2004-10-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1218
1219         PR target/17245
1220         * config/sparc/sparc.c (input_operand): Remove redundant code
1221         for handling LO_SUM.
1222         (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9.
1223         <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9.
1224         Otherwise only accept it for TFmode if quad move insns are available.
1225
1226 2004-10-08  Kazu Hirata  <kazu@cs.umass.edu>
1227
1228         * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that
1229         common cases will be caught earlier than others.
1230
1231 2004-10-08  Michael Matz  <matz@suse.de>
1232
1233         * loop-doloop.c (doloop_optimize): Extend count.
1234
1235 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1236
1237         * config/sh/sh.md (prefetch_media, prefetch_i4): New insns.
1238         (prefetch): Convert to expander.
1239
1240 2004-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1241
1242         * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the
1243         first argument of CALL.
1244         (tls_local_dynamic): Likewise.
1245
1246 2004-10-08  Joseph S. Myers  <jsm@polyomino.org.uk>
1247
1248         * c-typeck.c (enum impl_conv): New.
1249         (convert_for_assignment): Use it.  Take tree for function called
1250         instead of its name.  Handle ObjC selectors for diagnostics at
1251         start of function.  Select diagnostic text within the function
1252         using full sentences for diagnsotics.  Use %qE to name functions
1253         in diagnostics.
1254         (convert_arguments, build_modify_expr,
1255         c_convert_parm_for_inlining, digest_init, c_finish_return): Update
1256         callers to convert_for_assignment.
1257         (warn_for_assignment): Remove.
1258
1259 2004-10-08  Nick Clifton  <nickc@redhat.com>
1260
1261         * config/sh/symbian.c (symbian_possibly_export_base_class):
1262         Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with
1263         TYPE_CONTAINS_VPTR_P.
1264
1265 2004-10-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1266
1267         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude
1268         fixed registers form all_used_regs. Update call_really_used_regs.
1269         (CALL_REALLY_USED_REGISTERS): Define.
1270         * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs
1271         with call_really_used_regs.
1272
1273 2004-10-08  Alan Modra  <amodra@bigpond.net.au>
1274
1275         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o
1276         for -profile as well as -p and -pg.
1277
1278 2004-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
1279
1280         * libgcc2.c (__moddi3): Cast &w to UDWtype*.
1281
1282 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1283
1284         * tree-cfg.c (tree_block_forwards_to): Remove.
1285         * tree-flow.h: Remove the corresponding prototype.
1286
1287 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1288
1289         * tree-flow-inline.h (phi_nodes): Remove an unnecessary check
1290         for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR.
1291
1292 2004-10-07  Geoffrey Keating  <geoffk@apple.com>
1293
1294         Radar 3813796
1295         * config/rs6000/rs6000.c (rs6000_generate_compare): When
1296         flag_trapping_math is in effect, don't generate subtract
1297         instructions.
1298
1299 2004-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
1300
1301         * config/s390/s390-protos.h (s390_narrow_logical_operator): Add.
1302         * config/s390/s390.c (s390_narrow_logical_operator): New function.
1303         (s390_extra_constraint_str): Add 'A' constraints.
1304         (s390_const_ok_for_constraint_p): Add 'Nx' constraints.
1305         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint.
1306         (CONSTRAINT_LEN): Likewise.
1307         * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter.
1308         ("*andsi3_zarch", "*andsi3_esa"): Likewise.
1309         ("*andhi3_zarch", "*andhi3_esa"): Likewise.
1310         ("*iordi3"): Add OI alternative and splitter.
1311         ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
1312         ("*iorhi3_zarch", "*iorhi3_esa"): Likewise.
1313         ("*xordi3"): Add XI alternative and splitter.
1314         ("*xorsi3", "*xorhi3"): Likewise.
1315
1316 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1317
1318         * config/mips/mips.c (mips_function_rodata_section): New function.
1319         (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it.
1320
1321 2004-10-07  Devang Patel  <dpatel@apple.com>
1322
1323         * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH,
1324         UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB,
1325         UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW,
1326         UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI,
1327         UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI,
1328         UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI,
1329         UNSPEC_VCONDU_V16QI): New constant defines.
1330         (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi,
1331         vconduv16qi): New patterns.
1332         * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function.
1333         * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function.
1334         (get_vec_cmp_insn): Same.
1335         (get_vsel_insn): Same.
1336         (rs6000_emit_vector_compare): Same.
1337         (rs6000_emit_vector_select): Same.
1338         (INSN_NOT_AVAILABLE): New.
1339
1340 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1341
1342         PR tree-optimization/17749
1343         * tree-tailcall.c (find_tail_calls): Check that parameter is
1344         a gimple_reg.
1345
1346 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1347
1348         * config/ia64/ia64.c: Fix a comment typo.
1349
1350 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1351
1352         * doc/install.texi (*-*-solaris2*): Fix marker for URL.
1353
1354 2004-10-07  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1355
1356         PR c++/17115
1357         * tree-inline.c (expand_call_inline): Do not warn for functions
1358         marked with attribute noinline.
1359
1360 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1361
1362         PR target/17862
1363         * config/sparc/sparc.c (sparc_output_mi_thunk): Set
1364         current_function_uses_only_leaf_regs as well as sparc_leaf_function_p.
1365
1366         * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead
1367         of 0 as 4th argument to pass_by_reference.
1368         Call build_va_arg_indirect_ref instead of build_fold_indirect_ref.
1369
1370 2004-10-06  Eric Christopher  <echristo@redhat.com>
1371
1372         * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf
1373         attribute.
1374
1375 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1376
1377         PR target/17770
1378         * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute.
1379
1380 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1381
1382         PR rtl-optimization/17791
1383         * loop-doloop.c (doloop_modify): Take number of iterations as
1384         argument.
1385         (doloop_optimize): Extend or shorten the number of iterations
1386         when changing mode of counter register.
1387         * loop-iv.c (lowpart_subreg): Export.
1388         * rtl.h (lowpart_subreg): Declare.
1389
1390 2004-10-07  Zdenek Dvorak  <dvorakz@suse.cz>
1391
1392         PR tree-optimization/17806
1393         * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags.
1394         * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP
1395         flags moved to split_edge.
1396
1397 2004-10-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1398
1399         PR middle-end/17835
1400         * expmed.c (expand_sdiv_pow2): Force a stack adjustment
1401         before tentatively building the conditional move sequence.
1402
1403 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1404
1405         PR target/16815
1406         * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING
1407         check.
1408         * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of
1409         function_arg_padding.
1410
1411 2004-10-07  Richard Sandiford  <rsandifo@redhat.com>
1412
1413         PR bootstrap/17857
1414         * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto.
1415
1416 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1417
1418         * hooks.c (hook_int_void_1, hook_void_int): Remove.
1419         * hooks.h: Remove the corresponding prototypes.
1420
1421 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1422
1423         PR middle-end/17849
1424         * tree-nested.c (walk_stmt_info): Add changed field.
1425         (convert_nonlocal_reference): Set changed to when we
1426         change a decl to unnested decl.
1427         <case ADDR_EXPR>: Instead of checking if the immediate part
1428         of the ADDR_EXPR changed, check the field changed.
1429         Use recompute_tree_invarant_for_addr_expr instead of unsetting
1430         TREE_INVARIANT.
1431         (convert_local_reference):  Set changed to when we
1432         change a decl to unnested decl.
1433         <case ADDR_EXPR>: Instead of checking if the immediate part
1434         of the ADDR_EXPR changed, check the field changed.
1435         Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR.
1436
1437 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
1438
1439         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
1440         * dwarf2out.c (dwarf2out_init): Remove references to
1441         DWARF2_GENERATE_TEXT_SECTION_LABEL.
1442         * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL.
1443         * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove.
1444
1445 2004-10-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1446
1447         * c-typeck.c (convert_arguments): Take expression for called
1448         function rather than its name.  Handle ObjC selectors directly
1449         rather than relying on warn_for_assignment to do so.  Call warning
1450         directly rather than warn_for_assignment.  Use %qE in diagnostics.
1451         Say "argument" rather than "arg" in diagnostics.
1452         (build_function_call): Update call to convert_arguments.
1453
1454 2004-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1455
1456         PR debug/17787
1457         * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and
1458         ENUMs specially instead of just saying we do.
1459
1460 2004-10-06  Eric Christopher  <echristo@redhat.com>
1461
1462         * dwarf2.h: Sync with include/elf/dwarf2.h
1463
1464 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1465
1466         * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
1467         and TREE_VEC nodes.
1468
1469 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1470
1471         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert
1472         to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value.
1473
1474 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1475
1476         * lambda-code.c (compute_nest_using_fourier_motzkin): New
1477         function.
1478         (lambda_compute_auxillary_space): Split from here.
1479
1480 2004-10-06  Daniel Berlin  <dberlin@dberlin.org>
1481
1482         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static.
1483         * tree-flow.h: Add prototype.
1484         * lambda-code.c (invariant_in_loop_and_outer_loops): Use
1485         expr_invariant_in_loop.
1486
1487 2004-10-06  Kazu Hirata  <kazu@cs.umass.edu>
1488
1489         * tree-cfg.c (thread_jumps): Remove a duplicate check for
1490         EXIT_BLOCK_PTR.
1491
1492 2004-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1493
1494         * config/s390/s390-protos.h (s_imm_operand): Remove.
1495         (s390_pool_operand): Add prototype.
1496         * config/s390/s390.c (general_s_operand): Remove.
1497         (s_imm_operand): Remove.
1498         (s_operand): Merge contents of general_s_operand.
1499         (s390_pool_operand): New function.
1500         * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand.
1501         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns.
1502         ("*cmpdi_ccu"): Merge Q->Q alternative.
1503         ("*cmpsi_ccu", "*cmphi_ccu"): Likewise.
1504         ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives.
1505         ("*cli"): Remove.
1506         ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise.
1507         ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise.
1508         ("*movstricthi"): Use memory_operand instead of s_imm_operand.
1509
1510 2004-10-06  Steve Ellcey  <sje@cup.hp.com>
1511
1512         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to
1513         call ia64_function_arg_boundary.
1514         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New.
1515         * config/ia64/ia64.c (ia64_function_arg_boundary): New.
1516         (ia64_function_arg_advance): Do not put 128 bit floats into
1517         FP registers.
1518
1519 2004-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1520
1521         * builtins.c (expand_builtin_strcpy): Delete duplicate code.
1522         Accept an expression instead of an arglist.
1523         (expand_builtin_stpcpy): Accept an expression instead of an
1524         arglist.
1525
1526 2004-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1527
1528         PR target/16007
1529         * doc/install.texi (*-*-solaris2*): Mention potential problem
1530         with Sun assembler + GNU linker and C++ programs.
1531         Document status of binutils 2.15 release.
1532
1533 2004-10-06  Jan Hubicka  <jh@suse.cz>
1534
1535         * cse.c (cse_main): Kill push/pop context.
1536
1537 2004-10-05  Zack Weinberg  <zack@codesourcery.com>
1538
1539         * pretty-print.c: Include tree.h.
1540         (pp_base_prepare_to_format): New function, logic from
1541         text_specifies_location.
1542         (pp_base_format_text): Use gcc_assert.
1543         * pretty-print.h (pp_prepare_to_format): New macro.
1544         (pp_base_prepare_to_format): Prototype.
1545         * diagnostic.c (text_specifies_location): Delete.
1546         (bug_report_request): Delete.
1547         (diagnostic_set_info): Don't call text_specifies_location.
1548         (diagnostic_action_after_output): Put text from
1549         bug_report_request inline here.  Use gcc_unreachable.
1550         (diagnostic_report_current_function): Fix comment.
1551         (diagnostic_report_diagnostic): Clarify logic for error recursion.
1552         Call pp_prepare_to_format before diagnostic_starter.
1553         (trim_filename): Use IS_DIR_SEPARATOR.
1554         (fatal_error, internal_error): Use gcc_unreachable.
1555         (error_recursion): Call diagnostic_action_after_output to
1556         issue the bug_report_request message and exit.
1557         * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies.
1558
1559         * c-parse.in: Add list of diagnostic messages to insulate
1560         translation template from version of yacc/bison used to
1561         compile the grammar.
1562
1563 2004-10-06  Alan Modra  <amodra@bigpond.net.au>
1564
1565         PR 16406
1566         * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document.
1567
1568 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         * basic-block.h: Remove the prototype for
1571         flow_preorder_transversal_compute.
1572         * cfganal.c (dfst_node): Remove.
1573         (flow_preorder_transversal_compute): Likewise.
1574         * rtl.h: Remove the prototype for get_jump_table_offset.
1575         * rtlanal.c (get_jump_table_offset): Remove.
1576
1577 2004-10-05  Richard Henderson  <rth@redhat.com>
1578
1579         PR 17756
1580         * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL.
1581
1582 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
1583
1584         PR bootstrap/17817
1585         * Makefile.in: Stage the build directory too.
1586
1587 2004-10-05  Aldy Hernandez  <aldyh@redhat.com>
1588
1589         * config/frv/frv.h (LEGITIMIZE_ADDRESS): New.
1590
1591         * config/frv/frv-protos.h (frv_legitimize_address): Protoize.
1592         (frv_emit_move): Same.
1593
1594         * config/frv/frv.c (frv_emit_move): New.
1595         (frv_legitimize_address): New.
1596
1597         * config/frv/frv.md ("movsi"): Call frv_emit_move.
1598         ("movqi"): Same.
1599         ("movhi"): Same.
1600         ("movdi"): Same.
1601         ("movsf"): Same.
1602         ("movdf"): Same.
1603
1604 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1605
1606         * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in
1607         system headers.
1608
1609 2004-10-05  Joseph S. Myers  <jsm@polyomino.org.uk>
1610
1611         * c-decl.c (pushdecl): When an extern declaration at block scope
1612         refers to a visible entity with internal linkage, use the old DECL
1613         rather than the new one.
1614
1615 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1616
1617         * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in
1618         comments.
1619
1620 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1621
1622         * tree-cfg.c (thread_jumps): Remove a duplicate check for
1623         an infinite loop.
1624
1625 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1626
1627         * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead
1628         of FOR_BB_BETWEEN.  Remove a useless check for unreachable
1629         blocks.
1630
1631 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1632
1633         * tree-cfg.c (cleanup_tree_cfg): Don't call
1634         delete_unreachable_blosk() after thread_jumps().
1635         (thread_jumps): Always remove basic blocks as they become
1636         unreachable.
1637
1638 2004-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1639
1640         * tree-cfg.c (cleanup_tree_cfg): Remove variable
1641         something_changed.  Simplify the while loop.
1642
1643 2004-10-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1644
1645         * builtins.c (expand_builtin_memmove): Delete duplicate code
1646         and accept a tree type for the result.
1647         (expand_builtin_bcopy): Accept a tree type for the result.
1648         (fold_builtin_memmove): Accept an arglist and tree type for
1649         the result.
1650
1651 2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
1652
1653         * config/s390/s390.c (s390_dump_pool): Remove return value.
1654         Use gen_pool_align, gen_pool_section_start/end instead of
1655         gen_pool_start/end_31/64.
1656         * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove.
1657         (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants.
1658         ("pool_start_31", "pool_end_31"): Remove.
1659         ("pool_start_64", "pool_end_64"): Likewise.
1660         ("pool_align", "pool_section_start", "pool_section_end": New insns.
1661
1662         * config/s390/s390.c (s390_cannot_copy_insn_p): New function.
1663         (TARGET_CANNOT_COPY_INSN_P): Define.
1664         (s390_cannot_force_const_mem): Handle UNSPEC_INSN.
1665         (struct constant_pool): New member 'execute'.
1666         (s390_add_execute, s390_find_execute): New functions.
1667         (s390_execute_label, s390_execute_target): Likewise.
1668         (s390_dump_pool): Output in-pool execute target templates.
1669         (s390_dump_execute): New function.
1670         (s390_alloc_pool, s390_free_pool): Handle execute templates.
1671         (s390_mainpool_start, s390_mainpool_finish): Likewise.
1672         (s390_chunkify_start, s390_chunkify_finish): Likewise.
1673         * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants.
1674         ("*execute"): New insn pattern.
1675         ("movmem_short", "*movmem_short"): Use splitters to generate
1676         explicit execute pattern, remove embedded execute.
1677         ("clrmem_short", "*clrmem_short"): Likewise.
1678         ("cmpmem_short", "*cmpmem_short"): Likewise.
1679
1680 2004-10-05  Daniel Berlin  <dberlin@dberlin.org>
1681
1682         * tree-ssa.c (verify_ssa): Verify phi arguments only
1683         contain renamed names.
1684
1685 2004-10-05  Alan Modra  <amodra@bigpond.net.au>
1686
1687         * config/rs6000/linux.h: Formatting, whitespace.
1688         * config/rs6000/linux64.h: Likewise.
1689         * config/rs6000/rs6000-protos.h: Likewise.
1690         * config/rs6000/rs6000.c: Likewise.
1691         (easy_vector_splat_const): Add fall thru comments.
1692         (output_vec_const_move): Likewise.
1693
1694 2004-10-05  Kelley Cook  <kcook@gcc.gnu.org>
1695
1696         * Makefile.in: Update -Wno-error exceptions for move to build dir.
1697
1698 2004-10-05  Chao-Ying Fu  <fu@mips.com>
1699             Richard Sandiford  <rsandifo@redhat.com>
1700
1701         * doc/invoke.texi (-mpaired-single): Link to the new description of the
1702         built-in functions.  Document dependencies.
1703         (-mips3d): Add link here too.
1704         * doc/extend.texi (MIPS Paired-Single Support): New section.
1705
1706 2004-10-04  Chao-ying Fu  <fu@mips.com>
1707
1708         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define.
1709
1710 2004-10-04  Diego Novillo  <dnovillo@redhat.com>
1711
1712         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1713         Initialize OPT_STATS to 0.
1714
1715 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
1716
1717         * tree-data-ref.c: Fix comment typos.
1718
1719 2004-10-04  Sebastian Pop  <pop@cri.ensmp.fr>
1720
1721         * tree-data-ref.c (array_base_name_differ_p): Fix comments.  When
1722         the predicate cannot be computed, don't initialize the result to
1723         false.
1724
1725 2004-10-01  Eric Christopher  <echristo@redhat.com>
1726
1727         * dwarf2.h (dwarf_calling_convention): Add GNU prefix to
1728         locally defined enum.
1729         * dwarf2out.c (add_calling_convention_attribute): Don't
1730         emit DW_CC_normal.
1731
1732 2004-10-03  Andrew Pinski  <pinskia@physics.uc.edu>
1733
1734         PR c/17178, PR c/17820
1735         * c-decl.c (pop_scope): Do not warn about unused static
1736         variables as they warned in the middle-end.
1737
1738 2004-10-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1739
1740         * builtins.c (expand_builtin_memcpy): Delete duplicate code
1741         and make the first parameter the expression not the arglist.
1742
1743 2004-10-03  Ulrich Weigand  <uweigand@de.ibm.com>
1744
1745         * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode
1746         as valid modes to expand address expressions.
1747
1748 2004-10-03  Joseph S. Myers  <jsm@polyomino.org.uk>
1749
1750         * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c,
1751         c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c,
1752         c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow
1753         code formatting conventions.
1754
1755 2004-10-03  Richard Sandiford  <rsandifo@redhat.com>
1756
1757         * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case.
1758
1759 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
1760
1761         PR tree-optimization/16632
1762         * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to
1763         fold (A & C) == D into 0, fold ~C.  Similarly, for the case
1764         where | is used instead of &.
1765
1766 2004-10-03  Kazu Hirata  <kazu@cs.umass.edu>
1767
1768         * ginclude/stddef.h: Fix a comment typo.
1769
1770 2004-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1771
1772         PR target/17443
1773         * config.gcc (i?86-*-solaris2*): Restore correct logic
1774         for --enable-threads option.
1775         (sparc64-*-solaris2*): Likewise.
1776         (sparc-*-solaris2*): Likewise.
1777
1778 2004-10-03  Alan Modra  <amodra@bigpond.net.au>
1779
1780         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define.
1781         (OS_MISSING_POWERPC64): Move, and comment.
1782         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define.
1783         (OS_MISSING_POWERPC64): Move, and comment.
1784
1785 2004-10-02  Ian Lance Taylor  <ian@wasabisystems.com>
1786
1787         * arm.c (output_call_mem): Add missing \t.
1788
1789 2004-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1790
1791         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp,
1792         expand_builtin_strncmp): Delete duplicate code.
1793
1794 2004-10-02  Frank Ch. Eigler  <fche@redhat.com>
1795
1796         * tree-mudflap.c (mf_build_check_statement_for): Reorganize to
1797         take check-base and -limit arguments.
1798         (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit
1799         check ranges for ARRAY_REF and COMPONENT_REF.
1800         (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary
1801         instrumentation.
1802
1803 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
1804
1805         * c-objc-common.c (c_tree_printer): Correct description of %E.
1806         Don't fall through after printing an expression.
1807
1808 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
1809
1810         * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos.
1811
1812 2004-10-02  Kazu Hirata  <kazu@cs.umass.edu>
1813
1814         * tree-cfg.c (cleanup_tree_cfg): Speed up by calling
1815         delete_unrechable_blocks() only when necessary.
1816
1817 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
1818
1819         * gthr-tpf.h (__gthread_recursive_mutex_t): New type.
1820         (__GTHREAD_RECURSIVE_MUTEX_INIT): Define.
1821         (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
1822         __gthread_recursive_mutex_unlock): New functions.
1823
1824 2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
1825
1826         * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c.
1827         * config/s390/tpf-eh.c: Remove file.
1828         * config/s390/tpf-unwind.h: New file.
1829         * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove.
1830         (MD_UNWIND_SUPPORT): Define.
1831
1832 2004-10-02  Joseph S. Myers  <jsm@polyomino.org.uk>
1833
1834         * c-typeck.c (warn_for_assignment): Don't permit argnum == 0.
1835
1836 2004-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
1837
1838         * config/s390/s390-protos.h (s390_comparison): Add prototype.
1839         * config/s390/s390.c (s390_comparison): New function.
1840         (s390_branch_condition_mask): Return -1 for invalid comparisons.
1841         (s390_branch_condition_mnemonic): Assert valid comparison.
1842         * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison.
1843         * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long",
1844         "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use
1845         s390_comparison instead of comparison_operator.
1846
1847         * config/s390/s390.md (UNSPEC_CMPINT): New constant.
1848         ("cmpmemdi"): Remove.
1849         ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode.
1850         ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise.
1851         ("cmpint_si"): Rename to ...
1852         ("*cmpint_si"): ... this.  Use UNSPEC_CMPINT.
1853         ("cmpint_di", "*cmpint_di"): Likewise.
1854         * config/s390/s390.c (s390_canonicalize_comparison): Remove
1855         redundant UNSPEC_CMPINT conversions.
1856         (s390_expand_cmpmem): Adapt to cmpint pattern changes.
1857
1858 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
1859
1860         * collect2.c (COLLECT_PARSE_FLAG): Remove.
1861         (main): Remove a reference to COLLECT_PARSE_FLAG
1862         * system.h: Poison COLLECT_PARSE_FLAG.
1863         * doc/tm.texi (COLLECT_PARSE_FLAG): Remove.
1864
1865 2004-10-01  Paul Brook  <paul@codesourcery.com>
1866
1867         * config/arm/crti.asm: Give _init and _fini function type.
1868
1869 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
1870
1871         * common.opt (ftree-loop-ivcanon): Enable by default.
1872         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1873         Enable complete loop unrolling.
1874         (canonicalize_induction_variables, tree_unroll_loops_completely):
1875         Reset scev info.
1876
1877 2004-10-01  Paul Brook  <paul@codesourcery.com>
1878
1879         * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask,
1880         not register number.
1881         (thumb_find_work_register): Search full register range.
1882
1883 2004-10-01  Andrew Pinski  <pinskia@physics.uc.edu>
1884
1885         PR tree-opt/17343
1886         * tree-cfg.c (group_case_labels): Get the label and not
1887         the case expr for the default case.
1888         When the label we looking at is the default, decrement the
1889         new_size.
1890
1891 2004-10-01  Jan Hubicka  <jh@suse.cz>
1892
1893         * c-decl.c (c_expand_body): Update call tree_rest_of_compilation.
1894         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1895         * toplev.h (tree_rest_of_compilation): Update prototype.
1896         * tree-optimize.c (tree_rest_of_compilation):  Kill nested_p argument.
1897
1898 2004-10-01  Kazu Hirata  <kazu@cs.umass.edu>
1899
1900         * tree-cfg.c (cleanup_tree_cfg): Pull a call to
1901         cleanup_control_flow() out of the while loop.
1902
1903 2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
1904
1905         * tree-vectorizer.c (vectorizable_operation): Fail unless
1906         the mode for the vector type is indeed a vector mode.
1907
1908 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
1909
1910         * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
1911         chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
1912         of convert.
1913         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
1914         add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
1915         follow_ssa_edge_in_rhs): Ditto.
1916         * tree-ssa-loop-ivopts.c (struct iv): Add base_object field.
1917         (dump_iv): Dump base_object.
1918         (dump_use, dump_cand): Use dump_iv.
1919         (determine_base_object): New function.
1920         (alloc_iv): Initialize base_object field.
1921         (record_use): Clear the ssa_name field of iv.
1922         (get_computation_cost_at): Do not use difference of addresses of
1923         two different objects.
1924         (may_eliminate_iv): Do not require the loop to have just single exit.
1925         * tree-ssa-loop-niter.c (zero_p): Do not check for overflows.
1926         (nonzero_p): New function.
1927         (inverse, number_of_iterations_cond, simplify_using_outer_evolutions,
1928         tree_simplify_using_condition, simplify_using_initial_conditions,
1929         loop_niter_by_eval, find_loop_niter_by_eval,
1930         estimate_numbers_of_iterations_loop, compare_trees,
1931         upper_bound_in_type, lower_bound_in_type,
1932         can_count_iv_in_wider_type_bound): Use buildN instead of build.  Use
1933         fold_convert or build_int_cst_type instead of convert.  Use (non)zero_p
1934         instead of integer_(non)zerop.
1935
1936 2004-10-01  Jakub Jelinek  <jakub@redhat.com>
1937
1938         Revert
1939         2004-09-29  Jakub Jelinek  <jakub@redhat.com>
1940
1941         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
1942         and TI_VA_LIST_FPR_COUNTER_FIELD.
1943         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
1944         * tree-pass.h (pass_stdarg): Add.
1945         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
1946         * tree-stdarg.c: New file.
1947         * Makefile.in (OBJS-common): Add tree-stdarg.o.
1948         (tree-stdarg.o): Add dependencies.
1949         * function.h (struct function): Add va_list_gpr_size and
1950         va_list_fpr_size fields.
1951         * function.c (allocate_struct_function): Initialize them.
1952
1953         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
1954         va_list_{g,f}pr_counter_field.
1955         (ix86_setup_incoming_varargs): Don't do anything if reg_save
1956         area will not be used.  Only save registers that tree-stdarg.c
1957         detected they need saving.
1958         (ix86_va_start): Don't set up fields that won't be used.
1959
1960         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
1961         va_list_{g,f}pr_counter_field.
1962         (setup_incoming_varargs): Don't do anything if reg_save
1963         area will not be used.  Only save registers that tree-stdarg.c
1964         detected they need saving.
1965         (rs6000_va_start): Don't set up fields that won't be used.
1966
1967 2004-09-30  Eric Christopher  <echristo@redhat.com>
1968
1969         * dwarf2.h (dwarf_calling_convention): Add enum for renesas
1970         sh abi.
1971         * dwarf2out.c (add_calling_convention_attribute): New function.
1972         (gen_subroutine_type_die): Use.
1973         * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook.
1974         * target.h (gcc_target): Add dwarf_calling_convention.
1975         * hooks.c (hook_int_tree_0): New function.
1976         * hooks.h: Prototype.
1977         * config/sh/sh.c: Include dwarf2.h.
1978         (sh_dwarf_calling_convention): New function.
1979         (TARGET_DWARF_CALLING_CONVENTION): Use.
1980         * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document.
1981
1982 2004-09-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1983
1984         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1985         expand_builtin_strrchr, expand_builtin_strpbrk,
1986         expand_builtin_strncat, expand_builtin_strspn,
1987         expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate
1988         code.
1989
1990 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
1991
1992         * config/s390/s390-protos.h (s390_expand_logical_operator): Add
1993         prototype.
1994         (s390_logical_operator_ok_p): Likewise.
1995         * config/s390/s390.c (s390_expand_logical_operator): New function.
1996         (s390_logical_operator_ok_p): Likewise.
1997         * config/s390/s390.md ("anddi3"): New expander.
1998         ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative.
1999         ("*anddi3_ss", "*anddi3_ss_inv"): Remove.
2000         ("andsi3"): Use s390_expand_logical_operator.
2001         ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative.
2002         ("*andsi3_ss", "*andsi3_ss_inv"): Remove.
2003         ("andhi3"): New expander.
2004         ("*andhi3_zarch", "*andhi3_esa"): New patterns.
2005         ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove.
2006         ("andqi3"): New expander.
2007         ("*andqi3_zarch", "*andqi3_esa"): New patterns.
2008         ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove.
2009         ("iordi3"): New expander.
2010         ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative.
2011         ("*iordi3_ss", "*iordi3_ss_inv"): Remove.
2012         ("iorsi3"): Use s390_expand_logical_operator.
2013         ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative.
2014         ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove.
2015         ("iorhi3"): New expiorer.
2016         ("*iorhi3_zarch", "*iorhi3_esa"): New patterns.
2017         ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove.
2018         ("iorqi3"): New expiorer.
2019         ("*iorqi3_zarch", "*iorqi3_esa"): New patterns.
2020         ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove.
2021         ("xordi3"): New expander.
2022         ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative.
2023         ("*xordi3_ss", "*xordi3_ss_inv"): Remove.
2024         ("xorsi3"): New expander.
2025         ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative.
2026         ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove.
2027         ("xorhi3"): New expander.
2028         ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative.
2029         ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove.
2030         ("xorqi3"): New expander.
2031         ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative.
2032         ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove.
2033
2034 2004-09-30  Roger Sayle  <roger@eyesopen.com>
2035
2036         * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression
2037         (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same
2038         machine mode as the result.
2039
2040 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2041
2042         PR bootstrap/17761
2043         * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and
2044         FOR_EACH_EDGE macros.
2045
2046 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2047
2048         * c-tree.h (readonly_error): Remove.
2049         * c-typeck (enum lvalue_use): New.
2050         (lvalue_or_else, readonly_error): Use it.  All callers changed.
2051         (readonly_error): Make static.
2052
2053 2004-09-30  Jan Hubicka  <jh@suse.cz>
2054
2055         PR debug/13974
2056         * cfgrtl.c (try_redirect_by_replacing_jump,
2057         force_nonfallthru_and_redirect, commit_one_edge_insertion,
2058         cfg_layout_merge_blocks):  Do not attach any line number information
2059         to newly inserted instructions.
2060         * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to
2061         emit_insn_*_noloc.
2062         (emit_*insn_before, emit_insn*_after): New.
2063         (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite
2064         existing locators.
2065         * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare.
2066         (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill.
2067
2068 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2069
2070         * config/s390/s390-protos.h (s390_arg_frame_offset): Remove.
2071         (s390_return_address_offset): Remove.
2072         (s390_can_eliminate): Add prototype.
2073         (s390_initial_elimination_offset): Add prototype.
2074         * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate.
2075         (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset.
2076         * config/s390/s390.c (s390_arg_frame_offset): Remove.
2077         (s390_return_address_offset): Remove.
2078         (s390_can_eliminate, s390_initial_elimination_offset): New functions.
2079         (struct machine_function): New member split_branches_pending_p.
2080         (s390_mainpool_start): Allow nonexistant pool insn for empty pool.
2081         (s390_mainpool_finish): Likewise.  Clear base_reg if pool empty.
2082         (s390_optimize_prologue): Remove base_used argument.  Call
2083         s390_update_frame_layout instead of s390_register_info.  Handle
2084         prologue/epilogue insns that touch only RETURN_REGNUM.
2085         (s390_reorg): Remove base_used.  Clear split_branches_pending_p.
2086         (s390_register_info): Remove base_used and return_addr_used
2087         arguments, compute special register usage inline.  Return live
2088         register data to caller.
2089         (s390_frame_info): Remove arguments, do not call s390_register_info.
2090         (s390_init_frame_layout): New function.
2091         (s390_update_frame_layout): Likewise.
2092         (s390_emit_prologue): Call s390_update_frame_layout; some code
2093         move to there.  Do not emit pool placeholder insn if unnecessary.
2094
2095 2004-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
2096
2097         * config/s390/s390.c (legitimate_reload_constant_p): Remove
2098         floating point constant workaround.
2099         (s390_secondary_input_reload_class): Handle PLUS reloads
2100         with too-large constant.
2101         (s390_expand_plus_operand): Likewise.
2102         * config/s390/s390.md ("movdi"): Do not call force_const_mem.
2103         ("movsi"): Likewise.  Also, remove workaround for non-general
2104         operands.
2105         ("movdf"): Do not call force_const_mem.
2106         ("movsf"): Likewise.  Merge expander with *movsf insn.
2107         ("*movsf"): Remove, merge with movsf expander.
2108
2109 2004-09-30  Paul Brook  <paul@codesourcery.com>
2110
2111         * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o.
2112         (ENDFILE_SPEC): Define.
2113         * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set.
2114
2115 2004-09-30  Richard Henderson  <rth@redhat.com>
2116
2117         * config/alpha/qrnnd.asm: Mark for noexecstack.
2118
2119 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2120
2121         * protoize.c, tree-cfg.c: Fix comment typos.
2122
2123 2004-09-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2124
2125         PR c/17730
2126         * c-typeck.c (lvalue_or_else): Pass msgid directly to error.
2127
2128 2004-09-30  Diego Novillo  <dnovillo@redhat.com>
2129
2130         * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of
2131         expressions...
2132         (add_pointed_to_expr): ... here.
2133         Call add_pointed_to_expr for variables with DECL_INITIAL set.
2134         * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any
2135         pointer variable, if set.
2136
2137 2004-09-30  Kazu Hirata  <kazu@cs.umass.edu>
2138
2139         * config/sh/sh.c: Follow spelling conventions.
2140
2141 2004-09-29  Richard Henderson  <rth@redhat.com>
2142
2143         * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG.
2144         * doc/tm.texi (DWARF_ZERO_REG): New.
2145
2146         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
2147         alpha_expand_epilogue): Revert 2003-09-30 change to store zero.
2148         * config/alpha/alpha.h (DWARF_ZERO_REG): New.
2149
2150 2004-09-29  Ulrich Weigand  <uweigand@de.ibm.com>
2151
2152         * builtins.c (expand_builtin_strlen): Do not call emit_move_insn
2153         with a PLUS as source operand.
2154         (expand_movstr): Likewise.
2155         (expand_builtin_stpcpy): Likewise.
2156
2157 2004-09-29  Richard Henderson  <rth@redhat.com>
2158
2159         PR 17739
2160         * tree-gimple.c (is_gimple_reg): Reject hard registers.
2161         (is_gimple_asm_val): New.
2162         * tree-gimple.h (is_gimple_asm_val): Declare.
2163         * gimplify.c (gimplify_asm_expr): Use it.
2164         * tree-pretty-print.c (print_declaration): Dump hard regs.
2165         * tree-outof-ssa.c (check_replaceable): Don't check for hard regs.
2166         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
2167         * tree-ssa-pre.c (is_undefined_value): Likewise.
2168         * tree-ssa-copy.c (may_propagate_copy): Likewise.
2169         (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER.
2170         * tree-ssa.c (warn_uninit): Likewise.
2171         * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL.
2172
2173 2004-09-29  Fariborz Jahanian <fjahanian@apple.com>
2174
2175         * c-decl.c (merge_decls): Use comptype when comparing
2176         types to decide on DECL_SIZE save of olddecl.
2177
2178 2004-09-29  Daniel Berlin  <dberlin@dberlin.org>
2179
2180         * tree.h (INDIRECT_REF_P): New macro.
2181         * alias.c (get_alias_set): Use it
2182         (nonoverlapping_memrefs_p): Ditto.
2183         * emit-rtl.c (mem_expr_equal_p): Ditto.
2184         (set_mem_attributes_minus_bitpos): Ditto.
2185         (is_gimple_addressable): Ditto.
2186         (get_base_address): Ditto.
2187         * tree-ssa-alias.c (find_ptr_derefernece): Ditto.
2188         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto.
2189         * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto.
2190         * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto.
2191         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto.
2192         (add_address_candidates): Ditto.
2193         (rewrite_address_base): Ditto.
2194
2195 2004-09-30  Ben Elliston  <bje@au.ibm.com>
2196
2197         * tree-flow.h (struct bb_ann_d): Remove num_preds member.
2198         * tree-into-ssa.c (rewrite_into_ssa): Don't set it.
2199         (rewrite_ssa_into_ssa): Likewise.
2200         * tree-phinodes.c (create_phi_node): Access the number of
2201         predecessor edges using EDGE_COUNT() and not num_preds.
2202
2203 2004-09-29  Joseph S. Myers  <jsm@polyomino.org.uk>
2204
2205         PR c/7425
2206         * c-decl.c (merge_decls): Merge TREE_DEPRECATED.
2207
2208 2004-09-29  Eric Christopher  <echristo@redhat.com>
2209
2210         * fold-const.c (tree_swap_operands_p): Remove duplicated code.
2211
2212 2004-09-29  Hans-Peter Nilsson  <hp@axis.com>
2213
2214         * config/cris/cris.md (moverside, movemside): With MEM, make sure
2215         the address is (plus reg mem).
2216
2217 2004-09-29  David Edelsohn  <edelsohn@gnu.org>
2218
2219         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define.
2220
2221 2004-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2222
2223         * tree.c (make_node_stat): Fix uninitialized warning.  Replace
2224         cascaded if ... else if with a switch.
2225
2226 2004-09-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2227
2228         * read-rtl.c (apply_macro_to_string): Replace index with strchr.
2229
2230 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2231
2232         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2233         and TI_VA_LIST_FPR_COUNTER_FIELD.
2234         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2235         * tree-pass.h (pass_stdarg): Add.
2236         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2237         * tree-stdarg.c: New file.
2238         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2239         (tree-stdarg.o): Add dependencies.
2240         * function.h (struct function): Add va_list_gpr_size and
2241         va_list_fpr_size fields.
2242         * function.c (allocate_struct_function): Initialize them.
2243
2244         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2245         va_list_{g,f}pr_counter_field.
2246         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2247         area will not be used.  Only save registers that tree-stdarg.c
2248         detected they need saving.
2249         (ix86_va_start): Don't set up fields that won't be used.
2250
2251         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2252         va_list_{g,f}pr_counter_field.
2253         (setup_incoming_varargs): Don't do anything if reg_save
2254         area will not be used.  Only save registers that tree-stdarg.c
2255         detected they need saving.
2256         (rs6000_va_start): Don't set up fields that won't be used.
2257
2258 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2259
2260         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED,
2261         BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE,
2262         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED,
2263         BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute.
2264         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2,
2265         ATTR_NONNULL_1_4): New.
2266
2267 2004-09-29  Jakub Jelinek  <jakub@redhat.com>
2268
2269         PR tree-optimization/17697
2270         * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup
2271         cfg if needed.
2272
2273 2004-09-28  Per Bothner  <per@bothner.com>
2274
2275         * profile.c (branch_prob): Pass correct value to output_location,
2276         even when USE_MAPPED_LOCATION.  Fixes bug from 09-11.
2277
2278 2004-09-28  Richard Henderson  <rth@redhat.com>
2279
2280         PR 15089
2281         * tree-ssa-copy.c (may_propagate_copy_into_asm): New.
2282         * tree-flow.h (may_propagate_copy_into_asm): Declare.
2283         * tree-ssa-ccp.c (replace_uses_in): Use it.
2284         * tree-ssa-dom.c (cprop_operand): Likewise.
2285
2286 2004-09-28 Jeff Law  <law@redhat.com>
2287
2288         * tree-ssa-threadupdate.c (create_block_for_threading):  Request
2289         that no outgoing edges be left in the duplicate block.  Do no
2290         update information on outgoing edges or PHI nodes in target
2291         blocks here.
2292         (remove_ctrl_stmt_and_useless_edges): Renamed from
2293         remove_last_stmt_and_useless_edges.  Handle case where the
2294         block is empty or has no control statements.  Do not update edge
2295         flags here.
2296         (thread_block): Create a template block rather than copying the
2297         original block every time.  Create outgoing edges from the
2298         duplicate blocks and update PHIs at the target of the outgoing
2299         edges here.  Fix edge flags for the original block if necessary.
2300         * cfghooks (duplicate_block): No longer assert that the original
2301         block has incoming edges.
2302
2303 2004-09-29  Hans-Peter Nilsson  <hp@bitrange.com>
2304
2305         * doc/extend.texi (Extended Asm): Add blurb about using Explicit
2306         Reg Vars to enforce register allocation with general constraints.
2307         (Explicit Reg Vars): Clarify relation to asm statements.
2308         (Local Reg Vars): Similar.
2309
2310 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2311
2312         * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK,
2313         TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES,
2314         build_control_flow, new_edge): Remove.
2315         (schedule_insns): Remove edge_table/in_edges/out_edges cleanup.
2316         (bitlst, bitlst_table_last, bitlst_table): Remove.
2317         (bblst): Store basic_block pointer instead of block index.
2318         (bblst_table): Likewise.
2319         (edgelst): Store edge pointer instead of edge index.
2320         (edgelst_table, edgelst_last): New variables.
2321         (extract_bitlst): Rename to ...
2322         (extract_edgelst): ... this.  Return edge pointers, not indices.
2323         (split_edges): Update call.
2324         (rgn_edges): Store edge pointers instead of indices.
2325         (edge_to_bit): Remove.
2326         (EDGE_TO_BIT): Store per-region edge index in edge->aux.
2327         (SET_EDGE_TO_BIT): New macro.
2328         (is_cfg_nonregular): Check for simple cases of unreachable blocks.
2329         (find_rgns): Remove edge_list parameter.  Traverse standard CFG
2330         data structures instead of haifa_edge et al.  Use edge pointers
2331         instead of edge indices everywhere.
2332         (compute_dom_prob_ps): Use standard CFG data structures.  Account
2333         for exit edges.
2334         (compute_trg_info): Likewise.
2335         (propagate_deps): Likewise.
2336         (debug_candidate): Account for bblst data structure change.
2337         (check_live_1, update_live_1, is_pfree): Likewise.
2338         (IS_REACHABLE): Use standard CFG data structures.
2339         (init_ready_list): Update bblst_table/edgelst_table allocation.
2340         (schedule_region): Update alloc/cleanup code to data structure
2341         changes.  Use edge->aux to store per-region edge index.
2342         (init_regions): No longer call build_control_flow.  Do not
2343         create edge list any more.
2344
2345 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2346
2347         * cse.c (cse_insn): Avoid creating direct non-local jumps.
2348         * combine.c (can_combine_p): Likewise.
2349         * local-alloc. (update_equiv_regs): Likewise.
2350
2351 2004-09-28  Richard Henderson  <rth@redhat.com>
2352
2353         PR 17531
2354         * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls.
2355         Don't check VOIDmode here.  Force PLUS operands to common type.
2356         (expand_expr_addr_expr): Do VOIDmode check earlier.  Force use of
2357         Pmode if given a non pointer type.
2358
2359 2004-09-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2360
2361         PR 17531
2362         * optabs.c (expand_binop): Force constants to the correct mode.
2363
2364 2004-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
2365
2366         * config/s390/s390.c (s390_adjust_cost): Remove.
2367         (TARGET_SCHED_ADJUST_COST): Do not redefine.
2368         (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE.
2369         * config/s390/s390.md ("main_pool"): Use "larl" type
2370         attribute if TARGET_CPU_ZARCH.
2371
2372 2004-09-28  Jakub Jelinek  <jakub@redhat.com>
2373
2374         * config/ia64/ia64.c (ia64_expand_prologue): Declare ei
2375         variable.
2376
2377 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2378
2379         * tree-ssa-loop.c (pass_record_bounds): Do not assign a
2380         name to the pass.
2381
2382 2004-09-28  Steven Bosscher  <stevenb@suse.de>
2383
2384         * common.opt (flag_gcse_sm): Disable by default.
2385         (flag_gcse_las): Likewise.
2386         (flag_web): Likewise.  Create from this file.
2387         * flags.h: Remove flag_web declaration.
2388         * toplev.c (flag_web): Likewise.
2389         (process_options): Never set flag_web.
2390
2391 2004-09-28  Steven Bosscher  <stevenb@suse.de>
2392
2393         * Makefile.in (tree-ssa-propagate.o): Depend on vec.h.
2394         * tree-ssa-propagate.c: Include vec.h.
2395         (interesting_ssa_edges, varying_ssa_edges): Make these VECs
2396         instead of varrays.
2397         (cfg_blocks_add): Assert the block is not already in the worklist.
2398         Update uses of interesting_ssa_edges and varying_ssa_edges.
2399         (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini,
2400         ssa_propagate): Likewise.
2401
2402 2004-09-28  Joseph S. Myers  <jsm@polyomino.org.uk>
2403
2404         PR c/16409
2405         * c-decl.c (start_decl): Check for initializing incomplete array
2406         of VLAs.
2407         (build_compound_literal): Check for TYPE being error_mark_node.
2408         * c-parse.in (primary): Check for VLA compound literals.
2409
2410 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2411
2412         * tree-ssa-live.c (calculate_live_on_entry): Fix warnings
2413         with --disable-checking.
2414
2415 2004-09-28  Devang Patel  <dpatel@apple.com>
2416
2417         * tree-pretty-print.c (dump_generic_node): Print vector types.
2418
2419 2004-09-28  Nick Clifton  <nickc@redhat.com>
2420
2421         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an
2422         invocation of the function sh_init_cumulative_args.
2423         (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise.
2424         (INIT_CUMULATIVE_INCOMING_ARGS): Delete.
2425         * config/sh/sh-protos.h: Prototype sh_init_cumulative_args.
2426         * config/sh/sh.c (sh_init_cumulative_args): New function based
2427         on the contents of the old INIT_CUMULATIVE_ARGS macro but with a
2428         heuristic added to determine the setting of force_mem when a
2429         library function is being called.
2430
2431 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2432
2433         * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>:
2434         Skip constant arguments.
2435
2436 2004-09-28  Diego Novillo  <dnovillo@redhat.com>
2437
2438         * tree-ssa-alias.c (create_name_tags): If PTR points to a
2439         volatile type, mark the tag volatile.
2440         (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag
2441         volatile.
2442
2443 2004-09-28  Andrew Pinski  <pinskia@physics.uc.edu>
2444
2445         * tree.def (vec_cond_expr): Fix. Change 'e'
2446         to tcc_expression.
2447
2448 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
2449
2450         * basic-block.h: Fix a comment typo.
2451
2452 2004-09-28  Kazu Hirata  <kazu@cs.umass.edu>
2453
2454         * optabs.c, optabs.h: Fix comment typos.
2455
2456 2004-09-28  Eric Botcazou  <ebotcazou@act-europe.fr>
2457
2458         * config/sparc/sparc.md (call_address_struct_value_sp32):
2459         Properly mask the immediate field of the 'unimp' instruction.
2460         (call_symbolic_struct_value_sp32): Likewise.
2461
2462 2004-09-28  Ben Elliston  <bje@au.ibm.com>
2463             Steven Bosscher  <stevenb@suse.de>
2464             Andrew Pinski  <pinskia@physics.uc.edu>
2465
2466         Merge from edge-vector-branch:
2467         * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge).
2468         (struct edge_def): Remove pred_next, succ_next members.
2469         (struct basic_block_def): Remove pred, succ members.  Add preds
2470         and succs members of type VEC(edge).
2471         (FALLTHRU_EDGE): Redefine using EDGE_SUCC.
2472         (BRANCH_EDGE): Likewise.
2473         (EDGE_CRITICAL_P): Redefine using EDGE_COUNT.
2474         (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New.
2475         (edge_iterator): New.
2476         (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New.
2477         (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise.
2478         (FOR_EACH_EDGE): New.
2479         * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros
2480         where applicable.
2481         (rotate_loop): Likewise.
2482         (find_traces_1_route): Likewise.
2483         (bb_to_key): Likewise.
2484         (connect_traces): Likewise.
2485         (copy_bb_p): Likewise.
2486         (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise.
2487         (add_labels_and_missing_jumps): Likewise.
2488         (fix_up_fall_thru_edges): Likewise.
2489         (find_jump_block): Likewise.
2490         (fix_crossing_conditional_branches): Likewise.
2491         (fix_crossing_unconditional_branches): Likewise.
2492         (add_reg_crossing_jump_notes): Likewise.
2493         * bt-load.c (augment_live_range): Likewise.
2494         * cfg.c (clear_edges): Likewise.
2495         (unchecked_make_edge): Likewise.
2496         (cached_make_edge): Likewise.
2497         (make_single_succ_edge): Likewise.
2498         (remove_edge): Likewise.
2499         (redirect_edge_succ_nodup): Likewise.
2500         (check_bb_profile): Likewise.
2501         (dump_flow_info): Likewise.
2502         (alloc_aux_for_edges): Likewise.
2503         (clear_aux_for_edges): Likewise.
2504         (dump_cfg_bb_info): Likewise.
2505         * cfganal.c (forwarder_block_p): Likewise.
2506         (can_fallthru): Likewise.
2507         (could_fall_through): Likewise.
2508         (mark_dfs_back_edges): Likewise.
2509         (set_edge_can_fallthru_flag): Likewise.
2510         (find_unreachable_blocks): Likewise.
2511         (create_edge_list): Likewise.
2512         (verify_edge_list): Likewise.
2513         (add_noreturn_fake_exit_edges): Likewise.
2514         (connect_infinite_loops_to_exit): Likewise.
2515         (flow_reverse_top_sort_order_compute): Likewise.
2516         (flow_depth_first_order_compute): Likewise.
2517         (flow_preorder_transversal_compute): Likewise.
2518         (flow_dfs_compute_reverse_execute): Likewise.
2519         (dfs_enumerate_from): Likewise.
2520         (compute_dominance_frontiers_1): Likewise.
2521         * cfgbuild.c (make_edges): Likewise.
2522         (compute_outgoing_frequencies): Likewise.
2523         (find_many_sub_basic_blocks): Likewise.
2524         (find_sub_basic_blocks): Likewise.
2525         * cfgcleanup.c (try_simplify_condjump): Likewise.
2526         (thread_jump): Likewise.
2527         (try_forward_edges): Likewise.
2528         (merge_blocks_move): Likewise.
2529         (outgoing_edges_match): Likewise.
2530         (try_crossjump_to_edge): Likewise.
2531         (try_crossjump_bb): Likewise.
2532         (try_optimize_cfg): Likewise.
2533         (merge_seq_blocks): Likewise.
2534         * cfgexpand.c (expand_gimple_tailcall): Likewise.
2535         (expand_gimple_basic_block): Likewise.
2536         (construct_init_block): Likewise.
2537         (construct_exit_block): Likewise.
2538         * cfghooks.c (verify_flow_info): Likewise.
2539         (dump_bb): Likewise.
2540         (delete_basic_block): Likewise.
2541         (split_edge): Likewise.
2542         (merge_blocks): Likewise.
2543         (make_forwarder_block): Likewise.
2544         (tidy_fallthru_edges): Likewise.
2545         (can_duplicate_block_p): Likewise.
2546         (duplicate_block): Likewise.
2547         * cfglayout.c (fixup_reorder_chain): Likewise.
2548         (fixup_fallthru_exit_predecessor): Likewise.
2549         (can_copy_bbs_p): Likewise.
2550         (copy_bbs): Likewise.
2551         * cfgloop.c (flow_loops_cfg_dump): Likewise.
2552         (flow_loop_entry_edges_find): Likewise.
2553         (flow_loop_exit_edges_find): Likewise.
2554         (flow_loop_nodes_find): Likewise.
2555         (mark_single_exit_loops): Likewise.
2556         (flow_loop_pre_header_scan): Likewise.
2557         (flow_loop_pre_header_find): Likewise.
2558         (update_latch_info): Likewise.
2559         (canonicalize_loop_headers): Likewise.
2560         (flow_loops_find): Likewise.
2561         (get_loop_body_in_bfs_order): Likewise.
2562         (get_loop_exit_edges): Likewise.
2563         (num_loop_branches): Likewise.
2564         (verify_loop_structure): Likewise.
2565         (loop_latch_edge): Likewise.
2566         (loop_preheader_edge): Likewise.
2567         * cfgloopanal.c (mark_irreducible_loops): Likewise.
2568         (expected_loop_iterations): Likewise.
2569         * cfgloopmanip.c (remove_bbs): Likewise.
2570         (fix_bb_placement): Likewise.
2571         (fix_irreducible_loops): Likewise.
2572         (remove_path): Likewise.
2573         (scale_bbs_frequencies): Likewise.
2574         (loopify): Likewise.
2575         (unloop): Likewise.
2576         (fix_loop_placement): Likewise.
2577         (loop_delete_branch_edge): Likewise.
2578         (duplicate_loop_to_header_edge): Likewise.
2579         (mfb_keep_just): Likewise.
2580         (create_preheader): Likewise.
2581         (force_single_succ_latches): Likewise.
2582         (loop_split_edge_with): Likewise.
2583         (create_loop_notes): Likewise.
2584         * cfgrtl.c (rtl_split_block): Likewise.
2585         (rtl_merge_blocks): Likewise.
2586         (rtl_can_merge_blocks): Likewise.
2587         (try_redirect_by_replacing_jump): Likewise.
2588         (force_nonfallthru_and_redirect): Likewise.
2589         (rtl_tidy_fallthru_edge): Likewise.
2590         (commit_one_edge_insertion): Likewise.
2591         (commit_edge_insertions): Likewise.
2592         (commit_edge_insertions_watch_calls): Likewise.
2593         (rtl_verify_flow_info_1): Likewise.
2594         (rtl_verify_flow_info): Likewise.
2595         (purge_dead_edges): Likewise.
2596         (cfg_layout_redirect_edge_and_branch): Likewise.
2597         (cfg_layout_can_merge_blocks_p): Likewise.
2598         (rtl_flow_call_edges_add): Likewise.
2599         * cse.c (cse_cc_succs): Likewise.
2600         * df.c (hybrid_search): Likewise.
2601         * dominance.c (calc_dfs_tree_nonrec): Likewise.
2602         (calc_dfs_tree): Likewise.
2603         (calc_idoms): Likewise.
2604         (recount_dominator): Likewise.
2605         * domwalk.c (walk_dominator_tree): Likewise.
2606         * except.c (emit_to_new_bb_before): Likewise.
2607         (connect_post_landing_pads): Likewise.
2608         (sjlj_emit_function_enter): Likewise.
2609         (sjlj_emit_function_exit): Likewise.
2610         (finish_eh_generation): Likewise.
2611         * final.c (compute_alignments): Likewise.
2612         * flow.c (calculate_global_regs_live): Likewise.
2613         (initialize_uninitialized_subregs): Likewise.
2614         (init_propagate_block_info): Likewise.
2615         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2616         * gcse.c (find_implicit_sets): Likewise.
2617         (bypass_block): Likewise.
2618         (bypass_conditional_jumps): Likewise.
2619         (compute_pre_data): Likewise.
2620         (insert_insn_end_bb): Likewise.
2621         (insert_store): Likewise.
2622         (remove_reachable_equiv_notes): Likewise.
2623         * global.c (global_conflicts): Likewise.
2624         (calculate_reg_pav): Likewise.
2625         * graph.c (print_rtl_graph_with_bb): Likewise.
2626         * ifcvt.c (mark_loop_exit_edges): Likewise.
2627         (merge_if_block): Likewise.
2628         (find_if_header): Likewise.
2629         (block_jumps_and_fallthru_p): Likewise.
2630         (find_if_block): Likewise.
2631         (find_cond_trap): Likewise.
2632         (block_has_only_trap): Likewise.
2633         (find_if_case1): Likewise.
2634         (find_if_case_2): Likewise.
2635         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise.
2636         (perfect_nestify): Likewise.
2637         * lcm.c (compute_antinout_edge): Likewise.
2638         (compute_laterin): Likewise.
2639         (compute_available): Likewise.
2640         (compute_nearerout): Likewise.
2641         * loop-doloop.c (doloop_modify): Likewise.
2642         * loop-init.c (loop_optimizer_init): Likewise.
2643         * loop-invariant.c (find_exits): Likewise.
2644         * loop-iv.c (simplify_using_initial_values): Likewise.
2645         (check_simple_exit): Likewise.
2646         (find_simple_exit): Likewise.
2647         * loop-unroll.c (peel_loop_completely): Likewise.
2648         (unroll_loop_constant_iterations): Likewise.
2649         (unroll_loop_runtime_iterations): Likewise.
2650         * loop-unswitch.c (may_unswitch_on): Likewise.
2651         (unswitch_loop): Likewise.
2652         * modulo-sched.c (generate_prolog_epilog): Likewise.
2653         (sms_schedule): Likewise.
2654         * postreload-gcse.c (eliminate_partially_redundant_load):
2655         Likewise.
2656         * predict.c (can_predict_insn_p): Likewise.
2657         (set_even_probabilities): Likewise.
2658         (combine_predictions_for_bb): Likewise.
2659         (predict_loops): Likewise.
2660         (estimate_probability): Likewise.
2661         (tree_predict_by_opcode): Likewise.
2662         (tree_estimate_probability): Likewise.
2663         (last_basic_block_p): Likewise.
2664         (propagate_freq): Likewise.
2665         (estimate_loops_at_level): Likewise.
2666         (estimate_bb_frequencies): Likewise.
2667         * profile.c (instrument_edges): Likewise.
2668         (get_exec_counts): Likewise.
2669         (compute_branch_probabilities): Likewise.
2670         (branch_prob): Likewise.
2671         * ra-build.c (live_in): Likewise.
2672         * ra-rewrite.c (rewrite_program2): Likewise.
2673         * ra.c (reg_alloc): Likewise.
2674         * reg-stack.c (reg_to_stack): Likewise.
2675         (convert_regs_entry): Likewise.
2676         (compensate_edge): Likewise.
2677         (convert_regs_1): Likewise,
2678         (convert_regs_2): Likewise.
2679         (convert_regs): Likewise.
2680         * regrename.c (copyprop_hardreg_forward): Likewise.
2681         * reload1.c (fixup_abnormal_edges): Likewise.
2682         * sbitmap.c (sbitmap_intersection_of_succs): Likewise.
2683         (sbitmap_insersection_of_preds): Likewise.
2684         (sbitmap_union_of_succs): Likewise.
2685         (sbitmap_union_of_preds): Likewise.
2686         * sched-ebb.c (compute_jump_reg_dependencies): Likewise.
2687         (fix_basic_block_boundaries): Likewise.
2688         (sched_ebbs): Likewise.
2689         * sched-rgn.c (build_control_flow): Likewise.
2690         (find_rgns): Likewise.
2691         * tracer.c (find_best_successor): Likewise.
2692         (find_best_predecessor): Likewise.
2693         (tail_duplicate): Likewise.
2694         * tree-cfg.c (make_edges): Likewise.
2695         (make_ctrl_stmt_edges): Likewise.
2696         (make_goto_expr_edges): Likewise.
2697         (tree_can_merge_blocks_p): Likewise.
2698         (tree_merge_blocks): Likewise.
2699         (cfg_remove_useless_stmts_bb): Likewise.
2700         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
2701         (tree_block_forwards_to): Likewise.
2702         (cleanup_control_expr_graph): Likewise.
2703         (find_taken_edge): Likewise.
2704         (dump_cfg_stats): Likewise.
2705         (tree_cfg2vcg): Likewise.
2706         (disband_implicit_edges): Likewise.
2707         (tree_find_edge_insert_loc): Likewise.
2708         (bsi_commit_edge_inserts): Likewise.
2709         (tree_split_edge): Likewise.
2710         (tree_verify_flow_info): Likewise.
2711         (tree_make_forwarder_block): Likewise.
2712         (tree_forwarder_block_p): Likewise.
2713         (thread_jumps): Likewise.
2714         (tree_try_redirect_by_replacing_jump): Likewise.
2715         (tree_split_block): Likewise.
2716         (add_phi_args_after_copy_bb): Likewise.
2717         (rewrite_to_new_ssa_names_bb): Likewise.
2718         (dump_function_to_file): Likewise.
2719         (print_pred_bbs): Likewise.
2720         (print_loop): Likewise.
2721         (tree_flow_call_edges_add): Likewise.
2722         (split_critical_edges): Likewise.
2723         (execute_warn_function_return): Likewise.
2724         (extract_true_false_edges_from_block): Likewise.
2725         * tree-if-conv.c (tree_if_conversion): Likewise.
2726         (if_convertable_bb_p): Likewise.
2727         (find_phi_replacement_condition): Likewise.
2728         (combine_blocks): Likewise.
2729         * tree-into-ssa.c (compute_global_livein): Likewise.
2730         (ssa_mark_phi_uses): Likewise.
2731         (ssa_rewrite_initialize_block): Likewise.
2732         (rewrite_add_phi_arguments): Likewise.
2733         (ssa_rewrite_phi_arguments): Likewise.
2734         (insert_phi_nodes_for): Likewise.
2735         (rewrite_into_ssa): Likewise.
2736         (rewrite_ssa_into_ssa): Likewise.
2737         * tree-mudflap.c (mf_build_check_statement_for): Likewise.
2738         * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise.
2739         (rewrite_trees): Likewise.
2740         * tree-pretty-print.c (dump_bb_header): Likewise.
2741         (dump_implicit_edges): Likewise.
2742         * tree-sra.c (insert_edge_copies): Likewise.
2743         (find_obviously_necessary_stmts): Likewise.
2744         (remove_data_stmt): Likewise.
2745         * tree-ssa-dom.c (thread_across_edge): Likewise.
2746         (dom_opt_finalize_block): Likewise.
2747         (single_incoming_edge_ignoring_loop_edges): Likewise.
2748         (record_equivalences_from_incoming_edges): Likewise.
2749         (cprop_into_successor_phis): Likewise.
2750         * tree-ssa-live.c (live_worklist): Likewise.
2751         (calculate_live_on_entry): Likewise.
2752         (calculate_live_on_exit): Likewise.
2753         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
2754         (copy_loop_headers): Likewise.
2755         * tree-ssa-loop-im.c (loop_commit_inserts): Likewise.
2756         (fill_always_executed_in): Likewise.
2757         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise.
2758         * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise.
2759         (compute_phi_arg_on_exit): Likewise.
2760         * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise.
2761         (get_loops_exit): Likewise.
2762         (split_loop_exit_edge): Likewise.
2763         (ip_normal_pos): Likewise.
2764         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2765         Likewise.
2766         * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise.
2767         (replace_phi_with_stmt): Likewise.
2768         (value_replacement): Likewise.
2769         * tree-ssa-pre.c (compute_antic_aux): Likewise.
2770         (insert_aux): Likewise.
2771         (init_pre): Likewise.
2772         * tree-ssa-propagate.c (simulate_stmt): Likewise.
2773         (simulate_block): Likewise.
2774         (ssa_prop_init): Likewise.
2775         * tree-ssa-threadupdate.c (thread_block): Likewise.
2776         (create_block_for_threading): Likewise.
2777         (remove_last_stmt_and_useless_edges): Likewise.
2778         * tree-ssa.c (verify_phi_args): Likewise.
2779         (verify_ssa): Likewise.
2780         * tree_tailcall.c (independent_of_stmt_p): Likewise.
2781         (find_tail_calls): Likewise.
2782         (eliminate_tail_call): Likewise.
2783         (tree_optimize_tail_calls_1): Likewise.
2784         * tree-vectorizer.c (vect_transform_loop): Likewise.
2785         * var-tracking.c (prologue_stack_adjust): Likewise.
2786         (vt_stack_adjustments): Likewise.
2787         (vt_find_locations): Likewise.
2788         * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise.
2789         * config/i386/i386.c (ix86_pad_returns): Likewise.
2790         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2791         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2792
2793 2004-09-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
2794
2795         PR target/16532
2796         * config/sparc/sparc.c (struct machine_function): New field
2797         'leaf_function_p' and 'prologue_data_valid_p'.
2798         (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
2799         to conveniently access the above fields.
2800         (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
2801         (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
2802         of the generic flavor 'current_function_uses_only_leaf_regs'.
2803         (eligible_for_sibcall_delay): Likewise.
2804         (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
2805         'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
2806         (sparc_asm_function_prologue): Add sanity check for the assumption
2807         made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
2808         (sparc_can_use_return_insn_p): New function.
2809         (sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
2810         (output_restore): Likewise.
2811         (output_sibcall): Likewise.
2812         (sparc_output_mi_thunk): Likewise.
2813         * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
2814         * config/sparc/sparc.md (return): New expander.
2815
2816         * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.
2817
2818 2004-09-27  Mark Mitchell  <mark@codesourcery.com>
2819
2820         PR c++/17642
2821         * stor-layout.c (layout_decl): Use fold_convert, not convert.
2822         (bit_from_pos): Likewise.
2823         (byte_from_pos): Likewise.
2824         (pos_from_bit): Likewise.
2825         (normalize_offset): Likewise.
2826         (place_field): Likewise.
2827         (finalize_type_size): Likewise.
2828         (layout_type): Likewise.
2829         * tree.c (build_index_type): Likewise.
2830
2831 2004-09-27  Devang Patel  <dpatel@apple.com>
2832
2833         * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR.
2834         * genopinit.c (optabs): New entry for vcond_gen_code and
2835         vcondu_gen_code.
2836         * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs.
2837         (get_rtx_code): New function.
2838         (vector_compare_rtx): New function.
2839         (init_optabs): Initialize vcond_gen_code and vcondu_gen_code.
2840         (expand_vec_cond_expr_p): New function.
2841         (expand_vec_cond_expr): New function.
2842         (get_vcond_icode): New function.
2843         * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs.
2844         (vcond_gen_code, vcondu_gen_code): Same.
2845
2846 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
2847
2848         * Makefile.in (STAGESTUFF): Split into ...
2849         (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these.
2850         (mostlyclean): Update.
2851         (stage1-start, stage2-start, stage3-start, stage4-start,
2852         stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF.
2853         Move the STAGEMOVESTUFF.
2854
2855 2004-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2856
2857         * system.h (getpagesize): Return 'int' instead of 'long'.
2858
2859 2004-09-27  Michael Matz <matz@suse.de>
2860
2861         PR bootstrap/17698
2862         PR bootstrap/17702
2863         * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init,
2864         bmp_iter_and_init): Shift by bit_in_word.
2865
2866 2004-09-27  Kelley Cook  <kcook@gcc.gnu.org>
2867
2868         * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4.
2869         * configure.ac: Don't sinclude it here.
2870         * configure: Regenerate.
2871
2872 2004-09-27  Dorit Naishlos  <dorit@il.ibm.com>
2873
2874         * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand):
2875         Handle AND pattern
2876
2877 2004-09-27  Joseph S. Myers  <jsm@polyomino.org.uk>
2878
2879         PR c/13804
2880         * c-typeck.c (build_component_ref): Name type involved in
2881         diagnostic for structure or union without a member of the given
2882         name.
2883
2884 2004-09-27  DJ Delorie  <dj@redhat.com>
2885
2886         * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common):
2887         .comm alignment is bytes, not bits.
2888
2889 2004-09-27  Devang Patel  <dpatel@apple.com>
2890
2891         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
2892         (print_call_name): Do not print VEC_COND_EXPR.
2893
2894 2004-09-27  Devang Patel  <dpatel@apple.com>
2895
2896         * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR.
2897
2898 2004-09-27  Jan Hubicka  <jh@suse.cz>
2899
2900         * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5.
2901
2902 2004-09-27  Kazu Hirata  <kazu@cs.umass.edu>
2903
2904         * bitmap.h: Fix a comment typo.
2905
2906 2004-09-27  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
2907
2908         * libgcc2.c (getpagesize): Change type of return value to int.
2909
2910 2004-09-26  Matt Austern  <austern@apple.com>
2911
2912         * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're
2913         using mmap.
2914
2915 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2916
2917         * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP,
2918         EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style.
2919         (bitmap_iterator): New type.
2920         (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init,
2921         bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1,
2922         bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1,
2923         bmp_iter_and_init, bmp_iter_and_next): New functions.
2924         * basic-block.h (EXECUTE_IF_SET_IN_REG_SET,
2925         EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to
2926         use iterator-style EXECUTE_IF_IN_BITMAP macros.
2927         * bitmap.c (bitmap_print): Ditto.
2928         * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range,
2929         btr_def_live_range): Ditto.
2930         * cfganal.c (compute_dominance_frontiers_1) Ditto.
2931         * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics):
2932         Ditto.
2933         * ddg.c (build_inter_loop_deps): Ditto.
2934         * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update):
2935         Ditto.
2936         * except.c (remove_eh_handler): Ditto.
2937         * flow.c (reg_set_to_hard_reg_set): Ditto.
2938         * gcse.c (clear_modify_mem_tables): Ditto.
2939         * global.c (build_insn_chain): Ditto.
2940         * ifcvt.c (dead_or_predicable): Ditto.
2941         * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg):
2942         Ditto.
2943         * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto.
2944         * ra-rewrite.c (reloads_to_loads, rewrite_program2,
2945         detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto.
2946         * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region,
2947         tree_purge_all_dead_eh_edges): Ditto.
2948         * tree-into-ssa.c (compute_global_livein, insert_phi_nodes,
2949         insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags,
2950         rewrite_ssa_into_ssa): Ditto.
2951         * tree-outof-ssa.c (find_replaceable_exprs): Ditto.
2952         * tree-sra.c (scan_function, decide_instantiations, scalarize_parms):
2953         Ditto.
2954         * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape,
2955         compute_flow_sensitive_aliasing, maybe_create_global_var,
2956         dump_points_to_info_for): Ditto.
2957         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto.
2958         * tree-ssa-dse.c (dse_finalize_block): Ditto.
2959         * tree-ssa-live.c (live_worklist, calculate_live_on_entry,
2960         calculate_live_on_exit, build_tree_conflict_graph, dump_live_info):
2961         Ditto.
2962         * tree-ssa-loop-ivopts.c (find_induction_variables,
2963         find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map,
2964         determine_use_iv_costs, determine_set_costs, find_best_candidate,
2965         set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data):
2966         Ditto.
2967         * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto.
2968         * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops,
2969         add_call_read_ops): Ditto.
2970         * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto.
2971
2972 2004-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2973
2974         * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT,
2975         UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons.
2976
2977 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
2978
2979         * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to
2980         reflect size of memory regions being compared.
2981
2982 2004-09-26  Ulrich Weigand  <uweigand@de.ibm.com>
2983
2984         * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR
2985         expressions.  Always clear MEM_SIZE and alias set.
2986
2987 2004-09-26  Roger Sayle  <roger@eyesopen.com>
2988             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2989
2990         PR middle-end/17112
2991         * stor-layout.c (compute_record_mode): For records with a single
2992         field, only use the field's mode if its size matches what we'd
2993         have choosen for the record ourselves.  This forces the use of
2994         BLKmode for packed records that don't completely fill a mode.
2995
2996 2004-09-26  Roger Sayle  <roger@eyesopen.com>
2997
2998         PR middle-end/17151
2999         * combine.c (force_to_mode): Remove dubious early return test that
3000         inhibits further optimization.
3001
3002 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
3003
3004         * profile.c: Fix a comment typo.
3005
3006 2004-09-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3007
3008         PR bootstrap/17591
3009         * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs
3010         with varying offset.
3011         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function.
3012         (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for
3013         ARRAY_REFS.
3014         (expr_invariant_in_loop_p): New function.
3015         (idx_find_step): Handle step and lower bound for ARRAY_REFs.  Handle
3016         component_ref_field_offset for COMPONENT_REFs.  Do not allow
3017         ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs.
3018         (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and
3019         MISALIGNED_INDIRECT_REFs.
3020         (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs.
3021         (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and
3022         MISALIGNED_INDIRECT_REFs.
3023
3024 2004-09-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3025
3026         PR c/11459
3027         * gcc.c (cpp_options, cc1_options): Preserve relative order of
3028         -std and -ansi options.
3029
3030 2004-09-26  Jan Hubicka  <jh@suse.cz>
3031
3032         * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die
3033         for nested functions whose proper parent has not been output.
3034
3035         * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes
3036         when re-constructing profile previously invalidated by loop.
3037
3038 2004-09-25  Dale Johannesen  <dalej@apple.com>
3039
3040         * tree-gimple.c:  Move GIMPLE definition...
3041         * doc/tree-ssa.texi:  here.
3042
3043 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3044
3045         * tree-vectorizer.c: Fix a comment typo.
3046
3047 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3048
3049         * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
3050         gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
3051         lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
3052         tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
3053
3054 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3055
3056         * tree-ssa-loop-unswitch.c: Fix a comment typo.
3057
3058 2004-09-25  Kazu Hirata  <kazu@cs.umass.edu>
3059
3060         * doc/passes.texi: Fix a typo.
3061
3062 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3063
3064         * tree-optimize.c (init_tree_optimization_passes): Add
3065         pass_record_bounds.
3066         * tree-pass.h (pass_record_bounds): Declare.
3067         * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds):
3068         New pass.
3069
3070 2004-09-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3071
3072         PR tree-optimization/17474
3073         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine
3074         offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0.
3075
3076 2004-09-25  Jan Hubicka  <jh@suse.cz>
3077
3078         * predict.c (counts_to_freqs): Make global.
3079         * predict.h (counts_to_freqa): Declare.
3080         * profile.c (compute_branch_probabilities): Compute frequencies
3081         * tree-profile.c (do_tree_profiling): Refine conditional on when
3082         tree profiling pass is needed.
3083
3084         * passes.c (rest_of_handle_cfg): Disable const/pure function
3085         detection when doing tree based profiling.
3086
3087         * tree-inline.c (expand_call_inline): Fix incorrectly reversed
3088         conditional.
3089
3090 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3091
3092         * config/mips/mips.h (struct mips_args): Clarify comments.
3093         * config/mips/mips.c (struct mips_arg_info): Likewise.
3094         (mips_arg_info): Don't allow fpr_p to affect the register or
3095         stack alignment.  Remove o64 silliness.
3096         (function_arg): Deal with the o32 float,float case specially.
3097
3098 2004-09-25  Richard Sandiford  <rsandifo@redhat.com>
3099
3100         * config/mips/mips.md (loadx, storex): Define for V2SF.
3101
3102 2004-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
3103
3104         * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype.
3105         * config/s390/s390.c (s390_back_chain_rtx): New function.
3106         * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx.
3107         Call anti_adjust_stack.
3108         ("restore_stack_block"): Use s390_back_chain_rtx.  Enable pattern
3109         only if compiling with back chain.
3110         ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore
3111         back chain only if back chain enabled.  Use s390_back_chain_rtx.
3112
3113 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3114
3115         * doc/trouble.texi: Remove obsolete information.  Update
3116         information on how to regenerate fixincluded headers.
3117
3118 2004-09-25  Joseph S. Myers  <jsm@polyomino.org.uk>
3119
3120         PR c/12951
3121         * doc/invoke.texi: Document that
3122         -Wno-error-implicit-function-declaration is not accepted.
3123
3124 2004-09-24  Richard Henderson  <rth@redhat.com>
3125
3126         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New.
3127         * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend
3128         on TARGET_MAX.
3129         (alpha_expand_mov): Allow unaligned vectors.
3130         (alpha_expand_unaligned_store): Use CONST0_RTX.
3131         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
3132
3133 2004-09-24 Jeff Law  <law@redhat.com>
3134
3135         * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict
3136         aliasing rules.
3137         (simplify_cond_and_lookup_avail_expr): Likewise.
3138
3139 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3140
3141         PR c/12802
3142         * doc/extend.texi (Unnamed Fields): Remove "." from end of long
3143         title.  Document interaction with -fms-extensions.
3144         * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields
3145         section.
3146
3147 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3148
3149         PR c/12713
3150         * doc/extend.texi: Document interaction of attribute noreturn and
3151         longjmp.
3152
3153 2004-09-24  Richard Henderson  <rth@redhat.com>
3154
3155         PR rtl-opt/17503
3156         * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
3157         (som_hash, som_eq): New.
3158         (init_subregs_of_mode, record_subregs_of_mode): New.
3159         (cannot_change_mode_set_regs): Rewrite for htab implementation.
3160         (invalid_mode_change_p): Likewise.
3161         * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
3162         * flow.c (mark_used_regs): Likewise.
3163         (life_analysis): Use init_subregs_of_mode.
3164         * regs.h (subregs_of_mode): Remove.
3165         * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
3166
3167 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3168
3169         * tree-ssa-phiopt.c (conditional_replacement): Use the correct
3170         type with the copy of the conditional.
3171
3172 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3173
3174         PR tree-opt/16954
3175         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3176         Prevent renaming if the aliasing sets of the type which the
3177         pointer points to are different.
3178
3179 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3180
3181         PR c/17188
3182         * c-decl.c (diagnose_mismatched_decls): Check for duplicate
3183         declarations of enumerators.
3184         (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check
3185         for redefinition.  Check for nested redefinition.
3186         (finish_struct): Don't check for nested redefinition.
3187         (start_enum): Check for nested redefinition.
3188
3189 2004-09-24  Devang Patel  <dpatel@apple.com>
3190
3191         * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable
3192         only when necesssary.
3193         (combine_blocks): Combine loop header and exit block.
3194
3195 2004-09-24  Paolo Bonzini  <bonzini@gnu.org>
3196
3197         * hooks.c (hook_tree_tree_bool_null): New.
3198         * hooks.h (hook_tree_tree_bool_null): Declare it.
3199         * target-def.c (TARGET_FOLD_BUILTIN): Point to it.
3200         * targhooks.c (default_fold_builtin): Remove.
3201         * targhooks.h (default_fold_builtin): Remove.
3202
3203 2004-09-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3204
3205         PR rtl-optimization/17625
3206         * loop-doloop.c (doloop_modify): Unshare rtl before emitting it.
3207
3208 2004-09-24  Andrew Pinski  <pinskia@physics.uc.edu>
3209
3210         PR tree-opt/17624
3211         * tree-ssa-forwprop.c (record_single_argument_cond_exprs):
3212         Reject if any of the operands occur in an abnormal PHI.
3213
3214 2004-09-24  Andreas Schwab  <schwab@suse.de>
3215
3216         * tree-ssa-dom.c (record_range): Fix violation of strict aliasing
3217         rules.
3218
3219 2004-09-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3220
3221         * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h
3222         if the GNU assembler is used.
3223         (sparc-*-solaris2*): Likewise.
3224         * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero.
3225         (dbxout_function_end): Protect N_ENSYM with it.
3226         (dbxout_begin_prologue): Protect N_BNSYM with it.
3227         * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it.
3228         * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1.
3229         * config/sparc/sol2-gas.h: New file.
3230
3231 2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
3232
3233         PR bootstrap/17369
3234         * Makefile.in (@set_gcc_lib_path@): Added.
3235
3236         * configure.ac: Include ../config/gcc-lib-path.m4. Use
3237         TL_AC_GNU_MAKE_GCC_LIB_PATH.
3238         * configure: Regenerated.
3239
3240 2004-09-24  Joseph S. Myers  <jsm@polyomino.org.uk>
3241
3242         PR c/6980
3243         * c-typeck.c (build_c_cast): Improve wording of
3244         -Wbad-function-cast diagnostic.
3245
3246 2004-09-23  Hans-Peter Nilsson  <hp@axis.com>
3247
3248         PR target/17626
3249         * config/cris/cris.md (moverside, movemside): Rename variable
3250         "reg" to "otherop".  To generate canonical RTX, check that otherop
3251         isn't constant instead of checking that operand 1 is a register.
3252
3253 2004-09-23  Jakub Jelinek  <jakub@redhat.com>
3254
3255         * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR.
3256
3257 2004-09-23  Diego Novillo  <dnovillo@redhat.com>
3258             Jakub Jelinek  <jakub@redhat.com>
3259
3260         * tree-flow.h (find_new_referenced_vars): Add prototype.
3261         * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars):
3262         Move to...
3263         * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars):
3264         ... here.
3265         (mark_new_vars_to_rename): Walk through all operands.
3266         * tree-ssa-ccp.c (convert_to_gimple_builtin): New function.
3267         (execute_fold_all_builtins): Use it.
3268         (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish.
3269
3270 2004-09-23  P.J. Darcy  <darcypj@us.ibm.com>
3271
3272         * gthr-tpf.h: New file.
3273         * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'.
3274         * gthr.h: Use gthr-tpf.h on TPF OS.
3275
3276 2004-09-23 Jeff Law  <law@redhat.com>
3277
3278         * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather
3279         than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
3280         (substitute_and_fold):  Likewise.
3281         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything
3282         except invariants from SSA_NAME_VALUE.
3283         (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV
3284         and SET_SSA_NAME_EQUIV.
3285         (restore_vars_to_original_value, record_const_or_copy): Likewise.
3286         (record_equivalences_from_phis, record_const_or_copy_1): Likewise.
3287         (record_equality, cprop_into_successor_phis): Likewise.
3288         (record_equivalences_from_stmt, cprop_operand): Likewise.
3289         (lookup_avail_expr): Likewise.
3290         * tree-ssa-pre.c (fini_pre): Remove everything except invariants
3291         from SSA_NAME_VALUE.
3292         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill.
3293         (struct tree_ssa_name):  Kill EQUIV field.  Remove GGC skip
3294         annotation from the VALUE_HANDLE field.
3295
3296 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
3297
3298         PR c++/13989
3299         PR c++/9844
3300         * tree.c (reconstruct_complex_type): Remove extra "this".
3301         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3302         Add V4SFmode to case statement.
3303
3304 2004-09-23  Joseph S. Myers  <jsm@polyomino.org.uk>
3305
3306         PR c/16833
3307         * doc/extend.texi, doc/invoke.texi: Document interaction of
3308         -fno-builtin with format checks.  Note that built-in functions
3309         have effects beyond generating code that avoids calls to those
3310         functions.
3311
3312 2004-09-23  Frank Ch. Eigler <fche@redhat.com>
3313
3314         PR tree-optimization/17533
3315         * dominance.c (verify_dominators): Tolerate even more incorrect
3316         dominance data during error message printing.
3317         * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks
3318         and edges more correctly.
3319
3320 2004-09-23  Dorit Naishlos <dorit@il.ibm.com>
3321
3322         * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF):
3323         New tree-codes.
3324         * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and
3325         MISALIGNED_INDIRECT_REF.
3326         * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise.
3327         * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos):
3328         Likewise.
3329         * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base)
3330         (find_interesting_uses_address): Likewise.
3331         * fold-const.c (non_lvalue, operand_equal_p): Likewise.
3332         (build_fold_addr_expr_with_type): Likewise.
3333         * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise.
3334         * print-rtl.c (print_mem_expr): Likewise.
3335         * tree-dump.c (dequeue_and_dump): Likewise.
3336         * tree-eh.c (tree_could_trap_p): Likewise.
3337         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
3338         * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise.
3339         * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by):
3340         Likewise.
3341         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3342         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
3343         * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise.
3344         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3345         (add_address_candidates, rewrite_address_base): Likewise.
3346         * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands):
3347         Likewise.
3348         * tree.c (staticp, build1_stat): Likewise.
3349
3350         * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes.
3351         * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR.
3352         * tree-ssa-operands.c (get_expr_operands): Likewise.
3353         * expr.c (expand_expr_real_1): Likewise.
3354
3355         * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New
3356         optabs.
3357         (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values
3358         for the new optabs.
3359         (expand_ternary_op): New function.
3360         * genopinit.c (optabs): Handle the new optabs.
3361         * optabs.c (optab_for_tree_code): Add cases for the new tree-codes.
3362         (init_optabs): Initialize vec_realign_load_optab.
3363         (expand_ternary_op): New functions.
3364
3365         * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target.
3366         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize.
3367         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise.
3368         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise.
3369         * target.h (struct vectorize): New member for struct gcc_target.
3370         (misaligned_mem_ok): New member for targetm.vectorize.
3371         (builtin_mask_for_load): Likewise.
3372         (builtin_mask_for_store): Likewise.
3373         * targethooks.c (default_vect_misaligned_mem_ok): New function.
3374         * targethooks.h (default_vect_misaligned_mem_ok): New function.
3375
3376         * config/rs6000/altivec.md (build_vector_mask_for_load): New
3377         define_expand.
3378         (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi)
3379         (vec_realign_load_v16qi): New define_insn.
3380         * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD):
3381         (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins.
3382         * config/rs6000/rs6000.c (altivec_builtin_mask_for_load):
3383         (altivec_builtin_mask_for_store): New variables.
3384         (rs6000_builtin_mask_for_load): New function. Implements
3385         TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD.
3386         (rs6000_builtin_mask_for_store): New function. Implements
3387         TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE.
3388         (rs6000_expand_builtin): Expand the target builtins
3389         builtin_mask_for_load and builtin_mask_for_store.
3390         (altivec_init_builtins): Initialize the new target builtins.
3391         * config/i386/i386.c (ix86_misaligned_mem_ok): New function.
3392         Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK.
3393
3394         * tree-vectorizer.c (vect_create_data_ref): Renamed to
3395         vect_create_data_ref_ptr. Returns a pointer instead of an array-ref.
3396         (vect_create_addr_base_for_vector_ref): Additional argument (offset).
3397         (vectorizable_store): Call vect_create_data_ref_ptr with additional
3398         arguments, and create an indirect_ref with its return value data_ref.
3399         Check aligned_access_p.
3400         (vectorizable_load): Handle misaligned loads, using software-pipelined
3401         scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if
3402         vec_realign_load_optab is supported, or using a scheme without
3403         software-pipelining with MISALIGNED_INDIRECT_REF if the target hook
3404         misaligned_mem_ok is supported.
3405
3406         (vect_finish_stmt_generation): Typo.
3407         (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info.
3408         (vect_analyze_data_refs_alignment): Don't fail vectorization in the
3409         presence of misaligned loads.
3410         (vect_analyze_data_ref_access): Add check for constant init.
3411         (vect_get_symbl_and_dr): Remove duplicate line.
3412         * tree-vectorizer.h (DR_MISALIGNMENT): Add comment.
3413
3414 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
3415
3416         * builtins.c: Fix a comment typo.
3417
3418 2004-09-23  Jan Hubicka  <jh@suse.cz>
3419
3420         * profile.c (branch_prob): Do not verify flow info in the middle of the
3421         pass.
3422
3423 2004-09-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3424
3425         * cfgloop.h (update_single_exits_after_duplication): Declare.
3426         (loopify, split_loop_bb): Declaration changed.
3427         * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead
3428         of rtx.
3429         (loopify): Added redirect_all_edges argument.
3430         (update_single_exits_after_duplication): Export.
3431         * loop-unswitch.c (unswitch_loop): Changed due to loopify change.
3432         * tree-flow.h (tree_duplicate_loop_to_header_edge,
3433         tree_ssa_loop_version): Declare.
3434         * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables,
3435         set_phi_def_stmts, tree_duplicate_loop_to_header_edge,
3436         lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge,
3437         lv_update_pending_stmts, tree_ssa_loop_version): New functions.
3438
3439         * tree-ssa-loop-unswitch.c: New file.
3440         * Makefile.in (tree-ssa-loop-unswitch.o): Add.
3441         * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar.
3442         * tree-flow.h (tree_ssa_unswitch_loops): Declare.
3443         * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch.
3444         * tree-pass.h (pass_unswitch): Declare.
3445         * tree-ssa-loop.c (tree_ssa_loop_unswitch,
3446         gate_tree_ssa_loop_unswitch, pass_unswitch): New pass.
3447         * doc/passes.texi: Documen tree level loop unswitching.
3448
3449 2004-09-23  Kazu Hirata  <kazu@cs.umass.edu>
3450
3451         * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos.
3452
3453 2004-09-22  Eric Christopher  <echristo@redhat.com>
3454
3455         * builtins.c (simplify_builtin_va_start): Remove.
3456         (simplify_builtin): Ditto.
3457         (fold_builtin_strchr): Ditto.
3458         (simplify_builtin_*): Rename remainders to fold_builtin_*.
3459         (expand_builtin): Fix up for above changes.
3460         (fold_builtin_1): Add new folders. Change for above.
3461         (expand_builtin_va_start): Call fold_builtin_next_arg.
3462         * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin.
3463         * tree.h: Remove prototype for simplify_builtin.
3464
3465 2004-09-23  Jan Hubicka  <jh@suse.cz>
3466
3467         PR debug/17389
3468         * dwarf2out.c (dwarf2out_finish): Deal with nested functions
3469         of fully inlined functions.
3470         * tree-inline.c (inline_forbidden_p_1): Nested functions can be
3471         inlined.
3472
3473         * cfgexpand.c (add_reg_br_prob_note): New function.
3474         (expand_gimple_cond_expr): Use it.
3475         (tree_expand_cfg): No longer kill the profile.
3476         * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency
3477         only if it is present.
3478         * passes.c (rest_of_handle_loop_optimize): Kill the profile.
3479         * predict.c (combine_predictions_for_insn): Set the probabilities
3480         based on REG_BR_PROB note if present.
3481         * predict.c (branch_prob): Profile is read only with
3482         flag_branch_probabilities.
3483
3484 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3485
3486         * aclocal.m4: Add in gettext's m4 includes.
3487         (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove.
3488         * configure.ac: Add in check for iconv.h
3489         * configure: Regenerate.
3490
3491 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3492
3493         * aclocal.m4: Update for rename of gettext-sister.m4.
3494
3495 2004-09-22  Daniel Berlin <dberlin@dberlin.org>
3496
3497         Fix PR tree-optimization/17587
3498         * tree-ssa-pre.c (fini_pre): Commit edge inserts here.
3499         (insert_aux): Instead of here.
3500
3501 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
3502
3503         PR tree-optimization/16721
3504         * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE.
3505         * tree-ssa-alias.c (create_memory_tag): Move setting of
3506         TREE_THIS_VOLATILE ...
3507         (get_tmt_for): ... here.
3508
3509 2004-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3510
3511         * config/sparc/sparc.md (cmove splitter): Fix formatting.
3512         (conditional_trap expander): Reject inappropriate CCmodes.
3513         (conditional trap insn): Use V9 syntax if possible.
3514
3515 2004-09-22  Joseph S. Myers  <jsm@polyomino.org.uk>
3516
3517         PR c/16566
3518         * c-typeck.c (build_component_ref): Don't special-case
3519         COMPOUND_EXPR.
3520
3521 2004-09-22  Frank Ch. Eigler  <fche@redhat.com>
3522
3523         * dominance.c (verify_dominators): Don't SEGV if recount_dominator
3524         returns NULL.
3525
3526 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
3527
3528         * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR,
3529         TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
3530         TRUTH_XOR_EXPR): Mention the restriction on types.
3531
3532 2004-09-22  Matt Austern  <austern@apple.com>
3533
3534         * config/darwin.c (darwin_make_decl_one_only):
3535         Allow coalesced symbol to appear in static archive's table of contents
3536
3537 2004-09-22  Kazu Hirata  <kazu@cs.umass.edu>
3538
3539         PR tree-optimization/17512
3540         * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as
3541         special cases.
3542
3543 2004-09-22  David Edelsohn  <edelsohn@gnu.org>
3544
3545         * dbxout.c (get_lang_number): Do not define if
3546         DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined.
3547
3548 2004-09-22  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
3549
3550         PR target/15583
3551         * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add
3552         builtin_define ("__USE_INIT_FINI__").
3553
3554 2004-09-22  P.J. Darcy  <darcypj@us.ibm.com>
3555
3556         * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype.
3557         * config/s390/s390.c (s390_emit_tpf_eh_return): New function.
3558         * config/s390/s390.h (TARGET_TPF): New macro.
3559         * config/s390/s390.md ("eh_return"): New expander.
3560         * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than
3561         unwind-dw2-fde-glibc.c.  Add config/s390/tpf-eh.c.
3562         (LIB2ADDEHDEP): Remove unwind-dw2-fde.c.
3563         * config/s390/tpf.h (TARGET_TPF): Define to 1.
3564         (STACK_POINTER_OFFSET): Increase to 448.
3565         (TARGET_DEFAULT): Set -mtpf-trace on as default.
3566         (TPF_LOC_DIFF_OFFSET): New macro.
3567         (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute
3568         encoding.
3569         (__isPATrange): Add prototype.
3570         (MD_FALLBACK_FRAME_STATE_FOR): Define.
3571         * config/s390/tpf-eh.c: New file.
3572
3573 2004-09-22  Diego Novillo  <dnovillo@redhat.com>
3574
3575         * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening
3576         operands in an integer comparison.
3577         * tree-cfg.c (find_taken_edge): Call fold() to determine
3578         whether the predicate is known.
3579
3580 2004-09-22  Kelley Cook  <kcook@gcc.gnu.org>
3581
3582         * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND.
3583         * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O.
3584         Create build and doc directories along with the language directories.
3585         Don't create doc directory separately.
3586         * configure: Regenerate.
3587         * Makefile.in: Create all object and executables files built
3588         with the build compiler in a build/ directory.
3589         (genobjnames): Add missing build objects.
3590         (STAGESTUFF): Don't stage the gen* programs.
3591         (ggc-none.o): Define dependencies for the target compiler.
3592         (build-print-rtl.o): Rename to build/print-rtl.o.
3593         (build-errors.o): Rename to build/errors.o.
3594         (build-varray.o): Rename to build/varray.o.
3595         (maintainerclean): Delete the contents of the build directory.
3596         ($(genobjs): %.o): Explicitly use -o.
3597         (build/insn-conditions.o): Delete specfic rule to use generic rule.
3598         (build/gengtype-lex.o): Likewise.
3599         (build/gengtype-yacc.o): Likewise.
3600         (build/gcov-iov.o): Likewise.
3601
3602 2004-09-22  Nathan Sidwell  <nathan@codesourcery.com>
3603
3604         * vec.h (VEC_space): Return true if there _is_ space.
3605         (VEC_reserve): Adjust.
3606
3607 2004-09-22  Richard Sandiford  <rsandifo@redhat.com>
3608
3609         * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64,
3610         use FPRs for scalar, complex and vector types only.
3611
3612 2004-09-21 Jeff Law  <law@redhat.com>
3613
3614         * tree-ssa-dom.c (opt_stats): Move so that it lives just after
3615         the opt_stats_d structure.
3616         (vrp_data): Change from a varray into a hash table.
3617         (vrp_hash_elt): New structure for elements in the vrp hash table.
3618         (vrp_hash, vrp_eq):New functions for hashing and testing equality
3619         in the vrp hash table.
3620         (tree_ssa_dominator_optimize): Initialize VRP_DATA.  Reorganize
3621         initialization slightly to make it easier to read.  No longer need
3622         to grow/clear the varray.  Instead empty and delete the hash table.
3623         (dom_opt_finalize_block): Update due to change of VRP_DATA from
3624         a varray to a hash table.
3625         (simplify_cond_and_loop_avail_expr, record_range): Similarly.
3626
3627         * tree-ssa-ccp.c (get_default_value): If we have a constant
3628         value recorded for an SSA_NAME, then use that constant as
3629         the initial lattice value.
3630         (substitute_and_fold): Transfer equivalences discovered into
3631         SSA_NAME_EQUIV.
3632
3633         * tree.h (SSA_NAME_EQUIV): Add comments.
3634         (SET_SSA_NAME_EQUIV): Similarly.
3635
3636 2004-09-21  David Edelsohn  <edelsohn@gnu.org>
3637
3638         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4.
3639
3640         * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used.
3641
3642 2004-09-21  Mark Mitchell  <mark@codesourcery.com>
3643
3644         * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma.
3645         (finish_decl): Likewise.
3646
3647 2004-09-21  Devang Patel  <dpatel@apple.com>
3648
3649         * tree.def (VEC_COND_EXPR): New tree node.
3650         * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
3651
3652 2004-09-21  Stan Shebs  <shebs@apple.com>
3653
3654         * config/rs6000/darwin-tramp.asm: Add __ppc64__ case.
3655         * config/rs6000/darwin-world.asm: Likewise.
3656
3657 2004-09-21  Daniel Berlin  <dberlin@dberlin.org>
3658
3659         * tree-ssa.c (verify_def): Use print_generic_stmt,
3660         not debug_generic_stmt.
3661         (verify_use): Ditto.
3662         (verify_phi_args): Ditto.
3663         (verify_ssa): Ditto.
3664
3665 2004-09-21  Paul Brook  <paul@codesourcery.com>
3666
3667         * varasm.c (default_assemble_integer): Return false for values wider
3668         than the target word size.  Works around GAS bug.
3669
3670 2004-09-21  Zack Weinberg  <zack@codesourcery.com>
3671
3672         * reg-notes.def (REG_DEP_TRUE): New entry, place first so it
3673         gets value 0.
3674         * print-rtl.c (print_rtx): Print the name of a REG_NOTE even
3675         if it has value 0.
3676
3677 2004-09-21  Daniel Berlin <dberlin@dberlin.org>
3678
3679         * c-typeck.c (build_function_call): Give name of object
3680         we are attempting to call in error message.
3681         * c-objc-common.c (c_tree_printer): Call pp_expression,
3682         not return false, for 'E' case.
3683
3684 2004-09-21  Steven Bosscher  <stevenb@suse.de>
3685
3686         PR rtl-optimization/17482
3687         * postreload-gcse.c (reg_avail_info, oprs_unchanged_p,
3688         load_killed_in_block_p): Clarify comments.
3689         (record_last_reg_set_info): Make static inline.
3690         (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove.
3691         (record_opr_changes): New function to replace the above.
3692         (compute_hash_table): Clarify comments.  Use record_opr_changes.
3693         (reg_set_between_after_reload_p): Clean up.
3694         (reg_used_between_after_reload_p): Likewise.
3695         (eliminate_partially_redundant_load): Clarify comments.
3696
3697 2004-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3698
3699         PR rtl-optimization/17266
3700         * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
3701
3702 2004-09-21  Uros Bizjak  <uros@kss-loka.si>
3703
3704         PR rtl-optimization/14851
3705         * rtlanal.c (commutative_operand_precedence): Calculate
3706         precedence of stripped constant.
3707
3708 2004-09-20 Jeff Law  <law@redhat.com>
3709            Jan Hubicka  <jh@suse.cz>
3710
3711         * tree-ssanames.c (make_ssa_name): No longer need to clear, then
3712         initialize key elements here.
3713         (release_ssa_name): Zero the released SSA_NAME here.
3714         * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros.
3715         (struct tree_ssa_name): Add new "equiv" field.
3716         * tree-ssa-dom.c (const_and_copies): Kill the global varray.
3717         (tree_ssa_dominator_optimize): No longer allocate, resize or
3718         clear CONST_AND_COPIES.
3719         (get_value_for, set_value_for): Kill.
3720         (thread_across_edge): Get/set the equivalency using
3721         SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV.
3722         (restore_vars_to_original_value): Likewise.
3723         (record_equivalences_from_phis): Likewise.
3724         (record_dominating_conditions): Likewise.
3725         (record_const_or_copy, record_equality): Likewise.
3726         (lookup_avail_expr): Likewise.
3727         (record_equivalences_from_stmt, cprop_operand): Likewise.
3728         (cprop_into_successor_phis): No longer need to pass around
3729         CONST_AND_COPIES.  Callers updated. Get equivalences via
3730         SSA_NAME_EQUIV.
3731         (cprop_into_phis): Likewise.
3732
3733 2004-09-20  Matt Austern <austern@apple.com>
3734             Zack Weinberg  <zack@codesourcery.com>
3735
3736         * c-common.c (fix_string_type): Build the unqualified array
3737         type unconditionally, then use c_build_qualified_type to get
3738         the proper const-qualified variant, and set its
3739         TYPE_MAIN_VARIANT to refer to the unqualified type.
3740         * c-lex.c (c_lex_return_raw_string): New global.
3741         (c_lex_with_flags): Honor it.
3742         * c-pragma.h: Declare it.
3743
3744 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
3745
3746         * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H).
3747
3748 2004-09-21  Jan Hubicka  <jh@suse.cz>
3749
3750         PR middle-end/17126
3751         * tree-optimize.c (update_inlined_to_pointers): Fix the recursion.
3752         (tree_rest_of_compilation): Cleanup.
3753
3754 2004-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
3755
3756         * config/s390/s390.c (s390_select_rtx_section): Remove.
3757         (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine.
3758
3759 2004-09-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3760
3761         * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR
3762         note to pretend a direct save from the original register when an
3763         intermediate register is used for the save.
3764
3765 2004-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3766
3767         * tsystem.h (alloca): Provide a default definition.
3768
3769         Revert:
3770         2001-08-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3771             * unwind-dw2.c: Call __builtin_alloca, not alloca.
3772
3773 2004-09-20  Andrew Pinski  <pinskia@physics.uc.edu>
3774
3775         PR tree-opt/17558
3776         * tree-ssa-copy.c (may_propagate_copy): Only allow if the
3777         aliasing sets are the same rather than just conflicting.
3778
3779 2004-09-20  Jan Hubicka  <jh@suse.cz>
3780
3781         PR middle-end/16460
3782
3783         * cgraph.c (cgraph_unnest_node): New function.
3784         (c_finalize): Rename to ....
3785         (c_warn_unused_result_recursivly): ... this one; do only the warning
3786         (finish_function): Finalize the toplevel function; do not lower nested tree.
3787         * cgraph.h (cgraph_unnest_node): Declare.
3788         * cgraphunit.c (decide_is_function_needed): Do not use cgraph
3789         nestedness datastructure.
3790         * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
3791         * reload1.c (set_label_offsets): Fix call of set_label_offsets.
3792         * tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.
3793
3794 2004-09-20  Richard Henderson  <rth@redhat.com>
3795
3796         * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename
3797         from some_small_symbolic_operand_1; export.
3798         (some_small_symbolic_operand): Remove.
3799         * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove
3800         extra C check.
3801         * config/alpha/predicates.md (some_small_symbolic_operand): New.
3802
3803 2004-09-20  Jan Hubicka  <jh@suse.cz>
3804
3805         * predict.c (return_prediction): New function.
3806         (apply_return_prediction): Likewise.
3807         (tree_bb_level_predictions): Likewise.
3808         (tree_estimate_probability): Add noreturn exit edges; call
3809         bb_level_predictions; fix logic of return heuristics.
3810         (predict_paths_leading_to):  Rescuesce from old CVS version of
3811         process_note_prediction function.
3812         * predict.def (PRED_TREE_EARLY_RETURN): New predictor.
3813
3814 2004-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
3815
3816         * config/s390/s390.c (s390_frame_info): Added alignment statement for
3817         floating point register area on stack.
3818
3819 2004-09-20  Jakub Jelinek  <jakub@redhat.com>
3820
3821         * predict.c (expr_expected_value): Use *_CLASS_P macros.
3822
3823 2004-09-20  Daniel Berlin  <dberlin@dberlin.org>
3824
3825         * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid
3826         generating useless garbage.
3827
3828 2004-09-20  Paolo Bonzini  <bonzini@gnu.org>
3829
3830         * builtins.c (fold_builtin): Call the new omonymous
3831         target hook for machine-dependent built-ins.
3832         * target-def.h (TARGET_FOLD_BUILTIN): New.
3833         * target.h (struct gcc_target): Add the fold_builtin hook.
3834         * targhooks.c (default_fold_builtin): New.
3835         * targhooks.h (default_fold_builtin): Declare it.
3836
3837 2004-09-20  Kazu Hirata  <kazu@cs.umass.edu>
3838
3839         * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix
3840         comment typos.
3841
3842 2004-09-20  Richard Sandiford  <rsandifo@redhat.com>
3843
3844         PR target/17565
3845         * config/mips/mips.md (define_asm_attributes): Set can_delay to no.
3846
3847 2004-09-20  Jan Hubicka  <jh@suse.cz>
3848
3849         * predict.c (estimate_probability): Remove unnecesary code.
3850
3851 2004-09-19  Ira Rosen  <irar@il.ibm.com>
3852
3853         * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field.
3854         (STMT_VINFO_VECT_DR_BASE): Declare.
3855         (VECT_SMODULO): Declare.
3856         * tree-vectorizer.c (vect_compute_array_ref_alignment): New function.
3857         (vect_compute_array_base_alignment): New function.
3858         (vect_analyze_data_ref_access): Check array indices. Remove one
3859         dimensional arrays restriction.
3860         (vect_get_ptr_offset): New function.
3861         (vect_get_symbl_and_dr): New function.
3862         (vect_get_base_and_bit_offset): Support additional data refs. Renamed
3863         (former name vect_get_base_decl_and_bit_offset).
3864         (vect_create_index_for_array_ref): Removed.
3865         (vect_create_index_for_vector_ref): New function.
3866         (vect_create_addr_base_for_vector_ref): New function.
3867         (vect_create_data_ref): Handle additional data refs. Call
3868         vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref.
3869         (vect_compute_data_ref_alignment): Support the changes. Call
3870         vect_get_base_and_bit_offset.
3871         (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional
3872         data refs. Store vect_dr_base.
3873         (vect_analyze_data_ref_accesses): Support nonconstant init.
3874         (new_stmt_vec_info): Initialize vect_dr_base field.
3875         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
3876         (get_vectype_for_scalar_type): Check for BLKmode.
3877         * tree-chrec.h (initial_condition_in_loop_num): Declare.
3878         * tree-chrec.c (initial_condition_in_loop_num): New function.
3879         (chrec_component_in_loop_num): New function.
3880         (evolution_part_in_loop_num): Call chrec_component_in_loop_num.
3881         * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns)
3882         to be pointer to varray_type.
3883
3884 2004-09-19  Jan Hubicka  <jh@suse.cz>
3885
3886         * basic-block.h (update_bb_profile_after_threading): Declare.
3887         * cfg.c (update_bb_profile_after_threading): Break out from ...
3888         * cfgcleanup.c (try_forward_edges): ... here; use it.
3889         * tree-ssa-dom.c (thread_across_edge): Use it.
3890         * tree-ssa-threadupdate.c (create_block_for_threading): Zero out
3891         profile of the new BB.
3892
3893 2004-09-19  Daniel Berlin  <dberlin@dberlin.org>
3894
3895         * tree-ssa-pre.c (insert_into_set): Don't put
3896         is_gimple_min_invariant values into the set.
3897
3898 2004-09-19  Andreas Jaeger  <aj@suse.de>
3899
3900         * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix
3901         prototype.
3902
3903 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
3904
3905         * config/cris/cris.h: Preserve the original spelling in a
3906         quote.
3907
3908 2004-09-18 Jeff Law  <law@redhat.com>
3909
3910         * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New
3911         global varrays to replace the block local varrays.
3912         (struct dom_walk_block_data): Remove, no longer used.
3913         (get_eq_expr_value): No longer need to pass around pointers to local
3914         varrays.  Callers updated.  Unused markers added to unused parameters.
3915         (record_range, record_equivalences_from_stmt): Likewise.
3916         (record_equivalences_from_incoming_edge): Likewise.
3917         (record_var_is_nonzero): Likewise.  Update now that we have a
3918         single global varray of SSA_NAMEs that need restoring.
3919         (dom_opt_initialize_block_local_data): Kill, no longer used.
3920         (tree_ssa_dominator_optimize): Initialize new global varrays.
3921         Update callbacks in dominator walker structure.
3922         (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and
3923         VRP_VARIABLES_STACK.
3924         (restore_nonzero_vars_to_original_value): Update now that we have
3925         a single global varray of SSA_NAMEs that need restoring.
3926         (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK.
3927         Remove unused variables.
3928         (optimize_stmt): Remove unused variable.
3929
3930 2004-09-18  Jan Hubicka  <jh@suse.cz>
3931
3932         * tree-cfg.c (thread_jumps):  Fix updating of the profile.
3933
3934         * tree-optimize.c (tree_rest_of_compilation): Kill forgotten
3935         verify_cgraph call.
3936
3937 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
3938
3939         * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,
3940         gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c,
3941         optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c,
3942         tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c,
3943         tree-ssa-operands.c, tree-ssa-phiopt.c,
3944         tree-ssa-threadupdate.c: Fix comment typos.
3945
3946 2004-09-18  Kazu Hirata  <kazu@cs.umass.edu>
3947
3948         * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md,
3949         config/arm/README-interworking, config/arm/arm-cores.def,
3950         config/arm/arm.c, config/arm/arm.h, config/arm/pe.c,
3951         config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h,
3952         config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c,
3953         config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c,
3954         config/frv/frv.md, config/i386/winnt.c,
3955         config/ia64/unwind-ia64.c, config/iq2000/iq2000.c,
3956         config/iq2000/iq2000.h, config/m68hc11/m68hc11.c,
3957         config/m68hc11/m68hc11.md, config/m68k/m68k.c,
3958         config/mcore/mcore.c, config/mips/mips.h,
3959         config/mn10300/mn10300.md, config/pa/pa.c,
3960         config/pa/pa64-regs.h, config/pdp11/pdp11.c,
3961         config/rs6000/rs6000.c, config/sh/symbian.c,
3962         config/sparc/sparc.h: Fix comment typos.  Follow spelling
3963         conventions.
3964
3965 2004-09-18  Joseph S. Myers  <jsm@polyomino.org.uk>
3966
3967         PR c/17424
3968         * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node.
3969
3970 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
3971
3972         * tree-ssa-alias.c (setup_pointers_and_addressables): Don't
3973         remove TREE_ADDRESSABLE from RESULT_DECL.
3974
3975 2004-09-18  Diego Novillo  <dnovillo@redhat.com>
3976
3977         * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs.
3978
3979 2004-09-18  Jan Hubicka  <jh@suse.cz>
3980
3981         * tree-into-ssa.c (rewrite_ssa_into_ssa):  Expect ssa_name to return
3982         NULL.
3983         * tree-ssa-alias.c (init_alias_info): Likewise.
3984         * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise.
3985         (verify_ssa): Likewise.
3986         * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays.
3987
3988 2004-09-18  Jan Hubicka  <jh@suse.cz>
3989
3990         * i386.c (legitimize_pic_address): Fix splitting of PLUS with
3991         huge offset.
3992
3993 2004-09-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3994
3995         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
3996         * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
3997         DW_EH_PE_sdata* for data.
3998         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3999
4000 2004-09-17  Geoffrey Keating  <geoffk@apple.com>
4001
4002         * tree-inline.c (copy_tree_r): Don't duplicate constants, they're
4003         shared anyway.
4004
4005         PR pch/13361
4006         * c-typeck.c (constructor_asmspec): Delete.
4007         (struct initializer_stack): Delete field 'asmspec'.
4008         (start_init): Delete saving of asmspec.
4009         (finish_init): Don't update constructor_asmspec.
4010         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
4011         * stmt.c (expand_asm): Duplicate strings from tree.
4012         (expand_asm_operands): Likewise.
4013         * tree.c (tree_size): Update computation of size of STRING_CST.
4014         (make_node): Don't make STRING_CST nodes.
4015         (build_string): Allocate string with tree node.
4016         (tree_code_size): Clean up assertions, don't allow requests
4017         for "the size of a STRING_CST".
4018         * tree.def (STRING_CST): Update comment.
4019         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
4020         (tree_string): Place contents of string in tree node.
4021         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
4022         from tree.
4023
4024 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4025
4026         * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H).
4027         * objc/Make-lang.in (objc/objc-parse.o): Likewise.
4028
4029 2004-09-17  Jones Desougi  <jones@ingate.com>
4030
4031         * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF.
4032         * configure, config.in: Regenerate.
4033
4034 2004-09-17  Zack Weinberg  <zack@codesourcery.com>
4035
4036         * tree.c, tree.h (tree_class_strings): Make array const.
4037         Reindent per coding convention.  Move asterisk to proper place
4038         per coding convention.
4039
4040 2004-09-18  Andreas Schwab  <schwab@suse.de>
4041
4042         * Makefile.in (gimple-low.o): Depend on $(EXPR_H).
4043         (tree-vectorizer.o): Likewise.
4044         (targhooks.o): Likewise.
4045
4046 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
4047             Zack Weinberg  <zack@codesourcery.com>
4048
4049         * alias.c (find_base_decl): Remove unreachable case '3' block.
4050         * expr.c (safe_from_p): Abort if passed a type.
4051         * tree-gimple.c (recalculate_side_effects): Abort if passed
4052         anything other than an expression.
4053         * tree-ssa-pre.c (phi_translate): Return expr immediately if
4054         is_gimple_min_invariant is true for it.  Reorder cases for clarity.
4055         Abort on un-handled tree classes.
4056         (valid_in_set): Likewise.
4057         * tree.c (tree_code_class_strings): New static data.
4058
4059         * tree.h (enum tree_code_class): New.
4060         (tree_code_class_strings): Declare.
4061         (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
4062         (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
4063         (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
4064         (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
4065         (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
4066
4067         * tree.def, c-common.def, objc/objc-tree.def: Use
4068         tree_code_class enumeration constants instead of code letters.
4069
4070         * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
4071         * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
4072         * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
4073         * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
4074         * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
4075         * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
4076         * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
4077         * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
4078         * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
4079         * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
4080         * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
4081         * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
4082         * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
4083         Update to match.
4084
4085         * LANGUAGES: Add note about change.
4086
4087 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4088
4089         PR tree-optimization/17319
4090         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also
4091         examine pointers on the LHS of an assignment.
4092         (collect_points_to_info_r): Handle RETURN_EXPR.
4093
4094 2004-09-17 Jeff Law  <law@redhat.com>
4095
4096         * tree-ssa-dom.c (const_and_copies_stack): New.
4097         (dom_walk_block_data): Remove const_and_copies field.
4098         (record_const_or_copy): No longer need to pass in varray_type *.
4099         Use CONST_AND_COPIES_STACK rather than passed in block local stack.
4100         Callers updated.
4101         (record_equality): Similarly.
4102         (restore_vars_to_original_value): Similarly.  Revamp to use new
4103         single global stack rather than per-block stacks.
4104         (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK.
4105         (thread_across_edge): Remove now unused parameters.
4106         (dom_opt_initialize_block_local_data): No longer test the block
4107         local CONST_AND_COPIES.
4108         (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK.
4109
4110 2004-09-17  Jan Hubicka  <jh@suse.cz>
4111
4112         PR tree-optimization/17509
4113         * tree-optimize.c (update_inlined_to_pointers): New function.
4114         (tree_rest_of_compilation): Use it.
4115
4116 2004-09-17  Devang Patel  <dpatel@apple.com>
4117
4118         * dbxout.c (get_lang_number): New.
4119         (dbxout_init): Include lang number in N_SO  stab.
4120         * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN,
4121         N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define.
4122
4123 2004-09-17  Diego Novillo  <dnovillo@redhat.com>
4124
4125         PR tree-optimization/17273
4126         * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the
4127         replacement is a constant.
4128
4129 2004-09-17  Joseph S. Myers  <jsm@polyomino.org.uk>
4130
4131         * c-tree.h (enum c_typespec_keyword): New.
4132         (struct c_declspecs): Adjust description of "type".  Remove
4133         specbits, explicit_int_p and explicit_char_p.  Rename
4134         typedef_signed_p to explicit_signed_p.  Add default_int_p, long_p,
4135         short_p, signed_p, unsigned_p and complex_p.
4136         (finish_declspecs): New.
4137         * c-parse.in (datadef, datadecl, setspecs, decl, component_decl,
4138         typename): Call finish_declspecs.
4139         * c-decl.c (finish_declspecs): New.
4140         (declspecs_add_type): Check for combinations which cannot occur in
4141         valid specifier lists.  Update comments.
4142         (shadow_tag_warned): Remove checks done in finish_declspecs.
4143         Don't report useless type name if type defaulted to int.
4144         (grokdeclarator): Remove checks and actions done in
4145         finish_declspecs.  Don't allow for type being NULL.  Update for
4146         datastructures changes.  Initialize decl_attr.
4147         (build_null_declspecs, quals_from_declspecs): Update for
4148         datastructures changes.
4149
4150 2004-09-17  Sylvain Pion  <Sylvain.Pion@sophia.inria.fr>
4151
4152         * doc/extend.texi: Fix duplicated word.
4153
4154 2004-09-17  Toon Moene  <toon@moene.indiv.nluug.nl>
4155
4156         * doc/invoke.texi: Remove stray explanation on
4157         -freduce-all-givs and -fmove-all-movables.
4158
4159 2004-09-17  James Morrison  <phython@gcc.gnu.org>
4160
4161         * doc/cfg.texi: Use @smallexample.
4162         * doc/md.texi: Likewise.
4163         * doc/tree-ssa.texi: Likewise.
4164         * doc/extend.texi: Likewise.  Use @r{} in comments.
4165         * doc/trouble.texi: Use @r{} in comments.
4166
4167 2004-09-17  Hans-Peter Nilsson  <hp@bitrange.com>
4168
4169         * configure.ac (gcc_cv_gld_version): Handle whitespace before
4170         "VERSION=".
4171         * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto.
4172         * configure: Regenerate.
4173
4174 2004-09-17  J"orn Rennecke <joern.rennecke@superh.com>
4175
4176         * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
4177         (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
4178         * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
4179         * t-sh64 (MULTILIB_CPU_DIRS): Likewise.  Match dashes and trailing
4180         slashes in substitutions.
4181         (MULTILIB_DIRNAMES): Remove defunct removal of /media32.
4182
4183 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4184
4185         * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,
4186         gimplify.c, lambda-code.c, optabs.c, predict.c,
4187         tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c,
4188         tree-ssa.c, vec.h: Fix comment typos.  Follow spelling
4189         conventions.
4190
4191 2004-09-17  Kazu Hirata  <kazu@cs.umass.edu>
4192
4193         * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi,
4194         doc/extend.texi, doc/install.texi, doc/invoke.texi,
4195         doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi,
4196         doc/trouble.texi: Use @option around options.
4197
4198 2004-09-17  Richard Sandiford  <rsandifo@redhat.com>
4199
4200         * Makefile.in (gen-protos.o): Depend on errors.h.
4201
4202 2004-09-17  Steven Bosscher  <stevenb@suse.de>
4203
4204         PR tree-optimization/17513
4205         * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE
4206         for successors of the entry block.
4207
4208 2004-09-17  Uros Bizjak  <uros@kss-loka.si>
4209
4210         PR rtl-optimization/15187
4211         * ifcvt.c (noce_try_cmove_arith): Exit early if total
4212         insn_rtx_cost of both branches > BRANCH_COST
4213
4214 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4215
4216         PR tree-optimization/17528
4217         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
4218         erase the may-alias set for a tag when merging it with
4219         another.
4220
4221 2004-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4222
4223         * config/sh/sh.md (call): Extend 32-bit addresses to DImode
4224         for 32-bit TARGET_SHMEDIA.
4225         (call_value): Likewise.
4226
4227 2004-09-16  Diego Novillo  <dnovillo@redhat.com>
4228
4229         * tree-ssa-operands.c (add_call_clobber_ops): Make read-only
4230         test apply only to TREE_STATIC and DECL_EXTERNAL.
4231
4232 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4233
4234         * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency.
4235         * basic-block.h (get_dominated_by_region): Declare.
4236         * dominance.c (get_dominated_by_region): New function.
4237         * tree-cfg.c: Include cfglayout.h.
4238         (tree_duplicate_bb): Duplicate also phi nodes.
4239         (struct ssa_name_map_entry): New type.
4240         (add_phi_args_after_copy_bb, add_phi_args_after_copy,
4241         ssa_name_map_entry_hash, ssa_name_map_entry_eq,
4242         allocate_ssa_names, rewrite_to_new_ssa_names_def,
4243         rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb,
4244         rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions.
4245         * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb,
4246         add_phi_args_after_copy, rewrite_to_new_ssa_names_bb,
4247         rewrite_to_new_ssa_names, allocate_ssa_names,
4248         rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare.
4249         * tree-ssa-loop-ch.c (duplicate_blocks): Removed.
4250         (copy_loop_headers): Use tree_duplicate_sese_region.
4251
4252 2004-09-16  Frank Ch. Eigler  <fche@redhat.com>
4253
4254         * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION.
4255
4256 2004-09-16 Jeff Law  <law@redhat.com>
4257
4258         * tree-into-ssa.c (block_defs_stack): New toplevel varray.
4259         (rewrite_block_data): Remove, no longer used.
4260         (rewrite_initialize_block_local_data): Remove, no longer used.
4261         (rewrite_initialize_block): Mark parameters as unused as needed.
4262         Change references to the block local block_defs to be block_defs_stack.
4263         Push a marker onto the block_defs_stack.
4264         (ssa_rewrite_initialize_block): Similarly.
4265         (rewrite_stmt, ssa_rewrite_stmt): Similarly.
4266         (ssa_register_new_def): No longer needs varray argument.  Use
4267         block_defs_stack instead.  No longer handle possibly null block_defs
4268         varray.  Reverse order of items we push on the stack to make it
4269         easier to identify our marker.
4270         (register_new_def): No longer handle possibly null block_defs
4271         varray.
4272         (rewrite_finalize_block): Revamp to look for markers in the global
4273         block_defs_stack varray rather than wiping a block local varray.
4274         Mark arguments as unused as needed.
4275         (ssa_rewrite_finalize_block): Similarly.
4276         (rewrite_into_ssa): Update initialization of dom walker structure
4277         to reflect that we don't need block local data anymore.  Initialize
4278         the block_defs_stack varray.
4279         (rewrite_ssa_into_ssa): Similarly.
4280         * tree-ssa-dom.c (block_defs_stack): New toplevel varray.
4281         (struct dom_walk_data): Kill block_defs field.
4282         (tree_ssa_dominator_optimize): Initialize block_defs_stack.
4283         (thread_across_edge): Use the global block_defs_stack instead of
4284         the old block_defs varray.
4285         (dom_opt_initialize_block_local_data): Update now that we don't have
4286         block_defs field to check anymore.
4287         (dom_opt_initialize_block): Push a marker onto block_defs_stack.
4288         (restore_currdefs_to_original_value): Use the new block_defs_stack
4289         instead of a block local varray.
4290         (dom_opt_finalize_block): Similarly.
4291         (record_equivalencs_from_phis): Similarly.
4292         (optimize_stmt, register_definitions_for_stmt): Similarly.
4293
4294 2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
4295
4296         PR tree-optimization/17517
4297         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
4298         coalesce same-root variables without checking for abnormal PHI usage.
4299
4300 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4301
4302         * cfgloop.h (duplicate_loop):  Add prototype.
4303         * cfgloopmanip.c (duplicate_loop): Make non-static.
4304         * lambda-code.c (perfect_nestify): Factor out test whether
4305         we can handle this loop into separate function.
4306         Call it.
4307         (can_convert_to_perfect_nest): New function.
4308         (replace_uses_of_x_with_y): Add modify_stmt call.
4309         * tree-loop-linear.c (linear_transform_loops): Call
4310         rewrite_into_loop_closed_ssa and free_df.
4311
4312 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
4313
4314         * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is
4315         loop invariant as well.
4316         (perfect_nestify): new function.
4317         (gcc_loop_to_lambda_loop): New parameters to track lower bounds,
4318         upper bounds, and steps.
4319         Set outerinductionvar properly.
4320         (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect
4321         parameters.
4322         Return NULL if we need a perfect loop and can't make one.
4323         (lambda_loopnest_to_gcc_loopnest): Correct algorithm.
4324         (not_interesting_stmt): New function.
4325         (phi_loop_edge_uses_def): Ditto.
4326         (stmt_uses_phi_result): Ditto.
4327         (stmt_is_bumper_for_loop): Ditto.
4328         (perfect_nest_p): Ditto.
4329         (nestify_update_pending_stmts): Ditto.
4330         (replace_uses_of_x_with_y): Ditto.
4331         (stmt_uses_op): Ditto.
4332         (perfect_nestify): Ditto.
4333         * lambda-mat.c (lambda_matrix_id_p): New function.
4334         * lambda-trans.c (lambda_trans_matrix_id_p): Ditto.
4335         * lambda.h: Update prototypes.
4336         * tree-loop-linear (linear_transform_loop): Use new
4337         perfect_nest_p. Detect and ignore identity transform.
4338         * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed.
4339
4340 2004-09-16  Sebastian Pop  <pop@cri.ensmp.fr>
4341
4342         * tree-loop-linear.c (gather_interchange_stats): Add more comments.
4343         Gather also strides of accessed data.  Pass in the data references
4344         array.
4345         (try_interchange_loops): Add a new heuristic for handling the temporal
4346         locality.  Pass in the data references array.
4347         (linear_transform_loops): Pass the data references array to
4348         try_interchange_loops.
4349
4350 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
4351
4352         * doc/invoke.texi: Fix typos.  Follow spelling conventions.
4353
4354 2004-09-16  Nathan Sidwell  <nathan@codesourcery.com>
4355
4356         * doc/c-tree.texi (Classes): Remove index entries for
4357         TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}.
4358
4359 2004-09-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4360
4361         * fold-const.c (fold): Fold difference of addresses.
4362         (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on
4363         get_inner_reference.
4364         * tree-ssa-loop-ivopts.c (peel_address): Removed.
4365         (ptr_difference_const): Moved to fold-const.c.
4366         (split_address_cost): Use get_inner_reference instead of peel_address.
4367         (ptr_difference_cost): Change type of diff to HOST_WIDE_INT.
4368         * tree.h (ptr_difference_const): Export.
4369
4370         * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction
4371         variable type to the dump.  Fix indentation.
4372         (idx_find_step): Handle nonconstant array_ref_element_size and
4373         array_ref_low_bound.
4374         (idx_record_use): Handle array_ref_element_size and
4375         array_ref_low_bound.
4376         (find_interesting_uses_stmt): Handle memory = nontrivial_expression
4377         statements correctly.
4378         (get_computation_at, iv_value): Do not unshare expressions here.
4379         (rewrite_use_outer): Unshare the expression before it is emitted
4380         to code.
4381         * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for):
4382         Moved to tree.c.
4383         * tree.c (unsigned_type_for, signed_type_for): Moved from
4384         tree-ssa-loop-niter.c.  Use langhooks.
4385         * tree.h (signed_type_for): Export.
4386
4387 2004-09-16  David Edelsohn  <edelsohn@gnu.org>
4388
4389         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update
4390         prototype.
4391
4392 2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
4393
4394         PR target/11572
4395         * c-incpath.h (target_c_incpath_s): Add extra_pre_includes.
4396         Add two parameters to extra_includes.
4397         (C_INCPATH_INIT): Remove.
4398         * c-incpath.c (register_include_chains): Call extra_pre_includes
4399         before adding the standard include directory.
4400         Update call to extra_includes.
4401         (!defined TARGET_EXTRA_INCLUDES): Update
4402         hook_void_charptr_charptr_int and add !define
4403         TARGET_EXTRA_PRE_INCLUDES.
4404         (!define TARGET_EXTRA_INCLUDES): Define as
4405         hook_void_charptr_charptr_int.
4406         (!define TARGET_EXTRA_PRE_INCLUDES): Likewise.
4407         (target_c_incpath): Always declare.
4408         * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a
4409         empty function.
4410         (define TARGET_EXTRA_PRE_INCLUDES): Likewise.
4411         * config/darwin.h: (darwin_register_frameworks): Update for
4412         the two new parameters.
4413         (darwin_register_objc_includes): Add prototype.
4414         (TARGET_EXTRA_PRE_INCLUDES): Define.
4415         * config/darwin-c.c (darwin_register_objc_includes): New function.
4416         (darwin_register_frameworks): Update for the two new parameters.
4417         (target_c_incpath): Remove.
4418         * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to
4419         the compile line.
4420         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new
4421         parameters.
4422         (TARGET_EXTRA_PRE_INCLUDES): Document.
4423
4424         * gcc.c (spec_function): Add replace-outfile.
4425         (replace_outfile_spec_function): New function.
4426         * config/darwin.h (LINK_SPEC): Add replace
4427         -lobjc with -lobjc-gnu if -fgnu-runtime is
4428         supplied.
4429         * invoke.texi (replace-outfile): Document.
4430
4431 2004-09-13  Jan Hubicka  <jh@suse.cz>
4432
4433         * predict.c (expr_expected_value, strip_builtin_expect): New function.
4434         (tree_predict_by_opcode): Use it.
4435         (tree_estimate_probability): Add, for now disabled,
4436         strip_builtin_expect call.
4437
4438 2004-09-15  James E Wilson  <wilson@specifixinc.com>
4439
4440         PR target/17455
4441         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false
4442         if current_function_decl is a sibcall.
4443
4444 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
4445
4446         * varasm.c (default_function_rdodata_section): Make sure to pass
4447         along a decl for a link-once section.
4448
4449 2004-09-15  Richard Henderson  <rth@redhat.com>
4450
4451         * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable
4452         warning with code disable.  Fix formatting.
4453
4454 2004-09-15  Steven Bosscher  <stevenb@suse.de>
4455
4456         * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h.
4457         * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT
4458         after propagating into an ADDR_EXPR.
4459
4460 2004-09-15  Andrew Pinski  <apinski@apple.com>
4461
4462         PR rtl-opt/17427
4463         * gcse.c (process_insert_insn): insn_invalid_p has side effects.
4464         Move it out of gcc_assert.
4465
4466 2004-09-15  Joseph S. Myers  <jsm@polyomino.org.uk>
4467
4468         * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c,
4469         except.c, fold-const.c, function.c, langhooks.c, params.c,
4470         reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
4471         tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q
4472         for quoting in diagnostics going through pretty-print.c.  Use ''
4473         for quoting in other diagnostic text.
4474         * langhooks.c: Include intl.h.  Mark text locating diagnostics for
4475         translation.
4476         * Makefile.in (langhooks.o): Update dependencies.
4477         * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic
4478         formats.
4479
4480 2004-09-15  Mark Mitchell  <mark@codesourcery.com>
4481
4482         * configure.ac: Check for COMDAT support.  Robustify check for
4483         SHF_MERGE support.
4484         * configure: Regenerated.
4485         * config.in: Likewise.
4486         * langhooks-def.h (lhd_comdat_group): New function.
4487         (LANG_HOOKS_COMDAT_GROUP): New macro.
4488         (LANG_HOOKS_DECLS): Use it.
4489         * langhooks.c (lhd_comdat_group): Define.
4490         * langhooks.h (lang_hooks_for_decls): Add comdat_group.
4491         * output.h (named_section_flags): Make it a macro.
4492         (named_section_real): New function.
4493         (default_no_named_section): Add decl parameter.
4494         (default_elf_asm_named_section): Likewise.
4495         (default_coff_asm_named_section): Likewise.
4496         (default_pe_asm_named_section): Likewise.
4497         * target.h (gcc_target): Adjust type of named_section.
4498         * varasm.c (named_section_flags): Rename to named_section_real.
4499         Add decl parameter.
4500         (default_no_named_section): Add decl parameter.
4501         (default_elf_asm_named_section): Use COMDAT, if available.  Deal
4502         with the case that ASM_COMMENT_START is "@".
4503         (default_coff_asm_named_section): Add decl parameter.
4504         (default_pe_asm_named_section): Likewise.
4505         * config/alpha/alpha.c (vms_asm_named_section): Add decl
4506         parameter.
4507         (unicosmk_asm_named_section): Likewise.
4508         * config/arm/arm.c (arm_elf_asm_named_section): Remove.
4509         * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise.
4510         * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter.
4511         * config/cris/cris-protos.h (cris_target_asm_named_section):
4512         Likewise.
4513         * config/cris/cris.c (cris_target_asm_named_section):
4514         Likewise.
4515         * config/darwin/darwin-protos.h (darwin_asm_named_section):
4516         Likewise.
4517         * config/darwin/darwin.c (darwin_asm_named_section): Likewise.
4518         * config/h8300/h8300.c (h8300_asm_named_section): Likewise.
4519         * config/i386/i386-protos.h (i386_pe_asm_named_section):
4520         Likewise.
4521         * config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
4522         * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise.
4523         * config/mcore/mcore.c (mcore_asm_named_section): Likewise.
4524         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section):
4525         Likewise.
4526         * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise.
4527         * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define.
4528         * cp/cp-tree.h (cxx_comdat_group): Declare.
4529         * cp/decl.c (cxx_comdat_group): New function.
4530
4531 2004-09-15  Jan Hubicka  <jh@suse.cz>
4532
4533         * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes.
4534         * tree-tailcall.c (eliminate_tail_call): Release SSA name.
4535
4536         * tree-cfg.c (remove_bb): Release SSA defs.
4537
4538 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
4539
4540         * doc/tm.texi: Follow spelling conventions.
4541
4542 2004-09-15  Kazu Hirata  <kazu@cs.umass.edu>
4543
4544         * tree-ssa-dom.c: Fix comment typos.
4545
4546 2004-09-15  Alan Modra  <amodra@bigpond.net.au>
4547
4548         * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to
4549         include ccr.
4550         (ppc_fallback_frame_state): Save location of CR.
4551
4552 2004-09-15  Jakub Jelinek  <jakub@redhat.com>
4553
4554         * expr.c (string_constant): Handle also read-only variables
4555         initialized to string literals.
4556
4557         * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1)
4558         into memcpy (x, y, 1) if memcpy can be expanded inline.
4559
4560 2004-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4561
4562         PR tree-optimization/17468
4563         * tree-ssa.c (verify_use, verify_phi_args, verify_ssa):  Verify that
4564         definition inside a block precede uses.
4565         * tree-tailcall.c (adjust_return_value): Emit statements in the
4566         correct order.
4567
4568 2004-09-15  Richard Sandiford  <rsandifo@redhat.com>
4569
4570         * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete.
4571
4572 2004-09-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
4573
4574         * doc/install.texi (sparc-sun-solaris2*): Properly format warning.
4575
4576 2004-09-14 Jeff Law  <law@redhat.com>
4577
4578         * tree-ssa-dom.c (avail_exprs_stack): New global varray.
4579         (struct dom_walk_block_data): Remove avail_exprs member.
4580         (tree_ssa_dominator_optimize): Initialize avail_exprs_stack.
4581         (lookup_avail_expr): No longer need to pass in address of
4582         the block local available exprs stack.  All callers changed.
4583         (simplify_cond_and_lookup_avail_expr): Similarly.
4584         (simplify_switch_and_lookup_avail_expr): Similarly.
4585         (get_eq_expr_value, record_cond): Likewise.
4586         (record_dominating_conditions): Likewise.
4587         (update_rhs_and_lookup_avail_expr): Likewise.
4588         (record_equivalences_from_stmt): Likewise.
4589         (dom_opt_initialize_block_local_data): No longer test state of
4590         block local avail_exprs.
4591         (dom_opt_initialize_block): Mark unwind point in the global
4592         avail_expr stack.
4593         (remove_expressions_from_table): Update to unwind to the
4594         most recent unwind marker in the global avail_expr stack.
4595         All callers changed.
4596         (dom_opt_finalize_block): Mark unwind point in the global
4597         avail_expr stack as needed.
4598         (record_cond): Push elements into the global avail_exprs stack.
4599
4600         * tree-dfa.c (free_df_for_stmt): No longer static.
4601         (free_df): Update comments.
4602         * tree-flow.h (free_df_for_stmt): Prototype.
4603         * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt.  Also
4604         call release_defs.
4605
4606 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
4607
4608         PR tree-optimization/17252
4609         * tree-ssa-alias.c (may_alias_p): Don't assume that a
4610         pointer may not point to itself when using relaxed
4611         aliasing rules.
4612
4613 2004-09-14  Richard Henderson  <rth@redhat.com>
4614
4615         PR middle-end/17397
4616         * gimplify.c (gimplify_addr_expr): Don't inadvertently change types
4617         while folding <ADDR_EXPR <INDIRECT_REF X>>.
4618
4619 2004-09-14  Andrew Pinski  <apinski@apple.com>
4620
4621         * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing
4622         sets of the pointers but the aliasing sets of what they point to.
4623
4624 2004-09-14  Roger Sayle  <roger@eyesopen.com>
4625
4626         PR rtl-optimization/9771
4627         * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate
4628         conditional compilation in init_reg_sets_1.
4629         (init_reg_sets_1): Let global_regs[i] take priority over the frame
4630         (but not stack) pointer exceptions to regs_invalidated_by_call.
4631         (globalize_reg): Globalizing a fixed register may need to update
4632         regs_invalidated_by_call.
4633
4634 2004-09-14  Diego Novillo  <dnovillo@redhat.com>
4635
4636         PR tree-optimization/15262
4637         * tree-dfa.c (dump_variable): Also print the type of the
4638         variable.
4639         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two
4640         memory tags are of conflicting alias sets but have no aliased
4641         symbols in common, add one tag to the alias set of the other.
4642         (setup_pointers_and_addressables): Remove hack to deal with
4643         programs with no aliased symbols.
4644         (may_alias_p): Don't special case aggregate types.
4645
4646 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
4647
4648         PR c/15498
4649         * doc/invoke.texi (Environment Variables): Correct example locale.
4650
4651 2004-09-14  Jan Hubicka  <jh@suse.cz>
4652
4653         * cfg.c (expunge_block): Revert previous change adding ggc_free call.
4654
4655 2004-09-14  Mark Mitchell  <mark@codesourcery.com>
4656
4657         * config.gcc: Do not build a shared libgcc for arm-none-eabi.
4658
4659 2004-09-14  Joseph S. Myers  <jsm@polyomino.org.uk>
4660
4661         * c-tree.h (struct c_declspecs): Add const_p, volatile_p and
4662         restrict_p.
4663         (struct c_declarator): Change u.array.quals and pointer_quals to
4664         int.  Add u.array.attrs.
4665         (quals_from_declspecs): New.
4666         * c-decl.c (quals_from_declspecs): New.
4667         (shadow_tag_warned): Give more specific message for useless type
4668         qualifiers.
4669         (build_array_declarator, set_array_declarator_inner,
4670         grokdeclarator, make_pointer_declarator, build_null_declspecs,
4671         declspecs_add_qual): Update for changed structures.
4672
4673 2004-09-14  Jeff Law  <law@redhat.com>
4674
4675         * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local
4676         to a global varray.
4677         (tree_ssa_dominator_optimize): Allocate stmts_to_rescan.
4678         (dom_opt_initialize_block_local_data): No longer test state
4679         of stmts_to_rescan.
4680         (dom_opt_finalize_block): Update due to change in scope of
4681         stmts_to_rescan.
4682         (optimize_stmt): Similarly.
4683
4684 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
4685
4686         * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c,
4687         lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix
4688         comment typos.  Follow spelling conventions.
4689
4690 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
4691
4692         * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c,
4693         config/i386/predicates.md, config/sparc/sparc.c: Follow
4694         spelling conventions.
4695
4696 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4697             Steven Bosscher  <stevenb@suse.de>
4698
4699         * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency.
4700         * basic-block.h (struct reorder_block_def): Add copy_number field.
4701         * cfgloop.h (biv_p): Declare.
4702         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number.
4703         * common.opt (fsplit-ivs-in-unroller): New flag.
4704         * loop-iv.c (biv_p): New function.
4705         * loop-unroll.c: Include hashtab.h and recog.h.
4706         (struct iv_to_split, struct split_ivs_info): New types.
4707         (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies,
4708         free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn,
4709         determine_split_iv_delta, get_ivts_expr, allocate_basic_variable,
4710         insert_base_initialization, split_iv): New functions.
4711         (peel_loop_completely, unroll_loop_constant_iterations,
4712         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
4713         Use them.
4714         * doc/invoke.texi (-fsplit-ivs-in-unroller): Document.
4715
4716 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4717
4718         * tree-cfg.c (thread_jumps): Update dominators correctly in
4719         case destination of threaded edge dominates its source.
4720
4721 2004-09-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4722
4723         * unroll.c: Removed.
4724         * loop.h: Removed.
4725         * Makefile.in (LOOP_H, unroll.o): Removed.
4726         (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H
4727         dependency.
4728         * alias.c (init_alias_analysis): Remove flag_old_unroll_loops
4729         reference.
4730         * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h.
4731         * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed.
4732         * loop.c: Do not include loop.h.
4733         (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID,
4734         REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction,
4735         struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO,
4736         REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg,
4737         struct loop_regs, struct loop_movables, struct loop_info): Moved
4738         from loop.h.
4739         (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment,
4740         reg_dead_after_loop, final_biv_value, loop_find_equiv_value,
4741         find_common_reg_term, loop_iterations, final_giv_value): Moved
4742         from unroll.c.
4743         (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop,
4744         loop_dump_stream, for_each_insn_in_loop, express_from,
4745         extend_value_for_giv, loop_iv_add_mult_emit_before,
4746         loop_iv_add_mult_sink, loop_iv_add_mult_hoist,
4747         loop_insn_first_p, get_condition_for_loop,
4748         loop_insn_emit_before, loop_insn_hoist,
4749         loop_insn_sink): Made static.
4750         (loop_invariant_p): Made static.  Removed flag_old_unroll_loops
4751         reference.
4752         (strength_reduce): Do not call unroller.
4753         (record_giv): Do not initialize unrolled field.
4754         (prescan_loop): Do not set loop_info->preconditioned.
4755         * passes.c: Do not include loop.h.
4756         (rest_of_handle_loop_optimize): Do not call unroller.
4757         * predict.c: Do not include loop.h.
4758         * rtl.h (NOTE_PRECONDITIONED): Removed.
4759         * stmt.c: Do not include loop.h.
4760         * toplev.c: Do not include loop.h.
4761         (process_options): Do not handle flag_old_unroll_loops.
4762
4763         * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops):
4764         Documentation removed.
4765         * doc/passes.texi (unroll.c, loop.h): Documentation removed.
4766
4767 2004-09-14  Nathan Sidwell  <nathan@codesourcery.com>
4768
4769         * Makefile.in (STAGE1_CHECKING): New variable.
4770         (stage1_build): Use it.
4771         * tree-ssa.c (verify_ssa): Preserve state of dominance
4772         information.
4773
4774 2004-09-14  Uros Bizjak  <uros@kss-loka.si>
4775
4776         * config/i386/i386.c (output_fp_compare): Add generation
4777         of ftst instruction.
4778         * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf):
4779         Use output_fp_compare () function.
4780         (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint.
4781         (fix_truncdi_memory): Remove operands[5] copy.
4782
4783 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
4784
4785         * config/m32r/m32r.md, config/m68k/m68kelf.h,
4786         config/mcore/mcore.md, config/rs6000/linux64.h,
4787         config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment
4788         typos.
4789
4790 2004-09-13  James E Wilson  <wilson@specifixinc.com>
4791
4792         * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS).
4793         * gen-protos.c: Include errors.h.
4794         (progname): Delete.
4795
4796 2004-09-14  Jan Hubicka  <jh@suse.cz>
4797
4798         * Makefile.in (predict.o): Depend on tree-scalar-evolution.h
4799         * predict.c: Include tree-scalar-evolution.h and cfgloop.h
4800         (predict_loops): Use number_of_iterations_exit to predict
4801         number of iterations on trees.
4802
4803 2004-09-13  Dale Johannesen  <dalej@apple.com>
4804
4805         PR 17408
4806         PR 17409
4807         * c-decl.c (start_decl): Repair TREE_STATIC for initialized
4808         objects declared extern.
4809
4810 2004-09-14  Paul Brook  <paul@codesourcery.com>
4811
4812         * config/arm/arm.c (arm_expand_prologue): Make args_to_push a
4813         HOST_WIDE_INT.
4814
4815 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
4816
4817         * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES.
4818         Only use TYPE_BINFO for aggregates.
4819
4820 2004-09-13  Daniel Jacobowitz  <dan@debian.org>
4821
4822         * expmed.c (synth_mult): Initialize latency.  Check cost before
4823         checking ops count.
4824
4825 2004-09-13  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
4826
4827         * tree-ssa-operands.c (get_call_expr_operands): Added parm to
4828         add_call_clobber_ops and add_call_read_ops.
4829         (add_call_clobber_ops, add_call_read_ops): Added code to reduce
4830         the number of vdefs and vuses inserted based on analysis of global
4831         variables across calls.  * tree-dfa.c (find_referenced_vars):
4832         Needed to reset static var maps before each function is compiled.
4833         * cgraphunit.c:
4834         (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid,
4835         static_vars_info,functions_to_static_vars_info,module_statics_escape,
4836         all_module_statics,searchc_env,dfs_info): New fields to support
4837         analysis of static global variables.
4838         (print_order, convert_UIDs_in_bitmap, new_static_vars_info,
4839         cgraph_reset_static_var_maps, get_global_static_vars_info,
4840         get_global_statics_not_read, get_global_statics_not_written,
4841         searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis,
4842         check_rhs_var, check_lhs_var, get_asm_expr_operands,
4843         process_call_for_static_vars, scan_for_static_refs,
4844         cgraph_characterize_statics_local, cgraph_get_static_name_by_uid,
4845         clear_static_vars_maps, cgraph_propagate_bits,
4846         cgraph_characterize_statics): New. Functions to support analysis
4847         of static global variables.
4848         (cgraph_mark_local_and_external_functions): Renamed from:
4849         (cgraph_mark_local_functions)
4850         (cgraph_expand_all_functions): Remove call to
4851         cgraph_mark_local_and_external_functions.
4852         (cgraph_optimize): Added driver to analyze static variables whose
4853         scope is within the compilation unit.  * cgraph.h (struct
4854         cgraph_local_info, GTY): Added statics_read, statics_written,
4855         local, calls_read_all, calls_write_all, for_functions_valid.
4856         (struct cgraph_node): Added next_cycle.  * cgraph.c
4857         (dump_cgraph_node): Added print routines for new fields.  *
4858         makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc
4859         list.
4860
4861 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
4862
4863         * c-decl.c (grokdeclarator): Correct comments about where storage
4864         class specifiers are rejected by grammar and add corresponding
4865         asserts.  Diagnose typedefs and parameters declared inline.
4866         Change warning for inline main to a pedwarn.  Only diagnose inline
4867         main if hosted.
4868         (declspecs_add_scspec): Allow duplicate "inline".
4869
4870 2004-09-13  Steve Ellcey  <sje@cup.hp.com>
4871
4872         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New.
4873         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
4874
4875 2004-09-13  Richard Henderson  <rth@redhat.com>
4876
4877         PR 17436
4878         * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New.
4879         (tree_type): Replace spare with contains_placeholder_bits.
4880         (type_contains_placeholder_1): Rename from type_contains_placeholder_p,
4881         make static.  Remove seen_types list.
4882         (type_contains_placeholder_p): New.
4883
4884 2004-09-13  James E Wilson  <wilson@specifixinc.com>
4885
4886         * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New.
4887         (sb1_bdesc, bdesc_map, bdesc_arrays): New.
4888         (mips_expand_builtin): Add SB-1 support.  Use bdesc_map and
4889         bdesc_arrays instead of mips_bdesc.
4890         (mips_init_builtins): Likewise.
4891         * config/mips/mips.h (TARGET_SB1): New.
4892         (HAVE_SQRT_P): Delete.
4893         * config/mips/mips.md (divide_condition): Support V2SF.
4894         (sqrt_condition, recip_condition): New.
4895         (div<mode>3): Use ANYF instead of SCALARF.
4896         (*div<mode>3): Use ANYF instead of SCALARF.  Use UNITMODE instead of
4897         MODE.
4898         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition
4899         instead of ISA_HAS_FP4.  Use ANYF instead of SCALARF.  Use UNITMODE
4900         instead of MODE.
4901         (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P.  Use ANYF
4902         instead of SCALARF.  Use UNITMODE instead of MODE.
4903
4904 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
4905
4906         * config.in: Regenerate after removal of libbanshee.
4907
4908 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
4909
4910         PR tree-optimization/17400
4911         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
4912         coalesce partitions when one occurs in an abnormal PHI.
4913
4914 2004-09-13  Andrew Pinski  <apinski@apple.com>
4915
4916         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
4917         name to _new_size.
4918
4919 2004-09-13  Richard Henderson  <rth@redhat.com>
4920
4921         PR inline-asm/6806
4922         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
4923         (cselib_invalidate_rtx_note_stores): New.
4924         (cselib_record_sets, cselib_process_insn): Update to match.
4925         * cselib.h (cselib_invalidate_rtx): Declare.
4926         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
4927
4928 2004-09-13  Richard Henderson  <rth@redhat.com>
4929
4930         PR tree-opt/10528
4931         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
4932         after copying its argument.
4933
4934 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
4935
4936         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
4937         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
4938         in diagnostics.  Use %' for English apostrophes.
4939         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
4940         (pedwarn_c90, pedwarn_c99): Use it.
4941         * c-decl.c (lookup_label): Quote label name in diagnostic.
4942         * c-parse.in (yyprint): Use ' instead of ` for left quote.
4943         * c-typeck.c (warn_for_assignment): Likewise.
4944
4945 2004-09-13  Jan Hubicka  <jh@suse.cz>
4946
4947         * i386.c (x86_schedule): New global variable.
4948         (override_options): Disable scheduling when not supported.
4949         * i386.h (x86_schedule): Declare.
4950         (TARGET_SCHEDULE): New macro.
4951
4952 2004-09-12  Richard Henderson  <rth@redhat.com>
4953
4954         PR c++/16254
4955         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
4956         * tree.c, tree.h (has_cleanups): Remove.
4957
4958 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4959
4960         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
4961         arguments of the phi nodes correctly.
4962
4963 2004-09-12  Jan Hubicka  <jh@suse.cz>
4964
4965         * ggc-common.c (cmp_statistics): Fix sorting.
4966
4967 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
4968
4969         PR target/16795
4970         * expmed.c (expand_divmod): If cheap power of 2 divide is
4971         available, use it for negative constant as well.
4972
4973 2004-09-12  Andrew Pinski  <apinski@apple.com>
4974
4975         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
4976         size of 0.
4977
4978         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
4979
4980 2004-09-12  Richard Henderson  <rth@redhat.com>
4981
4982         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
4983         or minus one.
4984         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
4985         post-reload, and scratch NULL.
4986         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
4987         (x86_shift_adj_2): Use ix86_expand_clear.
4988         (ashldi3): Remove CMOVE expansion difference.
4989         (ashldi3_1): Remove.
4990         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
4991         add constraints for immediates.  New peephole for split-with-temp.
4992         Run splitter after peep2 pass.
4993         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
4994         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
4995         (setcc_2): Rename with *.
4996         * config/i386/predicates.md (reg_or_pm1_operand): New.
4997         (ashldi_input_operand): New.
4998
4999 2004-09-12  Richard Henderson  <rth@redhat.com
5000
5001         * print-rtl.c (print_decl_name): New.
5002         (print_mem_expr): Use it.
5003
5004 2004-09-12  Richard Henderson  <rth@redhat.com
5005
5006         PR 17186, part deux
5007         * except.c (sjlj_emit_function_exit): Fix logic locating
5008         sjlj_exit_after in final block.
5009
5010 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
5011
5012         * common.opt: Remove flags -fmove-all-movables and
5013         -freduce-all-givs.
5014         * loop-invariant.c (find_invariants_to_move):
5015         Remove all uses of flag_move_all_movables.
5016         * loop.c (move_movables): Remove all uses of
5017         flag_move_all_movables.
5018         (strength_reduce): Remove all uses of
5019         flag_reduce_all_givs.
5020         * doc/invoke.texi: Remove documentation of flags
5021         -fremove-all-movables and -freduce-all-givs.
5022
5023 2004-09-11  Roger Sayle  <roger@eyesopen.com>
5024
5025         PR middle-end/17411
5026         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
5027         change. elt->type may be a floating point type, so use fold_convert.
5028
5029 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
5030
5031         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
5032         the thing referenced as used, not the stub itself.
5033
5034 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5035
5036         * c-tree.h (enum c_storage_class): New.
5037         (struct c_declspecs): Add storage_class, inline_p and thread_p.
5038         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
5039         declarations and "auto" or "register" in file scope empty
5040         declarations.  Give more specific warnings for other cases of
5041         storage class specifiers in empty declarations.
5042         (grokdeclarator): Update for new structures.  Don't check for
5043         multiple storage classes.  Diagnose file-scope "register" if
5044         pedantic.
5045         (build_null_declspecs): Update.
5046         (declspecs_add_scspec): Update.  Diagnose multiple storage class
5047         specifiers and invalid uses of "__thread".
5048
5049 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
5050
5051         * tree.c (tree_code_size): New function, bulk of code from tree_size.
5052         (tree_size, make_node): Use it.
5053         * tree-ssa-pre.c (init_pre): Use it.
5054         * tree.h: Prototype it.
5055
5056 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5057
5058         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
5059         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
5060         redirect_immediate_use): Use PHI_DF.
5061         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
5062         (bb_for_stmt): Use PHI_BB.
5063         (get_immediate_uses): Use PHI_DF.
5064         * tree-ssa-dse.c (max_stmt_uid): New variable.
5065         (get_stmt_uid): New function.
5066         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
5067         node annotations.
5068         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
5069         (max_uid): Renamed to max_stmt_uid.
5070         (get_stmt_uid): New function.
5071         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
5072         phi node annotations.
5073         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
5074         * tree.h (PHI_BB, PHI_DF): New accessor functions.
5075         (struct tree_phi_node): Add bb and df fields.
5076
5077 2004-09-11  Richard Henderson  <rth@redhat.com>
5078
5079         PR middle-end/17416
5080         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
5081         in conflict loop.
5082
5083 2004-09-11  Jan Hubicka  <jh@suse.cz>
5084
5085         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
5086         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
5087         * i386.md (i387_cw): Add 'uninitialized' mode.
5088
5089         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
5090         (output_location): Break out from ....
5091         (branch_prob): ... here; handle gcov output on trees.
5092         * toplev.c (process_options): No longer be sorry about coverage for
5093         trees.
5094
5095 2004-09-11  Steven Bosscher  <stevenb@suse.de>
5096
5097         PR c++/17412
5098         * fold-const.c (fold): Do not try to fold the operand of a
5099         CLEANUP_POINT_EXPR if that operand does itself not have any
5100         operands.
5101
5102         PR middle-end/17417
5103         * langhooks.c (lhd_decl_printable_name): Make sure that this
5104         function is called with is a decl node that has an identifier.
5105         * tree-pretty-print.c (dump_function_name): New function to
5106         wrap PRINT_FUNCTION_NAME and dump_decl_name.
5107         (print_call_name): Use it.
5108
5109 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
5110
5111         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
5112         "config.h" if not.
5113
5114 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
5115
5116         * tree-ssa-alias.c (collect_points_to_info_r): Handle
5117         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
5118         to OFFSET.
5119
5120 2004-09-11  Richard Henderson  <rth@redhat.com>
5121
5122         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
5123         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
5124         operand of the ADDR_EXPR.
5125         (expand_expr_real_1): Update to match.
5126
5127 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
5128
5129         PR target/17277
5130         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
5131         choose 64-bit version.
5132
5133 2004-09-11  Richard Henderson  <rth@redhat.com>
5134
5135         PR c/17396
5136         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
5137
5138 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
5139
5140         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
5141         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
5142         Insert @: after i.e. or e.g.
5143
5144 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5145
5146         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
5147         D.xxx rather than <Dxxx>.
5148
5149 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5150
5151         * configure.ac (AC_MSG_CHECKING(what linker to use)):
5152         in_tree_ld_is_elf should be true for LynxOS.
5153         * configure: Regenerate.
5154
5155 2004-09-10  Adam Nemet  <anemet@lnxw.com>
5156
5157         * Makefile.in (all.cross): Add srcextra.
5158
5159 2004-09-10  Roger Sayle  <roger@eyesopen.com>
5160
5161         PR middle-end/17024
5162         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
5163         floating point comparison operators.  Change aborts to gcc_asserts.
5164
5165 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5166
5167         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
5168
5169 2004-09-10  James E Wilson  <wilson@specifixinc.com>
5170
5171         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
5172         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
5173
5174         * convert.c (convert_to_vector): Replace recursive call with
5175         error_mark_node.
5176
5177         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
5178         Add integer argument named constant.  Use const_tiny_rtx instead of
5179         CONST0_RTX.
5180         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
5181         and CONST1_RTX.
5182         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
5183         vector types.
5184         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
5185         of gen_rtx_raw_CONST_VECTOR.
5186
5187 2004-09-10  Eric Christopher  <echristo@redhat.com>
5188
5189         PR c/16046
5190         * c-parse.in (attribute): Add NULL_TREE for error case
5191         for error recovery.
5192
5193 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
5194
5195         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
5196         (extract_interface_info): Delete prototype.
5197         * c-decl.c (extract_interface_info): Delete stub.
5198         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
5199         it's not already been done ...
5200         (init_c_lex): ... not here.
5201         (fe_file_change): Don't call extract_interface_info.
5202
5203 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
5204
5205         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
5206         typedef_p and typedef_signed_p.
5207         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
5208         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
5209         Check typedef_p and typedef_signed_p, not typedef_decl.
5210         (grokfield): Check typedef_p, not typedef_decl.
5211         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
5212         not typedef_decl.
5213         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
5214         typedef_decl.
5215
5216 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5217
5218         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
5219
5220 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
5221
5222         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
5223         temporary variables.
5224
5225         * dbxout.c (dbxout_block): Update for
5226         current_function_func_begin_label a string.
5227         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
5228         * except.c (dw2_output_call_site_table): Likewise.
5229         * toplev.c (current_function_func_begin_label): Likewise.
5230         * tree.h (current_function_func_begin_label): Likewise.
5231         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
5232
5233         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
5234         loop.
5235
5236         * config/darwin.c: Include target.h.
5237         (struct machopic_indirection): Make ptr_name a string.
5238         (machopic_indirection_hash): Update for ptr_name a string.
5239         (machopic_indirection_eq): Likewise.
5240         (machopic_indirection_name): Likewise.
5241         (machopic_output_indirection): Likewise.
5242         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
5243         string.  Don't expect stub names to be in the identifier hash table.
5244         Do call strip_name_encoding before looking up entry in ID hash table.
5245         * config/t-darwin (darwin.o): Add target.h to dependencies.
5246
5247         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
5248         of fprintf for register names.
5249
5250         * output.h (unlikely_section_label): Delete declaration.
5251         (unlikely_text_section_name): Likewise.
5252         * varasm.c (unlikely_section_label_printed): Make static.
5253         (unlikely_section_label): Likewise.
5254         (unlikely_text_section_name): Likewise.
5255         (assemble_start_function): Use reconcat.
5256
5257         * rtl.def (REG): Add comment to describe third field.
5258
5259 2004-09-10  Andrew Pinski  <apinski@apple.com>
5260
5261         * config/darwin.c (machopic_mcount_stub_name): Call
5262         machopic_indirection_name instead of making the string
5263         ourselves.
5264
5265 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
5266
5267         Revert
5268
5269         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
5270
5271             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
5272             memory tag is call clobbered, so are its aliases.
5273             (group_aliases): When two memory tags being grouped, if one is
5274             call clobbered, so are the other and its aliases.
5275             (add_may_alias): Remove call-clobbering stuff.
5276             (replace_may_alias): Likewise.
5277             (merge_pointed_to_info): Merge pt_global_mem
5278
5279 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5280
5281         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
5282         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
5283         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
5284         tree-scalar-evolution.c, tree-ssa-copyrename.c,
5285         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
5286
5287 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5288
5289         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
5290         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
5291         pair.  Remove match_dup from inputs.  Remove masaccs handling.
5292         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
5293         (masaccs, mdasaccs): Turn into define_insns.
5294
5295 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5296
5297         * tree-tailcall.c (process_assignment): Only do accumulator transforms
5298         for floating-point types if flag_unsafe_math_optimizations.
5299
5300 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5301
5302         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
5303         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
5304         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
5305         config/h8300/h8300.md, config/i386/gmm_malloc.h,
5306         config/ia64/ia64.md, config/ip2k/libgcc.S,
5307         config/mips/mips-ps-3d.md, config/mips/mips.c,
5308         config/rs6000/rs6000.c, config/s390/s390.c,
5309         config/sh/symbian.c: Fix comment typos.
5310
5311 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
5312
5313         * config/s390/s390.c (s390_emit_prologue): Added missing
5314         "{}" brackets.
5315
5316 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5317
5318         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
5319         typos.  Follow spelling conventions.
5320
5321 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5322
5323         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
5324         in diagnostic.  Don't dereference NULL TYPE_NAME.
5325
5326 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5327
5328         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
5329         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
5330         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
5331         value-prof.c: Fix comment typos.  Follow spelling conventions.
5332
5333 2004-09-10  Jan Hubicka  <jh@suse.cz>
5334
5335         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
5336         * tree-split_edge.c (tree_split_edge): Likewise.
5337         (thread_jumps): Likewise.
5338
5339 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
5340
5341         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
5342         typos.
5343
5344 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
5345
5346         * cgraph.h (cgraph_dump_file): Do not declare.
5347         * cgraphunit.c (cgraph_dump_file): Declare as static.
5348         (init_cgraph): New.
5349         * toplev.c (cgraph_dump_file): Do not declare.
5350         (compile_file): Call init_cgraph.
5351         * tree-dump.c (dump_files): Add IPA dump file, remove
5352         XML dump of call graph.
5353         (get_dump_file_name): Support IPA dump file naming scheme.
5354         * tree.h (enum tree_dump_index): Add IPA dump file, remove
5355         XML dump of call graph.
5356         * doc/invoke.texi (Debugging Options): Document the new options.
5357
5358 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
5359
5360         * doc/extend.texi: Document the FR-V built-in functions.
5361
5362 2004-09-09  James E Wilson  <wilson@specifixinc.com>
5363
5364         * doc/sourcebuild.texi: Delete libbanshee reference.
5365
5366 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
5367
5368         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
5369
5370 2004-09-09  James E Wilson  <wilson@specifixinc.com>
5371
5372         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
5373         before calling vector_types_convertible_p.
5374         (digest_init): Check that inside_init has VECTOR_TYPE before calling
5375         vector_types_convertible_p.  Don't give another error if
5376         convert_for_assignment returns error_mark_node.
5377
5378 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5379
5380         PR middle-end/17055
5381         * fold-const.c (build_zero_vector): New function to construct a
5382         vector (either floating point or integer) of zeros.
5383         (fold_convert): Internally, enable conversions of integer zero
5384         to arbitrary vector types, using the new build_zero_vector.
5385
5386 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5387
5388         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
5389         expand a left shift by an immediate constant as either an ashl or
5390         a sequence of additions.
5391         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
5392         instead of calling gen_ashlsi3 with a constant directly.
5393
5394 2004-09-09  Roger Sayle  <roger@eyesopen.com>
5395
5396         * config/i386/i386.c (ix86_split_long_move): When optimizing for
5397         size, and the low and high parts of a DImode constant are equal,
5398         copy one register to another instead of loading the same immediate
5399         value twice.
5400
5401 2004-09-09  Richard Henderson  <rth@redhat.com>
5402
5403         PR middle-end/17367
5404         * function.c (assign_parm_setup_block): Only put PARALLELs into
5405         a register if use_register_for_decl.
5406
5407 2004-09-09  Eric Christopher  <echristo@redhat.com>
5408
5409         * ra-colorize.c (reset_lists): Move variable declaration inside
5410         ENABLE_CHECKING to avoid unused variable warnings when
5411         not --enable-checking.
5412         (check_colors): Ditto.
5413
5414 2004-09-09  Mike Stump  <mrs@apple.com>
5415
5416         * version.c (version_string): Bump to 4.0.0.
5417         * doc/include/gcc-common.texi (version-GCC): Likewise.
5418
5419 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
5420
5421         * doc/extend.texi (nothrow attribute): The attribute is not
5422         implemented in 3.2 and earlier.
5423
5424 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
5425
5426         * genrecog.c (compute_predicate_codes): Use op0_codes
5427         instead of codes.
5428
5429 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5430
5431         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
5432         implementation changes.
5433
5434 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5435
5436         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
5437         a PARALLEL instead of a SET due to added clobbers.
5438
5439 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
5440
5441         * reload.c (find_reloads_address): Pass correct operand to
5442         maybe_memory_address_p.
5443
5444 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
5445
5446         * Makefile.in: Remove libbanshee, tree-alias-*.
5447         Remove tree-alias-common.h dependencies.
5448         * common.opt: Remove -ftree-points-to.
5449         * configure.ac: Remove libbanshee.
5450         * flags.h: Remove pta_type, flag_tree_points_to.
5451         * gengtype.c (open_base_files): Remove tree-alias-type.h.
5452         * opts.c (OPT_ftree_points_to): Remove.
5453         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
5454         * tree-dfa.c: Remove tree-alias-common.h
5455         * tree-into-ssa.c: Ditto.
5456         * tree-outof-ssa.c: Ditto.
5457         * tree-ssa-copyrename.c: Ditto.
5458         * tree-ssa-live.c: Ditto.
5459         * tree-optimize.c: Ditto.
5460         * tree-ssa.c: Ditto.
5461         Remove pass_build_pta, pass_del_pta.
5462         * tree-pass.h: Ditto.
5463         * tree-ssa-alias.c: Remove tree-alias-common.h.
5464         (struct alias_stats_d): Remove pta_queries, pta_resolved.
5465         (pass_may_alias): Remove PROP_pta requirement.
5466         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
5467         (get_tmt_for): Ditto.
5468         (dump_alias_stats): Ditto.
5469         * doc/passes.texi: Remove blurb about points-to analysis.
5470         * fortran/Make-lang.in: Remove tree-alias-*.o.
5471
5472 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
5473
5474         * genattrtab.c (write_insn_cases): New function, split out from
5475         write_attr_case.  Correctly handle define_peepholes when printing
5476         the instruction name.
5477         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
5478
5479 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
5480
5481         PR target/17377
5482         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
5483         * config/cris/cris.c (cris_return_address_on_stack): New function.
5484         * config/cris/cris.md ("return"): For location of return address,
5485         also check cris_return_address_on_stack.
5486
5487 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
5488
5489         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
5490         calling phi_ssa_name_p.
5491
5492 2004-09-09  Richard Henderson  <rth@redhat.com>
5493
5494         PR c/17322
5495         * c-typeck.c (valid_compound_expr_initializer): Use only
5496         initializer_constant_valid_p, and not TREE_CONSTANT.
5497         (digest_init): Likewise.
5498         (output_init_element): Likewise.
5499
5500 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5501
5502         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
5503         live_out_1, prune_hardregs_for_mode, init_one_web_common,
5504         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
5505         record_conflict, compare_and_free_webs, init_webs_defs_uses,
5506         parts_to_webs_1, parts_to_webs, reset_conflicts,
5507         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
5508         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
5509         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
5510         put_move, remove_move, combine, select_spill, colorize_one_web,
5511         try_recolor_web, insert_coalesced_conflicts, check_colors,
5512         break_precolored_alias, restore_conflicts_from_coalesce,
5513         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
5514         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
5515         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
5516         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
5517         check_df): Likewise.
5518         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
5519         real_arithmetic, real_compare, real_exponent, real_ldexp,
5520         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
5521         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
5522         real_digit, real_nan, real_maxval, round_for_format, real_convert,
5523         real_to_target, real_from_target, real_hash, encode_ieee_single,
5524         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
5525         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
5526         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
5527         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
5528         extract_insn, peep2_next_insn, peep2_reg_dead_p,
5529         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
5530         if_test_bypass_p): Likewise.
5531         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
5532         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
5533         emit_swap_insn, swap_to_top, move_for_stack_reg,
5534         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
5535         compensate_edge, convert_regs_1): Likewise.
5536         * regclass.c (init_reg_sets, init_reg_sets_1,
5537         memory_move_secondary_cost): Likewise.
5538         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
5539         Likewise.
5540         * reload.c (push_secondary_reload, find_valid_class, push_reload,
5541         operands_match_p, decompose, immune_p, find_reloads,
5542         find_reloads_toplev, find_reloads_address_1, subst_reloads,
5543         copy_replacements, refers_to_regno_for_reload_p,
5544         reg_overlap_mentioned_for_reload_p): Likewise.
5545         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
5546         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
5547         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
5548         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
5549         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
5550         do_output_reload, fixup_abnormal_edges): Likewise.
5551         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
5552         fill_slots_from_thread, relax_delay_slots): Likewise.
5553         * resource.c (mark_referenced_resources, mark_set_resources):
5554         Likewise.
5555         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
5556         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
5557         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
5558         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
5559         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
5560         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
5561         * rtlhooks.c (gen_lowpart_general): Likewise.
5562         * sbitmap.c (sbitmap_difference): Likewise.
5563         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
5564         sched_analyze, add_forward_dependence): Likewise.
5565         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
5566         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
5567         schedule_insns): Likewise.
5568         * sched-vis.c (print_pattern): Likewise.
5569         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
5570         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
5571         simplify_const_relational_operation, simplify_ternary_operation,
5572         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
5573         Likewise.
5574         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
5575         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
5576         resolve_operand_name_1, expand_return, expand_decl,
5577         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
5578         * stor-layout.c (put_pending_size, smallest_mode_for_size,
5579         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
5580         set_sizetype, get_mode_bounds): Likewise.
5581
5582 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
5583
5584         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
5585         * config/arm/pecoff.h, config/i386/beos-elf.h
5586         * config/i386/cygming.h, config/i386/i386-interix.h:
5587         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
5588         comment cloned from manual.
5589         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
5590
5591 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
5592
5593         * builtins.c (build_va_arg_indirect_ref): New function.
5594         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
5595         build_fold_indirect_ref.
5596         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
5597         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
5598         * tree.h: Declare new function.
5599
5600 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5601
5602         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
5603         dumping for development builds.
5604         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
5605         development builds only.
5606         * genattrtab.c (write_eligible_delay): Fix typo in previous
5607         commit.
5608         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
5609         gcc_assert.
5610
5611 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5612
5613         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
5614         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
5615         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
5616         hoist_code, extract_mentioned_regs_helper, compute_store_table,
5617         insert_store): Use gcc_assert and gcc_unreachable.
5618         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
5619         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
5620         ggc_record_overhead): Likewise.
5621         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
5622         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
5623         ggc_pop_context, clear_marks, validate_free_objects,
5624         ggc_pch_read): Likewise.
5625         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
5626         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
5627         ggc_push_context, check_cookies, ggc_collect,
5628         ggc_print_statistics): Likewise.
5629         * gimple-low.c (lower_function_body, lower_stmt,
5630         lower_bind_expr): Likewise.
5631         * gimplify.c (gimple_tree_eq, push_gimplify_context,
5632         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
5633         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
5634         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
5635         gimplify_case_label_expr, gimplify_exit_block_expr,
5636         canonicalize_component_ref, gimplify_compound_lval,
5637         gimplify_self_mod_expr, gimplify_call_expr,
5638         gimplify_init_ctor_eval, gimplify_init_constructor,
5639         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
5640         gimplify_expr, check_pointer_types_r,
5641         force_gimple_operand): Likewise.
5642         * global.c (global_alloc, build_insn_chain): Likewise.
5643         * graph.c (clean_graph_dump_file,
5644         finish_graph_dump_file): Likewise.
5645         gcov-io.c (gcov_open): Use GCOV_CHECK.
5646
5647 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
5648
5649         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
5650
5651 2004-09-09  Jan Hubicka  <jh@suse.cz>
5652
5653         middle-end/17128
5654         * tree-inline.c (expand_call_inline): Make overactive sanity check
5655         happy.
5656
5657 2004-09-09  Jan Hubicka  <jh@suse.cz>
5658
5659         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
5660         VIEW_CONVERT_EXPR.
5661
5662 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5663
5664         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
5665         (gengtype.o): Depend on errors.h.
5666         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
5667         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
5668         attr_alt_subset_p, attr_alt_subset_of_compl_p,
5669         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
5670         write_test_expr, write_attr_value, write_eligible_delay,
5671         make_internal_attr, make_numeric_value): Likewise.
5672         * genautomata.c (regexp_name, get_str_vect,
5673         gen_presence_absence_set, automaton_decl_hash,
5674         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
5675         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
5676         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
5677         test_unit_reserv, it_is_empty_reserv_sets,
5678         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
5679         reserv_sets_and, output_cycle_reservs, get_free_state,
5680         intersected_state_reservs_p, states_union, remove_arc,
5681         copy_insn_regexp, transform_1, transform_2, transform_3,
5682         regexp_transform_func, store_alt_unit_usage,
5683         check_regexp_units_distribution, process_seq_for_forming_states,
5684         process_alts_for_forming_states, make_automaton,
5685         form_arcs_marked_by_insn, create_composed_state,
5686         set_out_arc_insns_equiv_num, partition_equiv_class,
5687         process_insn_equiv_class, set_insn_equiv_classes,
5688         units_to_automata_heuristic_distr, form_regexp,
5689         longest_path_length, output_dfa_max_issue_rate, add_vect,
5690         out_state_arcs_num, add_vect_el, output_trans_table,
5691         output_state_alts_table, output_dead_lock_vect,
5692         output_max_insn_queue_index_def,
5693         output_min_insn_conflict_delay_func,
5694         output_internal_insn_latency_func, output_print_reservation_func,
5695         output_cpu_unit_reservation_p, output_state_arcs,
5696         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
5697         make_default_insn_latency_attr,
5698         form_important_insn_automata_lists): Likewise.
5699         * genemit.c (gen_exp, output_add_clobbers,
5700         output_added_clobbers_hard_reg_p): Likewise.
5701         * genextract.c (print_path, main): Likewise.
5702         * genflags.c (gen_macro): Likewise.
5703         * gengenrtl.c: Include errors.h
5704         (type_from_format, accessor_from_format): Likewise.
5705         * gengtype.c (get_file_basename, output_mangled_typename,
5706         walk_type, write_types_process_field,
5707         write_types_local_process_field): Likewise.
5708         * genmodes.c (complete_mode): Likewise.
5709         * genopinit.c (gen_insn): Likewise.
5710         * genoutput.c (output_insn_data, check_constraint_len,
5711         constraint_len): Likewise.
5712         * genpreds.c (add_mode_tests):Likewise.
5713         * gen-protos.c (add_hash): Likewise.
5714         * genrecog.c (find_operand, find_matching_operand,
5715         validate_pattern, add_to_sequence, maybe_both_true,
5716         nodes_identical_1, merge_trees, write_switch, write_cond,
5717         write_action, is_unconditional, make_insn_sequence,
5718         debug_decision_2): Likewise.
5719         * gensupport.c (is_predicable, collect_insn_data,
5720         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
5721
5722 2004-09-09  Jan Hubicka  <jh@suse.cz>
5723
5724         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
5725         * cfgbuild.c (compute_outgoing_frequencies): When probability is
5726         missing, guess it.
5727         (find_many_sub_basic_blocks): Do update profile only when it is
5728         present.
5729         * predict.c (set_even_probabilities): Break out from ...
5730         (combine_predictions_for_insn): ... here; deal with
5731         !can_predict_insn_p insns.
5732         (combine_predictions_for_bb): Use set_even_probabilities.
5733         (bb_estimate_probability_locally): Break out from ....
5734         (estimate_probability): ... here.
5735         (guess_outgoing_edge_probabilities): New entry point.
5736
5737 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
5738
5739         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
5740         handle_braces, process_brace_body, main, used_arg,
5741         set_multilib_dir, print_multilib_info): Use fatal, not abort.
5742
5743         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
5744
5745         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
5746         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
5747         Morgan's theorem in last checkin.
5748
5749 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
5750             Nathan Sidwell  <nathan@codesourcery.com>
5751
5752         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
5753         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
5754         * timevar.c (timevar_push, timevar_pop, timevar_start,
5755         timevar_stop): Likewise.
5756         * toplev.c (default_pch_valid_p): Likewise.
5757         * tracer.c (tail_duplicate): Likewise.
5758         * tree-alias-common.c (get_alias_var_decl,
5759         get_values_from_constructor, create_alias_var, delete_alias_vars,
5760         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
5761         Likewise.
5762         * tree.c (tree_size, make_node_stat, copy_node_stat,
5763         build_int_cst_wide, integer_all_onesp, list_length, chainon,
5764         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
5765         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
5766         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
5767         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
5768         build_method_type_directly, decl_type_context, get_callee_fndecl,
5769         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
5770         tree_fold_gcd): Likewise.
5771         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
5772         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
5773         cleanup_control_expr_graph, find_taken_edge,
5774         find_taken_edge_switch_expr, phi_alternatives_equal,
5775         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
5776         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
5777         tree_split_edge, tree_verify_flow_info, thread_jumps,
5778         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
5779         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
5780         chrec_fold_multiply_poly_poly): Likewise.
5781         * tree-complex.c (extract_component, expand_complex_division,
5782         expand_complex_comparison, expand_complex_operations_1,
5783         build_replicated_const, expand_vector_operations_1): Likewise.
5784         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
5785         build_classic_dir_vector): Likewise.
5786         * tree-dfa.c (compute_immediate_uses_for_phi,
5787         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
5788         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
5789         * tree-dump.c (dequeue_and_dump): Likewise.
5790         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
5791         record_in_finally_tree, replace_goto_queue_1,
5792         maybe_record_in_goto_queue, verify_norecord_switch_expr,
5793         do_return_redirection): Likewise.
5794         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
5795         add_to_dst_predicate_list, find_phi_replacement_condition,
5796         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
5797         Likewise.
5798         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
5799         initialize_inlined_parameters, declare_return_variable,
5800         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
5801         optimize_inline_calls, copy_tree_r): Likewise.
5802         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
5803         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
5804         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
5805         tsi_split_statement_list_after, tsi_split_statement_list_before):
5806         Likewise.
5807         * tree-mudflap.c (mf_varname_tree): Likewise.
5808         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
5809         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
5810         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5811         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
5812         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
5813         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
5814         Likewise.
5815         * tree-phinodes.c (resize_phi_node, add_phi_arg,
5816         remove_all_phi_nodes_for): Likewise.
5817         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
5818         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
5819         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
5820         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
5821         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
5822         generate_one_element_ref, generate_element_copy,
5823         generate_element_zero, scalarize_copy, scalarize_init,
5824         scalarize_ldst): Likewise.
5825         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
5826         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
5827         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
5828         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
5829         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
5830         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
5831         widen_bitfield, ccp_fold_builtin): Likewise.
5832         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
5833         replace_exp_1, propagate_tree_value): Likewise.
5834         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
5835         * tree-ssa-dce.c (set_control_dependence_map_bit,
5836         find_control_dependence, find_pdom, mark_operand_necessary,
5837         mark_stmt_if_obviously_necessary,
5838         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
5839         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
5840         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
5841         eliminate_redundant_computations, avail_expr_eq): Likewise.
5842         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
5843         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
5844         duplicate_blocks): Likewise.
5845         * tree-ssa-loop-im.c (for_each_index, set_level,
5846         is_call_clobbered_ref): Likewise.
5847         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
5848         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
5849         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
5850         peel_address, ptr_difference_cost, may_replace_final_value,
5851         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
5852         rewrite_use, rewrite_uses): Likewise.
5853         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
5854         check_loop_closed_ssa_use): Likewise.
5855         * tree-ssanames.c (make_ssa_name): Likewise.
5856         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
5857         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
5858         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
5859         get_indirect_ref_operands, add_stmt_operand): Likewise.
5860         * tree-ssa-pre.c (value_exists_in_set_bitmap,
5861         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
5862         phi_translate, valid_in_set, compute_antic,
5863         find_or_generate_expression, create_expression_by_pieces, insert_aux,
5864         create_value_expr_from, eliminate): Likewise.
5865         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
5866         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
5867         Likewise.
5868         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
5869         eliminate_tail_call): Likewise.
5870         * tree-vectorizer.c (vect_create_index_for_array_ref,
5871         vect_align_data_ref, vect_create_data_ref,
5872         vect_create_destination_var, vect_get_vec_def_for_operand,
5873         vect_finish_stmt_generation, vect_transform_stmt,
5874         vect_transform_loop_bound, vect_transform_loop,
5875         vect_analyze_operations): Likewise.
5876         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
5877         Likewise.
5878         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
5879         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
5880         bsi_after_labels, bsi_last): Likewise.
5881         * tree-ssa-live.c (var_union, change_partition_var,
5882         create_ssa_var_map, calculate_live_on_entry, root_var_init,
5883         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
5884         Likewise.
5885         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
5886         tpa_find_tree): Likewise.
5887         (register_ssa_partition_check): Declare.
5888         (register_ssa_partition): use it.
5889         * tree-ssa-live.c: Include errors.h.
5890         (register_ssa_partition_check): New.
5891         * tree-ssa-operands.c: Include errors.h.
5892         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
5893
5894 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
5895             Catherine Moore  <clm@redhat.com>
5896
5897         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
5898         (FRV_CPU_FR405): New processor enums.
5899         (frv_issue_rate, frv_acc_group): Declare.
5900         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
5901         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
5902         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
5903         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
5904         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
5905         handled by CPP_SPEC.
5906         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
5907         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
5908         (ACC_MASK): New macro.
5909         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
5910         (TARGET_MEDIA_FR450): New macro.
5911         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
5912         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
5913         (LABEL_ALIGN_AFTER_BARRIER): Define.
5914         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
5915         (IACC_FIRST, IACC_LAST): New pair of SPRs.
5916         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
5917         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
5918         (REGISTER_NAMES): Add entries for new registers.
5919         (REG_CLASS_CONTENTS): Update for new register ranges.
5920         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
5921         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
5922         (PACKING_FLAG_USED_P): Delete.
5923         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
5924         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
5925         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
5926         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
5927         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
5928         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
5929         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
5930         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
5931         (CPU_UNITS_QUERY): Define to 1.
5932         * config/frv/frv.c: Include gt-frv.h
5933         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
5934         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
5935         (frv_insn_group): New enumeration.
5936         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
5937         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
5938         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
5939         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
5940         gap left by REGSTATE_LIVE.
5941         (regstate_t): New typedef.
5942         (TARGET_MACHINE_DEPENDENT_REORG): Define.
5943         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
5944         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
5945         Initialize frv_unit_codes[] and frv_type_to_unit[].
5946         (frv_conditional_register_usage): Remove redundant fixing of
5947         accumulator registers.
5948         (frv_insn_packing_flag): Update specification.
5949         (frv_function_prologue): Don't set frv_insn_packing_flag here.
5950         Zero out frv_nops[].
5951         (frv_expand_epilogue): Remove comments about the no-longer-present
5952         SIBCALL_P argument.
5953         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
5954         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
5955         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
5956         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
5957         packing is disabled and if INSN can only issue to M1.
5958         (call_operand): Check TARGET_LONG_CALLS.
5959         (acc_operand, even_acc_operand, quad_acc_operand)
5960         (accg_operand): Simplify.  Don't accept pseudo registers.
5961         (output_move_single): Handle SPR<-zero moves.
5962         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
5963         (frv_registers_update, frv_registers_used_p): Delete.
5964         (frv_registers_set_p): Delete.
5965         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
5966         (frv_issues_to_branch_unit_p): New function.
5967         (frv_packet): New structure.
5968         (frv_cond_flags, frv_regstate_conflict_p): New functions.
5969         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
5970         (frv_registers_update_1, frv_registers_update): New functions.
5971         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
5972         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
5973         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
5974         (frv_sort_insn_group, frv_reorder_packet): New functions.
5975         (frv_pack_insns): Use frv_reorder_packet.
5976         (frv_packet_address): New variable.
5977         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
5978         (frv_register_nop, frv_reorg): New functions.
5979         (bdesc_1arg): Add __SCUTSS.
5980         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
5981         __SUBSS, __SLASS and __SCAN.
5982         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
5983         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
5984         (frv_init_builtins): Register the above builtins.
5985         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
5986         registers.  Turn the referenced accumulators into global registers.
5987         (frv_read_iacc_argument): New function.
5988         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
5989         (frv_split_iacc_move): New function.
5990         (frv_expand_builtin): Handle the new builtins.
5991         * config/frv/frv.md: Replace old schedulers with new order-independent
5992         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
5993         packing algorithm.
5994         (cpu): Add fr550, fr450 and fr405.
5995         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
5996         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
5997         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
5998         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
5999         (fnop, mnop): New patterns.
6000         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
6001         New constants.
6002         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
6003         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
6004         registers.
6005         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
6006         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
6007         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
6008         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
6009         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
6010         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
6011         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
6012         (frv_prefetch0, frv_prefetch): New patterns.
6013         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
6014         -mcpu=simple.  Add -mcpu=fr550.
6015         (MULTILIB_DIRNAMES): Update accordingly.
6016         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
6017         -mcpu=fr450.
6018         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
6019         -mlong-calls and -malign-labels options for FR-V.
6020
6021 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6022
6023         PR c/8420
6024         * c-tree.h (struct c_declspecs): New.
6025         (struct c_declarator, struct c_type_name, struct c_parm): Update
6026         element types.
6027         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
6028         start_function, start_decl, build_c_parm,
6029         make_pointer_declarator): Update prototypes.
6030         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6031         declspecs_add_scspec, declspecs_add_attrs): New.
6032         (split_specs_attrs): Remove.
6033         * c-parse.in (%union): Add dsptype.
6034         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6035         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6036         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6037         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6038         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6039         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6040         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6041         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
6042         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
6043         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
6044         maybe_type_quals_attrs): Change to dsptype.
6045         (struct c_declspec_stack): New.
6046         (current_declspecs, declspec_stack): Change type.
6047         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
6048         structures.
6049         (extdefs): Likewise.
6050         (setspecs): Likewise.
6051         (fndef): Use current_declspecs for empty declspecs list.
6052         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
6053         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
6054         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
6055         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
6056         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
6057         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
6058         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
6059         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
6060         structures and helper functions.  Update comments.
6061         (typespec_nonattr): Correct comment.
6062         (maybe_type_quals_attrs, typename): Update to new structures.
6063         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
6064         shadow_tag, shadow_tag_warned, start_function, start_decl,
6065         build_c_parm, make_pointer_declarator,
6066         set_array_declarator_inner, groktypename): Update to new
6067         structures.
6068         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
6069         declspecs_add_scspec, declspecs_add_attrs): New.
6070         (split_specs_attrs): Remove.
6071         (shadow_tag_warned): Make warning for useless type names a
6072         pedwarn.  Give hard error for long, short, signed, unsigned or
6073         _Complex used with struct, union or enum in empty declaration.
6074         Make found_tag a bool.
6075         (grokdeclarator): Remove checks now done at parse time.
6076
6077 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6078
6079         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
6080         c_declarator, struct c_type_name, struct c_parm): New.
6081         (build_array_declarator, set_array_declarator_inner,
6082         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
6083         start_function, start_decl, build_c_parm, build_attrs_declarator,
6084         build_function_declarator, make_pointer_declarator, c_cast_expr,
6085         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
6086         (build_id_declarator): New.
6087         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
6088         structures.
6089         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
6090         ARG_INFO_OTHERS): Remove.
6091         (build_id_declarator): New.
6092         (build_array_declarator, set_array_declarator_inner, groktypename,
6093         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
6094         grokfield, start_function, store_parm_decls_newstyle,
6095         store_parm_decls_oldstyle, store_parm_decls,
6096         build_c_parm, build_attrs_declarator, build_function_declarator,
6097         make_pointer_declarator, grokdeclarator): Update to new
6098         structures.
6099         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
6100         parmtype.
6101         (declarator, notype_declarator, after_type_declarator,
6102         parm_declarator, parm_declarator_starttypename,
6103         parm_declarator_nostarttypename, array_declarator, typename,
6104         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
6105         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
6106         parmlist_1, parmlist_2, parmlist_or_identifiers,
6107         parmlist_or_identifiers_1): Use these types.
6108         (primary, after_type_declarator, parm_declarator_starttypename,
6109         notype_declarator, component_decl, component_declarator,
6110         component_notype_declarator, typename, absdcl,
6111         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
6112         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
6113
6114 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
6115
6116         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
6117         in_typeof, record_maybe_used_decl, pop_maybe_used,
6118         c_expr_sizeof_expr, c_expr_sizeof_type): New.
6119         * c-decl.c (parser_obstack): New.
6120         (c_init_decl_processing): Initialize parser_obstack.
6121         (c_write_global_declarations_1): Check for used but undefined
6122         static functions.
6123         * c-parse.in (%union): Add otype.
6124         (save_obstack_position): New.
6125         (extdefs): Use it.
6126         (unary_expr): Update in_sizeof and in_alignof.  Use
6127         c_expr_sizeof_expr and c_expr_sizeof_type.
6128         (sizeof): Update in_sizeof.
6129         (alignof): Update in_alignof.
6130         (typeof): Update in_typeof.
6131         (typespec_nonreserved_nonattr): Call pop_maybe_used.
6132         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
6133         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
6134         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
6135         (build_external_ref): Set C_DECL_USED or call
6136         record_maybe_used_decl if appropriate.
6137         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
6138
6139 2004-09-08  Eric Christopher  <echristo@redhat.com>
6140
6141         * builtins.c: Fix prototype for fold_builtin_atan.
6142
6143 2004-09-08  Eric Christopher  <echristo@redhat.com>
6144
6145         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
6146         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
6147         fold_builtin_atan): New functions. Migrate function bodies...
6148         (fold_builtin_1): ... from here.
6149
6150 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
6151
6152         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
6153         save_size.
6154
6155 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
6156
6157         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
6158         * config/rs6000/power5.md (power5-lmul): Same.
6159
6160 2004-09-08  Richard Henderson  <rth@redhat.com>
6161
6162         PR rtl-opt/17186
6163         * function.c (expand_function_end): Have fall-off-the-end
6164         return path jump around return register setup.
6165
6166 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6167
6168         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
6169         (output_return): Do not test for the presence of the 'unimp' insn.
6170         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
6171         as predicates instead of custom ones.  Return raw strings when
6172         possible.
6173         (output_sibcall): Likewise.  Concatenate strings.
6174         (output_ubranch): Remove kludge for TurboSPARC.
6175         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
6176         (output_v9branch): Likewise.
6177         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
6178         <#>: Set sparc_indent_opcode if the delay slot is filled.
6179         <(>: Likewise.
6180         <)>: New operand to emit the displacement from the saved PC on return.
6181         <@>: Remove.
6182         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
6183         (ASM_OUTPUT_OPCODE): New macro.
6184         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
6185         * config/sparc/sparc.md (normal_branch, inverted_branch,
6186         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
6187         inverted_fpe_branch): Adjust call to output_cbranch.
6188         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
6189         call to output_v9branch.
6190         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
6191         (output_v9branch): Likewise.
6192
6193 2004-09-08  Devang Patel  <dpatel@apple.com>
6194
6195         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
6196         -segs_read_only_addr and -segs_read_write_addr.
6197         (WORD_SWITCH_TAKES_ARG): Same.
6198         (LINK_SPEC): Same.
6199         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
6200         -segs_read_write_addr.
6201
6202 2004-09-08  Richard Henderson  <rth@redhat.com>
6203
6204         * function.c (reference_callee_copied): New.
6205         (assign_parm_setup_reg): Use it.
6206         * calls.c (initialize_argument_information): Likewise.
6207         (emit_library_call_value_1): Likewise.
6208         * function.h (reference_callee_copied): Declare.
6209
6210         * target.h (struct gcc_target): Add callee_copies.
6211         * target-def.h (TARGET_CALLEE_COPIES): New.
6212         (TARGET_PASS_BY_REFERENCE): Update default.
6213         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6214         * targhooks.c (hook_callee_copies_named): New.
6215         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
6216         hook_pass_by_reference_false.
6217         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
6218         * targhooks.h: Update decls.
6219         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
6220         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6221         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
6222         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
6223         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6224         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
6225         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6226         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
6227         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6228         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
6229         (mips_callee_copies): New.
6230         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6231         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
6232         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6233         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
6234         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6235         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
6236         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6237         * config/sh/sh.c (sh_callee_copies): New.
6238         (TARGET_CALLEE_COPIES): New.
6239         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6240         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
6241         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
6242         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
6243         for FUNCTION_ARG_CALLEE_COPIES.
6244         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
6245
6246 2004-09-08  Devang Patel  <dpatel@apple.com>
6247
6248         * tree-if-conv.c (find_phi_replacement_condition): Return true
6249         edge block.
6250         (replace_phi_with_cond_modify_expr): Select conditional expr args
6251         based on true edge basic block.
6252
6253 2004-09-08  Jan Hubicka  <jh@suse.cz>
6254
6255         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
6256         variables being alias set.
6257
6258 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6259
6260         * final.c (shorten_branches, final, get_insn_template,
6261         output_alternate_entry_point, final_scan_insn, alter_subreg,
6262         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
6263         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
6264         * fix-header.c (lookup_std_proto): Likewise.
6265         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
6266         verify_local_live_at_start, update_life_info, mark_reg,
6267         calculate_global_regs_live, allocate_reg_life_data,
6268         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
6269         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
6270         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
6271         * fold-const.c (force_fit_type, div_and_round_double,
6272         may_negate_without_overflow_p, int_const_binop, const_binop,
6273         size_binop, size_diffop, fold_convert_const, fold_convert,
6274         invert_tree_comparison, swap_tree_comparison,
6275         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
6276         range_binop, make_range, fold_cond_expr_with_comparison,
6277         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
6278         fold_abs_const, fold_not_const, fold_relational_const, round_up,
6279         round_down): Likewise.
6280         * function.c (find_function_data, assign_stack_temp_for_type,
6281         instantiate_virtual_regs_lossage, aggregate_value_p,
6282         assign_parm_find_entry_rtl, assign_parm_setup_block,
6283         expand_function_start, expand_function_end, keep_stack_depressed,
6284         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
6285
6286 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
6287
6288         * Makefile.in (tree-loop-linear.o): Added.
6289         (OBJS-common): Add tree-loop-linear.o
6290         * common.opt: New flag, ftree-loop-linear.
6291         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
6292         * tree-flow.h: Add prototype for linear_transform_loops.
6293         * tree-optimize.c: Add linear transform after vectorization.
6294         * tree-pass.h: Add struct pass_linear_transform.
6295         * tree-ssa-loop.c: Add pass_linear_transform.
6296         * tree-loop-linear.c: New file.
6297         * lambda-code.c: gcc_assertify.
6298         (gcc_loop_to_lambda_loop): Handle all exit tests.
6299         Handle case where we have (invariant >= induction var).
6300         (find_induction_var_from_exit_cond): Ditto.
6301
6302 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
6303
6304         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
6305         memory tag is call clobbered, so are its aliases.
6306         (group_aliases): When two memory tags being grouped, if one is
6307         call clobbered, so are the other and its aliases.
6308         (add_may_alias): Remove call-clobbering stuff.
6309         (replace_may_alias): Likewise.
6310         (merge_pointed_to_info): Merge pt_global_mem
6311
6312 2004-09-08  Jan Hubicka  <jh@suse.cz>
6313
6314         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
6315         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
6316         (cgraph_expand_function): Remove stale cgraph edges of currently
6317         compiled function; fix non-unit-at-a-time code copying function
6318         node for later reuse.
6319
6320 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6321
6322         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
6323         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
6324         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
6325         (vec_gc_free, vec_heap_free): New.
6326         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
6327         (DEF_VEC_P): Add allocator argument. Adjust.
6328         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
6329         (DEF_VEC_O): Add allocator argument. Adjust.
6330         (VEC(free)): New.
6331
6332         * tree.h (tree): Define a GC'd vector.
6333         * lamba-code.c (lambda_loop): Likewise.
6334         * value-prof.h (histogram_value): Likewise.
6335
6336 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6337
6338         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
6339         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
6340         gen_lowpart_common, gen_highpart, gen_highpart_mode,
6341         subreg_highpart_offset, operand_subword, operand_subword_force,
6342         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
6343         set_mem_alias_set, change_address_1, verify_rtx_sharing,
6344         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
6345         try_split, add_insn_after, add_insn_before, remove_insn,
6346         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
6347         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
6348         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
6349         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
6350         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
6351         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
6352         record_path_before_1, check_path_after_1, check_path_after): Likewise.
6353         * except.c (gen_eh_region, resolve_one_fixup_region,
6354         remove_unreachable_regions, convert_from_eh_region_ranges_1,
6355         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
6356         connect_post_landing_pads, sjlj_emit_function_exit,
6357         remove_exception_handler_label, remove_eh_handler,
6358         reachable_next_level, collect_one_action_chain,
6359         output_function_exception_table): Likewise.
6360         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
6361         optimize_save_area_alloca, allocate_dynamic_stack_space,
6362         probe_stack_range, hard_function_value): Likewise.
6363         * expmed.c (mode_for_extraction, store_bit_field,
6364         store_fixed_bit_field, extract_bit_field, expand_shift,
6365         expand_mult_const, expand_mult, choose_multiplier,
6366         expand_mult_highpart, expand_divmod, emit_store_flag,
6367         do_cmp_and_jump): Likewise.
6368         * expr.c (convert_move, convert_modes, move_by_pieces,
6369         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
6370         move_block_from_reg, gen_group_rtx, emit_group_load,
6371         emit_group_move, emit_group_store, use_reg, use_regs,
6372         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
6373         emit_move_insn, emit_move_insn_1, emit_push_insn,
6374         expand_assignment, store_expr, count_type_elements,
6375         store_constructor, store_field, safe_from_p, expand_var,
6376         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
6377
6378 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
6379
6380         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
6381         gcc_assert and gcc_unreachable.
6382         * ddg.c (create_ddg_dependence, add_deps_for_def,
6383         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
6384         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
6385         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
6386         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
6387         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
6388         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
6389         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
6390         dataflow_set_copy, hybrid_search, diagnostic.c,
6391         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
6392         * dojump.c (do_jump): Likewise.
6393         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
6394         compute_dom_fast_query, calculate_dominance_info,
6395         free_dominance_info, get_immediate_dominator,
6396         set_immediate_dominator, get_dominated_by,
6397         redirect_immediate_dominators, nearest_common_dominator,
6398         dominated_by_p, verify_dominators, recount_dominator,
6399         iterate_fix_dominators, add_to_dominance_info,
6400         delete_from_dominance_info): Likewise.
6401         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
6402         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
6403         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
6404         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
6405         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
6406         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
6407         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
6408         output_call_frame_info, output_loc_operands, build_cfa_loc,
6409         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
6410         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
6411         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
6412         splice_child_die, attr_checksum, same_dw_val_p,
6413         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
6414         unmark_dies, value_format, output_loc_list, output_die,
6415         output_pubnames, output_aranges, base_type_die, is_base_type,
6416         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
6417         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
6418         field_byte_offset, add_data_member_location_attribute,
6419         add_const_value_attribute, rtl_for_decl_location,
6420         add_location_or_const_value_attribute, add_byte_size_attribute,
6421         add_bit_offset_attribute, add_bit_size_attribute,
6422         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
6423         decl_start_label, gen_formal_parameter_die,
6424         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
6425         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
6426         force_decl_die, force_type_die, gen_decl_die,
6427         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
6428         dwarf2out_finish): Likewise.
6429
6430 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
6431
6432         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
6433         * builtins.c: Include tree-mudflap.h.
6434
6435 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
6436
6437         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
6438         force operand 0.0 into register in XFmode. Also do not force
6439         operand 0.0 into register if !TARGET_CMOVE.
6440         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
6441         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
6442         implement ftst x87 instruction.
6443         (*fp_jcc_7): New insn pattern. Change corresponding split
6444         pattern to handle "general_operand" instead of
6445         "nonimmediate_operand".
6446
6447 2004-09-08  Ben Elliston  <bje@au.ibm.com>
6448
6449         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
6450
6451 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
6452
6453         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
6454         generated from standard va_arg expansion.
6455         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
6456         marked nodes.
6457         (mf_varname_tree, mf_file_function_line_tree): Add some support
6458         for column numbers if compiled with USE_MAPPED_LOCATION.
6459
6460 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
6461
6462         * c-decl.c (groktypename_in_parm_context): Remove function.
6463         * c-tree.h (groktypename_in_parm_context): Remove prototype.
6464
6465 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
6466
6467         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
6468         * c-parse.in: Include c-common.h instead of objc-act.h.
6469         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
6470         myparms, myparm): Remove %type declarations.
6471         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
6472         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
6473         declarations.
6474         (objc_inherit_code, objc_public_flag): Remove.
6475         (typespec_nonreserved_nonattr): Call
6476         objc_get_protocol_qualified_type() instead of get_static_reference()
6477         and get_protocol_reference().
6478         (stmt_nocomp): Call grokparm() on @catch parameter.
6479         (objcdef): Move semantic action to objc_finish_implementation().
6480         (classdef): Move semantic action to objc_start_class_interface(),
6481         objc_continue_interface(), objc_finish_interface(),
6482         objc_start_class_implementation(), objc_continue_implementation(),
6483         objc_start_category_interface() and
6484         objc_start_category_implementation().
6485         (protocoldef): Move semantic actions to objc_start_protocol() and
6486         objc_finish_interface().
6487         (ivar_decl_list): Remove nonterminal.
6488         (visibility_spec): Move semantic actions to objc_set_visibility().
6489         (ivar_decls): Remove assignment to $$.
6490         (ivar_decl): Rephrase in terms of component_decl; call
6491         objc_add_instance_variable().
6492         (ivars, ivar_declarator): Remove nonterminals.
6493         (opt_semi): New nonterminal.
6494         (methodtype): Remove semantic actions.
6495         (methoddef): Move semantic actions to objc_set_method_type(),
6496         objc_start_method_definition() and objc_finish_method_definition().
6497         (methodproto): Move semantic actions to objc_set_method_type() and
6498         objc_add_method_declaration().
6499         (methoddecl): Use objc_typename instead of typename; move semantic
6500         actions to objc_build_method_signature().
6501         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
6502         (optparmlist): Express in terms of optparms and optellipsis.
6503         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
6504         nonterminals.
6505         (keyworddecl): Use objc_typename instead of typename.
6506         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
6507         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
6508
6509 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
6510
6511         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
6512         (MD_FALLBACK_FRAME_STATE_FOR): Update.
6513         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
6514         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
6515         (MD_FROB_UPDATE_CONTEXT): Remove default.
6516         (uw_update_context_1): Instead #ifdef invocation.
6517         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
6518         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
6519         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
6520         (MD_UNWIND_SUPPORT): Undefine this instead.
6521         * config/i386/gnu.h: Likewise.
6522         * config/alpha/linux-unwind.h: New file, macro converted to
6523         function, extracted from..
6524         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
6525         (MD_UNWIND_SUPPORT): Define.
6526         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
6527         * config/i386/linux-unwind.h, config/i386/linux.h,
6528         config/i386/linux64.h: Likewise.
6529         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
6530         MD_HANDLE_UNWABI too.
6531         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
6532         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
6533         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
6534         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
6535         * config/sparc/linux-unwind.h, config/sparc/linux.h,
6536         config/sparc/linux64.h: Likewise.
6537         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
6538         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
6539         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
6540         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
6541         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
6542
6543 2004-09-07  Jan Hubicka  <jh@suse.cz>
6544
6545         * cse.c (fold_rtx):  Avoid building of
6546         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
6547
6548         * tree-ssa-pre.c (grand_bitmap_obstack): New.
6549         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
6550         (init_pre): Initialize obstack.
6551         (fini_pre): Free obstack.
6552
6553 2004-09-07  David Daney  <ddaney@avtrex.com>
6554
6555         * config.gcc: Added support for --with-divide=[breaks|traps] for
6556         mips targets.
6557         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
6558         (TARGET_DIVIDE_TRAPS): New macro.
6559         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
6560         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
6561         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
6562         GENERATE_DIVIDE_TRAPS.
6563         (mips_output_division): Emit conditional trap if
6564         GENERATE_DIVIDE_TRAPS is set.
6565         * doc/install.texi: Document --with-divide.
6566         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
6567
6568 2004-09-07  Caroline Tice  <ctice@apple.com>
6569
6570         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
6571         EDGE_CROSSING, to flags test case.
6572
6573 2004-09-07  Jan Hubicka  <jh@suse.cz>
6574
6575         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
6576         class too.
6577
6578 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
6579
6580         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
6581         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
6582         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
6583         or gcc_unreachable.
6584         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
6585         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
6586         alloc_aux_for_edges, free_aux_for_edges): Likewise.
6587         * cfgcleanup.c (try_forward_edges,
6588         merge_blocks_move_predecessor_nojumps,
6589         merge_blocks_move_successor_nojumps): Likewise.
6590         * cfgexpand.c (expand_gimple_cond_expr,
6591         expand_gimple_tailcall): Likewise.
6592         * cfghooks.c (duplicate_block): Likewise.
6593         * cfglayout.c (record_effective_endpoints,
6594         insn_locators_initialize, change_scope, fixup_reorder_chain,
6595         verify_insn_chain, fixup_fallthru_exit_predecessor,
6596         duplicate_insn_chain, cfg_layout_finalize): Likewise.
6597         * cfgloopanal.c (check_irred): Likewise.
6598         * cfgloop.c (superloop_at_depth, flow_loops_free,
6599         flow_loop_entry_edges_find, flow_loops_find,
6600         flow_loop_outside_edge_p, get_loop_body,
6601         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
6602         get_loop_exit_edges, num_loop_branches, cancel_loop,
6603         verify_loop_structure): Likewise.
6604         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
6605         duplicate_loop_to_header_edge, create_preheader,
6606         create_loop_notes): Likewise.
6607         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
6608         edirect_branch_edge, force_nonfallthru_and_redirect,
6609         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
6610         commit_edge_insertions, commit_edge_insertions_watch_calls,
6611         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
6612         cfg_layout_redirect_edge_and_branch_force,
6613         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
6614         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
6615         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
6616         cgraph_varpool_node): Likewise.
6617         * cgraphunit.c (cgraph_finalize_function,
6618         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
6619         cgraph_expand_function, cgraph_remove_unreachable_nodes,
6620         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
6621         cgraph_mark_inline, cgraph_expand_all_functions,
6622         cgraph_build_static_cdtor): Likewise.
6623         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
6624         simplify_logical, distribute_notes, insn_cuid): Likewise.
6625         * conflict.c (conflict_graph_add, print_conflict): Likewise.
6626         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
6627         coverage_checksum_string): Likewise.
6628         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
6629         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
6630         cse_cc_succs, cse_condition_code_reg): Likewise.
6631         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
6632         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
6633         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
6634         cselib_record_set): Likewise.
6635
6636 2004-09-07  Jan Hubicka  <jh@suse.cz>
6637
6638         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
6639
6640 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
6641
6642         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
6643         fold_convert.
6644         (fold_builtin_strpbrk): Likewise.
6645         * expr.c (array_ref_low_bound): Likewise.
6646         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
6647         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
6648         * tree-sra.c (generate_element_zero): Likewise.
6649         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
6650         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
6651         add_old_iv_candidates, add_iv_candidates): Likewise.
6652         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
6653
6654 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
6655
6656         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
6657         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
6658         c_expand_expr, boolean_increment, nonnull_check_p,
6659         check_function_arguments_recurse, fold_offsetof_1): Likewise.
6660         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
6661         builtin_define_type_max): Likewise.
6662         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
6663         implicit_decl_warning, builtin_function, build_compound_literal,
6664         complete_array_type, grokdeclarator, get_parm_info,
6665         start_function, store_parm_decls_oldstyle,
6666         c_write_global_declarations): Likewise.
6667         * c-format.c (get_constant, decode_format_attr,
6668         maybe_read_dollar_number, get_flag_spec, check_format_arg,
6669         check_format_types, format_type_warning,
6670         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
6671         init_dynamic_diag_info, handle_format_attribute): Likewise.
6672         * c-gimplify.c (push_context, pop_context, finish_bc_block):
6673         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
6674         * c-objc-common.c (c_tree_printer): Likewise.
6675         * c-pch.c (pch_init): Likewise.
6676         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
6677         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
6678         * c-typeck.c (c_incomplete_type_error, composite_type,
6679         common_pointer_type, common_type, same_translation_unit_p,
6680         tagged_types_tu_compatible_p, finish_init, pop_init_level,
6681         set_designator, set_nonincremental_init_from_string,
6682         process_init_element, c_finish_if_stmt): Likewise.
6683         * caller-save.c (init_caller_save, save_call_clobbered_regs,
6684         insert_restore, insert_save, insert_one_insn): Likewise.
6685         * calls.c (emit_call_1, compute_argument_block_size,
6686         precompute_arguments, expand_call, emit_library_call_value_1,
6687         store_one_arg): Likewise.
6688
6689 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
6690
6691         * configure.ac (enable-checking): Add release option. Reorganize
6692         to avoid repetition.
6693         * configure: Rebuilt.
6694         * doc/install.texi (enable-checking): Amend documentation.
6695
6696 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
6697
6698         PR bootstrap/17313
6699         * Makefile.in (specs.ready): Depend on cc1$(exeext).
6700
6701 2004-09-06  James E Wilson  <wilson@specifixinc.com>
6702
6703         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
6704         movdf_hardfloat_32bit): Split fG into two alternatives.
6705         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
6706
6707         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
6708
6709 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
6710
6711         * final.c (output_in_slot): Delete.
6712         (final_scan_insn): Revert 2004-09-03 change.
6713         (output_asm_insn): Likewise.
6714         * config/sparc/sparc.c (output_return): Likewise.
6715         (output_sibcall): Likewise.
6716
6717 2004-09-06  Jan Hubicka  <jh@suse.cz>
6718
6719         * loop.c (loop_dump_aux): Do not print RTL when not available.
6720         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
6721         frontend specific type nodes.
6722         (produce_memory_decl_rtl): Break out from ...
6723         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
6724         (get_computation_at): Avoid random tree sharing.
6725         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
6726
6727 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
6728
6729         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
6730         unnecessary commands.
6731
6732 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
6733
6734         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
6735         (bitmap.o): Likewise.
6736
6737 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
6738
6739         Unify the management of RTL and tree-level dump files.
6740
6741         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
6742         Don't print function name to the dump file, the pass manager
6743         would do this for us. Add code from the top of
6744         rest_of_compilation, up to the initial RTL dump.
6745         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
6746         close the DFI_sibling dump file.
6747         (rest_of_compilation): Don't do that here.  Remove code up to the
6748         initial RTL dump.
6749         (init_optimization_passes): Remove.
6750         (pass_rest_of_compilation): Change pass name to NULL.
6751         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
6752         Do not call init_optimization_passes.
6753         * toplev.h (init_optimization_passes): Remove.
6754
6755         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
6756         finish_graph_dump_file): Remove SUFFIX parameter.
6757         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
6758         finish_graph_dump_file): Likewise.
6759
6760         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
6761         * cfgexpand.c (pass_expand): Adjust.
6762         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
6763         * passes.c (pass_rest_of_compilation): Adjust.
6764         * predict.c (pass_profile): Adjust.
6765         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
6766         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
6767         pass_split_crit_edges, pass_warn_function_return): Adjust.
6768         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
6769         * tree-dfa.c (pass_referenced_vars): Adjust.
6770         * tree-eh.c (pass_lower_eh): Adjust.
6771         * tree-if-conv.c (pass_build_ssa): Adjust.
6772         * tree-into-ssa.c (pass_build_ssa): Adjust.
6773         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
6774         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
6775         * tree-nrv.c (pass_nrv): Adjust.
6776         * tree-optimize.c (pass_gimple, pass_all_optimizations,
6777         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
6778         pass_init_datastructures): Adjust.
6779         * tree-outof-ssa.c (pass_del_ssa): Adjust.
6780         * tree-profile.c (pass_tree_profile): Adjust.
6781         * tree-sra.c (pass_sra): Adjust.
6782         * tree-ssa-alias.c (pass_may_alias): Adjust.
6783         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
6784         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
6785         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
6786         * tree-ssa-dom.c (pass_dominator): Adjust.
6787         * tree-ssa-dse.c (pass_dse): Adjust.
6788         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
6789         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
6790         * tree-ssa-loop-ch.c (pass_ch): Adjust.
6791         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
6792         pass_loop_done, pass_complete_unroll, pass_iv_canon,
6793         pass_iv_optimize, pass_vectorize): Adjust.
6794         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
6795         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
6796         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
6797         pass_late_warn_uninnitialized): Adjust.
6798         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
6799
6800         * Makefile.in (tree-dump.o): Add new dependencies.
6801         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
6802         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
6803         Likewise.
6804         * toplev.c (dump_file_name): New.
6805         * tree-dump.c (dump_enable_all): Add LETTER parameter.
6806         (struct dump_file_info): Add NUM and LETTER fields.
6807         (dump_files): Adjust and add RTL dump files.
6808         (dump_register): Add NUM and LETTER fields.
6809         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
6810         (dump_begin): Use get_dump_file_name.
6811         (dump_switch_p_1): Adjust call to dump_enable_all.
6812         * tree-dump.h (dump_register): Adjust prototype.
6813         * tree-optimize.c (register_one_dump_file): Take dump file index.
6814         Support flags for RTL dumps.
6815         (register_dump_files): Fill in NUM field of struct dump_file_info.
6816         Track properties both when the gate is executed and when it is not.
6817         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
6818         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
6819         dumps of RTL.
6820         * tree-pass.h (dump_file_name): New.
6821         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
6822         New.
6823
6824         * Makefile.in (passes.o): Add new dependencies.
6825         * passes.c (struct dump_file_info, enum dump_file_index,
6826         dump_file_tbl, init_optimization_passes): Remove.
6827         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
6828         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
6829         dump_enabled_p.
6830         (finish_optimization_passes): Update finish_graph_dump_file loop.
6831         (enable_rtl_dump_file): Remove.
6832         * tree-dump.c (dump_files): Adjust and add RTL dump files.
6833         (enable_rtl_dump_file): Add here.
6834         * tree.h (enum tree_dump_index): Add RTL dump file indices.
6835         * doc/invoke.texi (Debugging options): Document new RTL debugging
6836         options.  Update.
6837
6838 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
6839
6840         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
6841         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
6842         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
6843         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
6844         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
6845         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
6846         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
6847         vec.h: Fix comment formatting.
6848
6849 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
6850
6851         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
6852         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
6853         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
6854         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
6855         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
6856         tree-ssa-loop-niter.c, tree-ssa-operands.c,
6857         tree-ssa-operands.h, tree-ssa-propagate.c,
6858         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
6859         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
6860
6861 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
6862
6863         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
6864         vectorizer is enabled.
6865
6866 2004-09-05  Andreas Jaeger  <aj@suse.de>
6867
6868         * tree-if-conv.c: Spell check comments and clean up whitespace.
6869
6870 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6871
6872         * tree-ssa-loop-ivopts.c: New file.
6873         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
6874         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
6875         target_pres_cost, target_spill_cost): Declare.
6876         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
6877         spill_cost): Renamed to ...
6878         (target_avail_regs, target_res_regs, target_small_cost,
6879         target_pres_cost, target_spill_cost): ... and exported.
6880         (init_set_costs, global_cost_for_size): Work with renamed variables.
6881         * common.opt (flag_ivopts): New flag.
6882         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
6883         REF_ORIGINAL.
6884         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
6885         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
6886         generating SSA form.
6887         (force_gimple_operand): New function.
6888         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
6889         * tree-cfg.c (stmt_bsi): New function.
6890         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
6891         PARAM_IV_MAX_CONSIDERED_USES): New.
6892         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
6893         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
6894         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
6895         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
6896         * tree-nested.c (build_addr): Export.
6897         * tree-optimize.c (init_tree_optimization_passes): Add
6898         pass_iv_optimize.
6899         * tree-pass.h (pass_iv_optimize): Declare.
6900         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
6901         IMAGPART_EXPR.
6902         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
6903         as a phi node argument.
6904         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
6905         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
6906         functions.
6907         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
6908         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
6909         pass_iv_optimize): New pass.
6910         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
6911         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
6912         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
6913         * tree.h (REF_ORIGINAL): New macro.
6914         (build_int_cst_type, unsigned_type_for, zero_p,
6915         cst_and_fits_in_hwi, build_addr): Declare.
6916         * doc/invoke.texi (-fivopts): Document.
6917         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
6918         PARAM_IV_MAX_CONSIDERED_USES): Document.
6919         * doc/passes.texi: Document induction variable optimizations pass.
6920
6921 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6922
6923         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
6924         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
6925         * c-common.c (c_common_attribute_table): Accept parameters to
6926         sentinel attribute.
6927         (check_function_sentinel, handle_sentinel_attribute): Likewise.
6928         * doc/extend.texi: Update accordingly.
6929
6930 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6931
6932         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
6933         New.
6934         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
6935         attribute.
6936         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
6937         New functions.
6938         (c_common_attribute_table): Add `sentinel' attribute.
6939         (check_function_arguments): Handle `sentinel' attribute.
6940         * doc/extend.texi: Document `sentinel' attribute.
6941
6942 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
6943
6944         * configure: Regenerated.
6945
6946 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6947
6948         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
6949
6950         * tree.c (save_expr): No longer TREE_READONLY.
6951
6952 2004-09-04  Jan Hubicka  <jh@suse.cz>
6953
6954         * passes.c (rest_of_clean_state):  Fix merge conflict made during
6955         commiting the patch.
6956
6957 2004-09-04  Jan Hubicka  <jh@suse.cz>
6958
6959         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
6960
6961 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
6962
6963         * doc/md.texi (shift patterns): New anchor.  Add reference to
6964         TARGET_SHIFT_TRUNCATION_MASK.
6965         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
6966         * target.h (shift_truncation_mask): New target hook.
6967         * targhook.h (default_shift_truncation_mask): Declare.
6968         * targhook.c (default_shift_truncation_mask): Define.
6969         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
6970         (TARGET_INITIALIZER): Include it.
6971         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
6972         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
6973         reject all out-of-range values.  Fix sign-extension code for modes
6974         whose width is smaller than HOST_BITS_PER_WIDE_INT.
6975         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
6976         (expand_superword_shift, expand_subword_shift): Likewise.
6977         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
6978         (expand_binop): Use them to implement double-word shifts.
6979         * config/arm/arm.c (arm_shift_truncation_mask): New function.
6980         (TARGET_SHIFT_TRUNCATION_MASK): Define.
6981
6982 2004-09-04  Jan Hubicka  <jh@suse.cz>
6983
6984         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
6985         (mix): New macro copied from hashtab.c
6986         (iterative_hash_hashval_t, iterative_hash_pointer,
6987         iterative_hash_host_wide_int): New functions based on hashtab.c
6988         implementation.
6989
6990 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
6991
6992         * config/mips/mips.md (mask): New mode attribute.
6993         (zero_extendsidi2): Add memory alternative.
6994         (*zero_extendsidi2_mem): Delete.
6995         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
6996         memory_operand in the TARGET_MIPS16 check.
6997         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
6998         Redefine using :GPR and :SHORT.
6999         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
7000
7001 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
7002
7003         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
7004         using rint_optab.
7005         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
7006         expand_builtin_mathfn.
7007         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
7008         btrunc?f patterns for btrunc_optab. Implement rint_optab using
7009         rint?f patterns.
7010         * optabs.c (init_optabs): Initialize rint_optab.
7011         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
7012         Add new OTI_rint.
7013         (btrunc_optab): Rename macro from trunc_optab.
7014         (rint_optab): Define corresponding macro.
7015
7016         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
7017         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
7018
7019         * config/i386/i386-protos.h (emit_i387_cw_initialization):
7020         Change prototype. Add new int parameter.
7021         * config/i386/i386.c (emit_i387_cw_initialization):
7022         Handle new rounding modes.
7023
7024         * config/i386/i386.h (enum fp_cw_mode): Delete.
7025         (MODE_NEEDED): Handle new rounding modes.
7026         (EMIT_MODE_SET): Change condition to handle new rounding modes.
7027
7028         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
7029         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
7030         represent different rounding modes of frndint insn.
7031         (type): Add frndint type.
7032         (i387, length, memory): Handle this type.
7033         (i387_cw): New attribute definition.
7034         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
7035         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
7036         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
7037         Add "i387_cw" attribute defined to "trunc".
7038         (x86_fnstcw_1): Remove comment.
7039         (*frndintxf2): Rename insn definition to frndintxf2. Move
7040         insn definition near rint?f2 expanders.
7041         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
7042         rintf and rintl built-ins as inline x87 intrinsics.
7043         (frndintxf2_floor): New pattern to implement floor rounding
7044         mode with frndint x87 instruction.
7045         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
7046         floorf and floorl built-ins as inline x87 intrinsics.
7047         (frndintxf2_ceil): New pattern to implement ceil rounding
7048         mode with frndint x87 instruction.
7049         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
7050         ceilf and ceill built-ins as inline x87 intrinsics.
7051         (frndintxf2_trunc): New pattern to implement trunc rounding
7052         mode with frndint x87 instruction.
7053         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
7054         truncf and truncl built-ins as inline x87 intrinsics.
7055         (frndintxf2_mask_pm): New pattern to implement rounding
7056         mode with exceptions with frndint x87 instruction.
7057         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
7058         implement nearbyint, nearbyintf and nearbyintl built-ins as
7059         inline x87 intrinsics.
7060
7061 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
7062
7063         * config/mips/mips.md (SHORT): New mode macro.
7064         (size): New mode attribute.
7065         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
7066         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
7067         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
7068         !ISA_HAS_SEB_SEH.
7069         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
7070         *extend[qh]isi2_hw patterns and extending them to di.
7071         (extendqihi2): Implement as define_insn_and_split that produces
7072         extendqisi2 after reload.
7073
7074 2004-09-03  Devang Patel  <dpatel@apple.com>
7075
7076         * Makefile.in (OBJS-common): Add tree-if-conv.o
7077         (tree-if-conv.o): New rule.
7078         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
7079         (get_loop_body_in_bfs_order): New.
7080         * cfgloop.h (get_loop_body_in_bfs_order): New.
7081         * tree-flow.h (enum move_pos): Move here from ..
7082         * tree-ssa-loop-im.c (enum move_pos): here.
7083         (movement_possibility): Make externally visible.
7084         * tree-optimize.c (init_tree_optimization_passes): New entry for
7085         if conversion pass.
7086         * tree-pass.h (pass_if_conversion): New.
7087         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
7088         * tree-if-conv.c: New file.
7089         * doc/passes.texi: Document tree if-conversion pass.
7090         * doc/tree-ssa.texi: Same.
7091
7092 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7093
7094         PR target/14925:
7095         Makefile.in (LIB2ADDEHSTATIC): New.
7096         (LIB2ADDEHSHARED): New.
7097         (LIBUNWIND): New.
7098         (LIBUNWINDDEP): New.
7099         (SHLIBUNWIND_LINK): New.
7100         (SHLIBUNWIND_INSTALL): New.
7101         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
7102         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
7103         (clean): Remove libunwind*
7104         (stage1-start): Remove and copy stage1/libunwind*.
7105         (stage2-start): Remove and copy stage2/libunwind*.
7106         (stage3-start): Remove and copy stage3/libunwind*.
7107         (stage4-start): Remove and copy stage4/libunwind*.
7108         (stageprofile-start): Remove and copy stageprofile/libunwind*.
7109         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
7110
7111         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
7112         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
7113         tmake_file if --with-system-libunwind isn't used.
7114
7115         * config/ia64/t-glibc-libunwind: New file.
7116         * config/t-libunwind-elf: Likewise.
7117         * unwind-compat.c: Likewise.
7118         * unwind-compat.h: Likewise.
7119         * unwind-dw2-fde-compat.c: Likewise.
7120
7121         * config/ia64/t-glibc (LIB2ADDEH): Updated.
7122         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7123
7124         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
7125         aliases if needed.
7126         * unwind-dw2-fde-glibc.c: Likewise.
7127         * unwind-dw2.c: Likewise.
7128
7129         * config/t-libunwind (LIB2ADDEH): Updated.
7130         (LIB2ADDEHSTATIC): New.
7131         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
7132         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
7133
7134         * configure.ac: Change --enable-libunwind-exceptions to
7135         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
7136         * configure: Regenerated.
7137         * config.in: Updated.
7138
7139         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
7140         above and mention --with-system-libunwind.
7141         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
7142         removed in gcc 3.4.3 and later.
7143
7144         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
7145         USE_LIBUNWIND_EXCEPTIONS is defined.
7146
7147         * mklibgcc.in: Support libunwind.
7148
7149 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
7150
7151         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
7152         m_NOCONA.
7153
7154 2004-09-03  Richard Henderson  <rth@redhat.com>
7155
7156         PR middle-end/9997
7157         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
7158         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
7159         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
7160         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
7161         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
7162         resize_stack_vars_conflict, add_stack_var_conflict,
7163         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
7164         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
7165         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
7166         expand_one_static_var, expand_one_hard_reg_var,
7167         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
7168         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
7169         (expand_used_vars): Rewrite.
7170         * Makefile.in (cfgexpand.o): Update dependencies.
7171
7172 2004-09-04  Jan Hubicka  <jh@suse.cz>
7173
7174         * cfg.c (free_edge): Use ggc_free.
7175         (expunge_block): Use ggc_free.
7176         * passes.c (rest_of_clean_state): Free after compilation.
7177         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
7178         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
7179
7180 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7181
7182         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
7183         DECL_EXTERNAL check.
7184
7185 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7186
7187         * final.c (output_in_slot): New global variable.
7188         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
7189         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
7190         'output_in_slot' before invoking output_asm_insn.
7191         (output_asm_insn): Add a space after the tab if 'output_in_slot'
7192         is set.
7193         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
7194         final_scan_insn.
7195         (output_sibcall): Likewise.
7196
7197 2004-09-03  Jan Hubicka  <jh@suse.cz>
7198
7199         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
7200         * tree-ssanames (init_ssanames): Likewise.
7201
7202 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7203
7204         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
7205         objc_declare_protocols, objc_start_protocol,
7206         objc_start_class_interface, objc_start_category_interface,
7207         objc_continue_interface, objc_finish_interface,
7208         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
7209         objc_start_class_implementation, objc_start_category_implementation,
7210         objc_continue_implementation, objc_finish_implementation,
7211         objc_add_method_declaration, objc_start_method_definition,
7212         objc_finish_method_definition, objc_build_keyword_decl,
7213         objc_build_method_signature, objc_build_encode_expr,
7214         objc_build_protocol_expr, objc_build_selector_expr,
7215         objc_build_message_expr, objc_build_string_object,
7216         objc_get_class_reference, objc_get_protocol_qualified_type,
7217         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
7218
7219 2004-09-03  James E Wilson  <wilson@specifixinc.com>
7220
7221         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
7222
7223         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
7224         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
7225         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
7226         (mips_recip1_<fmt>): Use frdiv1 type.
7227         (mips_recip2_<fmt>): Use frdiv2 type.
7228         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
7229         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
7230         and frsqrt1.
7231         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
7232
7233 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
7234
7235         * reload.c (find_reloads): Swap operand_loc pointers for
7236         find_dummy_reload if we have swapped two operands.
7237
7238 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
7239
7240         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
7241         to get the tablejump-insn before the jump-table label.
7242
7243 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
7244
7245         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
7246         objc_declare_protocols, objc_build_message_expr,
7247         objc_finish_message_expr, objc_build_selector_expr,
7248         objc_build_protocol_expr, objc_build_encode_expr,
7249         objc_build_string_object, objc_get_protocol_qualified_type,
7250         objc_get_class_reference, objc_get_class_ivars,
7251         objc_start_class_interface, objc_start_category_interface,
7252         objc_start_protocol, objc_continue_interface, objc_finish_interface,
7253         objc_start_class_implementation, objc_start_category_implementation,
7254         objc_continue_implementation, objc_finish_implementation,
7255         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
7256         objc_add_method_declaration, objc_start_method_definition,
7257         objc_finish_method_definition, objc_add_instance_variable,
7258         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
7259         objc_finish_try_stmt, objc_begin_catch_clause,
7260         objc_finish_catch_clause, objc_build_finally_clause,
7261         objc_build_synchronized, objc_static_init_needed_p,
7262         objc_generate_static_init_call): New prototypes.
7263
7264 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
7265
7266         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
7267         is only one reg.
7268         (ia64_function_value): Ditto.
7269
7270 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7271
7272         * config.gcc: Resurrect NetWare as a target. Handle special case of
7273         Novell linker to be used (specified through --with-ld=) and threading
7274         model of either Posix (default) or NKS.
7275         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
7276         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
7277         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
7278         * config/i386/netware.c, config/i386/netware.h: New.
7279         * config/i386/nwld.c, config/i386/nwld.h: New.
7280         * config/i386/netware-crt0.c: New.
7281         * config/i386/netware-libgcc.c: New.
7282         * config/i386/netware-libgcc.def: New.
7283         * config/i386/netware-libgcc.exp: New.
7284         * config/i386/t-netware, config/i386/t-nwld: New.
7285         * gthr-nks.h: New.
7286         * doc/install.texi: Document NKS threading model.
7287
7288 2004-09-03  Jan Beulich  <jbeulich@novell.com>
7289
7290         PR c/7054
7291         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
7292         * tree.h (initial_max_fld_align): Declare
7293         * stor-layout.c (initial_max_fld_align): Define and initialize.
7294         (maximum_field_alignment): Initialize to the same value.
7295         * common.opt: Add -fpack-struct= variant of switch.
7296         * opts.c: Handle -fpack-struct= variant of switch.
7297         * c-pragma.c: Change #pragma pack() handling so that it becomes
7298         compatible to other compilers: accept individual 'push' argument,
7299         make final pop restore (command line) default, correct interaction
7300         of push/pop and sole specification of a new alignment (so that the
7301         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
7302         to #pragma pack(push, <n>).
7303         * doc/extend.texi: New node "Structure-Packing Pragmas" under
7304         "Pragmas", describing #pragma pack.
7305         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
7306         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
7307         Document new TARGET_DEFAULT_PACK_STRUCT.
7308
7309 2004-09-03  Devang Patel  <dpatel@apple.com>
7310
7311         * dwarf2out.c (gen_field_die). Equate decl number to die.
7312
7313 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
7314
7315         PR target/15832
7316         * global.c (modify_reg_pav): New function.
7317         (make_accurate_live_analysis): Call the new function.  Move pavin
7318         modification by earlyclobber set into the new function.
7319
7320 2004-09-03  Andreas Schwab  <schwab@suse.de>
7321
7322         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
7323         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
7324         extended.
7325
7326 2004-09-02  Jan Beulich  <jbeulich@novell.com>
7327
7328         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
7329         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
7330         not unwind code specific ones.
7331         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
7332         Remove unwind code specific dependencies.
7333         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
7334         Remove gbl-ctors.h.
7335         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
7336         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
7337         * tsystem.h: Declare memcpy and memset when inhibit_libc.
7338
7339 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
7340
7341         * combine.c (try_combine): Delay modifying of insns which cannot
7342         be easily undone.
7343
7344 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
7345
7346         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
7347         tree-loop-im.
7348         * gcc/tree-ssa-loop.c: Ditto
7349         * gcc/tree-ssa-loop-ivcanon.c: Ditto
7350         * gcc/doc/invoke.texi: Ditto.
7351
7352 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
7353
7354         * c-decl.c (store_parm_decls_newstyle): Make static.
7355         (store_parm_decls_from): New function.
7356         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
7357         (store_parm_decls_from): New prototype.
7358
7359 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
7360
7361         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
7362         HImode with STRICT_ALIGNMENT.
7363
7364 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
7365
7366         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
7367         (TARGET_OS_CPP_BUILTINS): Likewise.
7368         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
7369         TARGET_BPABI_CPP_BUILTINS.
7370
7371 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
7372
7373         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
7374
7375 2004-09-02  Eric Christopher  <echristo@redhat.com>
7376
7377         * builtins.c (expand_builtin_cabs): Delete.
7378         (expand_builtin): If unable to fold the values do a normal
7379         library call for builtin_cab*.
7380         (fold_builtin_cabs): Depend on optimize and optimize_size.
7381         * optabs.c (expand_cmplxdiv_straight): Delete.
7382         (expand_cmplxdiv_wide): Ditto.
7383         (expand_vector_binop): Ditto.
7384         (expand_vector_unop): Ditto.
7385         (expand_complex_abs): Delete.
7386         (expand_binop): Remove calls to above functions.
7387         Remove open coding of complex arithmetic.
7388         (expand_unop): Ditto.
7389         * optabs.h: Remove prototypes.
7390
7391 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
7392
7393         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
7394         * c-tree.h (store_parm_decls_newstyle): New prototype.
7395
7396 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
7397
7398         * config/rs6000/rs6000.c (expand_block_clear): Use vector
7399         instructions if available.
7400         (expand_block_move): Likewise.
7401
7402 2004-09-03  Jan Hubicka  <jh@suse.cz>
7403
7404         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
7405
7406 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
7407
7408         * config/arm/symbian.h (LIB_SPEC): Define to empty.
7409         * config/arm/t-symbian (SHLIB_LC): Likewise.
7410
7411 2004-09-02  Paul Brook  <paul@codesourcery.com>
7412
7413         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
7414
7415 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7416
7417         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
7418         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
7419         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
7420         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
7421         (mips_issue_rate): Remove unreachable abort.
7422         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
7423         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
7424         (mips_block_move_straight, print_operand_address, mips_file_start)
7425         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
7426         (mips_output_conditional_branch, mips_expand_builtin_direct)
7427         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
7428         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
7429         with gcc_assert.
7430
7431 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7432
7433         * config/mips/mips.md (*lea_high64): Change split condition to
7434         flow2_completed.  Add a peephole2 to generate a more parallel version.
7435
7436 2004-09-02  Jan Hubicka  <jh@suse.cz>
7437
7438         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
7439         GGC.
7440
7441         * ggc-page.c: include tree-flow.h.
7442         (extra_order_size_table): Add stmt_ann_d.
7443         (STAT_LABEL): Rename from ....
7444         (LABEL): ... this one.
7445         * Makefile.in (ggc-page.o): Add dependency.
7446
7447         * ggc-common.c (ggc_force_collect): New global variable.
7448         (loc_description): Add fields "freed", "collected"
7449         (ptr_hash): New static hash
7450         (ptr_hash_entry): New structure.
7451         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
7452         (ggc_record_overhead): Take ptr argument, record it
7453         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
7454         (cmp_statistics): Imrove sorting.
7455         (dump_ggc_loc_statistics): Output newly collected statistics
7456         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
7457         (ggc_free): Call ggc_free_overhead.
7458         (ggc_collect): Force collection when asked to be forced.
7459         (ggc_collect): Call ggc_prune_overhead_list.
7460         * ggc.h (ggc_force_collect): Declare
7461         (ggc_record_overhead): Update prototype.
7462         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
7463
7464 2004-09-02  James E Wilson  <wilson@specifixinc.com>
7465
7466         * common.opt (ftrapping-math): Default to on.
7467
7468 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
7469
7470         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
7471
7472 2004-09-02  Denis Chertykov  <denisc@overta.ru>
7473
7474         PR target/16884
7475         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
7476         match_scratch.
7477         (*movmemqi_insn): Likewise.
7478         (*movmemhi): Likewise.
7479         (clrmemhi): Likewise.
7480         (*clrmemqi): Likewise.
7481         (*clrmemhi): Likewise.
7482
7483 2004-09-02  Paul Brook  <paul@codesourcery.com>
7484
7485         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
7486         default_use_cxa_atexit=yes.
7487
7488 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
7489
7490         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
7491         (struct kernel_old_ucontext): Delete.
7492         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
7493         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
7494         when IN_LIGGCC2.
7495
7496 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
7497
7498         * toplev.c (process_options): Fix typo.
7499
7500 2004-09-01  Richard Henderson  <rth@redhat.com>
7501
7502         PR middle-end/17258
7503         * calls.c (initialize_argument_information): Tighten pass-through
7504         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
7505         Use build_fold_addr_expr.
7506         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
7507         that assumes ADDR_EXPR allocates stack space.
7508         * fold-const.c (build_fold_addr_expr_with_type): Look through
7509         WITH_SIZE_EXPR.
7510
7511 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
7512
7513         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
7514         * ggc.h (ggc_alloc_rtx): Delete.
7515
7516 2004-09-01  Roger Sayle  <roger@eyesopen.com>
7517
7518         * expmed.c (enum alg_code): Remove long unused enumeration values.
7519         (struct mult_cost): New structure to hold the "score" of a synthetic
7520         multiply sequence, including both a rtx_cost and a latency field.
7521         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
7522         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
7523         (struct algorithm): Change type of cost field to be mult_cost.
7524         (synth_mult): Change type of cost_limit argument to be a
7525         pointer to a mult_cost.  Update all cost comparisons to use the
7526         new mult_cost infrastructure.  For alg_add_factor and
7527         alg_sub_factor operations, latency is lower than the rtx_cost.
7528         (choose_mult_variant):  Update calls to synth_mult.  Perform
7529         cost comparisons using the new mult_cost infrastructure.
7530         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
7531         to optain the total rtx_cost of a synth_mult "algorithm".
7532
7533 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
7534
7535         * config/rs6000/power4.md: Increase store latency to 12.
7536         * config/rs6000/power5.md: Same.
7537
7538 2004-09-01  James E Wilson  <wilson@specifixinc.com>
7539
7540         PR target/14064
7541         * config/avr/avr.c (avr_unique_section): Delete prototype and
7542         definition.
7543         (TARGET_ASM_UNIQUE_SECTION): Delete.
7544
7545 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
7546
7547         * c-parse.in (primary): Call objc_build_message_expr(),
7548         objc_build_selector_expr(), objc_build_protocol_expr(),
7549         objc_build_encode_expr() and objc_build_string_object() instead of
7550         build_message_expr(), build_selector_expr(), build_protocol_expr(),
7551         build_encode_expr() and build_objc_string_object(), respectively.
7552         (component_decl_list2): Call objc_get_class_ivars() instead of
7553         get_class_ivars_from_name().
7554         (keyworddecl): Call objc_build_keyword_decl() instead of
7555         build_keyword_decl().
7556         (receiver): Call objc_get_class_reference() instead of
7557         get_class_reference().
7558         (reswords): Add blank line before @@ifobjc section, for clarity.
7559
7560 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
7561
7562         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
7563         to Altivec vetors.
7564
7565 2004-09-01  Wu Yongwei  <adah@sh163.net>
7566             Danny Smith  <dannysmith@users.sourceforge.net>
7567
7568         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
7569         not Windows 'DWORD'.
7570         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
7571         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
7572         (__gthr_win32_recursive_mutex_init_function): Add prototype for
7573         __GTHREAD_HIDE_WIN32API case..
7574         (__gthr_win32_recursive_mutex_lock): Likewise.
7575         (__gthr_win32_recursive_mutex_trylock): Likewise.
7576         (__gthr_win32_recursive_mutex_unlock): Likewise.
7577         (__gthread_recursive_mutex_init_function); Add definition for
7578         __GTHREAD_HIDE_WIN32API case.
7579         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
7580         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
7581         call to InterlockedDecrement.
7582
7583 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7584
7585         * tree-tailcall.c (find_tail_calls): Also fail is statement has
7586         volatile operands.
7587
7588         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
7589
7590         * doc/c-tree.texi: Document new operands for ARRAY_REF and
7591         COMPONENT_REF.
7592
7593 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7594
7595         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
7596         * common.opt (fspeculative-prefetching): New.
7597         * flags.h (flag_speculative_prefetching_set): Declare.
7598         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
7599         values.
7600         * opts.c (flag_sepculative_prefetching_set): New variable.
7601         (common_handle_option): Handle -fspeculative-prefetching.
7602         * passes.c (rest_of_compilation): Ditto.
7603         * profile.c (instrument_values, compute_value_histograms, branch_prob):
7604         Use vectors instead of arrays.
7605         * toplev.c (process_options): Handle -fspeculative-prefetching.
7606         * rtl-profile.c: Include ggc.h.
7607         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
7608         rtl_gen_one_value_profiler_no_edge_manipulation,
7609         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
7610         argument changed.
7611         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
7612         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
7613         argument changed.
7614         * value-prof.c: Include ggc.h.
7615         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
7616         macros.
7617         (insn_prefetch_values_to_profile, find_mem_reference_1,
7618         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
7619         speculative_prefetching_transform): New.
7620         (value_profile_transformations): Call speculative_prefetching_transform.
7621         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
7622         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
7623         tree_find_values_to_profile, find_values to profile): Use vectors
7624         instead of arrays.
7625         (free_profiled_values): Removed.
7626         * value-prof.h (struct histogram_value): Renamed to
7627         struct histogram_value_t.
7628         (histogram_value, histogram_values): New types.
7629         (find_values_to_profile): Declaration changed.
7630         (free_profiled_values): Removed.
7631         (struct profile_hooks): Type of argument of the hooks changed to
7632         histogram_value.
7633         * doc/invoke.texi (-fspeculative-prefetching): Document.
7634
7635 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7636
7637         PR rtl-optimization/16408
7638         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
7639
7640 2004-09-01  Richard Henderson  <rth@redhat.com>
7641
7642         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
7643         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
7644
7645 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
7646
7647         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
7648
7649 2004-09-01  Mike Stump  <mrs@apple.com>
7650
7651         * config/darwin.c (machopic_symbol_defined_p): In addition to
7652         being SYMBOL_REF_LOCAL_P, a symbol must also be
7653         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
7654         defined in this output file, or translation unit in the case
7655         of IMA not being used.
7656         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
7657         never need .indirect_symbol when indirecting.
7658
7659 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
7660
7661         * Makefile.in (bb-reorder.o): Add several dependencies.
7662
7663 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
7664
7665         * fold-const.c (operand_equal_p): Require equal sign also for
7666         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
7667
7668 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
7669
7670         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
7671         for use in configargs.h.  Put the cname in a separate variable.  Use
7672         that to set target_cpu_default2.
7673
7674 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
7675             Nick Clifton  <nickc@redhat.com>
7676
7677         * config/sh/sh.md ("length"): Increase branch length when
7678         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
7679         constant, 2 byte for aligning the constant.
7680
7681 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
7682
7683         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
7684         CPU.
7685         (arm7tdmi-s): New CPU name.
7686         * arm/arm.c (ARM_CORE): Update for new format.
7687         * arm/arm.h (ARM_CORE): Likewise.
7688         * arm/gentune.sh: Update for extra field.
7689         * config.gcc: Likewise.
7690         * arm/arm-tune.md: Regenerate.
7691         * doc/invoke.texi: Document the real processor names for ARM cpus.
7692
7693 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
7694
7695         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
7696         (floatdidf): New functions.
7697         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
7698         (floatdisf): New functions.
7699         * t-arm-elf: Use them.
7700
7701 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
7702
7703         * c-common.h (lookup_interface): Remove prototype.
7704         (is_class_name): Rename to objc_is_class_name.
7705         (lookup_objc_ivar): Rename to objc_lookup_ivar.
7706         (get_current_scope): Rename to objc_get_current_scope.
7707         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
7708         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
7709         (yylexname): Call objc_is_class_name() instead of is_class_name().
7710         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
7711         instead of lookup_objc_ivar().
7712         * stub-objc.c (lookup_interface): Remove stub.
7713         (is_class_name): Rename to objc_is_class_name.
7714         (lookup_objc_ivar): Rename to objc_lookup_ivar.
7715
7716 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
7717
7718         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
7719         * config/arm/lib1funcs.asm: Do not include supplemental .S files
7720         when compiling for Symbian.
7721         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
7722         (TARGET_OS_CPP_BUILTINS): Likewise.
7723         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
7724
7725 2004-08-31  Stan Shebs  <shebs@apple.com>
7726
7727         * toplev.c (process_options): Ensure debug_hooks is initialized.
7728
7729 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
7730
7731         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
7732         * target.h (cxx): Add export_class_data.
7733         * config/arm/arm.c (arm_cxx_export_class_data): New function.
7734         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
7735         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
7736
7737 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
7738
7739         * config/sh/sh.c (output_branch): Check the insn length possibly
7740         in the delayed slot.
7741
7742 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7743
7744         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
7745         blank after ')'.
7746         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
7747
7748         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
7749         (c_sizeof_of_alignof_type): Likewise.
7750         * expr.c (array_ref_element_size): Likewise.
7751         (highest_pow2_factor_for_target): Likewise.
7752         * gimplify.c (canonicalize_addr_expr): Likewise.
7753         (gimplify_compound_lval): Likewise.
7754         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
7755         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
7756         * varasm.c (assemble_variable): Likewise.
7757         (output_constant_def_contents): Alignments are unsigned.
7758
7759 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7760             Jeff Law  <law@redhat.com>
7761
7762         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
7763         gets modified.
7764
7765 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
7766
7767         * hooks.c (hook_bool_void_true): New function.
7768         * hooks.h (hook_bool_void_true): Declare.
7769         * target-def.h (TARGET_CXX): Add
7770         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
7771         * target.h (struct cxx): Add key_method_may_be_inline.
7772         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
7773         function.
7774         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
7775         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
7776         __THUMB_INTERWORK.
7777
7778 2004-08-31  Denis Chertykov  <denisc@overta.ru>
7779
7780         PR target/15417
7781         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
7782         frame pointer register only in Pmode while reload in progress.
7783
7784 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
7785
7786         PR target/15334
7787         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
7788         because it breaks the 32-bit shift patterns that rely on a match_dup.
7789
7790 2004-08-31  Matt Austern  <austern@apple.com>
7791
7792         * config/darwin.c (darwin_make_decl_one_only): Allocate section
7793         names once per compilation, instead of once per symbol.
7794
7795 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
7796
7797         * Makefile.in (build_subdir): New substitution.
7798         (fixinc.sh): Simplify heavily since fixincludes is already built.
7799         (stmp-fixinc): Depend on specs.ready.
7800         (install-mkheaders): Use new location of fixincludes.
7801         (clean): Do not descend into fixinc.
7802         (FORBUILD): Replace with ../$(build_subdir).
7803         * configure.ac (build_subdir): Substitute.
7804         (FORBUILD): Do not set.
7805         (all_outputs): Remove fixinc/Makefile.
7806         (default commands): Do not create links in fixinc.
7807         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
7808         the fixincludes configuration steps and substituting
7809         @FIXINCL@ in fixinc.in.
7810         * fixinc.in: New, from fixinc/fixincl.sh.
7811
7812         * fixinc/*: Removed.
7813
7814 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
7815
7816         * attribs.c (strip_attrs): Remove.
7817         (split_specs_attrs): Move ...
7818         * c-decl.c: ... to here.
7819         * tree.h (split_specs_attrs, strip_attrs): Remove.
7820         * c-tree.h (split_specs_attrs): Declare.
7821
7822 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
7823
7824         * read-rtl.c: Disable RTL checking.
7825         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
7826
7827 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
7828
7829         * config/mips/mips.md (fcond): New code macro and attribute.
7830         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
7831         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
7832         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
7833
7834 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
7835
7836         Revert:
7837         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
7838         PR rtl-optimization/16590
7839         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
7840
7841 2004-08-30  Andrew Pinski  <apinski@apple.com>
7842
7843         * hard-reg-set.h:
7844         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
7845         * ChangeLog: Fix previous ChangeLog entry.
7846
7847         PR rtl-opt/13987
7848         * config.host (use_long_long_for_widest_fast_int): New, default is
7849         off.
7850         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
7851         * configure.ac: If use_long_long_for_widest_fast_int, then
7852         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
7853         * configure: Regenerate.
7854         * config.in: Regenerate.
7855         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
7856         New: widest integer type supported efficiently in hardware for the
7857         host.
7858         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
7859         HOST_BITS_PER_WIDEST_FAST_INT.
7860         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
7861         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
7862         HOST_WIDEST_FAST_INT
7863         instead of HOST_WIDE_INT.
7864         (HARD_REG_SET_LONGS): Likewise.
7865         (UHOST_BITS_PER_WIDE_INT): Likewise.
7866         Change the checks for the fast cases to be based on
7867         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
7868
7869 2004-08-30  Steven Bosscher  <stevenb@suse.de>
7870
7871         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
7872         not the pointers.
7873
7874 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
7875
7876         PR 12738
7877         PR 17205
7878         Radar 3460526
7879         Radar 3775729
7880         * c-decl.c (grokdeclarator): Produce error for 'static' on local
7881         function declaration.
7882
7883 2004-08-30  Richard Henderson  <rth@redhat.com>
7884
7885         * expr.c (array_ref_element_size): Force aligned_size back to
7886         sizetype.
7887         (component_ref_field_offset): Similarly for aligned_offset.
7888         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
7889         low-bound, element-size, field-offset fields rather than
7890         computed values.
7891
7892 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
7893
7894         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
7895         redundant code.
7896
7897 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
7898
7899         * c-tree.h (struct language_function): Add arg_info element.
7900         * c-decl.c (current_function_arg_info): New.
7901         (grokdeclarator, store_parm_decls): Use it instead of
7902         DECL_ARGUMENTS.
7903         (c_push_function_context, c_pop_function_context): Save and
7904         restore it.
7905
7906 2004-08-30  Richard Henderson  <rth@redhat.com>
7907
7908         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
7909         COMPONENT_REF to pointer arithmetic.
7910         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
7911         constant "c" as a valid constant initializer.  Allow narrowing of
7912         differences against the same base object, for any base object.
7913
7914 2004-08-30  Richard Henderson  <rth@redhat.com>
7915
7916         * expr.c (expand_expr_addr_expr): New.
7917         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
7918
7919 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
7920
7921         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
7922         (mips_fp_condition): New enum.
7923         (mips_fp_conditions): New array.
7924         (print_fcc_operand): Delete.
7925         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
7926         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
7927         (builtin_description): Add "cond" field.
7928         (DIRECT_BUILTIN): Initialize it.
7929         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
7930         into INSN and CODE.  Initialize the "cond" field.
7931         (CMP_BUILTINS): Update accordingly.
7932         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
7933         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
7934         mips_fp_condition as argument.  Make it the final operand of the
7935         comparison instruction.
7936         (mips_expand_builtin): Update accordingly.
7937         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
7938         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
7939         the gaps.
7940         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
7941         Don't use the 'Q' operand prefix; just print the operand normally.
7942         (mips_cabs_*, mips_c_*): Delete, replacing with...
7943         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
7944         patterns.  Split the 4s versions into 2 ps patterns after reload.
7945
7946 2004-08-30  Richard Henderson  <rth@redhat.com>
7947
7948         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
7949         assuming an ADDR_EXPR is non-null.
7950
7951 2004-08-30  Jason Merrill  <jason@redhat.com>
7952
7953         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
7954
7955 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
7956
7957         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
7958         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
7959         gcc_assert and gcc_unreachable instead of abort.
7960         * alloc-pool.c (abort, fancy_abort): Remove.
7961         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
7962         gcc_assert or gcc_unreachable.
7963         * attribs.c (init_attributes, decl_attributes): Likewise.
7964         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
7965         mark_bb_for_unlikely_executed_section,
7966         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
7967         fix_crossing_unconditional_branches):  Likewise.
7968         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
7969         bitmap_operation):  Likewise.
7970         * bt-load.c (insn_sets_btr_p, augment_live_range,
7971         move_btr_def):  Likewise.
7972         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
7973         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
7974         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
7975         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
7976         expand_builtin_memcmp, expand_builtin_args_info,
7977         std_gimplify_va_arg_expr, expand_builtin_unop,
7978         expand_builtin_fputs, expand_builtin_profile_func,
7979         expand_builtin_fork_or_exec, fold_builtin_bitop,
7980         fold_builtin_classify, fold_builtin_fputs): Likewise.
7981
7982 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
7983
7984         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
7985         * gcov.c (abort): Remove undef.
7986
7987         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
7988         (struct tree_binfo): Remove primary field.
7989
7990 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
7991
7992         * fixinc/Makefile.in (machname.h): Remove.
7993         (fixincl.x): Do not pass $@ to genfixes.
7994         * fixinc/genfixes: Remove code to produce machname.h.
7995         * fixinc/fixincl.sh: Move it here instead.
7996         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
7997         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
7998         return a bool indicating whether pz_mn_name_pat is NULL.
7999         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
8000         Declare extern C variables for the ENV_TABLE.
8001         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
8002         instead use the result of mn_get_regexps.
8003         * fixinc/fixtests.c: Likewise.
8004
8005 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
8006
8007         * configure.ac: Do not run fixincludes after stage1 during
8008         toplevel bootstrap.
8009         * configure: Regenerate.
8010
8011 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8012
8013         * sched-deps.c (get_condition): Partially revert previous, by never
8014         trying to extract the condition from a condjump.
8015
8016 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
8017
8018         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
8019         (handle_visibility_attribute, c_determine_visibility): Likewise.
8020         * c-common.h (my_friendly_assert): Remove.
8021
8022 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
8023
8024         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
8025         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
8026         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
8027         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
8028         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
8029
8030 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
8031
8032         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
8033         in COMPONENT_REF nodes.
8034
8035 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8036
8037         PR c++/15378
8038         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
8039         global_dc->warning_as_error_requested.
8040         * diagnostic.c (diagnostic_initialize): Tidy.
8041         * diagnostic.h (diagnostic_context::x_data): Remove
8042         (diagnostic_context::issue_warnings_are_errors_message): Rename
8043         from warnings_are_errors_message.
8044         (diagnostic_context::warning_as_error_requested): New.
8045
8046 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
8047
8048         * sched-deps.c (get_condition): Fix breakage in previous patch.
8049
8050 2004-08-30  Paul Brook  <paul@codesourcery.com>
8051
8052         * doc/install.texi: Fix broken mpfr link.
8053
8054 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
8055
8056         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
8057         other FreeBSD platforms.
8058
8059 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8060
8061         * arm.h (REVERSE_CONDITION): Define.
8062         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
8063
8064 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8065
8066         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
8067         just the codes, call reversed_comparison_code ().
8068         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
8069         (not_reg_cond): Use reversed_comparison_code.
8070         (and_reg_cond): Likewise.
8071         * ifcvt.c (cond_exec_process_if_block): Likewise.
8072         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
8073
8074 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
8075
8076         * sched-deps.c (get_condition): Rewrite using jump support functions.
8077         Use reversed_comparison_code.
8078         (conditions_mutex_p): Use reversed_comparison_code.
8079
8080 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8081
8082         * config/mips/mips.c (override_options): Disable hot/cold partitioning
8083         for MIPS16.
8084
8085 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8086
8087         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
8088         (mips_function_type): Move to mips.c.
8089         * config/mips/mips.c (mips_builtin_type): New enum.
8090         (builtin_description): Replace code and ftype with builtin_type
8091         and function_type.
8092         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
8093         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
8094         (CODE_FOR_mips_abs_ps): Define.
8095         (mips_bdesc): Use new macros.
8096         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
8097         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
8098         (mips_expand_builtin_direct): New function.
8099         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
8100         builtin.  Replace boolean parameter with builtin_type.
8101         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
8102         (mips_expand_4s_compare_builtin): Delete, replacing with...
8103         (mips_expand_builtin_compare): ...this new function.
8104
8105 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
8106
8107         PR rtl-optimization/16590
8108         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
8109
8110 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8111
8112         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
8113         * tree-ssa-propagate.c: Fix documentation.
8114
8115 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8116
8117         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
8118         (mov[sd]fcc): Likewise.
8119
8120 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8121
8122         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
8123
8124 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8125
8126         * config/mips/mips.md (divide_condition): New mode attribute.
8127         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
8128         (sqrt[sd]f3): Redefine using SCALARF.
8129         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
8130         patterns.
8131
8132 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8133
8134         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
8135         (loadx, storex, fmt, UNITMODE): New mode attributes.
8136         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
8137         (mul[sd]f3): Redefine using :SCALARF.
8138         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
8139         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
8140         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
8141         Check TARGET_FUSED_MADD for V2SF too.
8142         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
8143         were already named.
8144         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
8145         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
8146
8147 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8148
8149         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
8150         V2SF_type_node if it will be needed.
8151
8152 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8153
8154         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
8155         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
8156         (mips_prepare_builtin_target): New function.
8157         (mips_expand_builtin): Use them.  Update calls to subroutines.
8158         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
8159         cmp_choice with a boolean argument to select between movt and movf.
8160         Take the comparison's icode as an argument, not the function's fcode.
8161         (mips_expand_compare_builtin): New function.  Rename existing function
8162         to mips_expand_scalar_compare_builtin.
8163         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
8164         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
8165         comparison's icode as an argument, not the builtin's fcode.
8166
8167 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8168
8169         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
8170         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
8171         registers are false and -1 if all registers are true.
8172         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
8173         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
8174         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
8175         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
8176         (bc1any2t, bc1any2f): Likewise CCV2.
8177         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
8178
8179 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
8180
8181         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
8182         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
8183         UNSPEC rather than an IF_THEN_ELSE.
8184         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
8185         mips_cond_move_tf_ps by name.
8186
8187 2004-08-29  Chao-ying Fu  <fu@mips.com>
8188             James E Wilson  <wilson@specifixinc.com>
8189
8190         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
8191         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
8192         * config/mips/mips-ps-3d.md: New file.
8193         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
8194         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8195         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
8196         (mips_output_move): Emit "mov.ps" for V2SFmode.
8197         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
8198         MODE_VECTOR_FLOAT.
8199         (override_options): Check if TARGET_MIPS3D and there was an explicit
8200         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
8201         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
8202         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
8203         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
8204         and allow CCV2 and CCV4 to occupy two and four CC registers.
8205         (print_fcc_operand): New function.
8206         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
8207         %Z to call print_fcc_operand.
8208         (mips_function_value): Handle MODE_VECTOR_FLOAT.
8209         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
8210         (mips_vector_mode_supported_p): New function.
8211         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
8212         (builtin_description): New struct.
8213         (mips_bdesc): New array of struct builtin_description.
8214         (mips_expand_builtin, mips_init_builtins,
8215         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
8216         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
8217         functions.
8218         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
8219         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
8220         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
8221         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
8222         "-mips3d", and "-mno-mips3d".
8223         (ASM_SPEC): Map -mips3d to -mips3d in gas.
8224         (EXTRA_CONSTRAINT_Y): New macro.
8225         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
8226         multi-letter constraint 'Y'.
8227         (CONSTRAINT_LEN): New macro.
8228         (enum mips_builtins): New for MIPS builtin functions.
8229         (enum mips_function_type): New for the types of MIPS builtin functions.
8230         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
8231         * config/mips/mips.md: New constants for paired single and MIPS-3D
8232         instructions.  Include the new mips-ps-3d.md file.
8233         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
8234         movv2sf_hardfloat_64bit): New named patterns.
8235         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
8236         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
8237         sdxc1_v2sf_di): New unnamed patterns.
8238         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
8239         const_vector support.
8240         (const_0_or_1_operand): New predicate.
8241         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
8242
8243 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
8244
8245         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
8246         (tree-ssa-propagate.o): New rule.
8247         (GTFILES): Add tree-ssa-propagate.c.
8248         * tree-flow.h (struct stmt_ann_d): Remove field
8249         in_ccp_worklist.
8250         * tree-ssa-propagate.c: New file.
8251         * tree-ssa-propagate.h: New file.
8252         * tree-ssa-ccp.c: Re-write to use the routines from
8253         tree-ssa-propagate.c.
8254
8255 2004-08-28  Andrew Pinski  <apinski@apple.com>
8256
8257         * tree-ssa-loop.c: Remove extra include of basic-block.h.
8258
8259 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
8260
8261         * c-common.h: Update comments about ObjC/ObjC++ entry points.
8262         (objc_is_reserved_word): New prototype.
8263         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
8264         separate section; these are call-backs.
8265         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
8266         ObjC/ObjC++ "@" keywords.
8267         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
8268         prototypes; they already live in c-common.h.
8269         * stub-objc.c: Update copyright notice.
8270         (objc_is_reserved_word): New stub.
8271
8272 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
8273
8274         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
8275         even when not checking.
8276
8277 2004-08-27  Jason Merrill  <jason@redhat.com>
8278
8279         PR c++/13684
8280         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
8281         (gimple_push_cleanup): Add eh_only parm.
8282         (gimplify_target_expr): Pass it.
8283         * c.opt (-fno-threadsafe-statics): New option.
8284         * c-opts.c (c_common_handle_option): Handle it.
8285         * c-common.h (flag_threadsafe_statics): Declare it.
8286         * c-common.c (flag_threadsafe_statics): Record it.
8287         * doc/invoke.texi: Document it.
8288         * tsystem.h (_GNU_SOURCE): Define.
8289         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
8290         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
8291         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
8292         (__gthread_recursive_mutex_init_function): New fn.
8293         (__gthread_recursive_mutex_lock): New fn.
8294         (__gthread_recursive_mutex_trylock): New fn.
8295         (__gthread_recursive_mutex_unlock): New fn.
8296         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
8297         * gthr-win32.h, gthr-vxworks.h: Likewise.
8298         * gthr.h: Document.
8299
8300 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
8301
8302         * config/rs6000/rs6000.c (rs6000_override_options): Increase
8303         maximum skip to 15.  Set function alignment, jump alignment, and
8304         loop alignment to 16 for processors that form dispatch groups.
8305         (rs6000_rtx_costs): outer_code is used.
8306
8307 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8308
8309         * stor-layout.c (sizetype_set): Remove.
8310         (set_sizetype): Don't test or set it.
8311
8312         * tree.h (size_int_type): Remove.
8313         * fold-const.c: Do not #include gt-fold-const.h.
8314         (size_htab_hash, size_htab_eq): Remove.
8315         (size_int_kind): Use build_int_cst.
8316         (new_const, size_htab): Remove.
8317         (size_int_type): Remove.
8318         (round_up): Use build_int_cst.
8319         (round_down): Likewise. Remove spurious constant build.
8320
8321 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
8322
8323         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
8324         Add is_release variable, use it for --enable-werror and
8325         --enable-checking defaults.
8326         * system.h (gcc_assert, gcc_unreachable): New.
8327         * doc/install.texi (--enable-checking): Update.
8328         * configure, config.in: Rebuilt.
8329
8330 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
8331
8332         * rtl.h (read_rtx): Change prototype.
8333         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
8334         line number.  Return true on success.
8335         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
8336         callers accordingly.
8337
8338 2004-08-26  Richard Henderson  <rth@redhat.com>
8339
8340         * c-typeck.c (build_offsetof): Remove.
8341         * c-tree.h (build_offsetof): Remove.
8342         * c-common.c (fold_offsetof_1, fold_offsetof): New.
8343         * c-common.h (fold_offsetof): Declare.
8344         * c-parse.in (offsetof_base): New.
8345         (offsetof_member_designator): Use it.  Build references, not just
8346         a tree list.
8347         (primary): Use fold_offsetof, not build_offsetof.
8348
8349 2004-08-26  Richard Henderson  <rth@redhat.com>
8350
8351         * tree.c (staticp): Return the static object.
8352         * tree.h (staticp): Update decl.
8353         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
8354         * langhooks.c (lhd_staticp): Return NULL_TREE.
8355         * langhooks-def.h (lhd_staticp): Update decl.
8356         * c-common.c (c_staticp): Return the static object.
8357         * c-common.h (c_staticp): Update decl.
8358
8359 2004-08-26  Richard Henderson  <rth@redhat.com>
8360
8361         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
8362         modes.
8363
8364 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
8365
8366         PR c/13801
8367         * c-decl.c (struct c_binding): Add type and inner_comp fields.
8368         (bind): Set type and inner_comp fields.
8369         (pop_scope): Restore type of decl to the correct type from an
8370         outer scope.  Give error when popping file scope for incomplete
8371         arrays completed incompatibly with default initialization in an
8372         inner scope.
8373         (diagnose_mismatched_decls): Handle externs with initializers at
8374         block scope.
8375         (pushdecl): Set type of external declaration at block scope based
8376         only on the visible declarations.  Save type when changing the
8377         type of a declaration.  Merge an external declaration at block
8378         scope with a visible static declaration at file scope.
8379         (implicitly_declare): Give recycled old declaration the new type
8380         except for incompatible declarations of built-in functions, saving
8381         the old type.
8382
8383 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
8384
8385         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
8386
8387 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
8388
8389         * tree-alias-common.c (gate_pta): New function.
8390         (pass_build_pta): Use it.
8391         (pass_del_pta): Use it.
8392         (delete_alias_vars): Don't check flag_tree_points_to.
8393
8394 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8395
8396         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
8397         TFmode as additional register mode cloberred by call.
8398
8399 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8400
8401         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
8402         parallel pattern for library call returning DImode in
8403         mixed mode.
8404
8405 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8406
8407         * config/rs6000/rs6000.c (function_arg): Generate parallel
8408         pattern for more split args.
8409
8410 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
8411
8412         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
8413         either gen_movdi_di_update or gen_movdi_si_update depending on
8414         target mode.
8415         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
8416         to generate two versions.
8417
8418 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
8419
8420         * Makefile.in (lambda-code.o): New.
8421         (lambda-trans.o): Ditto.
8422         (TREE_DATA_REF_H): Ditto.
8423         (LAMBDA_H): Ditto.
8424         (lambda-mat.o): Use LAMBDA_H.
8425         (tree-data-ref.o): Ditto.
8426         * lambda-code.c: New file.  Lambda code generation algorithm.
8427         * lambda-trans.c: Ditto. Lambda transformation matrix support.
8428         * lambda.h: Add lambda loop structures.
8429         Add lambda loopnest structures.
8430         Add lambda body vector structure.
8431         Add lambda linear expression structures.
8432         Add prototypes for functions in new files.
8433         * lambda-mat.c: Include tree.h
8434
8435 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
8436             Sebastian Pop  <pop@cri.ensmp.fr>
8437
8438         * tree-data-ref.h: Include lambda.h
8439         (free_dependence_relation): Declared here.
8440         (free_dependence_relations): Ditto.
8441         (free_data_refs): Ditto.
8442         * tree-data-ref.c (free_dependence_relation): New function.
8443         (free_dependence_relations): Ditto.
8444         (free_data_refs): Ditot.
8445         (analyze_all_data_dependences): Free datarefs and dependence_relations.
8446         (build_classic_dist_vector): Store in the dependence_relations the
8447         information. Each arc in the dependence_relations graph is labelled
8448         with the distance and direction vectors.
8449         (build_classic_dir_vector): Ditto.
8450         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
8451         Now computes again the whole dependence graph including read-read
8452         relations.
8453         (compute_data_dependences_for_loop): Now dependence_relations contains
8454         all the data, and thus it doesn't need to initialize the classic_dir
8455         and classic_dist vectors.
8456         (analyze_all_data_dependences): Adjusted for using the new interface of
8457         compute_data_dependences_for_loop.  Remove the statistics dump.
8458
8459 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
8460
8461         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
8462         (xtensa_expand_block_move): Update comment.
8463         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
8464
8465 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
8466
8467         PR target/13506
8468         * toplev.c (crash_signal): If we crashed while emitting
8469         a user asm, then die more gracefully.
8470
8471 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
8472
8473         PR target/17119.
8474         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
8475         checking for a valid constant, regardless of sign.
8476
8477 2004-08-25  Richard Henderson  <rth@redhat.com>
8478
8479         PR target/16974
8480         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
8481         if the constant satisfies add_operand.
8482
8483 2004-08-25  Richard Henderson  <rth@redhat.com>
8484
8485         PR debug/10695
8486         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
8487         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
8488         unwind info for >16-bit frames.
8489
8490 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
8491
8492         PR target/17171
8493         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
8494
8495 2004-08-25  Richard Henderson  <rth@redhat.com>
8496
8497         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
8498         (TARGET_CANNOT_FORCE_CONST_MEM): New.
8499
8500 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
8501
8502         * doc/tree-ssa.texi: Document new operand iterator.
8503
8504 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
8505
8506         PR target/16480
8507         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
8508         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
8509         as PLUS base regs.
8510
8511 2005-08-28  Paul Brook  <paul@codesourcery.com>
8512
8513         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
8514         -mfpu=vfp -march=armv5t
8515         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
8516
8517 2004-08-25  Richard Henderson  <rth@redhat.com>
8518
8519         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
8520         * target.h (struct gcc_target): Add scalar_mode_supported_p.
8521         * targhooks.c (default_scalar_mode_supported_p): New.
8522         * targhooks.h (default_scalar_mode_supported_p): Declare.
8523         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
8524
8525         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
8526         before attempting to create types.  Tidy.
8527         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
8528
8529         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
8530         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
8531
8532 2004-08-25  Richard Henderson  <rth@redhat.com>
8533
8534         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
8535         set REAL_MODE_FORMAT for TFmode.
8536
8537 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
8538
8539         * c-decl.c (grokparm): New function.
8540         * c-tree.h (grokparm): New prototype.
8541
8542 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
8543
8544         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
8545         iterator controlling structure.
8546         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
8547         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
8548         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
8549         iterator flags.
8550         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
8551         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
8552         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
8553         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
8554         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
8555         Empty operand pointers.
8556         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
8557         (op_iter_next_use): New.  Return next use_operand_p.
8558         (op_iter_next_def): New.  Return next def_operand_p.
8559         (op_iter_next_tree): New.  Return next operands as a tree.
8560         (op_iter_init): New.  Initialize an iterator structure.
8561         (op_iter_init_use): New.  Initialize structure and get the first use.
8562         (op_iter_init_def): New.  Initialize structure and get the first def.
8563         (op_iter_init_tree): New.  Initialize structure and get the first tree.
8564         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
8565         (op_iter_init_maydef): New.  Initialize structure and get the first
8566         V_MAY_DEF operands.
8567         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
8568         * tree-dfa.c (compute_immediate_uses_for_stmt,
8569         redirect_immediate_uses): Use new operand iterator.
8570         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
8571         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
8572         operands instead of using *_disappeared_p routines.
8573         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
8574         ssa_rewrite_stmt): Use new operand iterator.
8575         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
8576         rewrite_trees): Use new operand iterator.
8577         * tree-pretty-print.c (dump_vops): Use new operand iterator.
8578         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
8579         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
8580         dump_points_to_info): Use new operand iterator.
8581         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
8582         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
8583         operand iterator.
8584         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
8585         propagate_necessity): Use new operand iterator.
8586         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
8587         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
8588         a parameter instead of a stmt_ann_t.
8589         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
8590         build_tree_conflict_graph): Use new operand iterator.
8591         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
8592         rewrite_mem_refs): Use new operand iterator.
8593         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
8594         check_loop_closed_ssa_use): Use new operand iterator.
8595         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
8596         * tree-ssanames.c (release_defs): Use new operand iterator.
8597         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
8598
8599 2004-08-25  Adam Nemet  <anemet@lnxw.com>
8600
8601         * tlink.c (initial_cwd): New variable.
8602         (tlink_init): Initialize it.
8603         (recompile_files): Use tlink_execute() instead of system().  Don't
8604         duplicate verbose output of collect_execute.  Restore initial_cwd.
8605         Update comment before the function.
8606
8607 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
8608
8609         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
8610         accept) a cast from one Objective-C pointer type to another.
8611
8612 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
8613
8614         * doc/install.texi: Document that libstdc++-v3 requires
8615         now automake 1.9.1.
8616
8617 2004-08-25  Caroline Tice  <ctice@apple.com>
8618
8619         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
8620         to comments at start of function.
8621         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
8622         comment.
8623         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8624         merge_blocks_move_predecessor_nojumps,
8625         merge_blocks_move_successor_nojumps, merge_blocks_move,
8626         try_crossjump_to_edge, try_crossjump_bb): Likewise.
8627         * cfglayout.c (fixup_reorder_chain): Likewise.
8628         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
8629         cfg_layout_can_merge_blocks_p):  Likewise.
8630         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
8631         * passes.c (rest_of_compilation): Update comments for calling
8632         optimization that partitions hot/cold basic blocks.
8633         * doc/invoke.texi:  Update documentation of
8634         freorder-blocks-and-partition flag.
8635
8636 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
8637
8638         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
8639         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
8640
8641 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
8642
8643         * config/mips/mips.md (any_shift): New code macro.
8644         (optab, insn): New code attributes.
8645         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
8646         Use the standard rather than internal patterns for the MIPS16
8647         double-shift optimization.
8648         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
8649         Redefine using :GPR and any_shift.
8650         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
8651         to cover all three shifts.
8652         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
8653         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
8654         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
8655
8656 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
8657
8658         * gimplify.c (lookup_tmp_var): Separate temporaries when not
8659         optimizing.
8660
8661 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8662
8663         PR libstdc++/17005 (fix for HP-UX 11.11)
8664         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
8665         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
8666         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
8667         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
8668         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
8669         (LINK_SPEC): Handle march=1.0 option.
8670         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
8671         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
8672         (SUBTARGET_OPTIONS): New define.
8673         (LINK_SPEC): Handle march=1.0 option.
8674         (STARTFILE_SPEC): New define.
8675         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
8676         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
8677         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
8678         (SUBTARGET_OPTIONS): New define.
8679         (LINK_SPEC): Handle march=1.0 option.
8680         (STARTFILE_SPEC): New define.
8681         * config/pa/pa.c (override_options): Add code to process -munix= option.
8682         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
8683         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
8684         defines.
8685         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
8686         (SUBTARGET_OPTIONS): Provide default define.
8687         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
8688         STANDARD_STARTFILE_PREFIX_2): New defines.
8689         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
8690         (ENDFILE_SPEC): Use %O.
8691         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
8692         Mention issue caused by changing namespace and runtime to UNIX 95/98.
8693         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
8694         Document -munix=std option.
8695
8696 2004-08-25  Steven Bosscher  <stevenb@suse.de>
8697
8698         * cse.c (cse_around_loop, cse_check_loop_start,
8699         cse_set_around_loop): Remove.
8700         (cse_basic_block): Remove the around_loop argument.
8701         (cse_end_of_basic_block): Remove the after_loop argument.
8702         (cse_main): Likewise.
8703         * rtl.h (cse_main): Update prototype.
8704         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
8705         rest_of_handle_gcse): Update cse_main calls.
8706
8707 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
8708
8709         * tree.h  (build_int_cst): New, sign extended constant.
8710         (build_int_cstu): New, zero extended constant.
8711         (build_int_cst_wide): Renamed from build_int_cst.
8712         * tree.c (build_int_cst, build_int_cstu): New.
8713         (build_int_cst_wide): Renamed from build_int_cst.
8714         (make_vector_type, build_common_tree_nodes,
8715         build_common_tree_nodes_2): Adjust build_int_cst calls.
8716         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
8717         expand_builtin_strpbrk, expand_builtin_fputs,
8718         build_string_literal, expand_builtin_printf,
8719         expand_builtin_sprintf, fold_builtin_classify_type,
8720         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
8721         fold_builtin_toascii, fold_builtin_isdigit,
8722         simplify_builtin_strstr, simplify_builtin_strpbrk,
8723         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
8724         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
8725         DEF_ATTR_INT): Likewise.
8726         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
8727         Likewise.
8728         * c-lex.c (interpret_integer, lex_charconst): Likewise.
8729         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
8730         * c-pretty-print.c (pp_c_integer_constant): Likewise.
8731         * c-typeck.c (really_start_incremental_init, push_init_level,
8732         set_nonincremental_init_from_string): Likewise.
8733         * calls.c (load_register_parameters): Likewise.
8734         convert.c (convert_to_pointer): Likewise.
8735         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
8736         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
8737         build_gcov_info): Likewise.
8738         * except.c (init_eh, assign_filter_values): Likewise.
8739         * expmed.c (store_fixed_bit_field, extract_bit_field,
8740         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
8741         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
8742         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
8743         * expr.c (convert_move, emit_group_load, emit_group_store,
8744         expand_assignment, store_constructor, store_field,
8745         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
8746         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
8747         invert_truthvalue, optimize_bit_field_compare,
8748         decode_field_reference, all_ones_mask_p, constant_boolean_node,
8749         fold_div_compare, fold, fold_read_from_constant_string,
8750         fold_negate_const, fold_abs_const, fold_not_const, round_up,
8751         round_down): Likewise.
8752         * function.c (assign_parm_setup_block): Likewise.
8753         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
8754         Likewise.
8755         * stor-layout.c (layout_type, initialize_sizetypes,
8756         set_min_and_max_values_for_integral_type): Likewise.
8757         * tree-chrec.c (chrec_fold_multiply_poly_poly,
8758         reset_evolution_in_loop): Likewise.
8759         * tree-chrec.h (build_polynomial_chrec): Likewise.
8760         * tree-complex.c (build_replicated_const): Likewise.
8761         * tree-eh.c (honor_protect_cleanup_actions,
8762         lower_try_finally_onedest, lower_try_finally_copy,
8763         lower_try_finally_switch): Likewise.
8764         * tree-mudflap.c (mf_build_string, mx_register_decls,
8765         mudflap_register_call, mudflap_enqueue_constant): Likewise.
8766         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
8767         * tree-pretty-print.c (dump_generic_node): Likewise.
8768         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
8769         Likewise.
8770         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
8771         * tree-ssa-loop-niter.c (number_of_iterations_cond,
8772         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
8773         Likewise.
8774         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
8775         canonicalize_loop_induction_variables): Likewise.
8776         * tree-vectorizer.c (vect_create_index_for_array_ref,
8777         vect_transform_loop_bound, vect_compute_data_ref_alignment):
8778         Likewise.
8779
8780         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
8781         alpha_gimplify_va_arg_1): Likewise.
8782         * config/arm/arm.c (arm_get_cookie_size): Likewise.
8783         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
8784         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
8785         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
8786         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
8787         mips_gimplify_va_arg_expr): Likewise.
8788         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
8789         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
8790         add_compiler_branch_island): Likewise.
8791         * config/s390/s390.c (s390_va_start): Likewise.
8792         * config/sh/sh.c (sh_va_start): Likewise.
8793         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
8794         Likewise.
8795         * config/xtensa/xtensa.c (xtensa_va_start,
8796         xtensa_gimplify_va_arg_expr): Likewise.
8797
8798         * objc/objc-act.c (build_objc_string_object,
8799         build_objc_symtab_template, init_def_list, init_objc_symtab,
8800         init_module_descriptor, generate_static_references,
8801         build_selector_translation_table, get_proto_encoding,
8802         build_typed_selector_reference, build_selector_reference,
8803         build_next_objc_exception_stuff,
8804         build_method_prototype_list_template, generate_descriptor_table,
8805         generate_protocols, build_protocol_initializer,
8806         build_ivar_list_template, build_method_list_template,
8807         build_ivar_list_initializer, generate_ivars_list,
8808         generate_dispatch_table, generate_protocol_list,
8809         build_category_initializer, build_shared_structure_initializer,
8810         generate_shared_structures, handle_impent,
8811         generate_objc_image_info): Likewise.
8812
8813 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
8814
8815         * cfglayout.c (duplicate_insn_chain): Remove references to
8816         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
8817         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
8818         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
8819         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
8820         and NOTE_INSN_LOOP_CONT.
8821         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
8822         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
8823         and NOTE_INSN_LOOP_CONT.
8824         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
8825         check_dbra_loop, loop_dump_aux): Remove references to removed notes
8826         and fields.
8827         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
8828         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
8829         references to removed notes and fields.
8830         (subtract_reg_term, ujump_to_loop_cont): Remove.
8831
8832 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
8833
8834         * doc/install.texi: Document that libcpp does not require
8835         Automake any longer.  Document that Automake 1.9.1 should
8836         work everywhere.
8837
8838 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
8839
8840         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
8841         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
8842         DWARF_DEBUGGING_INFO from choice-of-definition chain;
8843         restructure using C89 features (#elif, #error).
8844         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
8845         * config/sh/sh.h: Remove references to DWARF_DEBUG.
8846         * doc/invoke.texi: Remove references to DWARF version 1;
8847         clarify why -gdwarf-2<n> doesn't work.
8848
8849 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
8850
8851         * basic-block.h (BB_SET_PARTITION): Clear old value first.
8852         * cfg.c (clear_bb_flags): Don't clear partition setting.
8853         * ifcvt.c (find_if_case_1): Remove ??? comment.
8854
8855 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
8856
8857         PR target/17052
8858         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
8859         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
8860         current_function_stdarg in place of sysv_varargs_p.
8861         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
8862         sysv_varargs_p.
8863
8864 2004-08-24  Richard Henderson  <rth@redhat.com>
8865
8866         PR target/16298
8867         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
8868         random codes within CONST.
8869
8870 2004-08-24  James E Wilson  <wilson@specifixinc.com>
8871
8872         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
8873         -freorder-blocks-and-partition.
8874
8875 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8876
8877         PR middle-end/17044
8878         * tree-ssa-threadupdate.c (redirection_data): Make static.
8879         (thread_block): Use ggc_alloc_cleared to allocate struct
8880         redirection_data.  Don't free elements in redirection_data.
8881
8882 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
8883
8884         * config/mips/predicates.md (small_data_pattern): Match prefetches.
8885
8886 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8887
8888         PR tree-optimization/17016
8889         * tree-ssa-loop-niter.c (number_of_iterations_cond,
8890         number_of_iterations_exit): Use POINTER_TYPE_P instead
8891         of testing for POINTER_TYPE.
8892
8893 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8894
8895         * tree-ssa-loop-ivcanon.c: New file.
8896         * tree-ssa-loop-manip.c (create_iv): New function.
8897         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
8898         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
8899         * cfgloop.c (mark_single_exit_loops): New function.
8900         (verify_loop_structure): Verify single-exit loops.
8901         * cfgloop.h (struct loop): Add single_exit field.
8902         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
8903         (mark_single_exit_loops): Declare.
8904         (tree_num_loop_insns): Declare.
8905         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
8906         (duplicate_loop_to_header_edge): Use it.
8907         * common.opt (fivcanon): New flag.
8908         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
8909         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
8910         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
8911         (bsi_insert_on_edge_immediate): New function.
8912         * tree-flow.h (bsi_insert_on_edge_immediate,
8913         canonicalize_induction_variables, tree_unroll_loops_completely,
8914         create_iv): Declare.
8915         * tree-optimize.c (init_tree_optimization_passes): Add
8916         pass_iv_canon and pass_complete_unroll.
8917         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
8918         * tree-scalar-evolution.c (get_loop_exit_condition,
8919         get_exit_conditions_rec, number_of_iterations_in_loop,
8920         scev_initialize): Use single_exit information.
8921         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
8922         missing assumptions.
8923         (loop_niter_by_eval):  Return number of iterations as unsigned
8924         int.
8925         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
8926         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
8927         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
8928         New passes.
8929         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
8930         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
8931         the defining statement is ready.
8932         * tree-vectorizer.c (vect_create_iv_simple): Removed.
8933         (vect_create_index_for_array_ref, vect_transform_loop_bound):
8934         Use create_iv.
8935         (vect_transform_loop_bound): Use single_exit information.
8936         (vect_analyze_loop_form): Cleanup bogus tests.
8937         (vectorize_loops): Do not call flow_loop_scan.
8938         * tree.h (may_negate_without_overflow_p): Declare.
8939         * fold-const.c (may_negate_without_overflow_p): Split out from ...
8940         (negate_expr_p): ... this function.
8941         (tree_expr_nonzero_p): Handle overflowed constants correctly.
8942         * doc/invoke.texi (-fivcanon): Document.
8943         * doc/passes.texi: Document canonical induction variable creation.
8944
8945 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
8946
8947         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
8948         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
8949         using the mode of the operand to decide between them.
8950         * config/mips/mips.md (MOVECC): New mode macro.
8951         (ccreg): New mode attribute.
8952         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
8953         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
8954         (mov[sd]icc): Redefine using :GPR.
8955
8956 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
8957
8958         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
8959         (mips_prefetch_cookie): New function.
8960         * config/mips/mips.c (print_operand_address): Fix handling of
8961         ADDRESS_CONST_INT.
8962         (mips_emit_prefetch): Delete.
8963         (mips_prefetch_cookie): New function.
8964         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
8965         mode of QImode for the address_operand.  Use mips_prefetch_cookie
8966         to calculate the first "pref" operand.
8967         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
8968         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
8969
8970 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
8971
8972         * arm.md: Include predicates.md.
8973         * predicates.md: New file.
8974         * arm.c (s_register_operand, arm_hard_register_operand)
8975         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
8976         (arm_immediate_operand, arm_neg_immediate_operand)
8977         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
8978         (arm_add_operand, arm_addimm_operand, arm_not_operand)
8979         (offsettable_memory_operand, alignable_memory_operand)
8980         (arm_reload_memory_operand, arm_float_rhs_operand)
8981         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
8982         (index_operand, shiftable_operator, logical_binary_operator)
8983         (shift_operator, equality_operator, arm_comparison_operator)
8984         (minmax_operator, cc_register, dominant_cc_register)
8985         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
8986         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
8987         (const_shift_operand, load_multiple_operation)
8988         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
8989         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
8990         (cirrus_register_operand, cirrus_fp_register)
8991         (cirrus_shift_const): Delete, replaced with equivalents in
8992         predicates.md.
8993         (shift_op): Handle ROTATE.
8994         * arm-protos.h: Delete declarations for above.
8995         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
8996         * t-arm (MD_INCLUDES): Add predicates.md.
8997         (s-preds): Depends on MD_INCLUDES.
8998
8999 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9000
9001         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
9002         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
9003         patterns.  Redefine using :GPR.  Give the match_operator a mode.
9004         Use '%2' rather than '%z2' for operand 2.
9005
9006 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9007
9008         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
9009         attribute.
9010
9011 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9012
9013         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
9014         of internal patterns.
9015         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
9016         Redefine using :P.
9017         (tablejump): Use expand_binop to calculate address.  Adjust names
9018         of internal patterns.
9019         (tablejump[sd]i): Renamed from tablejump_internal[12].
9020         Redefine using :P.
9021         (tablejump_mips16[12]): Delete.
9022
9023 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9024
9025         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
9026         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
9027         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
9028         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
9029         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
9030
9031 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
9032
9033         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
9034         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
9035         using :GPR.
9036         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
9037         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
9038         (*branch_equality[sd]i_inverted): Likewise
9039         branch_equality{,_di}_inverted.
9040         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
9041         Redefine using :GPR.
9042
9043 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9044
9045         * rtl.def: Reorganize, placing all codes used only in machine
9046         descriptions at the end.
9047
9048         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
9049         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
9050         rtx_name, rtx_format arrays by direct reference to rtl.def,
9051         first undefining GENERATOR_FILE.  Define enum insn_note and
9052         note_insn_name array by direct reference to insn-notes.def.
9053         (adjust_field_rtx_def): Remove local definition of rtx_name.
9054         Use symbolic names for insn notes.
9055         * Makefile.in (gengtype.o): Update dependencies.
9056
9057 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
9058
9059         * basic-block.h (struct basic_block_def): Reorder fields to
9060         eliminate interior padding.  Remove 'partition' field.
9061         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
9062         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
9063         (BB_COPY_PARTITION): New macros.
9064         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
9065         Replace all references to the 'partition' field of a basic
9066         block with new macros.
9067
9068         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
9069         * final.c (final_scan_insn): Don't handle it.
9070         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
9071         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
9072         * sched-rgn.c (sched_is_disabled_for_current_region_p):
9073         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
9074
9075 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9076
9077         * c-decl.c (c_init_decl_processing): Adjust
9078         build_common_tree_nodes call.
9079         * expmed.c (const_mult_add_overflow_p): Use
9080         build_distinct_type_copy.
9081         * stor-layout.c (early_type_list): Remove.
9082         (layout_type): Don't append to early_type_list.
9083         (initialize_sizetypes): Add signed_p argument.
9084         (set_sizetype): Overwrite the stub type nodes directly.
9085         * tree.c (copy_node_stat): Clear a type's value cache here ...
9086         (build_distinct_type): ... not here.
9087         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
9088         * tree.h (initialize_sizetypes): Add signed_p argument.
9089         (build_common_tree_nodes): Likewise.
9090
9091         * objc/objc-act.c (get_static_reference): Use
9092         build_variant_type_copy.
9093         (get_protocol_reference): Likewise.
9094         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
9095
9096 2004-08-24  Richard Henderson  <rth@redhat.com>
9097             Andrew Pinski  <apinski@apple.com>
9098
9099         * gimplify.c (gimplify_array_ref_to_plus): Delete.
9100         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
9101         for ARRAY_REF.
9102
9103         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
9104         ARRAY_REF also to get to the STRING_CST.
9105
9106 2004-08-24  Paul Brook  <paul@codesourcery.com>
9107
9108         * config/arm/arm.c (arm_override_options): Update error message.
9109         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
9110         TARGET_HARD_FLOAT_ABI.
9111         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
9112         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
9113
9114 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
9115
9116         PR target/17093
9117         * config/m32r.md (movsi_sda): Add SI mode specification to
9118         UNSPEC.
9119
9120 2004-08-24  Nick Clifton  <nickc@redhat.com>
9121
9122         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
9123         of seth_add3_operand.
9124
9125 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
9126
9127         * Makefile.in (PROTO_OBJS): Add errors.o.
9128         * protoize.c (fancy_abort): Remove.
9129         * mips-tfile.c (fancy_abort): Add parameters.
9130
9131 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
9132
9133         * doc/trouble.texi (C++ misunderstandings): Fix example code.
9134
9135 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
9136
9137         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
9138         (host-default.o): Add dependency on HOOKS_H.
9139         * config/x-linux: Likewise.
9140         * config/x-solaris: Likewise.
9141         * config/i386/x-mingw32: Likewise.
9142         * config/rs6000/x-darwin: Likewise.
9143
9144 2004-08-23  James E Wilson  <wilson@specifixinc.com>
9145
9146         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
9147         DEF_REG_NOTE.
9148
9149 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
9150
9151         PR c/14492
9152         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
9153
9154 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
9155
9156         * cfg.c (check_bb_profile): Fix typos.
9157         * function.c (assign_parm_is_stack_parm): Likewise.
9158         * tree-nested.c: Likewise.
9159
9160 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
9161
9162         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
9163         Remove TYPECODE.
9164         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
9165
9166 2004-08-23  Eric Christopher  <echristo@redhat.com>
9167
9168         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
9169         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
9170         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
9171         * target.h: Ditto.
9172         * hooks.h: Include machmode.h.
9173         (hook_bool_mode_false): Declare.
9174         * hooks.c (hook_bool_mode_false): Define.
9175         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
9176         * stor-layout.c (layout_type): Ditto.
9177         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
9178         Define to target macro.
9179         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
9180         * config/arm/arm.c: Ditto. Use.
9181         * config/arm/arm.h: Ditto.
9182         * config/arm/arm-protos.h: Ditto.
9183         * config/i386/i386.c: Ditto.
9184         * config/i386/i386.h: Ditto.
9185         * config/rs6000/rs6000.c: Ditto.
9186         * config/rs6000/rs6000.h: Ditto.
9187         * config/sh/sh.c: Ditto.
9188         * config/sh/sh.h: Ditto.
9189         * config/sh/sh-protos.h: Ditto.
9190         * config/sh/sh.md: Use.
9191         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
9192         to TARGET_VECTOR_MODE_SUPPORTED_P.
9193
9194 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
9195
9196         * Makefile.in (BUILD_ERRORS): Set to build-errors.
9197         (errors.o): New target for host.
9198         (build-errors.o): New target for build.
9199         (genobjs): Replace errors.o with build-errors.
9200         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
9201         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
9202         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
9203         (fix-header.o): Add errors.h
9204         * collect2.c (fancy_abort): Add parameters.
9205         * collect2.h (fancy_abort): Don't declare.
9206         * errors.h (fancy_abort): Don't declare.
9207         * errors.c: Include either bconfig.h or config.h.
9208         (fancy_abort): Trim filename.
9209         * fix-header.c (v_fatal, fatal): Remove.
9210         (progname): Remove definition.
9211         (main): Set progname here.
9212         * gcc.c (fancy_abort): Add parameters.
9213         * gcc.h (fancy_abort): Remove declaration.
9214         * gcov.c (fancy_abort): Remove.
9215         * rtl.h (fancy_abort): Don't declare.
9216         (abort): Don't define.
9217         * tree.h (fancy_abort): Don't declare.
9218         (abort): Don't define.
9219         * system.h (fancy_abort): Declare.
9220         (abort): Define to fancy_abort.
9221         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
9222
9223         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
9224         (usize_type, ubitsizetype): Remove.
9225         * stor-layout.c (set_sizetype): Don't initialize usizetype,
9226         ubitsizetype.
9227         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
9228
9229         * tree.h (build_distinct_type_copy): New.
9230         (build_type_copy): ... here.  Rename to ...
9231         (build_variant_type_copy): ... here.
9232         * tree.c (build_qualified_type): Rename build_type_copy call.
9233         (build_distinct_type_copy): New, broken out of ...
9234         (build_type_copy): ... here.  Rename to ...
9235         (build_variant_type_copy): ... here.  Use
9236         build_distinct_type_copy.
9237         (build_common_tree_nodes_2): Rename build_type_copy call.
9238         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
9239         call.
9240         (handle_packed_attribute, handle_unused_attribute,
9241         handle_transparanet_union_attribute, handle_aligned_attribute,
9242         handle_deprecated_attribute): Likewise.
9243         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
9244         Likewise.
9245         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
9246         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
9247         build_distinct_type_copy.
9248
9249 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9250
9251         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
9252         attribute.
9253
9254 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9255
9256         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
9257         loads and stores.
9258         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
9259         formerly unnamed patterns.  Redefine using :P for the address.  Remove
9260         explicit length attributes.
9261
9262 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9263
9264         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
9265         New functions.
9266         (single_reachable_address): Use them.
9267         (schedule_sm): Add dump.
9268         (is_call_clobbered_ref): New function.
9269         (determine_lsm_reg): Check whether the reference is call clobbered.
9270         Only work for gimple_reg_type values.
9271
9272 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9273
9274         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
9275         $31 store insns.  Redefine using :GPR.
9276
9277 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9278
9279         * config/mips/mips.md (P): New mode macro.
9280         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
9281         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
9282         Add mode attributes.
9283
9284 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9285
9286         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
9287         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
9288         later constants to cover the gap.
9289         (load, store): New mode attributes.
9290         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
9291         Use new unspec constants.
9292
9293 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9294
9295         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
9296         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
9297         to use register_operand rather than uns_arith_operand as the predicate
9298         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
9299         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
9300         Redefine using :GPR.  Make same predicate change here.  Extend the
9301         commutativity of operands 1 and 2 from the SImode version to the
9302         DImode one.
9303         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
9304         but with no predicate changes.
9305         (*nor[sd]i3): Redefine using :GPR.
9306
9307 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9308
9309         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
9310         noreturn functions.
9311
9312 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9313
9314         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
9315         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
9316         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
9317         rather than "%z2" (with a fake const0_rtx for operand 2).
9318         (ffs[sd]i2): Redefine using :GPR.
9319         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
9320
9321 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9322
9323         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
9324
9325 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9326
9327         * config/mips/mips.md (any_extend): New code macro.
9328         (u, su): New code attributes.
9329         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
9330         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
9331         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
9332         (*{s,u}mul_acc_di): Redefine using any_extend.
9333         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
9334         to reflect real insn names.
9335         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
9336         with an any_extend template.
9337         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
9338         Add '*' to name.
9339
9340 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9341
9342         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
9343         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
9344         (mul[sd]i3_r4000): Redefine using :GPR.
9345         (mulsi3_mult3): Don't check TARGET_MAD separately.
9346         (muldi3_mult3): Moved after mulsi_mult3.
9347
9348 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9349
9350         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
9351         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
9352         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
9353         (TARGET_GAS, TARGET_MIPS_AS): Delete.
9354         (TARGET_GPWORD): Define to true for n32 on IRIX.
9355         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
9356         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
9357         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
9358         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
9359         (MDEBUG_ASM_SPEC): Delete, folding into...
9360         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
9361         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
9362         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
9363         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
9364         to define asm_abi_default_spec.
9365         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
9366         (TARGET_ASM_SELECT_SECTION): Delete.
9367         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
9368         for non-mips16 code, removing previous workaround for SGI assemblers.
9369         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
9370         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
9371         (override_options): Remove !TARGET_GAS and !have_named_sections code.
9372         (print_operand): Fold TARGET_GAS conditionals into asm strings.
9373         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
9374         ASM_STABS_OP and ASM_STABN_OP.
9375         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
9376         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
9377         (mips_output_function_prologue): Remove !TARGET_GAS code.
9378         (mips_select_rtx_section): Remove !have_named_sections code.
9379         (mips_select_section): Delete.
9380         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
9381         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
9382         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
9383         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
9384         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
9385         * config/mips/windiss.h (ASM_SPEC): Likewise.
9386
9387 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9388
9389         * read-rtl.c (map_value, mapping, macro_group): New structures.
9390         (BELLWETHER_CODE): New macro.
9391         (modes, codes, bellwether_codes): New variables.
9392         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
9393         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
9394         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
9395         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
9396         (add_map_value, initialize_macros): New functions.
9397         (def_hash, def_hash_eq_p): Generalize to anything that points to,
9398         or starts with, a char * field.
9399         (find_macro, read_mapping, check_code_macro): New functions.
9400         (read_rtx_1): New, split out from read_rtx.  Handle the new
9401         define_{mode,code}_{macro,attr} constructs.  Use find_macro
9402         to parse the name of a code or mode.  Use BELLWETHER_CODE to
9403         extract the format and to choose a suitable code for rtx_alloc.
9404         Modify recursive invocations to use read_rtx_1.
9405         (read_rtx): Call initialize_macros.  Apply code and mode macros
9406         to the rtx returned by read_rtx_1.  Cache everything after the
9407         first macro expansion for subsequent read_rtx calls.
9408         * doc/md.texi: Document new .md constructs.
9409         * config/mips/mips.md (GPR): New mode macro.
9410         (d, si8_di5): New mode attributes.
9411         (any_cond): New code macro.
9412         (add[sd]i3): Redefine using :GPR.
9413         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
9414         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
9415         previously unnamed MIPS16 patterns.
9416         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
9417         lines.  Don't match (plus (const_int 0) ...).
9418         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
9419         Use a define_split to generate the addition.
9420         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
9421         (subsi3_internal): Delete.
9422         (*subsi3_extended): Renamed from subsi3_internal_2.
9423         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
9424         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
9425         using an any_cond template.
9426
9427 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9428
9429         * read-rtl.c (read_rtx): Tidy use of format_ptr.
9430
9431 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
9432
9433         * read-rtl.c (string_obstack): New file-scope variable.
9434         (read_string, read_quoted_string, read_braced_string)
9435         (read_escape): Remove obstack parameter and use string_obstack instead.
9436         (read_rtx): Remove function-local rtl_obstack and initialize
9437         string_obstack instead.  Update call to read_string.
9438
9439 2004-08-22  Andrew Pinski  <apinski@apple.com>
9440
9441         PR c/15262
9442         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
9443         expression is not constant.
9444         (c_finish_return): Do not go through INDIRECT_REF when looking
9445         for the inner expression of an ADDR_EXPR for warning about.
9446
9447 2004-08-22  Richard Henderson  <rth@redhat.com>
9448
9449         PR 17075
9450         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
9451         create new blocks and fall through.
9452         (expand_gimple_basic_block): Update to match.
9453
9454 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
9455
9456         * reload.c (find_reloads_address): Make return value tri-state.
9457         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
9458         (find_reloads): Assume that reloaded addresses match 'o' or
9459         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
9460         returned 1 (not -1).  Omit optional reloads for address operands
9461         only if find_reloads_address returned 1 (not -1).
9462
9463         * config/s390/s390.c (legitimize_reload_address): New function.
9464         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
9465         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
9466         legitimize_reload_address.
9467
9468 2004-08-22  Richard Hendersion  <rth@redhat.com>
9469
9470         * tree.h (SAVE_EXPR_RESOLVED_P): New.
9471         * gimplify.c (gimplify_save_expr): Use it.
9472         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
9473         on the temporary variable.
9474
9475 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
9476
9477         * fold-const.c (rtl_expr_nonnegative_p): Delete.
9478         * tree.h (rtl_expr_nonnegative_p): Remove.
9479
9480 2004-08-22  Steven Bosscher  <stevenb@suse.de>
9481
9482         * config/i386/ppro.md (ppro_complex_insn): Add missing check
9483         for cpu==pentiumpro.
9484
9485         * combine.c (struct reg_stat): Fix comment typo.
9486
9487 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9488
9489         * c-tree.h (c_sizeof_nowarn): Remove.
9490
9491 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
9492
9493         * c-decl.c (set_array_declarator_type): Rename to
9494         set_array_declarator_inner.
9495         (build_c_parm, build_attrs_declarator, build_function_declarator):
9496         New functions.
9497         (make_pointer_declarator): Call build_attrs_declarator.
9498         * c-tree.h (set_array_declarator_type): Rename to
9499         set_array_declarator_inner.
9500         (build_c_parm, build_attrs_declarator, build_function_declarator):
9501         New prototypes.
9502         * c-parse.in (after_type_declarator,
9503         parm_declarator_starttypename, parm_declarator_nostarttypename,
9504         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
9505         firstparm): Use these functions
9506
9507 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
9508
9509         * c-decl.c (build_array_declarator, set_array_declarator_type,
9510         start_decl, grokdeclarator, grokparms): Change boolean parameters
9511         to type bool.
9512         * c-tree.h (build_array_declarator, set_array_declarator_type,
9513         start_decl): Update prototypes.
9514         * c-decl.c, c-parse.in: All callers changed.
9515
9516 2004-08-21  Mike Stump  <mrs@apple.com>
9517
9518         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
9519         (darwin_fix_and_continue): Likewise.
9520         (darwin_fix_and_continue_switch): Likewise.
9521         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
9522         (darwin_fix_and_continue): Likewise.
9523         (darwin_fix_and_continue_switch): Likewise.
9524
9525 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
9526
9527         PR  c++/16030
9528         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
9529         Remove, merging into ...
9530         (gen_stdcall_or_fastcall_suffix): New function, returning tree
9531         rather than const char*, and accepting additional parameter.
9532         Don't add suffix to '*'-prefixed symbols or variadic functions.
9533         (i386_pe_encode_section_info): Adjust for call to new function.
9534         Call change_decl_assembler_name.
9535
9536 2004-08-20  Mike Stump  <mrs@apple.com>
9537
9538         * config/darwin.c (machopic_indirect_data_reference): Mark
9539         stubs as defined.
9540         * config/386/386.c (darwin_local_data_pic): Add.
9541         (legitimate_constant_p): Reorder so that PLUS handling runs
9542         before darwin_local_data_pic to match the ordering in
9543         legitimate_pic_address_disp_p and so that MINUS runs after
9544         darwin_local_data_pic as otherwise the darwin_local_data_pic
9545         logic can be skipped, which would be very bad.
9546         (legitimate_pic_address_disp_p): Move from from here to
9547         darwin_local_data_pic so it can be reused.
9548
9549 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
9550
9551         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
9552         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
9553         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
9554         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
9555         (RS6000_ABI_NAME): Define as "linux".
9556         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
9557         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
9558         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
9559         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
9560         * config/rs6000/rs6000.c (dot_symbols): New global var.
9561         (rs6000_output_function_entry): New function, modified for
9562         !DOT_SYMBOLS..
9563         (print_operand <case 'z'>): ..extracted from here.
9564         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
9565         (rs6000_output_function_epilogue): Likewise.
9566         (rs6000_elf_declare_function_name): Likewise.
9567         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
9568         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
9569         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
9570         * configure: Regenerate.
9571         * config.in: Regenerate.
9572
9573 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
9574
9575         * reload.c (find_reloads_address): Fix thinko in previous change.
9576
9577         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
9578         a CONST_INT.
9579
9580 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
9581
9582         PR rtl-optimization/17099
9583         * combine.c (force_to_mode): Check if inner_mask has any bits set
9584         outside of GET_MODE (x) instead of op_mode.
9585
9586 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
9587
9588         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
9589         fragment.
9590         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
9591         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
9592         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
9593         architecture.
9594         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
9595         configurations.
9596         * config/arm/t-symbian: New file.
9597
9598 2004-08-20  Andrew Pinski  <apinski@apple.com>
9599
9600         * regrename.c (kill_value_regno): ANSIfy.
9601
9602 2004-08-20  Dale Johannesen  <dalej@apple.com>
9603
9604         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
9605
9606 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
9607
9608         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
9609         (kill_value_regno): New function, derived from kill_value.
9610         (kill_value): Update.
9611         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
9612
9613 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
9614
9615         Fix PR tree-optimization/17111
9616         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
9617         of non-value_handles.
9618         (bitmap_set_contains): All constants are in every set.
9619
9620 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
9621
9622         * fold-const.c (round_up, round_down): Use build_int_cst.
9623         Optimize common case.
9624
9625 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
9626             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9627
9628         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
9629         one_only_data_section): Rename to som_readonly_data_section,
9630         som_one_only_readonly_data_section and som_one_only_data_section.
9631         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
9632         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
9633         conditional defines.
9634         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
9635         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
9636         string values.
9637         (pa_select_section): Use renamed section functions.
9638         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
9639         SOM_READONLY_DATA_SECTION_FUNCTION,
9640         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
9641         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
9642         Define here ...
9643         * config/pa/som.h: ... not here.
9644         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
9645         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
9646         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
9647         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
9648         (READONLY_DATA_SECTION): Use som_readonly_data_section.
9649
9650 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
9651
9652         * fold-const.c (int_const_binop): Don't generate non-overflowing
9653         size-types specially.
9654         (fold_convert_const): Likewise.
9655
9656         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
9657         clear cache on copied sizetype.
9658
9659 2004-08-20  Ben Elliston  <bje@au.ibm.com>
9660
9661         * configure.ac: Don't escape apostrophe in --enable-coverage help.
9662         * configure: Regenerate.
9663
9664 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
9665
9666         PR 5620
9667         * gcc.c (struct stat input_stat): Don't define if
9668         HOST_LACKS_INODE_NUMBERS
9669         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
9670         than stat to determine if temp file is same as input file.
9671         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
9672         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
9673
9674 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
9675
9676         * configure.ac (mips*-*-*): Print an error if not using GAS.
9677         * configure: Regenerated.
9678         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
9679         comments about buggy MIPSpro assemblers.
9680         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
9681         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
9682         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
9683         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
9684         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
9685         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
9686         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
9687         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
9688         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
9689         of more general IRIX 6 definitions.
9690         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
9691         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
9692         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
9693         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
9694         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
9695         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
9696         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
9697         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
9698         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
9699         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
9700         (LINK_SPEC): Move most of definition to iris.h.
9701         (SUBTARGET_LINK_SPEC): New macro.
9702         (IRIX_STARTFILE_SPEC): Fold into...
9703         (STARTFILE_SPEC): ...here.
9704         (IRIX_ENDFILE_SPEC): Fold into...
9705         (ENDFILE_SPEC): ...here.
9706         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
9707         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
9708         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
9709         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
9710         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
9711         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
9712         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
9713         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
9714         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
9715         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
9716         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
9717         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
9718         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
9719         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
9720         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
9721         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
9722         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
9723         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
9724         (TARGET_IRIX6): Define to 1.
9725         (DRIVER_SELF_SPECS): Define.
9726         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
9727         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
9728         (SUBTARGET_LINK_SPEC): New macro.
9729         (IRIX_STARTFILE_SPEC): Fold into...
9730         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
9731         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
9732         (LIB_SPEC, LIBGCC_SPEC): Use them.
9733         (LIB_SPEC): Remove !mabi=* case.
9734         (IRIX_ENDFILE_SPEC): Fold into...
9735         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
9736         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
9737         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
9738         (TARGET_IRIX6): New macro.
9739         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
9740         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
9741         (LABEL_AFTER_LOC): Delete.
9742         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
9743         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
9744         (mips_build_builtin_va_list): Check TARGET_IRIX6.
9745         (override_options): Remove TARGET_SGI_O32_AS-related code.
9746         (irix_output_external_libcall): Make static.
9747         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
9748         LABEL_AFTER_LOC.
9749         (mips_file_start): Tidy guard for ABI sections.  Remove use of
9750         ABICALLS_ASM_OP; use .abicalls instead.
9751         (mips_output_aligned_decl_common, mips_declare_object_name)
9752         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
9753         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
9754         .globl foo .text directives.
9755         (irix_asm_named_section_1, irix_asm_named_section)
9756         (irix_section_align_entry, irix_section_align_htab)
9757         (irix_orig_asm_out_file, irix_section_align_entry_eq)
9758         (irix_section_align_entry_hash, irix_asm_output_align)
9759         (irix_file_start, irix_section_align_1, copy_file_data)
9760         (irix_file_end, irix_section_type_flags): Delete.
9761         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
9762         Use standard section syntax.  Remove protective "jr $31".
9763         (__gcc_fini): Likewise .gcc_fini.
9764         * config/mips/irix-crtn.asm: Adjust sections accordingly.
9765         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
9766         iris5gas.h.
9767         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
9768         from t-irix-gld.
9769         (EXTRA_MULTILIB_PARTS): Define.
9770         * config/mips/t-iris6: Remove bogus comment.
9771         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
9772         * config/mips/iris5gas.h, config/mips/iris5gld.h,
9773         config/mips/iris6gas.h, config/mips/iris6gld.h,
9774         config/mips/t-iris5-as, config/mips/t-iris5-gas
9775         config/mips/t-irix-gld: Delete.
9776         * config/mips/iris.h: New file.
9777         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
9778
9779 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
9780
9781         * postreload.c (reload_cse_move2add): Allow any condjump, but check
9782         that the implicit set isn't clobbered in the jump insn.
9783
9784 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
9785
9786         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
9787         * optabs.c (init_optabs): Don't check it.
9788         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
9789         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
9790
9791 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
9792
9793         * config/s390/s390.md (s390_warn_framesize_string)
9794         (s390_warn_dynamic_string, s390_stack_size_string)
9795         (s390_stack_guard_string): New global string variables.
9796         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
9797         (s390_stack_guard): New global variables.
9798         (override_options): Added checks for the new options.
9799         (s390_emit_prologue): Emit stack check and trap code and perform
9800         compile time stack size checking.
9801
9802         * config/s390/s390.h (TARGET_OPTIONS): Added new options
9803         "warn-framesize", "warn-dynamicstack", "stack-size" and
9804         "stack-guard".
9805
9806         * doc/invoke.texi: Added documentation for the new options.
9807
9808 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
9809
9810         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
9811         to eliminate warning.
9812         (linear_search_fdes): Declare p as unsigned.
9813         (binary_search_mixed_encoding_fdes): Likewise.
9814         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
9815         to eliminate warning.
9816         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
9817         type cast.
9818
9819 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
9820
9821         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
9822         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
9823         instead of one.  Check for strictly legitimate address.
9824         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
9825         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
9826
9827 2004-08-19  Eric Christopher  <echristo@redhat.com>
9828
9829         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
9830         * langhooks.h (unsave_expr_now): Ditto.
9831         * tree.h (unsave_expr_1): Remove prototype.
9832         (lhd_unsave_expr_now): Rename to unsave_expr_now.
9833         * tree-inline.c (unsave_expr_1): Move here
9834         from tree.c. Make static.
9835         (unsave_expr_now): Rename from lhd_unsave_expr_now.
9836         * tree-sra.c: Fix up for rename.
9837         * tree-ssa-copy.c: Ditto.
9838         * tree-eh.c: Ditto.
9839         * tree.c (unsave_expr_1): Move to tree-inline.c.
9840
9841 2004-08-19  Caroline Tice  <ctice@apple.com>
9842
9843         * config/i386/cygming.h (switch_to_section):  Fix typo (change
9844         in_unlikely_text_section to in_unlikely_executed_text).
9845
9846 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
9847
9848         * vec.h (VEC_lower_bound): New macro.
9849
9850 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
9851
9852         PR target/16446
9853         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
9854         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
9855         treat each ABI separately.  Deal with n32/n64 complex float arguments.
9856         (function_arg): Add associated complex handling here.
9857
9858 2004-08-19  Richard Henderson  <rth@redhat.com>
9859
9860         * config/arm/arm.c (arm_gen_load_multiple): Use
9861         adjust_automodify_address.  Take base memory and offset instead
9862         of unchanging/struct/scalar bits.
9863         (arm_gen_store_multiple): Likewise.
9864         (arm_gen_movmemqi): Use adjust_automodify_address.
9865         * config/arm/arm-protos.h: Update decls.
9866         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
9867         (store_multiple): Similarly.
9868
9869 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
9870
9871         * regclass.c (globalize_reg): Update call_really_used_regs.
9872
9873 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
9874
9875         * doc/invoke.texi (integer-share-limit): Document.
9876
9877         * tree.h (TYPE_CACHED_VALUES_P): New.
9878         (TYPE_CACHED_VALUES): New.
9879         (TYPE_ORIG_SIZE_TYPE): Adjust.
9880         * tree.def (INTEGER_CST): Update documentation.
9881         * tree.c: Inlcude params.h.
9882         (build_int_cst): Cache small values.
9883         (build_type_copy): Do not copy the value cache.
9884         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
9885         unneeded zeroing.
9886         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
9887         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
9888         cache.
9889         * fold-const.c (force_fit_type): Copy value when setting
9890         overflows.
9891         (int_const_binop): Likewise.
9892         * stor-layout.c: Include params.h
9893         (set_sizetype): Create values cache.
9894         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
9895         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
9896         * params.h (INTEGER_SHARE_LIMIT): New.
9897         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
9898
9899 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
9900
9901         * gimplify.c (gimplify_minimax_expr): Remove.
9902         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
9903
9904 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
9905
9906         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
9907         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
9908
9909 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
9910
9911         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
9912
9913 2004-08-18  Andrew Pinski  <apinski@apple.com>
9914
9915         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
9916
9917 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
9918
9919         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
9920         (__aeabi_ul2f): Likewise.
9921
9922 2004-08-18  Richard Henderson  <rth@redhat.com>
9923
9924         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
9925         move to rtl completely.
9926         (struct meminsnbuf, xtensa_emit_block_move): Remove.
9927         (xtensa_find_mode_for_size): Remove.
9928         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
9929         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
9930
9931 2004-08-18  Richard Henderson  <rth@redhat.com>
9932
9933         * config/mcore/mcore.c (mode_from_align): Remove DImode.
9934         (block_move_sequence): Rewrite to use adjust_address.
9935         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
9936         Return boolean indicating success/failure.
9937         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
9938         * config/mcore/mcore.md (movmemsi): Update to match.
9939
9940 2004-08-18  Mike Stump  <mrs@apple.com>
9941
9942         * doc/invoke.texi (-mfix-and-continue): Add support for
9943         fast turn around debugging.
9944         (-ffix-and-continue): Likewise.
9945         (-mindirect-data): Likewise.
9946         (-findirect-data): Likewise.
9947         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
9948         (indirect_data): Likewise.
9949         (machopic_data_defined_p): Likewise.
9950         (machopic_output_indirection): Likewise.
9951         (darwin_encode_section_info): Likewise.
9952         (darwin_fix_and_continue): Likewise.
9953         (darwin_fix_and_continue_switch): Likewise.
9954         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
9955         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
9956         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
9957         (SUBTARGET_OPTIONS): Likewise.
9958         (darwin_fix_and_continue): Likewise.
9959         (darwin_fix_and_continue_switch): Likewise.
9960         (TARGET_FIX_AND_CONTINUE): Likewise.
9961         * config/rs6000.c (rs6000_emit_prologue): Likewise.
9962
9963 2004-08-19  Steven Bosscher  <stevenb@suse.de>
9964
9965         * basic-block.h (struct edge_def): Remove crossing_edge.
9966         (EDGE_CROSSING): New define.
9967         (EDGE_ALL_FLAGS): Update.
9968         * bb-reorder.c (find_traces_1_round, better_edge_p,
9969         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
9970         find_jump_block, fix_crossing_conditional_branches,
9971         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
9972         Replace all occurences of crossing_edge with an edge flag check
9973         or set/reset.
9974         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
9975         try_crossjump_bb): Likewise.
9976         * cfglayout.c (fixup_reorder_chain): Likewise.
9977         * cfgrtl.c (force_nonfallthru_and_redirect,
9978         commit_one_edge_insertion): Likewise.
9979
9980         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
9981         * tree-flow.h (compute_dominance_frontiers): Move prototype...
9982         * basic-block.h:  ...here.
9983         * tree-cfg.c (compute_dominance_frontiers_1,
9984         compute_dominance_frontiers): Move from here...
9985         * cfganal.c: ...to here.  Include timevar.h.
9986
9987 2004-08-18  James E Wilson  <wilson@specifixinc.com>
9988
9989         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
9990         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
9991
9992         * config/mips/mips.md (type): Add frdiv.
9993         (divsf3+1, divsf3+2): Change type to frdiv.
9994         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
9995         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
9996
9997         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
9998         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
9999         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
10000         * config/mips/5000.md (r5k_fdiv_single): Likewise.
10001         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
10002         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
10003         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
10004         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
10005         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
10006         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
10007         Likewise.
10008         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
10009
10010 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
10011
10012         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
10013         get regression tester working again.
10014
10015 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10016
10017         * insn-notes.def, reg-notes.def: New files.
10018         * rtl.h: Use them to define enum insn_note and enum reg_note.
10019         * rtl.c: Use them to define note_insn_name and reg_note_name.
10020         * Makefile.in (RTL_BASE_H): Update.
10021
10022         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
10023         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
10024
10025 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
10026
10027         * arm.c (arm_size_rtx_costs): New function.
10028         (arm_override_options): Use it if optimizing for space.
10029
10030 2004-08-18  Richard Henderson  <rth@redhat.com>
10031
10032         * emit-rtl.c (gen_const_mem): New.
10033         * rtl.h (gen_const_mem): Declare.
10034         * expr.c (do_tablejump): Use it.
10035         * varasm.c (force_const_mem): Likewise.
10036         * config/darwin.c (machopic_indirect_data_reference): Likewise.
10037         (machopic_legitimize_pic_address): Likewise.
10038         * config/arm/arm.c (legitimize_pic_address): Likewise.
10039         * config/i386/i386.c (legitimize_pic_address): Likewise.
10040         (legitimize_tls_address): Likewise.
10041         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10042         * config/ia64/ia64.md (load_fptr): Likewise.
10043         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
10044         * config/pa/pa.c (legitimize_pic_address): Likewise.
10045         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10046         (rs6000_emit_move): Likewise.
10047         * config/s390/s390.c (legitimize_pic_address): Likewise.
10048         (legitimize_tls_address): Likewise.
10049         * config/s390/s390.md (casesi): Likewise.
10050         * config/sh/sh.c (sh_reorg): Likewise.
10051         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
10052         * config/v850/v850.md (casesi): Likewise.
10053
10054         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
10055         * config/sh/sh.c (prepare_move_operands): Remove incorrect
10056         use of MEM_READONLY_P.
10057
10058 2004-08-18  Steven Bosscher  <stevenb@suse.de>
10059
10060         * Makefile.in (OBJS-common): Add postreload-gcse.c.
10061         Add new postreload-gcse.o.
10062         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
10063         (lookup_as_function, insert, rehash_using_reg, use_related_value,
10064         equiv_constant): Use SAFE_HASH instead of safe_hash.
10065         (exp_equiv_p): Export.  Add for_gcse argument when comparing
10066         for GCSE.
10067         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
10068         find_comparison_args, fold_rtx, cse_insn): Update callers.
10069         (hash_rtx): New function derived from old canon_hash and bits
10070         from gcse.c hash_expr_1.
10071         (canon_hash_string): Rename to hash_rtx_string.
10072         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
10073         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
10074         (cselib_lookup): Update this caller.
10075         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
10076         Make static.
10077         (hash_expr): Call hash_rtx.
10078         (ldst_entry): Likewise.
10079         (expr_equiv_p): Call exp_equiv_p.
10080         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
10081         reg_used_on_edge, reg_set_between_after_reload_p,
10082         reg_used_between_after_reload_p, get_avail_load_store_reg,
10083         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
10084         get_bb_avail_insn, hash_scan_set_after_reload,
10085         compute_hash_table_after_reload,
10086         eliminate_partially_redundant_loads, gcse_after_reload,
10087         get_bb_avail_insn, gcse_after_reload_main): Remove.
10088         * postreload-gcse.c: New file, reincarnating most of the above.
10089         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
10090         (gcse_after_reload_main): Update prototype.
10091         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
10092         * passes.c (rest_of_handle_gcse2): Use it.
10093
10094 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10095
10096         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
10097         (pass_loop_done): Likewise.
10098
10099 2004-08-18  Andrew Pinski  <apinski@apple.com>
10100
10101         * config/rs6000/darwin.md: Delete the altivec patterns which are
10102         handled differently now.
10103         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
10104         (macho_correct_pic_di): Likewise.
10105         (call_indirect_nonlocal_darwin64): Likewise.
10106         Delete the save world/saveFP/saveVec patterns.
10107
10108         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
10109         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10110         * config/rs6000/rs6000.md: Include darwin.md.
10111         (builtin_setjmp_receiver): Add DImode case.
10112         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
10113         Darwin bits.
10114
10115 2004-08-18  Matt Austern  <austern@apple.com>
10116
10117         Dead code stripping
10118         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
10119         * darwin.c (darwin_file_end): Mark file as potentially strippable.
10120
10121 2004-08-18  Richard Henderson  <rth@redhat.com>
10122
10123         * alias.c (readonly_fields_p): Remove.
10124         (objects_must_conflict_p): Don't call it.
10125         * tree.h (readonly_fields_p): Remove.
10126         * langhooks.h (struct lang_hooks): Remove honor_readonly.
10127         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
10128
10129 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
10130
10131         * tree-dfa.c (add_referenced_var): Only global variables are
10132         call-clobbered.
10133         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
10134         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
10135         all pointers dereferenced if the statement dereferences them.
10136         (create_name_tags): Do not create memory tags for pointers
10137         that have PT_ANYTHING set.
10138         Also check if PT_VARS is not empty before creating a name tag.
10139         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
10140         variables that share the same alias set with a pointer that
10141         may point anywhere.
10142         (add_may_alias): Add FIXME comment to remove clobbering
10143         aliased variables and tags.
10144         (replace_may_alias): Likewise.
10145         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
10146         (merge_pointed_to_info): If the original variable has not
10147         points-to information, call set_pt_anything.
10148         (add_pointed_to_var): Do not prevent adding a pointed-to
10149         variable if the pointers is PT_ANYTHING.
10150         If the variable is a global, set PT_GLOBAL_MEM.
10151         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
10152         pointer type only come in PTR+OFFSET flavours.
10153         Always call merge_pointed_to_info on PHI arguments that are
10154         SSA_NAMEs.
10155         (get_nmt_for): Mark call-clobbered tags whose pointer points
10156         to global memory.
10157         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
10158         values.
10159         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
10160         FLAGS.
10161         (add_stmt_operand): Abort if the caller tried to add a killing
10162         definition for a memory tag.
10163         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
10164         unnecessary checks.
10165
10166 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
10167
10168         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
10169         from call_used_regs.  Update call_really_used_regs.
10170         (CALL_REALLY_USED_REGISTERS): Define.
10171         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
10172         Replace call_used_regs with call_really_used_regs.
10173         (calc_live_regs, sh_media_register_for_return): Likewise.
10174         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
10175         * sh.md (return_media): Likewise.
10176
10177 2004-08-18  Andrew Pinski  <apinski@apple.com>
10178
10179         * config/darwin.c (machopic_legitimize_pic_address): Only set
10180         MEM_READONLY_P in the non TARGET_TOC case.
10181
10182 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10183
10184         * rtl.def (NIL): Delete.
10185         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
10186         Tighten the syntax a little.
10187
10188         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
10189         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
10190         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
10191         * config/i386/predicates.md, config/m32r/m32r.h
10192         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
10193         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
10194         * config/sparc/sparc.h, doc/tm.texi:
10195         Replace all occurrences of NIL with UNKNOWN.
10196
10197 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
10198
10199         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
10200         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
10201         sequence inline.  Move drop_through_label code into this
10202         block, being the only place it is used.  Adjust comments.
10203
10204 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
10205
10206         * config/rs6000/altivec.md: Add new patterns for calls to
10207         save_world/rest_world functions.
10208
10209         * config/rs6000/rs6000-protos.h: (save_world_operation,
10210         restore_world_operation) new declarations.
10211
10212         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
10213         field added.
10214         (rs6000_stack_info): Set world_save_p field.
10215         (save_world_operation): New function.
10216         (restore_world_operation): New function.
10217         (compute_save_world_info): New function.
10218         (rs6000_stack_info): Call compute_save_world_info.
10219         (rs6000_emit_prologue): Check for world_save_p and generate
10220         pattern to call save_world for saving all non-volatile and
10221         special registers.
10222         (rs6000_emit_epilogue): Check for world_save_p and generate
10223         pattern to call rest_world to restore saved registers.
10224
10225         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
10226         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
10227         (rs6000_reg_names): New entries added for save_world_operation and
10228         restore_world_operation.
10229
10230 2004-08-18  Caroline Tice  <ctice@apple.com>
10231
10232         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
10233         "-freorder-blocks-and-partition" to the flags used in second
10234         stage of profiledbootstrap.
10235         * bb-reorder.c (push_to_next_round_p): Add new variable,
10236         next_round_is_last; set and use variable to make sure, when
10237         partitioning, that the last trace construction round consists
10238         of all (and only) cold basic blocks.
10239         (rotate_loop): Don't copy blocks that end in a section
10240         crossing jump.
10241         (copy_bb): Correctly initialize "partition" of duplicated bb.
10242         (add_unlikely_executed_notes): Add a comment.
10243         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
10244         to make sure, if function contains hot blocks, that the
10245         successors of ENTRY_BLOCK_PTR are hot; also, only look for
10246         crossing edges if the architecture supports named sections.
10247         (mark_bb_for_unlikely_executed_section): Modify to always
10248         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
10249         the basic block note insn.
10250         (fix_crossing_unconditional_branches): Remove extra space.
10251         (fix_edges_for_rarely_executed_code): Modify to only do
10252         partitioning work if the architecture supports named sections.
10253         (reorder_basic_blocks): Modify to only add
10254         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
10255         supports named sections.
10256         * c-common.c (handle_section_attribute): Initialize new global
10257         variable, user_defined_section_attribute, to true if user has
10258         specified one.
10259         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
10260         forward edges that cross section boundaries.
10261         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
10262         partitioning information if the architecture supports named
10263         sections.
10264         * cfgrtl.c (target.h): Add statement to include this.
10265         (rtl_split_block): Make sure newly created bb gets correct
10266         partition.
10267         (try_redirect_by_replacing_jump): Make sure redirection isn't
10268         attempting to cross section boundaries.
10269         (force_nonfallthru_and_redirect): Only do partition fix up if
10270         architecture supports named sections.
10271         (rtl_split_edge): Make sure newly created bb ends up in
10272         correct partition.
10273         (commit_one_edge_insertion): Remove code that incorrectly
10274         updated basic block partition; Make sure partition fix up only
10275         happens if architecture supports named sections and it's not
10276         already done.
10277         (rtl_verify_flow_info_1): Fix if-condition on test/error
10278         condition that fallthru edges are not allowed to cross section
10279         boundaries.
10280         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
10281         * final.c (final_scan_insn): Remove redundant test from if-statement;
10282         change calls to text_section into calls to function_section; add code
10283         to only to partitioning fix up if architecture supports named
10284         sections.
10285         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
10286         partition.
10287         (if_convert): Add targetm.have_named_sections to test.
10288         * output.h (unlikely_section_label): Extern declaration for new global
10289         variable.
10290         (unlikely_text_section_name): Likewise.
10291         * opts.c (decode_options): If both partitioning and DWARF debugging
10292         are turned on, issue a warning that this doesn't work, and change
10293         partitiong to basic block reordering (without hot/cold partitions).
10294         * passes.c (rest_of_handle_final): Re-set new global variable,
10295         user_defined_section_attribute, to false.
10296         (rest_of_compilation): Change options for calling partitioning
10297         function: Don't call if the user defined the section attribute, and
10298         don't call if DECL_ONE_ONLY is true for the current function.
10299         * predict.c (choose_function_section): Return immediately if we
10300         are doing hot/cold partitioning (i.e. let the basic block partitioning
10301         determine where the function belongs).
10302         * reg-stack.c (emit_swap_insn): Add condition to step over
10303         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
10304         * toplev.c (user_defined_section_attribute): New global variable.
10305         * toplev.h (user_defined_section_attribute): Extern declaration
10306         for new global variable.
10307         * varasm.c (unlikely_section_label): New global variable.
10308         (unlikely_text_section_name): New global variable.
10309         (unlikely_text_section): Add code to initialize
10310         unlikely_text_section_name if necessary; modify to use
10311         unlikely_text_section_name and unlikely_section_label; also to use
10312         named_section properly.
10313         (in_unlikely_text_section):  Modify to work correctly with
10314         named_section and to use unlikely_text_section_name.
10315         (named_section):  Add code to work properly with cold section.
10316         (function_section): Clean up if-statement.
10317         * config/darwin.c (darwin_asm_named_section): Return to original
10318         code, removing use of SECTION_FORMAT_STRING.
10319         * config/arm/pe.h (switch_to_section):  Add case for
10320         in_unlikely_executed_text to switch statement.
10321         * config/i386/cygming.h (switch_to_section): Likewise.
10322         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10323         (SECTION_FORMAT_STRING): Likewise.
10324         * config/mcore/mcore.h (switch_to_section): Likewise.
10325         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
10326         (SECTION_FORMAT_STRING): Remove.
10327
10328 2004-08-18  Roger Sayle  <roger@eyesopen.com>
10329
10330         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
10331         -ffixed-reg safe, by preserving the meanings of zero and one.
10332         (CALL_USED_REGISTERS): Likewise.
10333         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
10334
10335 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
10336
10337         * config/sh/sh.c (split_branches): Check the result of
10338         next_active_insn.
10339         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
10340         Call rtl_register_cfg_hooks.
10341
10342 2004-08-18  Richard Henderson  <rth@redhat.com>
10343
10344         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
10345         * alias.c (true_dependence): Update to match new semantics.
10346         (canon_true_dependence, write_dependence_p): Likewise.
10347         (anti_dependence, output_dependence): Update write_dependence_p args.
10348         (unchanging_anti_dependence): Remove.
10349         * calls.c (purge_mem_unchanging_flag): Remove.
10350         (fixup_tail_calls): Don't call it.
10351         (expand_call): Don't add unchanging memory to function usage.
10352         * expr.c (emit_block_move_via_libcall): Likewise.
10353         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
10354         (get_subtarget): Don't use RTX_UNCHANGING_P.
10355         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
10356         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
10357         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
10358         * cse.c (insert): Don't use RTX_UNCHANGING_P.
10359         (cse_insn, canon_hash): Use MEM_READONLY_P.
10360         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
10361         instead of RTX_UNCHANGING_P.
10362         * explow.c (maybe_set_unchanging): Remove.
10363         * expr.h (maybe_set_unchanging): Remove.
10364         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
10365         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
10366         (assign_parm_setup_reg, expand_function_start): Likewise.
10367         * integrate.c (copy_rtx_and_substitute): Likewise.
10368         * ra-rewrite.c (emit_colors): Likewise.
10369         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
10370         (fixup_match_1): Likewise.
10371         * reload1.c (reload, alter_reg): Likewise.
10372         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
10373         not RTX_UNCHANGING_P.
10374         (equiv_init_varies_p): Likewise.
10375         * loop-invariant.c (check_maybe_invariant): Likewise.
10376         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
10377         * loop.c (note_addr_stored): Likewise.
10378         (prescan_loop): Likewise. Don't check function usage for clobbered
10379         unchanging memory.
10380         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
10381         not RTX_UNCHANGING_P.
10382         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
10383         * varasm.c (force_const_mem): Likewise.
10384         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
10385         * web.c (entry_register): Likewise.
10386         * tree-gimple.h (get_base_address): Move decl ...
10387         * tree.h: ... here.
10388         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
10389
10390         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
10391         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
10392         (alpha_set_memflags): Update to match.
10393
10394         * config/darwin.c (machopic_indirect_data_reference): Set
10395         MEM_READONLY_P instead of RTX_UNCHANGING_P.
10396         (machopic_indirect_call_target): Likewise.
10397         (machopic_legitimize_pic_address): Likewise.
10398         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
10399         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
10400         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
10401         * config/frv/frv.md (symGOT2reg): Likewise.
10402         * config/i386/i386.c (legitimize_pic_address,
10403         legitimize_tls_address, ix86_split_to_parts): Likewise.
10404         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
10405         * config/ia64/ia64.md (load_fptr): Likewise.
10406         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
10407         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
10408         * config/mcore/mcore.c (block_move_sequence): Likewise.
10409         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
10410         * config/pa/pa.c (legitimize_pic_address): Likewise.
10411         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
10412         (rs6000_emit_move): Likewise.
10413         * config/s390/s390.c (legitimize_pic_address): Likewise.
10414         (legitimize_tls_address): Likewise.
10415         * config/s390/s390.md (casesi): Likewise.
10416         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
10417         * config/sh/sh.md (symGOT2reg): Likewise.
10418         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
10419         * config/v850/v850.md (casesi): Likewise.
10420
10421         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
10422         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
10423         * config/mips/mips.c (mips_restore_gp): Likewise.
10424         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
10425         * config/sh/sh.c (sh_reorg): Likewise.
10426
10427 2004-08-18  Richard Henderson  <rth@redhat.com>
10428
10429         * tree.h (struct tree_decl): Add gimple_formal_temp.
10430         (DECL_GIMPLE_FORMAL_TEMP_P): New.
10431         * gimplify.c (pop_gimplify_context): Clear it.
10432         (lookup_tmp_var): Set it, if is_formal.
10433         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
10434         Use is_gimple_val for VECTOR.  Simplify return value.
10435         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
10436         (gimplify_expr): Likewise.
10437         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
10438         is_gimple_tmp_rhs for clarity.  Update all callers.
10439         (is_gimple_reg_rhs): Simplify logic.
10440         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
10441         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
10442         (is_gimple_formal_tmp_reg): Similarly.
10443         * tree-gimple.h: Update decls.
10444         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
10445         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
10446         * tree-ssa-live.c (var_union, type_var_init): Likewise.
10447
10448 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
10449
10450         * c4x.c (legitimize_operands): Remove calls to
10451         preserve_subexpressions_p.
10452
10453 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
10454
10455         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
10456         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
10457
10458 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
10459
10460         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
10461         Objective-C++ extensions.
10462         * gengtype.c (get_file_basename): Match entire subdirectory name
10463         ('cp', 'objc', 'objcp') rather than just its suffix.
10464         (get_base_file_bitmap): Allow for files to belong to more than one
10465         language.
10466         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
10467         used by more than one front-end.
10468
10469 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
10470
10471         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
10472         avoid use of preserve_subexpressions_p.
10473
10474 2004-08-17  Richard Henderson  <rth@redhat.com>
10475
10476         PR 17051
10477         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
10478
10479 2004-08-17  DJ Delorie  <dj@redhat.com>
10480
10481         * doc/extend.texi: Document new xstormy16 attribute.
10482
10483         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
10484         (xstormy16_splittable_below100_or_register): New.
10485         (combine_bnp): New.
10486         (xstormy16_reorg): New.
10487         (TARGET_MACHINE_DEPENDENT_REORG): Define.
10488
10489         * config/stormy16/stormy16.md (movqi_internal): Make name public.
10490         (movhi_internal): Likewise.
10491         (cbhranchhi): Likewise.
10492         (cbhranchhi_neg): Likewise.
10493         (andhi3): Only allow splittable below100 operands.
10494         (iorhi3): Likewise.
10495         (peephole2): New and/zero_extend->and peephole.
10496         (peephole2): New load/ior/save->set1 peephole.
10497         (peephole2): New load/and/save->clr1 peephole.
10498         (bclrx, bclrx2, bclr7, bclr15): New.
10499         (bsetx, bsetx2, bset7, bset15): New.
10500
10501         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
10502         liberal about acceptable 'B' masks.
10503
10504         * config/stormy16/stormy16-protos.h
10505         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
10506         xstormy16_below100_operand, xstormy16_below100_or_register,
10507         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
10508         (PREDICATE_CODES): Add new predicates.
10509
10510         * config/stormy16/stormy16.c
10511         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
10512         xstormy16_below100_operand, xstormy16_below100_or_register,
10513         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
10514         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
10515         (xstormy16_legitimate_address_p): Allow below100 symbols.
10516         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
10517         (xstormy16_expand_move): Leave below100 operands as-is.
10518         (xstormy16_encode_section_info): Encode below100 symbols.
10519         (xstormy16_strip_name_encoding): New.
10520         (xstormy16_print_operand): Print 'b' as shift mask.
10521         (xstormy16_attribute_table): Add below100 attributes.
10522         (xstormy16_handle_below100_attribute): New.
10523
10524         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
10525         (XSTORMY16_SECTION_FUNCTION): New.
10526         (EXTRA_SECTION_FUNCTIONS): Define using the above.
10527         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
10528         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
10529         (ASM_OUTPUT_LABELREF): Define.
10530
10531         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
10532         (movhi_internal): Add below100 support.
10533         (andhi3): Add below100 support.
10534         (iorhi3): Add below100 support.
10535         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
10536
10537 2004-08-17  James E Wilson  <wilson@specifixinc.com>
10538
10539         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
10540         of VOIDmode for comparison code mode.
10541         * config/mips/mips.md: For conditional move patterns, use mode of
10542         first compare operand for comparison mode, instead of VOIDmode.
10543
10544         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
10545         normal and -ffast-math code.
10546
10547 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
10548
10549         PR c++/15871
10550         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
10551
10552 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
10553
10554         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
10555
10556 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
10557
10558         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
10559         for non Darwin targets.
10560         (*call_value_nonlocal_darwin64): Likewise.
10561
10562 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
10563
10564         * config/rs6000/rs6000.c (rs6000_function_value): Check for
10565         altivec mode for altivec return register.
10566
10567 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
10568
10569         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
10570         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10571         * config/rs6000/rs6000.md: Include darwin.md.
10572         (builtin_setjmp_receiver): Add DImode case.
10573         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
10574         Darwin bits.
10575
10576 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
10577
10578         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
10579         trees.
10580         * tree-vectorizer.h: New File: Same.
10581         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
10582         * common.opt (ftree-vectorize): New flag to enable vectorization.
10583         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
10584         vectorization pass.
10585         * tree-data-ref.h (init_data_ref): Additional argument.
10586         (array_base_name_differ_p): Moved to tree-data-ref.c.
10587         * tree-data-ref.c (array_base_name_differ_p): Revised.
10588         (initialize_data_dependence_relation): Call array_base_name_differ_p
10589         with an extra argument.
10590         (analyze_all_data_dependences): Same.
10591         (init_data_ref): Additional argument is_read to set DR_IS_READ.
10592         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
10593         file.
10594         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
10595         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
10596         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
10597         vectorization pass.
10598         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
10599         (tree_ssa_loop_done): Call scev_finalize.
10600         (tree_vectorize): Define the new vectorization pass.
10601         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
10602         size of the vector they support (until support for multiple vector
10603         sizes is added to the vectorizer).
10604         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
10605         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
10606         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
10607         documentation.
10608
10609 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
10610
10611         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
10612         usage.
10613         (generate_protocol_list, handle_impent): Likewise.
10614
10615 2004-08-17  Roger Sayle  <roger@eyesopen.com>
10616
10617         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
10618         ensure that call_used_regs is a superset of both fixed_regs and
10619         call_really_used_regs.
10620
10621 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
10622
10623         PR target/17019
10624         * arm.md (addsi3_cbranch_scratch): Correct case labels.
10625
10626 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
10627
10628         PR middle-end/17036
10629         * fold-const.c (fold): Check for integer operand when
10630         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
10631         Pinski  <pinskia@physics.uc.edu>.
10632
10633 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
10634
10635         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
10636         No need to check if in a cross configuration.
10637         * configure: Regenerate.
10638
10639         * calls.c (precompute_register_parameters):
10640         Inline preserve_subexpressions_p ().
10641         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
10642         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
10643         Likewise.
10644         * expr.c (get_subtarget): Likewise.
10645         * rtl.h (preserve_subexpressions_p): Remove.
10646         * stmt.c (preserve_subexpressions_p): Remove.
10647
10648         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
10649         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
10650         Abort on gimplified cases.
10651
10652 2004-08-16  James E Wilson  <wilson@specifixinc.com>
10653
10654         * tree.h (VECTOR_FLOAT_TYPE_P): New.
10655         (FLOAT_TYPE_P): Use it.
10656         * c-typeck.c (build_binary_op): After convert calls, check for
10657         check for ERROR_MARK operands.
10658
10659 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
10660
10661         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
10662         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
10663         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
10664         (genobjs static pattern rule): Remove %.c dependency.
10665         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
10666         Rename rules; delete commands; fix dependencies.
10667         (mostlyclean): Do not delete temporary source copies.
10668         * configure.ac: Delete all references to BUILD_PREFIX and
10669         BUILD_PREFIX_1.
10670         * configure: Regenerate.
10671
10672         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
10673         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
10674         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
10675         with #ifndef GENERATOR_FILE so that nothing from those headers
10676         is used.
10677
10678         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
10679
10680 2004-08-16  Adam Nemet  <anemet@lnxw.com>
10681
10682         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
10683
10684 2004-08-16  Andrew Pinski  <apinski@apple.com>
10685
10686         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
10687         extraneous semicolon.
10688
10689 2004-08-16  Devang Patel  <dpatel@apple.com>
10690
10691         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
10692         * print-tree.c (print_node): Print DECL_PRESERVE_P.
10693         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
10694         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
10695         * target.h (struct gcc_target): New member, mark_decl_preserved.
10696         * hooks.c (hook_void_charptr): Rename to ...
10697         (hook_void_constcharptr): ... new name.
10698         * hooks.h (hook_void_charptr): Rename to ..
10699         (hook_void_constcharptr): ... new name.
10700         * tree.h (DECL_PRESERVE_P): New #define.
10701         (struct tree_decl): New member, preserve_flag.
10702         * varasm.c (assemble_start_function): Mark decl preserved.
10703         (assemble_variable): Same.
10704         * darwin.c (darwin_mark_decl_preserved): New function.
10705         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
10706         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
10707         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
10708
10709 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10710
10711         * c-decl.c (grokdeclarator): Allow for function definition where
10712         innermost declarator has attributes.
10713
10714 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
10715
10716         * except.c (get_exception_filter, build_post_landing_pads,
10717         dw2_build_landing_pads): Use target-specific mode for 'filter'.
10718         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
10719         * target.h (eh_return_filter_mode): New field added.
10720         * targhooks.c (default_eh_return_filter_mode): Defined.
10721         * targhooks.h (default_eh_return_filter_mode): Declared.
10722         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
10723
10724 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10725
10726         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
10727         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
10728         * configure: Regenerate.
10729
10730 2004-08-16  Stan Shebs  <shebs@apple.com>
10731
10732         Basic support for 64-bit Darwin.
10733         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
10734         (machopic_legitimize_pic_address): Similarly, plus use Pmode
10735         instead of SImode.
10736         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
10737         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
10738         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
10739         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
10740         (PROCESSOR_DEFAULT64): Define.
10741         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
10742         Darwin.
10743         * config/rs6000/rs6000.md: Include darwin.md.
10744         (builtin_setjmp_receiver): Add DImode case.
10745         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
10746         Darwin.
10747         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
10748         (rs6000_emit_move): Add DImode case to Darwin bits.
10749         (machopic_output_stub): Use .quad if 64-bit.
10750         * invoke.texi: Document -m32 and -m64.
10751
10752 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
10753
10754         * doc/extend.texi (AltiVec builtins): Document additional differences
10755         from the Motorola AltiVec PIM.
10756
10757 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
10758
10759         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
10760         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
10761         (struct tree_common): Update public_flag documentation.
10762
10763 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
10764
10765         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
10766         Check for artificial variables, not is_gimple_tmp_var.
10767         * tree-ssa-live.c (var_union): Likewise.
10768
10769 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
10770
10771         * calls.c (load_register_parameters): Remove spurious FIXME token.
10772
10773 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
10774
10775         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
10776         (c-lang.o): Depend on c-objc-common.h.
10777         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
10778         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
10779         * c-lang.c: Include c-objc-common.h.
10780         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
10781         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
10782         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
10783         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
10784         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
10785         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
10786         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
10787         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
10788         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
10789         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
10790         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
10791         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
10792         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
10793         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
10794         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
10795         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
10796         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
10797         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
10798         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
10799         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
10800         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
10801         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
10802         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
10803         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
10804         Move to c-objc-common.h.
10805         * c-objc-common.c: Include c-objc-common.h.
10806         * c-objc-common.h: New file.
10807
10808 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
10809             Andrew Pinski  <pinskia@physics.uc.edu>
10810
10811         PR target/14931
10812         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
10813         style.
10814
10815 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
10816
10817         * tree.h (build_int_cst): New.
10818         (build_int_2): Remove.
10819         * tree.c (build_int_2): Remove.
10820         (build_int_cst): New.
10821         (make_vector_type, build_common_tree_nodes,
10822         build_common_tree_nodes_2): Use build_int_cst.
10823         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
10824         expand_builtin_strpbrk, expand_builtin_fputs,
10825         build_string_literal, expand_builtin_printf,
10826         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
10827         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
10828         fold_builtin_isdigit, simplify_builtin_strstr,
10829         simplify_builtin_strpbrk, fold_builtin_fputs,
10830         simplify_builtin_sprintf): Use build_int_cst.
10831         * c-common.c (start_fname_decls, fix_string_type,
10832         c_common_nodes_and_builtins, c_init_attributes,
10833         shorten_compare): Likewise.
10834         * c-decl.c (complete_array_type,
10835         check_bitfield_type_and_width): Likewise.
10836         * c-lex.c (interpret_integer, lex_charconst): Likewise.
10837         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
10838         * c-pretty-print.c (pp_c_integer_constant): Likewise.
10839         * c-typeck.c (really_start_incremental_init, push_init_level,
10840         set_nonincremental_init_from_string): Likewise.
10841         * calls.c (load_register_parameters): Likewise.
10842         * convert.c (convert_to_pointer): Likewise.
10843         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
10844         build_fn_info_type, build_ctr_info_value, build_gcov_info):
10845         Likewise.
10846         * except.c (init_eh, assign_filter_values, assign_filter_values):
10847         Likewise.
10848         * expmed.c (store_fixed_bit_field, extract_bit_field,
10849         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
10850         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
10851         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
10852         * expr.c (convert_move, emit_group_load, emit_group_store,
10853         expand_assignment, store_constructor, store_field,
10854         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
10855         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
10856         invert_truthvalue, optimize_bit_field_compare,
10857         decode_field_reference, all_ones_mask_p, constant_boolean_node,
10858         fold_div_compare, fold, fold_read_from_constant_string,
10859         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
10860         * function.c (assign_parm_setup_block): Likewise.
10861         * stmt.c (shift_return_value, expand_end_case_type,
10862         estimate_case_costs): Likewise.
10863         * stor-layout.c (layout_type, initialize_sizetypes,
10864         set_min_and_max_values_for_integral_type): Likewise.
10865         * tree-chrec.c (chrec_fold_multiply_poly_poly,
10866         reset_evolution_in_loop): Likewise.
10867         * tree-chrec.h (build_polynomial_chrec): Likewise.
10868         * tree-complex.c (build_replicated_const): Likewise.
10869         * tree-eh.c (honor_protect_cleanup_actions,
10870         lower_try_finally_onedest, lower_try_finally_copy,
10871         lower_try_finally_switch): Likewise.
10872         * tree-mudflap.c (mf_build_string, mx_register_decls,
10873         mudflap_register_call, mudflap_enqueue_constant): Likewise.
10874         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
10875         * tree-pretty-print.c (dump_generic_node): Likewise.
10876         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
10877         Likewise.
10878         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
10879         * tree-ssa-loop-niter.c (number_of_iterations_cond,
10880         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
10881         Likewise.
10882
10883         * config/alpha/alpha.c (alpha_initialize_trampoline,
10884         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
10885         * config/arm/arm.c (arm_get_cookie_size): Likewise.
10886         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
10887         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
10888         * config/i860/i860.c (i860_va_start): Likewise.
10889         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
10890         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
10891         mips_gimplify_va_arg_expr): Likewise.
10892         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
10893         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
10894         add_compiler_branch_island): Likewise.
10895         * config/s390/s390.c (s390_va_start): Likewise.
10896         * config/sh/sh.c (sh_va_start): Likewise.
10897         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
10898         Likewise.
10899         * config/xtensa/xtensa.c (xtensa_va_start,
10900         xtensa_gimplify_va_arg_expr): Likewise.
10901
10902         * objc/objc-act.c (build_objc_string_object,
10903         build_objc_symtab_template, init_def_list, init_objc_symtab,
10904         init_module_descriptor, generate_static_references,
10905         build_selector_translation_table, get_proto_encoding,
10906         build_typed_selector_reference, build_selector_reference,
10907         build_next_objc_exception_stuff,
10908         build_method_prototype_list_template, generate_descriptor_table,
10909         generate_protocols, build_protocol_initializer,
10910         build_ivar_list_template, build_method_list_template,
10911         build_ivar_list_initializer, generate_ivars_list,
10912         generate_dispatch_table, generate_protocol_list,
10913         build_category_initializer, build_shared_structure_initializer,
10914         generate_shared_structures, handle_impent,
10915         generate_objc_image_info): Use build_int_cst.
10916
10917 2004-08-15  Ben Elliston  <bje@au.ibm.com>
10918
10919         * vec.h: Comment improvements.
10920
10921 2004-08-14  Roger Sayle  <roger@eyesopen.com>
10922
10923         * c-common.c (shorten_compare, pointer_int_sum,
10924         c_common_truthvalue_conversion, boolean_increment): Replace calls
10925         to build with calls to buildN.
10926         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
10927         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
10928         gimplify_switch_stmt): Likewise.
10929         * c-typeck.c (default_function_array_conversion,
10930         build_component_ref, build_array_ref, build_function_call,
10931         pointer_diff, build_unary_op, build_conditional_expr,
10932         build_compound_expr, build_modify_expr, c_finish_goto_label,
10933         c_finish_goto_ptr, c_finish_return, c_finish_loop,
10934         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
10935         build_binary_op): Likewise.
10936
10937 2004-08-15  Steven Bosscher  <stevenb@suse.de>
10938
10939         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
10940
10941 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10942
10943         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
10944         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
10945         * fixinc/fixincl.x: Rebuilt.
10946
10947 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
10948
10949         * config/mips/mips-protos.h (mips_symbolic_constant_p)
10950         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
10951         (mips_small_data_pattern_p): Declare.
10952         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
10953         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
10954         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
10955         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
10956         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
10957         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
10958         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
10959         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
10960         (pc_or_label_operand, call_insn_operand, move_operand)
10961         (consttable_operand, symbolic_operand, general_symbolic_operand)
10962         (global_got_operand, local_got_operand, stack_operand)
10963         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
10964         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
10965         (mips_small_data_pattern_p): Replace previous small_data_pattern
10966         predicate.  Turn into a bool () (rtx) function.
10967         * config/mips/predicates.md: New file.
10968         * config/mips/mips.md: Include it.  Use the target-independent
10969         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
10970         trap_comparison_operator and equality_op to equality_operator.
10971         Replace uses of small_int with the equivalent const_arith_operand.
10972         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
10973         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
10974         to fcc_reload_operand.
10975         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
10976
10977 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10978
10979         PR libstdc++/17005 partial fix.
10980         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
10981         except when generating ANSI/C89 code.
10982
10983 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
10984
10985         * c-common.c (shorten_compare): Use force_fit_type directly.
10986
10987 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
10988             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
10989             Dave Korn  <dk@artimi.com>
10990
10991         * doc/install.texi (Building): Avoid duplicate reference to GNU
10992         make requirement.
10993         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
10994
10995 2004-08-14  Richard Henderson  <rth@redhat.com>
10996
10997         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
10998         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
10999
11000 2004-08-13  Richard Henderson  <rth@redhat.com>
11001
11002         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
11003         for constant_call_address_operand.
11004         (call_value_pop_1, call_value_1): Likewise.
11005         (sibcall_value_1, call_value_1_rex64): Likewise.
11006
11007 2004-08-13  James E Wilson  <wilson@specifixinc.com>
11008
11009         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
11010         Correct mode from SFmode to DFmode.
11011
11012 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
11013
11014         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
11015         __cstring_object and __image_info sections with the no_dead_strip
11016         attribute.
11017
11018 2004-08-13  Roger Sayle  <roger@eyesopen.com>
11019             David Billinghurst  <David.Billinghurst@riotinto.com>
11020
11021         PR libgfortran/15930
11022         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
11023         * fixinc/fixincl.x: Regenerate.
11024         * fixinc/tests/base/internal/math_core.h: New file.
11025
11026 2004-08-13  Richard Henderson  <rth@redhat.com>
11027
11028         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
11029         (dbxout_function_end): Remove ifdefs for it.
11030         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
11031
11032 2004-08-13  Richard Henderson  <rth@redhat.com>
11033
11034         * Makefile.in (insn-preds.o): Depend on TREE_H.
11035         * genpreds.c (write_insn_preds_c): Include tree.h.
11036         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
11037         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
11038         const48_operand, and_operand, or_operand, mode_width_operand,
11039         mode_mask_operand, mul8_operand, const0_operand,
11040         hard_fp_register_operand, hard_int_register_operand,
11041         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
11042         samegp_function_operand, direct_call_operand, small_symbolic_operand,
11043         global_symbolic_operand, call_operand, symbolic_operand,
11044         dtp16_symbolic_operand, dtp32_symbolic_operand,
11045         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
11046         gottp_symbolic_operand, alpha_comparison_operator,
11047         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
11048         signed_comparison_operator, alpha_fp_comparison_operator,
11049         divmod_operator, fix_operator, aligned_memory_operand,
11050         unaligned_memory_operand, reg_or_unaligned_mem_operand,
11051         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
11052         reg_no_subreg_operand, addition_operation): Move to predicates.md.
11053         (reg_or_const_int_operand): Remove.  Replace all users with
11054         reg_or_cint_operand.
11055         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
11056         (resolve_reload_operand): Split out of aligned_memory_operand.
11057         * config/alpha/alpha-protos.h: Update for exports.
11058         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
11059         * config/alpha/alpha.md: Include predicates.md.
11060         * config/alpha/predicates.md: New file.
11061
11062 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
11063
11064         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
11065         fields with a pointer to the instruction definition.
11066         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
11067         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
11068         (write_attr_case, write_const_num_delay_slots): Update accordingly.
11069         (write_attr_case, write_const_num_delay_slots): Write the name of
11070         an insn next to its case statement.
11071         * genoutput.c (data): Add a filename field.
11072         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
11073         (output_insn_data): Print the location of each insn definition.
11074         * genrecog.c (write_action): Print the name of an insn above
11075         the statement that returns its code.
11076
11077 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
11078
11079         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
11080         * config/libgloss.h: Likewise.
11081         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
11082         * c4x/c4x-modes.def: Likewise.
11083         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
11084         (c4x_rptb_nop_p): Likewise.
11085         (c4x_rptb_valid_p): Likewise.
11086         (c4x_rptb_insert): Likewise.
11087         (c4x_address_conflict): Likewise.
11088         * config/c4x/c4x.md: Likewise.
11089         * config/frv/frv.md: Likewise.
11090         * config/i386/athlon.md: Likewise.
11091         * config/i386/i386.md: Likewise.
11092         * config/i386/predicates.md: Likewise.
11093         * config/ia64/ia64.c: Likewise.
11094         * config/ia64/itanium1.md: Likewise.
11095         * config/ia64/itanium2.md: Likewise.
11096         * config/iq2000/iq2000.md: Likewise.
11097         * config/mcore/mcore.c: Likewise.
11098         * config/mips/mips.c: Likewise.
11099         * config/mips/r3900.h: Likewise.
11100         * config/mips/sb1.md: Likewise.
11101         * config/pa/milli64.S: Likewise.
11102         * config/pa/pa.c: Likewise.
11103         * config/pa/pa.h: Likewise.
11104         * config/rs6000/8540.md: Likewise.
11105
11106 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
11107
11108         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
11109
11110 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
11111
11112         * sh.md (cbranch define_delay) Use cond_delay_slot for
11113         non-anulled condition too.
11114
11115 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11116
11117         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
11118         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
11119         any_parallel_operand, lmw_operation, stmw_operation,
11120         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
11121         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
11122         any_parallel_operand.
11123         (return_and_restore_fpregs_{si,di}): Same.
11124
11125 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11126
11127         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
11128         if pred->singleton != PARALLEL, issue a warning and pretend it was.
11129         Also issue a warning for any predicate we don't know about.
11130
11131 2004-08-12  Richard Henderson  <rth@redhat.com>
11132
11133         * config/i386/i386.c (internal_label_prefix): Export.
11134         (internal_label_prefix_len, struct ix86_address,
11135         ix86_decompose_address, maybe_get_pool_constant,
11136         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
11137         memory_address_length): Export.
11138         (any_fp_register_operand, fp_register_operand,
11139         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
11140         x86_64_general_operand, x86_64_szext_general_operand,
11141         x86_64_nonmemory_operand, x86_64_movabs_operand,
11142         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
11143         x86_64_zext_immediate_operand, const_int_1_31_operand,
11144         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
11145         tls_symbolic_operand, global_dynamic_symbolic_operand,
11146         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
11147         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
11148         constant_call_address_operand, const0_operand, const1_operand,
11149         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
11150         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
11151         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
11152         general_no_elim_operand, nonmemory_no_elim_operand,
11153         index_register_operand, q_regs_operand, flags_reg_operand,
11154         non_q_regs_operand, zero_extended_scalar_load_operand,
11155         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
11156         ix86_comparison_operator, ix86_carry_flag_operator,
11157         fcmov_comparison_operator, promotable_binary_operator,
11158         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
11159         mult_operator, div_operator, arith_or_logical_operator,
11160         memory_displacement_operand, cmpsi_operand, long_memory_operand,
11161         aligned_operand): Move to predicates.md as define_predicates.
11162         (tls_symbolic_operand_1): Remove.
11163         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
11164         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
11165         (legitimize_address): Merge tls_symbolic_operand contents.
11166         (ix86_expand_move): Likewise.
11167         * config/i386/i386-protos.h: Update for exports.
11168         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
11169         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
11170         * config/i386/i386.md: Include predicates.md.
11171         * config/i386/predicates.md: New file.
11172
11173 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
11174
11175         PR c++/16924
11176         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
11177         SYMBOL_REF_DECL.
11178         (i386_pe_mark_dllimport): Likewise.
11179         (i386_pe_encode_section_info): Likewise, when overriding
11180         dllimport attribute.
11181
11182 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
11183
11184         * configure.ac: When testing for flex, nm, ar, and bison, check
11185         that they will actually be built.
11186         * configure: Regenerate.
11187
11188 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
11189
11190         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
11191         (MOVE_MAX_PIECES): Define.
11192
11193 2004-08-12  Devang patel  <dpatel@apple.com>
11194
11195         * dbxout.c (dbxout_begin_prologue): New function.
11196         (dbx_debug_hooks): Use new begin prologue hook.
11197         (dbxout_function_end): Emit N_ENSYM.
11198         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
11199
11200 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
11201
11202         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
11203         argument is float*.
11204
11205         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
11206         for vec_dss.
11207
11208         * doc/extend.texi (AltiVec builtins): Fix description for recent
11209         changes.  Update operation list to match current support.
11210
11211 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
11212
11213         * config/s390/s390.c (struct s390_frame_layout): New struct as element
11214         of struct machine_function.
11215         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
11216         changed all uses.
11217         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
11218         changed all uses.
11219         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
11220         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
11221         (s390_frame_area, s390_register_info): New functions.
11222         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
11223         for base register.
11224         (s390_return_addr_rtx, s390_return_address_offset)
11225         (s390_va_start, s390_gimplify_va_arg)
11226         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
11227         layouts.
11228         (s390_frame_info): Functionality partly moved to s390_register_info.
11229         Made adaptions for new stack layout.
11230         (save_gprs, restore_gprs): Changed meaning of second parameter and
11231         adapted all callers.
11232
11233         * config/s390/s390.h (s390_backchain_string): New global variable.
11234         (MASK_BACKCHAIN): Removed definition.
11235         (TARGET_BACKCHAIN): Changed check.
11236         (TARGET_KERNEL_BACKCHAIN): New macro.
11237         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
11238         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
11239         "kernel-backchain".
11240         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
11241
11242         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
11243         as condition.  Adjusted for new stack layout.
11244
11245         * doc/invoke.texi: Added documentation for new option
11246         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
11247         "-mno-backchain".
11248
11249 2004-08-12  Paul Brook  <paul@codesourcery.com>
11250
11251         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
11252         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
11253
11254 2004-08-12  David Daney  <ddaney@avtrex.com>
11255
11256         * java/gcj.texi:  Add subsection on signal usage.
11257
11258 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
11259
11260         * expr.c (move_by_pieces): Set alignment for move to minimum of
11261         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
11262         alignment, but not less than the original alignment.
11263         (move_by_pieces_ninsns): Same.
11264         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
11265         (store_by_pieces_1): Same.
11266
11267 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
11268
11269         PR tree-optimization/16867
11270         * tree.c (is_global_var): New function.
11271         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
11272         Call is_global_var.
11273         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
11274         Update all users.
11275         (is_global_var): Declare.
11276         * tree-dfa.c (dump_variable): Display global and addressable
11277         attributes.
11278         (add_referenced_var): Clarify documentation when marking
11279         variables call-clobbered.
11280         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
11281         instead of needs_to_live_in_memory.
11282         (mark_call_clobbered): If the variable is a tag, mark it
11283         DECL_EXTERNAL.
11284         * tree-gimple.c (is_gimple_reg): Don't check for
11285         TREE_ADDRESSABLE.
11286         (is_gimple_non_addressable): Likewise.
11287         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
11288         needs to be marked call-clobbered.
11289         (setup_pointers_and_addressables): Call is_global_var instead
11290         of needs_to_live_in_memory.
11291         * tree-ssa-dce.c (need_to_preserve_store): Remove.
11292         Update all users with is_global_var.
11293         (mark_stmt_if_obviously_necessary): Fix processing of aliased
11294         stores.  Don't check the virtual definitions.  Rather, check
11295         whether the store is going into global memory.
11296         (find_obviously_necessary_stmts): Get the symbol from the PHI
11297         result.
11298         * tree-ssa-operands.c (get_call_expr_operands): Do not add
11299         clobbering may-defs if the call does not have side effects.
11300
11301 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
11302
11303         PR c++/16276
11304         * output.h (default_function_rodata_section,
11305         default_no_function_rodata_section): New prototypes.
11306         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
11307         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11308         (TARGET_ASM_OUT): Add it.
11309         * varasm.c (default_function_rodata_section,
11310         default_no_function_rodata_section): New functions.
11311         * final.c (final_scan_insn): Call
11312         targetm.asm_out.function_rodata_section instead of
11313         readonly_data_section.
11314         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
11315         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11316         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11317         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11318         Likewise.
11319         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11320         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11321         Likewise.
11322         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
11323         Likewise.
11324         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11325         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
11326         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
11327
11328 2004-08-12  Paul Brook  <paul@codesourcery.com>
11329
11330         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
11331         frame info.
11332         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
11333         DWARF2_UNWIND_INFO.
11334
11335 2004-08-12  Ben Elliston  <bje@au.ibm.com>
11336
11337         PR target/16286
11338         * config/rs6000/altivec.h: Change vector to __vector throughout.
11339         (Except for the `vector' macro itself).
11340
11341 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
11342
11343         * genpreds.c: Add capability to generate predicate bodies as
11344         well as function prototypes.  Write function prototypes for
11345         the generic predicates too.
11346         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
11347         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
11348         (write_match_code, write_predicate_expr, write_one_predicate_function)
11349         (parse_option): New functions.
11350         (output_predicate_decls): Delete.
11351         (main): Read the machine description, process DEFINE_PREDICATE or
11352         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
11353         as appropriate.
11354
11355         * genrecog.c (struct decision_test): Replace index with
11356         struct pred_data pointer.
11357         (next_index): Remove, unused.
11358         (pred_table, preds, special_mode_pred_table): Delete.
11359         (compute_predicate_codes, process_define_predicate): New functions.
11360         (validate_pattern, add_to_sequence, write_switch): Update for
11361         new data structures.
11362         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
11363         Check both error_count and have_error.
11364
11365         * gensupport.c (in_fname, first_predicate): New globals.
11366         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
11367         (predicate_table, last_predicate, old_pred_table)
11368         (old_special_pred_table): New statics.
11369         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
11370         (add_predicate, init_predicate_table): New functions.
11371         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
11372         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
11373         it or max_include_len.  Call init_predicate_table.
11374         (read_rtx): Run the predicate queue after the attribute queue
11375         but before all the others.
11376         * gensupport.h (in_fname, struct pred_data, first_predicate)
11377         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
11378         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
11379         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
11380         * dummy-conditions.c: Don't include bconfig.h, system.h,
11381         coretypes.h, tm.h, or system.h.  Do include stddef.h.
11382         Duplicate declaration of struct c_test from gensupport.h.
11383
11384         * Makefile.in (OBJS-common): Add insn-preds.o.
11385         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
11386         (insn-preds.c, insn-preds.o): New rules.
11387         (s-preds): Also generate insn-preds.c.
11388         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
11389         Update dependencies.
11390         (print-rtl.o, print-rtl1.o): Correct dependencies.
11391
11392         * recog.h: Delete prototypes of predicate functions.
11393
11394         * doc/md.texi (Predicates): New section with complete
11395         documentation of operand/operator predicates.  Remove some
11396         incomplete documentation of predicates from other places.
11397         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
11398         PREDICATE_CODES; indicate that both are deprecated in favor
11399         of define_predicate/define_special_predicate.
11400
11401         * config/ia64/ia64.c: All predicate function definitions moved
11402         to ia64.md, except
11403         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
11404         (ia64_expand_load_address, ia64_expand_move):
11405         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
11406
11407         * config/ia64/ia64.md: All predicates now defined here.
11408         (symbolic_operand): Is now a special predicate.
11409
11410         * config/ia64/ia64.h: Declare ia64_section_threshold.
11411         (PREDICATE_CODES): Delete.
11412
11413 2004-08-12  Richard Henderson  <rth@redhat.com>
11414
11415         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
11416         * c-semantics.c (add_stmt): Set it.
11417         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
11418         before instantiating a variable sized type.
11419
11420 2004-08-12  Richard Henderson  <rth@redhat.com>
11421
11422         * stor-layout.c (round_up, round_down): Move ...
11423         * fold-const.c (round_up, round_down): ... here.  Use
11424         multiple_of_p to avoid any arithmetic at all.
11425
11426 2004-08-12  Richard Henderson  <rth@redhat.com>
11427
11428         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
11429         (gimplify_init_ctor_preeval_1): New.
11430         (gimplify_init_ctor_preeval): New.
11431         (gimplify_init_ctor_eval): New.
11432         (gimplify_init_constructor): Use them.  Always gimplify the LHS
11433         object first.
11434
11435 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
11436
11437         (This patch is part of merge of objc-improvements-branch
11438         into mainline.)
11439
11440         * doc/frontends.texi: Mention Objective-C++ in addition to
11441         Objective-C.
11442         * doc/install.texi: Add 'obj-c++' to list of configurable
11443         languages.
11444         * doc/invoke.texi: Rename Objective-C option headings to
11445         indicate they also apply to Objective-C++.  List file
11446         extensions for Objective-C++ sources.  Mention that
11447         ObjC and ObjC++ compilations may also use C and C++ options,
11448         respectively.  Point users to doc/standards.texi for
11449         further info on ObjC and ObjC++.
11450         * doc/sourcebuild.texi: Mention the objcp/ directory and
11451         the Objective-C++ sources it contains.
11452         * doc/standards.texi: Update link to Apple ObjC site;
11453         add link to gcc readings.html WWW doc.
11454
11455 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
11456
11457         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
11458         and 2004-07-14 changes.
11459
11460 2004-08-12  Paul Brook  <paul@codesourcery.com>
11461
11462         * doc/invoke.texi: Fix typo.
11463
11464 2004-08-11 Devang Patel  <dpatel@apple.com>
11465
11466         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
11467         and -no_dead_strip_inits_and_terms.
11468         (LINK_SPEC): Same.
11469         * doc/invoke.texi (Darwin Options): Document -dead_strip and
11470         -no_dead_strip_inits_and_terms.
11471
11472 2004-08-11  Paul Brook  <paul@codesourcery.com>
11473
11474         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
11475         (arm_load_pic_register): ... to this.
11476         * config/arm/arm.c (arm_finalize_pic): Rename ...
11477         (arm_load_pic_register): ... to this.  Always output insns at the
11478         current location.  Load via low reg in thumb mode.
11479         (arm_expand_prologue): Call arm_load_pic_register.
11480         (thumb_expand_prologue): Ditto.
11481         * config/arm/arm.h (FINALIZE_PIC): Remove.
11482         * config/arm/arm.md (builtin_setjmp_receiver): Call
11483         arm_load_pic_register.
11484
11485 2004-08-11  Paul Brook  <paul@codesourcery.com>
11486
11487         * arm.c (thumb_force_lr_save): Add prototype.
11488         (thumb_compute_save_reg_mask): New function.
11489         (thumb_find_work_register): New function.
11490         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
11491         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
11492         Don't clobber r3 when removing pretend args.
11493         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
11494         (thumb_output_function_prologue): Use new functions.
11495         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
11496         * arm.h (THUMB_REG_PUSHED_P): Remove.
11497
11498 2004-08-11  James E Wilson  <wilson@specifixinc.com>
11499
11500         PR rtl-optimization/16490
11501         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
11502         global_live_at_end for new basic block if already set for other blocks.
11503
11504 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
11505
11506         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
11507
11508         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
11509         (mfcr rlwinm rlwinm patterns): Set length to 12.
11510
11511 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
11512
11513         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
11514         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
11515         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
11516         (start_ssa_stmt_operands): Delete.
11517         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
11518         struct stmt_operands_d.
11519         (build_ssa_operands): New extern entry point.
11520         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
11521         building code, replace with create_ssa_artficial_load_stmt().
11522         * tree-ssa-operands.c (struct voperands_d): Delete.
11523         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
11524         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
11525         (free_uses, free_defs, free_vuses, free_v_may_defs,
11526         free_v_must_defs): Remove dealloc parameter.
11527         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
11528         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
11529         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
11530         vector comparisons, ssa_name reuse, and allocations here.
11531         (verify_start_operands): Delete.
11532         (finalize_ssa_stmt_operands): Set new operands by calling finalize
11533         routines.
11534         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
11535         (append_def, append_usei): Simplify to simple accumulation.
11536         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
11537         duplicates and simple accumulation.
11538         (free_ssa_operands): Free vectors in a stmt_operand structure.
11539         (build_ssa_operands): New. Create a new stmt_operand structure from
11540         a stmt and an old set of stmt_operands.
11541         (get_stmt_operands): Simplify and call build_ssa_operands.
11542         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
11543         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
11544         add_call_read_ops): Don't pass prev_vops around anymore.
11545         (note_addressable): Return if no stmt annotation.
11546         (copy_virtual_operands): Access v_may_def operands through a struct.
11547         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
11548         hash tables without treating the stmt as a real stmt.
11549         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
11550         v_may_def def and use through a struct instead of 2 array elements.
11551         (struct v_may_def_optype_d): Use v_may_def_operand_type.
11552         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
11553
11554 2004-08-11  Nick Clifton  <nickc@redhat.com>
11555
11556         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
11557         this funciton's behaviour.  Return true when the current function
11558         has a section attribute and -mlong-calls is in effect.
11559         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
11560         short-call marker when -mlong-calls is in effect and the function
11561         has a section attribute.
11562
11563 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
11564
11565         * stmt.c (expand_return): If asked to return the RESULT_DECL,
11566         just call expand_value_return on result_rtl.
11567
11568 2004-08-10  Richard Henderson  <rth@redhat.com>
11569
11570         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
11571         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
11572         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
11573         (add_location_or_const_value_attribute): ... not here.  Use
11574         loc_descriptor_from_tree if possible.
11575         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
11576         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
11577         values specially.
11578         (loc_descriptor_from_tree): New.  Update callers.
11579         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
11580         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
11581         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
11582         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
11583         and BUILT_IN_STACK_RESTORE.
11584         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
11585         * stmt.c (expand_stack_alloc): Remove.
11586         * tree-mudflap.c (mx_register_decls): Don't look for
11587         BUILT_IN_STACK_ALLOC.
11588         * tree-nested.c (convert_local_reference): Likewise.
11589         * tree.h (DECL_VALUE_EXPR): New.
11590
11591 2004-08-10  Richard Henderson  <rth@redhat.com>
11592
11593         * stor-layout.c (round_up): Check for 0/1 before dividing.
11594         (round_down): Likewise.
11595
11596         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
11597
11598 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
11599
11600         * config.gcc (arm*-*-eabi*): New target.
11601         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
11602         (TARGET_LIB_INT_CMP_BIASED): Likewise.
11603         * expmed.c (expand_divmod): Try a two-valued divmod function as a
11604         last resort.
11605         * gthr.h: Remove bogus tokens at end of #pragma.
11606         * optabs.c (expand_twoval_binop_libfunc): New function.
11607         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
11608         (prepare_float_lib_cmp): Try reversing the condition.
11609         (debug_optab_libfuncs): New function.
11610         * optabs.h (expand_twoval_binop_libfunc): Declare.
11611         * config/arm/arm.c (arm_init_libfuncs): New function.
11612         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
11613         (TARGET_INIT_LIBFUNCS): Define it.
11614         * config/arm/arm.h (TARGET_BPABI): New macro.
11615         * config/arm/arm-protos.h
11616         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
11617         * config/arm/bpabi.S: New file.
11618         * config/arm/bpabi.c: Likewise.
11619         * config/arm/bpabi.h: Likewise.
11620         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
11621         (__aeabi_drsub): Likewise.
11622         (__aeabi_dsub): Likewise.
11623         (__aeabi_dadd): Likewise.
11624         (__aeabi_ui2d): Likewise.
11625         (__aeabi_i2d): Likewise.
11626         (__aeabi_f2d): Likewise.
11627         (__aeabi_dmul): Likewise.
11628         (__aeabi_ddiv): Likewise.
11629         (__aeabi_cdrcmple): Likewise.
11630         (__aeabi_cdcmpeq): Likewise.
11631         (__aeabi_cdcmple): Likewise.
11632         (__aeabi_dcmpeq): Likewise.
11633         (__aeabi_dcmplt): Likewise.
11634         (__aeabi_dcmple): Likewise.
11635         (__aeabi_dcmpge): Likewise.
11636         (__aeabi_dcmpgt): Likewise.
11637         (__aeabi_dcmpun): Likewise.
11638         (__aeabi_d2iz): Likewise.
11639         (__aeabi_d2uiz): Likewise.
11640         (__aeabi_d2f): Likewise.
11641         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
11642         (__aeabi_frsub): Likewise.
11643         (__aeabi_fsub): Likewise.
11644         (__aeabi_fadd): Likewise.
11645         (__aeabi_ui2f): Likewise.
11646         (__aeabi_i2f): Likewise.
11647         (__aeabi_fmul): Likewise.
11648         (__aeabi_fdiv): Likewise.
11649         (__aeabi_cfrcmple): Likewise.
11650         (__aeabi_cfcmpeq): Likewise.
11651         (__aeabi_cfcmple): Likewise.
11652         (__aeabi_fcmpeq): Likewise.
11653         (__aeabi_fcmplt): Likewise.
11654         (__aeabi_fcmple): Likewise.
11655         (__aeabi_fcmpge): Likewise.
11656         (__aeabi_fcmpgt): Likewise.
11657         (__aeabi_fcmpun): Likewise.
11658         (__aeabi_f2iz): Likewise.
11659         (__aeabi_f2uiz): Likewise.
11660         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
11661         (__aeabi_uidivmod): New function or alias.
11662         (__aeabi_idivmod): Likewise.
11663         (__aeabi_idiv0): Likewise.
11664         (__aeabi_ldiv0): Likewise.
11665         (__aeabi_llsr): Likewise.
11666         (__aeabi_lasr): Likewise.
11667         (__aeabi_llsl): Likewise.
11668         (bpabi.S): Include it.
11669         * config/arm/libgcc-bpabi.ver: New file.
11670         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
11671         (LINK_SPEC): Remove.
11672         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
11673         __aeabi_ulcmp.
11674         * config/arm/t-bpabi: New file.
11675         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
11676         (TARGET_LIB_INT_CMP_BIASED): Likewise.
11677
11678 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
11679
11680         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
11681         * config/rs6000/rs6000.md (clrmemsi): New pattern.
11682         * config/rs6000/rs6000.c (expand_block_clear): New function.
11683         (expand_block_move): Convert alignment to bits.  Use SImode and
11684         HImode for unaligned addresses if not STRICT_ALIGNMENT.
11685
11686 2004-08-10  Caroline Tice  <ctice@apple.com>
11687
11688         * varasm.c (unlikely_section_label): New global variable.
11689         (unlikely_text_section_name): New global variable.
11690         (text_section):  Remove alignment statement.
11691         (unlikely_text_section): Remove alignment statement; use
11692         unlikely_section_label rather than hard-coded string.
11693         (assemble_start_function): Initialize unlikely_section_label and
11694         unlikely_text_section_name;  make sure cold section is properly
11695         aligned at start of function; output unlikely_section_label if
11696         appropriate.
11697
11698 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
11699
11700         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
11701         * config/s390/s390.c (s390_canonicalize_comparison): New function.
11702         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
11703         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
11704         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
11705         ("*tmqi_mem"): Remove SUBREG from pattern.
11706         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
11707         ("*andsi3_cconly"): Likewise.
11708
11709 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
11710
11711         PR target/16909
11712         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
11713
11714 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
11715
11716         * doc/sourcebuild.texi (compat testing): Document available test
11717         framework commands.  Use the preferred spelling of DejaGnu.
11718
11719 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
11720
11721         * lambda.h: Add matrix type, and prototypes for remainder of
11722         matrix and vector functions.
11723         (lambda_vector_mult_const): New function.
11724         (lambda_vector_negate): Ditto.
11725         (lambda_vector_add): Ditto.
11726         (lambda_vector_add_mc): Ditto.
11727         (lambda_vector_copy): Ditto.
11728         (lambda_vector_zerop): Ditto.
11729         (lambda_vector_equal): Ditto.
11730         (lambda_vector_min_nz): Ditto.
11731         (lambda_vector_first_nz): Ditto.
11732         (lambda_vector_matrix_mult): Ditto.
11733         * lambda-mat.c: New file.
11734         * Makefile.in (lambda-mat.o): New.
11735
11736 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
11737
11738         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
11739         after linking stmt into the program.
11740         (bsi_remove): Don't call modify_stmt.
11741         * tree-complex.c (update_complex_assignment,
11742         expand_complex_comparison): Call modify_stmt after changing the stmt.
11743         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
11744         removing the stmt.
11745         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
11746         the stmt, and only if needed.
11747         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
11748         expression.
11749         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
11750         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
11751         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
11752         (eliminate_redundant_computations): Don't pass an annotation. Call
11753         modify_stmt rather than setting the annotation directly.
11754         (record_equivalences_from_stmt): Remove unused local 'j'.
11755         (cprop_operand): Take a stmt rather than an annotation as a parameter.
11756         Call modify_stmt.
11757         (cprop_into_stmt): Pass stmt rather than annotation.
11758         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
11759         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
11760         modify_stmt.
11761         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
11762
11763 2004-08-10  Jason Merrill  <jason@redhat.com>
11764
11765         PR middle-end/16948
11766         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
11767         the RESULT_DECL.
11768
11769 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
11770
11771         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
11772         hash function.
11773
11774 2004-08-10  Roger Sayle  <roger@eyesopen.com>
11775
11776         * config/mips/mips.md: New reciprocal square root patterns that
11777         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
11778
11779 2004-08-10  Paul Brook  <paul@codesourcery.com>
11780
11781         * config/arm/arm-protos.h (arm_set_return_address,
11782         thumb_set_return_address): Add prototypes.
11783         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
11784         * config/arm/arm.c (arm_compute_func_type,
11785         use_return_insn, arm_compute_save_reg0_reg12_mask,
11786         arm_compute_save_reg_mask, arm_output_function_prologue,
11787         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
11788         current_function_calls_eh_return.
11789         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
11790         old eh code.
11791         (arm_set_return_address, thumb_set_return_address): New functions.
11792         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
11793         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
11794         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
11795         (epilogue): Use the stackadj register.
11796         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
11797
11798 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
11799
11800         PR target/3144
11801         * expr.c (move_by_pieces_ninsns): Add max_size argument.
11802         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
11803         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
11804         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
11805         but using MOVE_RATIO.
11806         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
11807         (can_store_by_pieces): Change max_size type to unsigned int.
11808         (store_by_pieces_1): Likewise.  Pass max_size to
11809         move_by_pieces_ninsns.
11810         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
11811         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
11812         to move_by_pieces_ninsns.
11813         (STORE_BY_PIECES_P): Define.
11814         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
11815         to move_by_pieces_ninsns.
11816         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
11817
11818         * config/i386/i386.h (CLEAR_RATIO): Define.
11819
11820 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
11821
11822         * expr.c (expand_expr_real_1): Add back code that was not dead.
11823
11824 2004-08-09  Andrew Pinski  <apinski@apple.com>
11825
11826         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
11827         which is found to be compatible before returning the aliasing set.
11828
11829 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
11830
11831         * ggc-zone.c (struct alloc_zone): Add statistics counters.
11832         (always_collect): New flag.
11833         (ggc_alloc_zone_1): Update statistics support.  Don't include
11834         overhead in allocated counter.
11835         (sweep_pages): Update allocated counter for large pages.  Don'y
11836         include overhead.
11837         (ggc_collect_1): Always collect.
11838         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
11839         whether to collect.
11840         (SCALE, LABEL): New macros.
11841         (ggc_print_statistics): Add statistics support.
11842
11843 2004-08-09  Roger Sayle  <roger@eyesopen.com>
11844
11845         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
11846         (init_expmed): Fix potential overrun problem with "all.reg".
11847         (expand_sdiv2_pow2): Add an alternate implementation for signed
11848         division, if the target provides a suitable conditional move insn.
11849
11850 2004-08-09  Paul Brook  <paul@codesourcery.com>
11851         Richard Henderson  <rth@redhat.com>
11852
11853         * unwind-dw2.c (uw_install_context_1): Update target saved stack
11854         pointer.
11855
11856 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
11857
11858         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
11859         Check DATA limit only if there's no AS limit.  Ignore insanely
11860         low DATA limits.
11861         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
11862         but take care that the AS limit isn't overrun.
11863         * doc/invoke.texi: Update documentation of min-heapsize parameter.
11864
11865 2004-08-09  Jeff Law  <law@redhat.com>
11866
11867         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
11868         (tree-ssa-threadupdate.o): Add dependencies.
11869         * tree-ssa-threadupdate.c: New file.
11870         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
11871         (rewrite_vars_out_of_ssa): Remove prototype.
11872         (cleanup_tree_cfg): Returns a bool.
11873         * tree.h (thread_through_all_blocks): Prototype.
11874         * tree-outof-ssa.c  (SSANORM_*): Move into here.
11875         (remove_ssa_form): Now static.
11876         (rewrite_vars_out_of_ssa): Kill.
11877         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
11878         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
11879         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
11880         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
11881         anything was changed.
11882         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
11883         from the PHI's annotation rather than the edge associated with
11884         the new argument.
11885         * tree-ssa-dom.c (redirection_edges): Kill.
11886         (redirect_edges_and_update_ssa_graph): Kill.
11887         (tree_ssa_dominator_optimize): Do not reset forwardable flag
11888         for blocks anymore.  Do not initialize redirection_edges.
11889         Call thread_through_all_blocks.  Simplify code for cleanup
11890         of the CFG and iterating.  No longer call cleanup_tree_cfg
11891         outside the iteration loop.
11892         (thread_across_edge): No longer mess with forwardable blocks.
11893
11894 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
11895
11896         * explow.c (memory_address): Use memory_address_p.
11897         * recog.c (general_operand): Likewise.
11898         * regrename.c: No need to define REG_OK_STRICT.
11899
11900 2004-08-09  Steven Bosscher  <stevenb@suse.de>
11901
11902         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
11903         New timers.
11904         * gcse.c: Include timevar.h.
11905         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
11906         and global_copy_prop_count.
11907         (local_const_prop_count, local_copy_prop_count): New static globals.
11908         (gcse_main): Set the right timevar for each pass.
11909         (cprop_jump): Increment global_const_prop_count when a constant is
11910         propagated.  Add "GLOBAL" to dump output.
11911         (cprop_insn): Increment global_const_prop_count when a constant is
11912         propagated, or global_copy_prop_count when a copy is propagated.
11913         (do_local_cprop): Likewise for local_const_prop_count and
11914         local_copy_prop_count.
11915         (one_cprop_pass): Initialize const/cprop counters to zero.
11916         Print out results of local and global const/cprop separately.
11917         (bypass_block): Break over-length line.
11918         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
11919         for bb-reorder.o and tracer.o.
11920
11921 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
11922
11923         * Makefile.in (GTFILES): Remove stmt.c
11924         (stmt.o): Do not depend on gt-stmt.h.
11925         * emit-rtl.c (emit_line_note): Do not call
11926         set_file_and_line_for_stmt.
11927         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
11928         do everything.
11929         * function.c (free_after_parsing): Do not free STMT field.
11930         (allocate_struct_function): Do not call init_stmt_for_function.
11931         (assign_stack_temp_for_type): Do not accept values of keep
11932         other than 0 or 1.
11933         (init_temp_slots): Do not initialize removed variables.
11934         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
11935         and X_VAR_TEMP_SLOT_LEVEL fields.
11936         * rtl.h (set_file_and_line_for_stmt): Remove.
11937         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
11938         struct stmt_status, cond_stack, case_stack, nesting_stack,
11939         nesting_depth, emit_locus, set_file_and_line_for_stmt,
11940         same_case_target_p, init_stmt_for_function, emit_nop,
11941         expand_start_cond, expand_start_elseif, expand_start_else,
11942         expand_elseif, expand_end_cond): Remove.
11943         (preserve_subexpressions_p): Remove references to CFUN->STMT.
11944         (expand_start_case, expand_end_case_type): Remove, merge into...
11945         (expand_case): ... this one, including other bits from
11946         expand_expr_real_1.  Inline same_case_target_p.  Turn members
11947         of CASE_STACK into local variables.
11948         (emit_case_bit_tests): Inline same_case_target_p.
11949         (add_case_node): Add HEAD argument, return new head of the list,
11950         do not handle default label here.
11951         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
11952         expand_start_elseif, current_nesting_level, expand_start_case,
11953         expand_end_case_type, expand_end_case, add_case_node,
11954         init_stmt_for_function, expand_elseif): Remove prototypes.
11955         (expand_case): Add prototype.
11956
11957 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
11958
11959         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
11960
11961 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
11962
11963         * expr.c (var_rtx): Remove.
11964         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
11965         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
11966         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
11967         Abort.
11968         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
11969         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
11970         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
11971
11972 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
11973         Ayal Zaks <zaks@il.ibm.com>
11974
11975         * common.opt (freschedule-modulo-scheduled-loops): New flag.
11976         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
11977         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
11978         when -freschedule-modulo-scheduled-loops flag is not specified.
11979         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
11980         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
11981         More accurate placing of insn in row of partial schedule.
11982         (ps_insn_find_column): New function.
11983         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
11984         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
11985         (schedule_region): Use sched_is_disabled_for_current_region_p.
11986         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
11987
11988 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11989
11990         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
11991         change.
11992
11993 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11994
11995         * config/i386/i386.c (ix86_expand_clrmem): Properly call
11996         gen_strset for 64bit target.
11997
11998 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
11999
12000         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
12001
12002 2004-08-07  Jason Merrill  <jason@redhat.com>
12003
12004         Make return in memory explicit.
12005         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
12006         (assign_parm_find_data_types): Remove code for old front end
12007         invisible reference handling.
12008         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
12009         (expand_function_end): Likewise.
12010         * gimplify.c (gimplify_return_expr): Handle a dereferenced
12011         RESULT_DECL.
12012         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
12013         (declare_return_variable): Handle DECL_BY_REFERENCE.
12014         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
12015         (cp_genericize_r): Use convert_from_reference.
12016         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
12017         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
12018
12019         * c-common.c (c_warn_unused_result): Check TREE_USED before
12020         warning about a CALL_EXPR with an unused value.
12021
12022 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12023
12024         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
12025         to the compiler.  Use -fshort-wchar by default.
12026
12027 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
12028
12029         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
12030         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
12031         threshhold.
12032         * doc/invoke.texi (param): Document min-crossjump-insns.
12033
12034 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
12035
12036         PR c/13282
12037         * c.opt (Wmissing-field-initializers): New option.
12038         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
12039         * c-typeck.c (pop_init_level): Guard the missing field warning with
12040         warn_missing_field_initializers rather than extra_warnings.
12041         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
12042         some of the explanation from...
12043         (-Wextra): ...here.  Say that the missing field warning can be
12044         seperately controlled by -Wmissing-field-initializers.
12045
12046 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
12047
12048         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
12049         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
12050         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
12051         * tree.def (ENTRY_VALUE_EXPR): Remove.
12052
12053 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
12054
12055         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
12056         the places where it is actually needed.  Don't use repz; stosb
12057         for -Os with sufficiently small constant sizes.
12058         For sufficiently small repz; stos{l,q} repeat counts use a sequence
12059         of stos{l,q} instructions instead.
12060
12061 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12062
12063         PR tree-optimization/16807
12064         * loop-iv.c (dump_iv_info): Dump invariants correctly.
12065         (iv_subreg, iv_extend): Express value of invariant purely in
12066         base field.
12067
12068 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
12069
12070         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
12071         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
12072
12073 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
12074
12075         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
12076         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
12077         pre_dec_operand.
12078         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
12079         pattern until reload is finished to allow better code generation
12080         and split them completely into separate instrunctions.
12081         (*andsi3_split): New pattern.
12082
12083 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
12084
12085         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
12086         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
12087         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12088         * tree.h (handle_dll_attribute): Declare.  Test
12089         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12090         * c-common.h (c_determine_visibility): Declare.
12091         * c-common.c (c_determine_visibility): New function.
12092         * c-decl.c (finish_decl): Use it.
12093         (finish_function): Likewise.
12094         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
12095         zero, by default.  Use #if, not #ifdef, to test it.
12096         * config/arm/arm.c (arm_attribute_table): Use
12097         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
12098         #if.
12099         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
12100         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12101         to 1.
12102         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
12103         * config/i386/i386.c (ix86_attribute_table): Use
12104         handle_dll_attribute for dllimport/dllexport.  Test
12105         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
12106         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
12107         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12108         it to 1.
12109         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
12110         with #if.
12111         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
12112         it to 1.
12113         * doc/extend.texi (dllexport): Clarify and correct documentation.
12114         (dllimport): Likewise.
12115         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
12116         handle_dll_attribute.
12117
12118 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12119
12120         * tree-ssa-loop-manip.c: New file.
12121         * Makefile.in (tree-ssa-loop-manip.o): Add.
12122         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
12123         Declare.
12124         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
12125         form.
12126         (tree_ssa_loop_done): Verify loop closed ssa form.
12127         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
12128
12129 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12130
12131         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
12132         pa_asm_output_aligned_local): New functions.
12133         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
12134         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
12135         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
12136         pa_asm_output_aligned_common.
12137         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12138         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
12139         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12140         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12141         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
12142         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
12143         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
12144         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
12145         common data.
12146
12147 2004-08-05  Andrew Pinski  <apinski@apple.com>
12148
12149         * objc/objc-act.c (build_objc_string_object): Mark the address
12150         expression as constant.
12151
12152 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
12153
12154         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
12155         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
12156         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
12157
12158 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12159
12160         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
12161         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
12162         out, and associated obsolete comments.
12163
12164 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
12165
12166         * tree.h (force_fit_type): Return a tree, take three flags.
12167         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
12168         TREE_CONSTANT_OVERFLOW here.
12169         (int_const_binop, const_binop): Adjust.
12170         (size_int_type): Do sign extension here.
12171         (fold_convert_const, optimize_bit_field_compare,
12172         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
12173         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
12174         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
12175
12176 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12177
12178         PR tree-optimization/16864
12179         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
12180         for ssa names without default_def.
12181
12182 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
12183
12184         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
12185         frame pointer, restore eax with an ebp-relative address.
12186
12187 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
12188
12189         PR 14516
12190         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
12191         * c-common.h (make_rtl_for_local_static): Delete.
12192         * c-decl.c (shadow_tag_warned): Clean up comment.
12193         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
12194         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
12195         * c-semantics.c (make_rtl_for_local_static): Delete.
12196         * expr.c (init_block_move_fn): Use set_user_assembler_name.
12197         (init_block_clear_fn): Likewise.
12198         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
12199         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
12200         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
12201         * tree.h (make_decl_rtl): Remove second parameter.
12202         (set_user_assembler_name): New.
12203         * varasm.c (set_user_assembler_name): New.
12204         (make_decl_rtl): Remove second parameter.  Update callers in many
12205         files.
12206
12207 2004-08-05  Adam Nemet  <anemet@lnxw.com>
12208
12209         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
12210         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
12211         to LynxOS 4.0.
12212         * gthr-lynx.h: New file.
12213         * config/lynx-ng.h: Remove file.
12214         * config/lynx.h: Update to LynxOS 4.0.
12215         * config/t-lynx: New file.
12216         * config/i386/lynx-ng.h: Remove file.
12217         * config/i386/lynx.h: Update to LynxOS 4.0.
12218         * config/rs6000/lynxbase.h: Remove file.
12219         * config/rs6000/lynx.h: Update to LynxOS 4.0.
12220         * config/rs6000/t-lynx: New file.
12221         * doc/install.texi (Options specification): Remove reference to
12222         LynxOS from systems where --with-gnu-as makes a difference.
12223
12224 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12225
12226         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
12227         __UINTMAX_TYPE__.
12228         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
12229         __INTMAX_MAX__.
12230         (c_cpp_builtins): Call it.
12231         * doc/cpp.texi: Update.
12232
12233 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
12234
12235         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
12236         cost.
12237
12238 2004-08-04  Jan Hubicka  <jh@suse.cz>
12239
12240         * basic-block.h (profile_staus): New global variable.
12241         * cfg.c (profile_status): Declare.
12242         (check_bb_profile): Break out from ....; use profile_status
12243         (dump_flow_info): ... here.
12244         * cfgbuild.c (find_basic_blocks): Set profile_status.
12245         * cfgexpand.c (tree_expand_cfg): Likewise.
12246         * predict.c (estimate_probability): Likewise.
12247         * profile.c (branch_prob): Likewise.
12248         * tree-cfg.c (build_tree_cfg): Likewise.
12249         (dump_function_to_file): Use check_bb_profile.
12250         * tree-pretty-print (dump_bb_header): Likewise.
12251         * tree-profile.c (do_tree_profiling): Cleanup.
12252
12253 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
12254
12255         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
12256         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
12257         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
12258         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
12259         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
12260         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
12261         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
12262         (ggc-none.o, errors.o): Move rule to generators section;
12263         correct dependencies.
12264         (min-insn-modes.o): Move rule to generators section; remove
12265         unnecessary explicit command; correct dependencies.
12266         (print-rtl.o, print-rtl1.o): Correct dependencies.
12267         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
12268         (mostlyclean): Update.
12269
12270         * errors.c: Include bconfig.h not config.h.  Correct comment.
12271         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
12272         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
12273         * print-rtl.c: Don't include tm_p.h.
12274
12275         * rtl.h: Move forward-decl of struct function down where it's
12276         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
12277         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
12278
12279 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12280             Jeff Law  <law@redhat.com>
12281
12282         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
12283         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
12284         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
12285         manipulate the duplicated ssa names.
12286         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
12287         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
12288         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
12289         New functions.
12290         (release_ssa_name): Do not release ssa names that may have multiple
12291         definitions.
12292         * tree.h (release_ssa_name_force, mark_for_rewrite,
12293         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
12294         marked_ssa_names): Declare.
12295         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
12296         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
12297         Update call to rewrite_ssa_into_ssa.
12298
12299 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
12300
12301         * defaults.h (TARGET_DECLSPEC): New macro.
12302         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
12303         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
12304         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
12305         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
12306         __declspec support.
12307         (TARGET_DECLSPEC): Define.
12308         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
12309         __declspec support.
12310         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
12311         __declspec support.
12312         (TARGET_DECLSPEC): Define.
12313         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
12314         __declspec support.
12315         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
12316         support.
12317         * doc/tm.texi (TARGET_DECLSPEC): Document.
12318
12319         * doc/extend.texi: Fix typo in comment.
12320
12321 2004-08-04  Paul Brook  <paul@codesourcery.com>
12322
12323         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12324         (TARGET_CXX): Use it.
12325         * target.h (struct gcc_target): Add cdtor_returns_this.
12326         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
12327         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
12328         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
12329
12330 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
12331
12332         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
12333         low/high pair. Do range checking directly.
12334         (interpret_integer): Adjust.
12335
12336 2004-08-04  Nick Clifton  <nickc@redhat.com>
12337
12338         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
12339         GCC ABI.
12340         * doc/invoke.texi: Document this new switch and also the -mrenesas
12341         switch.
12342
12343 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
12344
12345         * cfglayout.c (insn_locators_initialize): Update the current
12346         location before initializing a location.
12347
12348 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12349
12350         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
12351         (dbxout_function_end): Return after emitting the "Lscope" symbol
12352         under the same conditions that this function formerly wasn't called.
12353         Add explanatory comments.
12354
12355         PR 14860
12356         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
12357         on the new decl.
12358
12359         PR 13956
12360         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
12361         functions, broken out of dbxout_block.
12362         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
12363         stabs too, if it contains symbols.  Use the begin_label and
12364         the Lscope label (emitted by dbxout_function_end) for the
12365         range of this block.
12366
12367 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12368
12369         * doc/install.texi: Update autoconf version requirements.
12370
12371 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12372
12373         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
12374         * recog.c (general_operand, immediate_operand, nonmemory_operand)
12375         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
12376         * regclass.c (record_reg_classes): Likewise.
12377         * reload.c (find_reloads): Likewise.
12378         * reload1.c (reload): Likewise.
12379
12380 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
12381
12382         * gensupport.c (init_md_reader_args_cb): Renamed from
12383         init_md_reader_args.  Add third option, callback function for
12384         parsing program-specific options.  Add diagnosis of incorrect
12385         number of input files.
12386         (init_md_reader): Fold into init_md_reader_args_cb.
12387         (init_md_reader_args): Now a thin wrapper around
12388         init_md_reader_args_cb.
12389         * gensupport.h: Update prototypes.
12390
12391         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12392         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12393         * genrecog.c: No need to diagnose lack of an input file;
12394         init_md_reader_args will handle it.
12395         * genconditions.c: Likewise, and use init_md_reader_args.
12396         * genconstants.c: Likewise, and no need to call read_md_rtx.
12397
12398 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
12399
12400         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
12401         declarations.
12402
12403 2004-08-03  Mike Stump  <mrs@apple.com>
12404
12405         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
12406         for frameworks.
12407         * doc/invoke.texi (Darwin Options): Update to reflect above.
12408
12409 2004-08-03  Roger Sayle  <roger@eyesopen.com>
12410
12411         PR middle-end/16790
12412         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
12413         truncations, not just global truncations.
12414
12415 2004-08-03  Andrew Pinski  <apinski@apple.com>
12416
12417         PR bootstrap/16865
12418         * loop-iv.c (simplify_using_assignment): Initialize lhs.
12419
12420 2004-08-03  Paul Brook  <paul@codesourcery.com>
12421
12422         * gcc/doc/install.texi: Document MPFR requirement.
12423
12424 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
12425
12426         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
12427         and mmap() explicitly instead of relying on preset autoconf cache
12428         variables.
12429         * configure: Regenerate.
12430
12431 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
12432
12433         PR target/16570
12434         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
12435         to tmake_file.
12436         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
12437         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
12438         to tmake_file.
12439
12440         * config/i386/t-gmm_malloc: New file.
12441         * config/i386/t-pmm_malloc: Likewise.
12442
12443         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
12444
12445 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
12446             Tanguy Fautrà <tfautre@pandora.be>
12447
12448         * config/i386/pmm_malloc.h: New file.
12449
12450 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
12451
12452         * config/i386/gmm_malloc.h: New file.
12453
12454 2004-08-03  Dale Johannesen  <dalej@apple.com>
12455
12456         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
12457         * c-common.c: Include opts.h.
12458         (c_common_get_alias_set): Fix check for a single input file.
12459         * toplev.c: Remove current_file_decl.
12460         * tree.h: Ditto.
12461
12462 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
12463
12464         * config.gcc (arm*-*-symbianelf*): New target.
12465         * config/arm/symbian.h: New file.
12466
12467         * gthr-gnat.c: Add visibility #pragmas.
12468         * gthr-gnat.h : Likewise.
12469         * gthr.h: Likewise.
12470         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
12471         (__ffsDI2): Likewise.
12472         (__clzSI2): Likewise.
12473         (__ctzSI2): Likewise.
12474         (__ctzDI2): Likewise.
12475         (__popcountSI2): Likewise.
12476         (__popcountDI2): Likewise.
12477         (__paritySI2): Likewise.
12478         (__parityDI2): Likewise.
12479         * libgcc2.h: Add visibility #pragmas.
12480         (__clzDI2): Add prototype.
12481         (__clzSI2): Likewise.
12482         (__ctzSI2): Likewise.
12483         (__ffsDI2): Likewise.
12484         (__ffsSI2): Likewise.
12485         (__ctzDI2): Likewise.
12486         (__popcountSI2): Likewise.
12487         (__popcountDI2): Likewise.
12488         (__paritySI2): Likewise.
12489         (__parityDI2): Likewise.
12490         * unwind-dw2-fde.h: Add visibility #pragmas.
12491         * unwind.h: Likewise.
12492
12493 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
12494             Dale Johannesen  <dalej@apple.com>
12495             Roger Sayle  <roger@eyesopen.com>
12496
12497         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
12498         constants more accurately.  Adjust costs for FMA instructions.
12499         Add cases for most logical and float operations.  Recurse into
12500         most operands.
12501
12502 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
12503
12504         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
12505
12506 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
12507
12508         * ra-build.c (conflicts_between_webs): For webs that cross a call add
12509         conflicts to regs_invalidated_by_call.
12510
12511 2004-08-03  Paul Brook  <paul@codesourcery.com>
12512
12513         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
12514
12515 2004-08-03  Jan Hubicka  <jh@suse.cz>
12516
12517         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
12518         ARRAY_REF argument.
12519
12520 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
12521
12522         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
12523         arm968es, arm10e, arm1020e, arm1022e.
12524         * invoke.texi: Update list of ARM cores.
12525         * arm-tune.md: Regenerate.
12526
12527 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
12528
12529         * arm/gentune.sh: New file.
12530         * arm/t-arm: New file.
12531         * arm/arm-tune.md: New file (autogenerated).
12532         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
12533         * arm.md (attribute tune): Delete.  Include arm-tune.md.
12534
12535 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
12536
12537         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
12538         penultimate parameter.  All callers adjusted.
12539         (struct prefix_list): Remove used_flag_ptr.
12540         (find_a_file): Do not set *pl->used_flag_ptr.
12541         (warn_B, warn_std_ptr): Remove.
12542
12543 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
12544             Mostafa Hagog <mustafa@il.ibm.com>
12545
12546         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
12547
12548 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
12549
12550         * dwarf2out.c (output_call_frame_info): Don't change data format
12551         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
12552         label.  Use 'true' not '1'.
12553         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
12554         required.
12555
12556 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12557
12558         * gdbinit.in: Reflect previous changes to rtunion_def.
12559
12560 2004-08-02  Roger Sayle  <roger@eyesopen.com>
12561
12562         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
12563         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
12564
12565 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12566
12567         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
12568         vec_p_reserve.
12569         * langhooks.h (lang_hooks::builtin_function): Rename parameter
12570         from "class" to "bt_class".
12571
12572 2004-08-02  Paul Brook  <paul@codesourcery.com>
12573
12574         PR rtl-optimization/15068
12575         * flow.c (init_propagate_block_info): Check condition is reversible.
12576
12577 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12578
12579         * gengtype.h (options::info): Change type to const char *.
12580         (enum gc_used_enum): Move out of struct type scope.
12581         * gengtype.c (create_option): Convert initializer for option::info to
12582         appropiate type.
12583         (adjust_field_type, walk_type, write_func_for_structure,
12584         write_root, write_roots): Remove pointless cast.
12585
12586 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
12587
12588         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
12589
12590 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12591
12592         * rtl.h (union rtunion_def): Have all members  start with the
12593         prefix "rt_".
12594         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
12595         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
12596         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
12597         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
12598         access.
12599         * gengtype.c (adjust_field_rtx_def): Likewise.
12600         * rtlanal.c (loc_mentioned_in_p): Likewise.
12601
12602 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
12603
12604         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
12605         Replace uses of mips/elf64.h with mips/elf.h
12606         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
12607         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
12608         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
12609         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
12610         (HANDLE_SYSV_PRAGMA): Delete.
12611         (ASM_OUTPUT_DEF): Fix formatting.
12612         * config/mips/elf64.h: Delete.
12613
12614 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
12615
12616         * config/ia64/ia64.c (got_symbolic_operand): Do require a
12617         symbol+offset operand to have its offset be zero mod 0x3fff
12618         when GOT entries are in use.  Clarify logic in SYMBOL_REF
12619         case.  Clarify comments.
12620         (ia64_expand_load_address): Split a symbol+offset load when
12621         the offset is nonzero mod 0x3fff, not 0x1fff.
12622
12623 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
12624
12625         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
12626         if trying to *store* to a non-offsettable address.
12627         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
12628         a nonoffsettable address.
12629         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
12630         Clean up.
12631         (movti_string): Don't move GPRs to a nonoffsettable address.
12632         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
12633
12634 2004-08-02  Ben Elliston  <bje@au.ibm.com>
12635
12636         PR target/16155
12637         * config/rs6000/altivec.h: Replace typeof with __typeof__.
12638
12639 2004-08-01  Richard Henderson  <rth@redhat.com>
12640
12641         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
12642         variable sized types.
12643
12644 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
12645
12646         * doc/invoke.texi: In the MIPS options section, remove the passage
12647         saying that -mexplicit-relocs is usually disabled for -mabicalls
12648         -fno-unit-at-a-time.
12649         * config/mips/mips.c (override_options): Remove the code that enforced
12650         this rule.
12651
12652 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
12653
12654         * config/mips/mips.md (cprestore): Provide two alternatives, one for
12655         an in-range offset and one for an out-of-range offset.  Wrap the latter
12656         in .set macro/.set nomacro if it's inside a .set nomacro block.
12657
12658 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
12659
12660         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
12661         (mips_restore_gp): Declare.
12662         * config/mips/mips.c (mips_add_offset): Add a scratch register
12663         argument.  Reimplement in rtl only, reusing MIPS16 logic from
12664         mips_output_mi_thunk.
12665         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
12666         to mips_add_offset.
12667         (mips_gp_save_slot): Delete.
12668         (mips_restore_gp): New function.
12669         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
12670         * config/mips/mips.md (exception_receiver): Turn into a
12671         define_insn_and_split.  Use mips_restore_gp to do the split.
12672         (call_internal, call_value_internal, call_value_multiple_internal): Use
12673         mips_restore_gp to restore $gp.
12674
12675 2004-07-31  Andrew Pinski  <apinski@apple.com>
12676
12677         PR other/16842
12678         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
12679
12680 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
12681
12682         * c-decl.c (diagnose_mismatched_decls): Give error for external
12683         redeclaration of identifier declared with no linkage, not just
12684         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
12685         error for redeclaration with no linkage.
12686
12687 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
12688             Fariborz Jahanian <fjahanian@apple.com>
12689
12690         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
12691         non-offsettable addresses even for DImode.
12692         (rs6000_split_multireg_move): Cope with non-offsettable addresses
12693         being moved into multiple GPRs.
12694
12695         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
12696         to 64.
12697         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
12698         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
12699         to 128.
12700         * config/rs6000/darwin-ldouble.c (isless): New macro.
12701         (inf): New macro.
12702         (nonfinite): New macro.
12703         (FPKINF): Delete.
12704         (_xlqadd): Completely rewrite.
12705         (_xlqmul): Correct overflow handling.
12706         (_xlqdiv): Correct overflow handling.
12707         * config/rs6000/darwin-ldouble-format: New file.
12708
12709 2004-07-30  Roger Sayle  <roger@eyesopen.com>
12710             Richard Henderson  <rth@redhat.com>
12711
12712         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
12713         9 into the equivalent lea instruction.
12714
12715 2004-07-30  Richard Henderson  <rth@redhat.com>
12716
12717         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
12718         with DECL_INITIAL if fb_lvalue.
12719         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
12720         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
12721         with <Cxxx>.
12722         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
12723
12724 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
12725
12726         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
12727         pointer escapes through a function call, assume that the
12728         callee will dereference it.
12729         (add_pointed_to_var): Assume that VALUE is always an
12730         ADDR_EXPR.
12731         (collect_points_to_info_r): Only call add_pointed_to_var if
12732         the value is an ADDR_EXPR.
12733
12734 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
12735
12736         * tree-ssa-alias.c (create_alias_map_for): Do not get the
12737         alias set of the inner type of ARRAY_TYPEs.
12738
12739 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
12740
12741         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
12742         setting a non-register to UNDEFINED right before the call to
12743         set_lattice_value.
12744
12745 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12746
12747         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
12748
12749 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
12750
12751         * tree-ssa.c (verify_flow_sensitive_alias_info): When
12752         comparing points-to sets of different pointers, make sure the
12753         second pointer is actually referenced in the code.
12754
12755 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
12756
12757         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
12758         (got_symbolic_operand): Remove unreachable code.
12759         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
12760         setjmp_operand; add entry for tls_symbolic_operand.
12761         * config/ia64/ia64-protos.h: Remove all prototypes of
12762         predicate functions.
12763
12764 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
12765
12766         * c-common.h (lang_post_pch_load): New variable.
12767         * c-pch.c (lang_post_pch_load): Define it.
12768         (c_common_read_pch): Use it.
12769         * cgraphunit.c (record_call_1): Give the front end a chance to
12770         record additional needed entities when a variable is marked as
12771         needed.
12772         * tlink.c (recompile_files): Robustify.
12773         (scan_linker_output): If a symbol is assigned to a file,
12774         but after recompilation is not present there, issue an error
12775         message.
12776
12777 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12778
12779         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
12780         Take orig_loop argument and pass it to set_level.
12781         (schedule_sm): Pass the correct orig_loop to force_move_till.
12782
12783 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12784
12785         * cfgloop.c (update_latch_info): Update dominator of the new block.
12786         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
12787         info.
12788         * dominance.c (verify_dominators): Check that the dominance tree is
12789         connected.
12790         (recount_dominator): Ignore unreachable blocks.
12791         (iterate_fix_dominators): Cleanup old dominance information before
12792         recomputing it.
12793
12794 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
12795
12796         * tree-ssa-operands.c (get_expr_operands): Revert changes
12797         to ADDR_EXPR processing introduced by:
12798             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12799             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
12800
12801 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
12802
12803         * doc/implement-c.texi: Add C90 subclause references.  Point to
12804         preprocessor documentation instead of duplicating it.  Add points
12805         only present in C90.  Fill in documentation for all points.
12806
12807 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12808
12809         * pa.c (output_movb): Correct typo.
12810
12811 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
12812
12813         * ra.h (single_reg_in_regclass): Declare.
12814         * ra.c (single_reg_in_regclass): Define.
12815         (first_hard_reg): New.
12816         (init_ra): Initialize single_reg_in_regclass.
12817         * ra-colorize.c (ok_class): New.
12818         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
12819
12820 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
12821
12822         * gcov-io.h: Allow zero tag as EOF indicator.
12823         (gcov_is_eof): Remove.
12824         (gcov_truncate): Remove.
12825         * gcov-io.c (gcov_seek): Always SEEK_SET.
12826         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
12827         EOF tag.
12828         * coverage.c (read_counts_file): Don't use gcov_is_eof.
12829         * gcov-dump.c (dump_file): Likewise.
12830         * gcov.c (read_graph_file, read_count_file): Likewise.
12831
12832         * c-decl.c (complete_array_type): Don't gratuitously copy
12833         maxindex.  Check it always has a type.
12834
12835 2004-07-29  Steven Bosscher  <stevenb@suse.de>
12836
12837         * rtl.c (currently_expanding_to_rtl): New.
12838         * rtl.h (currently_expanding_to_rtl): Export it.
12839         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
12840
12841         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
12842         inliner hack.
12843         * config/sh/sh.c: Replace rtx_equal_function_value_matters
12844         with currently_expanding_to_rtl.
12845         * config/sh/sh.md: Likewise.
12846         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
12847
12848 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
12849
12850         Introduce sh2a support.
12851         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
12852         * config.gcc: Build multilibs for sh2a and sh2a-single by
12853         default.
12854         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
12855         default.  Split their tests out of the corresponding SH4
12856         multilibs.
12857         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
12858         multilibs for SH2a.
12859         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
12860         * config.gcc: Handle sh2a multilibs and cpu selection.
12861         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
12862         * config/sh/t-mlib-sh2a: New.
12863         * config/sh/t-mlib-sh2a-nofpu: New.
12864         * config/sh/t-mlib-sh2a-single: New.
12865         * config/sh/t-mlib-sh2a-single-only: New.
12866         2004-07-09  Nick Clifton  <nickc@redhat.com>
12867         Issue 43400
12868         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
12869         -ml and -m2a are used together.
12870         2004-03-23  DJ Delorie  <dj@redhat.com>
12871         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
12872         when we have a double-sized FPU.
12873         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
12874         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
12875         is set.
12876         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
12877         -msh2a-single and -msh2a-single-only
12878         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
12879         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
12880         is set.
12881         2004-02-20  DJ Delorie  <dj@delorie.com>
12882         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
12883         2004-02-20  Fred Fish <fnf@redhat.com>,
12884         Corinna Vinschen <vinschen@redhat.com>
12885         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
12886         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
12887         2004-02-18  DJ Delorie  <dj@redhat.com>
12888         * config/sh/sh.c (broken_move): Add support for movi20.
12889         * config/sh/sh.h: Likewise.
12890         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
12891         * config/sh/sh.md (udivsi3_sh2a): New.
12892         (udivsi3): Call it.
12893         (divsi3_sh2a): New.
12894         (divsi3): Call it.
12895         (mul_r): New.
12896         (ashlsi3_sh2a): New.
12897         (ashrsi3_sh2a): New.
12898         (lshrsi3_sh2a): New.
12899         (movsi_i): Disable for sh2a.
12900         (movsi_ie): Add movi20.
12901         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
12902         sh2a, for -m2a-nofpu mode.
12903         2004-02-13  DJ Delorie  <dj@redhat.com>
12904         * config/sh/lib1funcs.asm: Handle double vs single better.
12905         * config/sh/sh.h: Likewise.
12906         2004-02-09  DJ Delorie  <dj@redhat.com>
12907         * config/sh/crt1.asm: Add support for sh2a.
12908         * config/sh/elf.h: Likewise.
12909         * config/sh/lib1funcs.asm: Likewise.
12910         * config/sh/sh.c: Likewise.
12911         * config/sh/sh.md: Likewise.
12912         * config/sh/sh.h: Likewise.
12913         * config/sh/t-sh: Likewise.
12914
12915 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
12916
12917         * config/frv/frv.md (movqi_internal, movhi_internal,
12918         movsi_internal): Add backup alternatives for memory inputs.
12919
12920 2004-07-28  Matt Austern  <austern@apple.com>
12921
12922         * config/darwin.c (darwin_one_byte_bool): New global variable.
12923         * config/darwin.h (darwin_one_byte_bool): Declare.
12924         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
12925         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
12926         value of darwin_one_byte_bool.
12927         * doc/invoke.texi: Document -mone-byte-bool flag.
12928
12929 2004-07-28  Eric Christopher  <echristo@redhat.com>
12930
12931         * c-common.c (c_common_unsafe_for_reeval): Delete.
12932         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
12933         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
12934         * calls.c (fix_unsafe_tree): Delete.
12935         (expand_call): Delete code which used above.
12936         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
12937         * expr.c (expand_expr_real_1): Ditto.
12938         * fold-const.c (non_lvalue): Ditto.
12939         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
12940         (lhd_unsafe_for_reeval): Ditto.
12941         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
12942         * langhooks.h (unsafe_for_reeval): Ditto.
12943         (unsave_expr_now): Adjust comment.
12944         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
12945         (estimate_num_insns_1): Ditto.
12946         * tree-pretty-print.c (dump_generic_node): Ditto.
12947         * tree.c (expr_align): Ditto.
12948         (unsave_expr): Delete.
12949         (unsafe_for_reeval): Ditto.
12950         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
12951         * tree.def (UNSAVE_EXPR): Delete.
12952         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
12953
12954 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
12955
12956         * tree.h (enum tls_model): Move ...
12957         * coretypes.h: ... here.
12958
12959 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
12960
12961         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
12962
12963 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
12964
12965         * cse.c (validate_canon_reg): New function, split out from...
12966         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
12967
12968 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12969
12970         * tree-ssa-alias.c (maybe_create_global_var): Don't just
12971         return if .GLOBAL_VAR has been created.
12972
12973 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
12974
12975         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
12976         every variable that may have aliases, not just tags.
12977
12978 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
12979
12980         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
12981         move_from_CR_eq_bit.
12982         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
12983
12984
12985         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
12986         e500_flip_eq_bit.
12987
12988         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
12989         output_e500_flip_eq_bit.
12990
12991         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
12992         output_e500_flip_eq_bit.
12993         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
12994         output_e500_flip_eq_bit.
12995         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
12996         (print_operand): case D.  Get to EQ bit.
12997
12998 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
12999
13000         * gcov.c (function_summary): Add missing \n.
13001
13002 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
13003
13004         Introduce sh4a support.
13005         * config.gcc: Handle sh4a multilibs and cpu selection.
13006         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
13007         * config/sh/t-mlib-sh4a: New.
13008         * config/sh/t-mlib-sh4al: New.
13009         * config/sh/t-mlib-sh4a-nofpu: New.
13010         * config/sh/t-mlib-sh4a-single: New.
13011         * config/sh/t-mlib-sh4a-single-only: New.
13012         2004-02-20  DJ Delorie  <dj@redhat.com>
13013         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
13014         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
13015         2003-08-22  Eric Christopher  <echristo@redhat.com>
13016         * config/sh/sh4a.md: Update for chip errata.
13017         2003-08-07  Eric Christopher  <echristo@redhat.com>
13018         * config/sh/sh4a.md: New file. sh4a processor description.
13019         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
13020         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
13021         of -m4a-nofpu.
13022         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
13023         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
13024         * doc/invoke.texi (SH Options): Document -m4al.
13025         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
13026         * config/sh/sh.c (expand_block_move): Remove commented-out code
13027         checked in by mistake.
13028         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
13029         single elements from SFmode vectors.
13030         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
13031         register.
13032         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
13033         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
13034         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
13035         sh_fsca_int2sf): Remove variable declarations.
13036         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13037         sh_fsca_int2sf): New functions.
13038         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
13039         sh_fsca_int2sf_rtx): New static variables.
13040         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
13041         sh_fsca_int2sf): Declare.
13042         * config/sh/sh.md: Adjust.
13043         * doc/invoke.texi (SH Options): Document new options.
13044         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
13045         compatibility from SH4 code.
13046         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
13047         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
13048         early.
13049         (memory_movsrc_operand): Renamed to...
13050         (unaligned_load_operand): ... this.  Simplified.
13051         * config/sh/sh.h (PREDICATE_CODES): Adjust.
13052         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
13053         input operand to SImode, and adjust the others.  Introduce
13054         post-increment by peephole.
13055         * config/sh/sh.c (expand_block_move): Give the target address the
13056         same mode as the temp reg.
13057         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
13058         copying.
13059         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
13060         Introduce support for SH4a.
13061         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
13062         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
13063         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
13064         sh_fsca_int2sf): New.
13065         (sh_init_builtins): Initialize them.
13066         (print_operand): Support `d'.
13067         (expand_block_move): Use movua if src is misaligned.
13068         (memory_movsrc_operand): New.
13069         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
13070         and one of the SH4 macros.
13071         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
13072         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
13073         SELECT_SH4A_SINGLE): New.
13074         (TARGET_NONE): Add SH4A_BIT.
13075         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
13076         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
13077         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
13078         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
13079         (enum processor_type): Added PROCESSOR_SH4A.
13080         (PREDICATE_CODES): Add memory_movsrc_operand.
13081         * config/sh/sh.md: Removed unused variables.
13082         (attr cpu): Add sh4a.
13083         (attr type): Add movua, fsrra and fsca.
13084         (prefetch): New, for SH4.
13085         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
13086         (toggle_sz): Set type to fp.
13087         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
13088         (movua, extv, extzv): New.
13089         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
13090         and 4a-single-only.
13091
13092 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13093
13094         * tree-optimize.c (init_tree_optimization_passes): Schedule
13095         pass_may_alias right after the program is renamed into SSA.
13096         * tree-pass.h (PROP_alias): Define.
13097         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
13098         * tree-sra.c (pass_sra): Likewise.
13099         * tree-ssa-ccp.c (pass_ccp): Likewise.
13100         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
13101         * tree-ssa-dce.c (pass_dce): Likewise.
13102         * tree-ssa-dom.c (pass_dominator): Likewise.
13103         * tree-ssa-dse.c (pass_dse): Likewise.
13104         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
13105         * tree-ssa-loop-ch.c (pass_ch): Likewise.
13106         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
13107         * tree-ssa-pre.c (pass_pre): Likewise.
13108         * tree-tailcall.c (pass_tail_recursion): Likewise.
13109         * tree-ssa.c (pass_redundant_phi): Likewise.
13110         * tree-ssa-alias.c (aliases_computed_p): Remove.
13111         Update all users.
13112         (init_alias_info): Do not mark all type tags for renaming
13113         unconditionally.
13114         Clear may_aliases from every symbol.
13115         (setup_pointers_and_addressables): If a pointer has not been
13116         dereferenced and it had a type tag, clear it and mark the old
13117         tag for renaming.
13118
13119 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
13120
13121         PR tree-optimization/16705
13122         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
13123         .GLOBAL_VAR.
13124
13125 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13126
13127         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
13128         check.
13129
13130         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
13131         don't make another one.
13132
13133         PR optimization/15077
13134         * function.h (struct function): Add field saved_static_chain_decl.
13135         Fix comment for static_chain_decl.
13136         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
13137         * tree-inline.h (save_body): Add new arg.
13138         * tree-optimize.c (tree_rest_of_compilation): Handle saving
13139         static_chain_decl.
13140
13141 2004-07-27  Richard Henderson  <rth@redhat.com>
13142
13143         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
13144         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
13145         is_gimple_addressable.
13146         * tree-gimple.c (is_gimple_addressable): Rename from
13147         is_gimple_addr_expr_arg; accept INDIRECT_REF.
13148         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
13149         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
13150         rename to is_gimple_addressable.
13151
13152 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
13153
13154         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
13155
13156 2004-07-27  Richard Henderson  <rth@redhat.com>
13157
13158         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
13159         before rounding.
13160
13161 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
13162
13163         * libgcc2.c: Change all conditionals testing
13164         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
13165         * libgcc2.h: Likewise.
13166         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
13167         TYPE_PRECISION of float80_type to 80.
13168         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
13169         of fpreg_type and float80_type to 80.
13170         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
13171         * config/m68k/netbsd-elf.h:
13172         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
13173         to evaluate to 80 whenever they would formerly have evaluated to 96.
13174         * config/i386/sco5.h: Remove unnecessary redefinition of
13175         LONG_DOUBLE_TYPE_SIZE.
13176         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
13177         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
13178         XFmode, with a bitsize of 80.  Update commentary.
13179         * config/ia64/ia64-modes.def: Likewise.
13180         * config/m68k/m68k-modes.def: Likewise.
13181
13182 2004-07-27  Steven Bosscher  <stevenb@suse.de>
13183
13184         * cfgexpand.c (tree_expand_cfg): Fix comment.
13185
13186         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
13187         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
13188         Remove.
13189         (prepare_function_start): Don't set rtx_equal_function_value_matters.
13190         * integrate.c (copy_rtx_and_substitute): Don't test for it.
13191         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
13192         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
13193         here again.  Update leading comment.
13194         * rtl.c (rtx_equal_function_value_matters): Remove.
13195         (rtx_equal_p): Don't test for it.
13196         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
13197         Likewise.
13198
13199         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
13200         * rtl.c (note_insn_name): Likewise.
13201         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
13202         * final.c (final_scan_insn): Likewise.
13203
13204         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
13205         * passes.c (rest_of_handle_eh): Do it here.
13206
13207         * stmt.c (struct nesting): Remove struct nesting block member.
13208         (struct stmt_status): Remove x_block_start_count field.
13209         (current_block_start_count): Remove.
13210
13211 2004-07-27  Brian Booth  <bbooth@redhat.com>
13212
13213         * tree-optimize.c (register_one_dump_file): Update condition that uses
13214         static_pass_number.
13215         (dup_pass_1): Replace with...
13216         (next_pass_1): This.
13217         (NEXT_PASS): Call next_pass_1.
13218         (DUP_PASS): Remove.
13219         (init_tree_optimization_passes): Remove uses of DUP_PASS.
13220         (execute_one_pass): Update condition that uses
13221         static_pass_number.
13222         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
13223         integer.
13224
13225 2004-07-27  Nick Clifton  <nickc@redhat.com>
13226
13227         * config/m32r/m32r.c: Include integrate.h in order to get the
13228         prototype for get_hard_reg_initial_val().
13229
13230         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
13231         and tidy up indentation.
13232         (final_presence_set): Use absence_set instead, so that if there is
13233         nothing in the "o" pipe the "s" pipe can be scheduled.
13234
13235 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
13236
13237         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
13238         don't have PT_VARS nor PT_MALLOC set.
13239         Clear name tag from pointers that have not been dereferenced.
13240         (set_pt_anything, set_pt_malloc): Forward declare.
13241         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
13242         not type compatibility when determining if a pointer can be
13243         copy propagated.
13244
13245 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
13246
13247         * expr.h (canonicalize_condition, get_condition): Add an int argument.
13248         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
13249         it to check whether the condition is still valid at the jump insn.
13250         * ifcvt.c (noce_get_condition): Likewise.
13251         (noce_get_alt_condition): Update call to canonicalize_condition.
13252         * loop-iv.c (simplify_using_initial_values): Update call to
13253         get_condition.  Remove FIXME.
13254         (check_simple_exit): Update call to get_condition.
13255         * loop-unswitch.c (may_unswitch_on): Likewise.
13256         * loop.c (check_dbra_loop): Likewise.
13257         (canonicalize_condition, get_condition): Add an argument to say whether
13258         the condition must still be valid at INSN.
13259         (get_condition_for_loop): Update call to get_condition.  Require that
13260         the condition be valid at INSN.
13261         * predict.c (estimate_probability): Update call to get_condition.
13262         Remove unused earliest parameter.
13263         (expected_value_to_br_prob): Update call to canonicalize_condition.
13264
13265 2004-07-26  Eric Christopher  <echristo@redhat.com>
13266
13267         * tree-dfa.c (add_referenced_var): Register initializers of global
13268         variables.
13269
13270 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
13271
13272         * config/i386/i386.c (function_arg): Always treat 8-
13273         and 16-byte wide vectors the same, even if MMX/SSE
13274         are disabled.
13275         (contains_128bit_aligned_vector_p): Add comment.
13276
13277 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
13278
13279         * ra.h (enum node_type): Rename to:
13280         (enum ra_node_type).
13281         * ra-colorize.c: Likewise.
13282
13283 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13284
13285         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
13286         after simplifying the jump.
13287
13288 2004-06-26  Richard Henderson  <rth@redhat.com>
13289
13290         * calls.c (combine_pending_stack_adjustment_and_call): Make
13291         preferred_unit_stack_boundary argument unsigned.  Make
13292         unadjusted_alignment unsigned.
13293         (expand_call): Make preferred_stack_boundary and
13294         preferred_unit_stack_boundary variables unsigned.
13295         * function.c (assign_stack_local_1): Make alignment unsigned.
13296         * function.h (struct function): Make stack_alignment_needed,
13297         preferred_stack_boundary unsigned.
13298         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
13299         (ix86_compute_frame_layout): Make stack_alignment_needed,
13300         preferred_alignment variables unsigned.
13301         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
13302
13303 2004-07-26  Tom Tromey  <tromey@redhat.com>
13304
13305         * tree.h: Fix typo in comment.
13306
13307 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
13308
13309         PR bootstrap/12804
13310         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
13311         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
13312         (ggc_free): Remove incorrect freeing.
13313         (sweep_pages): Advance PP for large pages.  Fix indentation.
13314
13315 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
13316
13317         PR rtl-optimization/16643
13318         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
13319         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
13320         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
13321         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
13322         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
13323         * function.c (thread_prologue_and_epilogue_insns): Likewise.
13324         * rtl.h (tracer): Add a flags parameter.
13325         * tracer.c (tracer): Pass it to cfg_layout_initialise.
13326         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
13327         (rest_of_handle_reorder_blocks): Update calls to tracer and
13328         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
13329         (rest_of_handle_tracer): Pass 0 to tracer.
13330         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
13331
13332 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
13333
13334         PR target/16239
13335         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
13336         f->f.
13337
13338 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
13339
13340         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
13341         (BINFO_BASE_ACCESS): Adjust.
13342         (BINFO_BASE_ACCESS_APPEND): New.
13343         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
13344         * dbxout.c (dbxout_type): Adjust binfo access accessing.
13345         * dwarf2out.c (gen_member_die): Likewise.
13346         * tree-dump.c (deque_and_dump): Likewise.
13347
13348 2004-07-26  Falk Hueffner  <falk@debian.org>
13349
13350         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
13351         costs.
13352
13353 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13354
13355         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
13356         value off of the stack if TARGET_USE_FFREEP.
13357
13358 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13359
13360         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
13361         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
13362         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
13363         check on invocation of XRESIZEVEC ().
13364
13365 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13366
13367         * c-common.c (disable_builtin_function): Rename variable n to
13368         new_disabled_builtin.
13369         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
13370         Rename local variable old to old_decl.
13371         * gensupport.c (shift_output_template): Rename parameter old to src.
13372         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
13373         old_rtx and newx to new_rtx.
13374
13375 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
13376
13377         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
13378         of c-pragma.h.
13379         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
13380         enum cpp_ttype.
13381         * c-lex.c: Likewise.
13382
13383 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13384
13385         * fold-const.c (constant_boolean_node): Make extern.
13386         (make_range): Wrap long lines.
13387         (fold_cond_expr_with_comparison): Remove unnecessary call to
13388         pedantic_non_lvalue.  Add missing calls to fold_convert.
13389         (fold_truthop): Add missing calls to fold_convert.
13390         (fold): Likewise.
13391         * tree.h (constant_boolean_node): Add prototype here.
13392         * builtins.c (expand_builtin_strncmp): Add missing calls to
13393         fold_convert.
13394         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
13395         Call fold_convert and constant_boolean_node to correct types.
13396         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
13397         missing call to fold_convert to correct types.
13398
13399 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
13400             Brian Ryner  <bryner@brianryner.com>
13401
13402         PR c++/9283
13403         PR c++/15000
13404         * c-common.c (c_common_attribute_table): Allow
13405         handle_visibility_attribute to be called for types.
13406         (handle_visibility_attribute) When given a type, set the visibility
13407         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
13408         so that we can check later whether the attribute was present. Added
13409         warning if attribute applied to non class type.
13410         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
13411         decls and checking that they are consistent.
13412         * common.opt: Added -fvisibility.
13413         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
13414         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
13415         * flags.h, tree.h: Added assorted support defines for overall patch
13416         * opts.c: Added parsing support for -fvisibility.
13417         * tree.c (build_decl): Set visibility for all decls to be whatever
13418         is in force at that time.
13419         * varasm.c (default_binds_local_p_1): Reworked logic determining
13420         when to make a symbol locally bound.
13421         * doc/invoke.texi: Added documentation for -fvisibility and
13422         -fvisibility-inlines-hidden.
13423
13424 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13425
13426         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
13427         * c-common.c: Add missing casts from void * to other types.
13428         * c-decl.c: Likewise.
13429         * c-format.c: Likewise.
13430         * c-lex.c: Likewise.
13431         * c-pragma.c: Likewise.
13432         * c-typeck.c: Likewise.
13433         * defaults.h: Likewise.
13434         * genconstants.c: Likewise.
13435         * gengtype-lex.l: Likewise.
13436         * genmodes.c: Likewise.
13437         * read-rtl.c: Likewise.
13438         * rtl.c: Likewise.
13439
13440 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13441
13442         * bitmap.c: Use type-safe memory allocation macros from libiberty.
13443         * c-common.c: Likewise.
13444         * c-decl.c: Likewise.
13445         * c-lang.c: Likewise.
13446         * c-lex.c: Likewise.
13447         * c-opts.c: Likewise.
13448         * c-parse.in: Likewise.
13449         * c-typeck.c: Likewise.
13450         * genconditions.c: Likewise.
13451         * gengtype-lex.l: Likewise.
13452         * gengtype-yacc.y: Likewise.
13453         * gengtype.c: Likewise.
13454         * genmodes.c: Likewise.
13455         * gensupport.c: Likewise.
13456         * read-rtl.c: Likewise.
13457         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
13458         htab_find_slot().
13459
13460 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13461
13462         * c-decl.c (groktypename, groktypename_in_param_context): Rename
13463         variable typename to type_name.
13464         * c-lex.c (interpret_float): Likewise.
13465
13466 2004-07-25  Roger Sayle  <roger@eyesopen.com>
13467
13468         * convert.c (convert_to_real, convert_to_integer,
13469         convert_to_complex): Replace calls to build with calls to buildN.
13470         * coverage.c (tree_coverage_counter_ref): Likewise.
13471         * dojump.c (do_jump): Likewise.
13472         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
13473         * emit-rtl.c (component_ref_for_mem_expr,
13474         set_mem_attributes_minus_bitpos): Likewise.
13475         * explow.c (update_nonlocal_goto_save_area): Likewise.
13476         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
13477         expand_mult_add): Likewise.
13478         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
13479         store_constructor, get_inner_reference, expand_expr_real_1,
13480         try_casesi, try_tablejump): Likewise.
13481         * function.c (expand_function_start): Likewise.
13482         * stmt.c (emit_case_bit_tests, expand_end_case_type,
13483         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
13484         * stor-layout.c (place_union_field, layout_type): Likewise.
13485         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
13486         * varasm.c (copy_constant): Likewise.
13487
13488 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13489
13490         * c-common.c: Rename all identifiers named `new'.
13491         * c-decl.c: Likewise.
13492         * gensupport.c: Likewise.
13493         * simplify-rtx.c: Likewise.
13494         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
13495         with XNEW().
13496         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
13497         with XNEWVEC().
13498
13499 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
13500
13501         PR c/15360
13502         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
13503         declarations until after calling pushdecl.
13504         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
13505         "extern" and not on whether the declaration is initialized.
13506
13507 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
13508
13509         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
13510         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
13511         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
13512         "cpplib.h", "c-pragma.h", "c-common.h".
13513         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
13514         (solaris_register_pragmas): New functions.
13515         * config/sol2-protos.h: New file.
13516         * config/sol2.c: New file.
13517         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
13518         (REGISTER_TARGET_PRAGMAS): New macros.
13519         (solaris_pending_aligns, solaris_pending_inits)
13520         (solaris_pending_finis): New variables.
13521         * config/t-sol2 (sol2-c.o): Update dependencies.
13522         (sol2.o): New rule.
13523         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
13524         SUBTARGET_INSERT_ATTRIBUTES.
13525         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
13526         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
13527         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
13528         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
13529         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
13530         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
13531         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
13532         * config/sparc/sparc.c (sparc_attribute_table): New.
13533         (TARGET_INSERT_ATTRIBUTES): Define in terms of
13534         SUBTARGET_INSERT_ATTRIBUTES.
13535         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
13536         is defined.
13537         * doc/extend.texi (Solaris Pragmas): New section.
13538
13539 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13540
13541         * c-common.c: Rename all identifiers named `class' to `cl'.
13542         * c-common.h: Likewise.
13543         * c-parse.in: Likewise.
13544         * c-typeck.c: Likewise.
13545         * genmodes.c: Likewise.
13546         * real.c: Likewise.
13547         * real.h: Likewise.
13548         * recog.c: Likewise.
13549         * recog.h: Likewise.
13550         * regrename.c: Likewise.
13551         * tree.h: Likewise.
13552         * c-common.c (builtin_function_2): Change type of 5th parameter from
13553         int to enum built_in_function. Change type of 8th parameter from int
13554         to bool.
13555         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
13556         with GGC_CNEW().
13557         * c-typeck.c (convert_arguments): Change type of formal_prec from
13558         int to unsigned int.
13559         * genmodes.c (blank_mode): Make a few negative constants unsigned.
13560         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
13561         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
13562         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
13563         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
13564         iterator to for_all_modes () instead of an enum because enums can't
13565         be incremented in C++.
13566
13567
13568 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
13569
13570         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
13571         hard registers.
13572
13573 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13574
13575         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
13576         Handle ARRAY_RANGE_REF like ARRAY_REF.
13577
13578 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
13579
13580         * c-typeck.c (digest_init): Don't allow arrays of signed or
13581         unsigned variants of wchar_t to be initialized by wide string
13582         constants.  Do allow arrays of enumerated types compatible with
13583         wchar_t to be initialized by wide string constants.  Refine tests
13584         distinguishing wide and narrow strings and arrays.  Give specific
13585         error for arrays of other integer types initialized by string
13586         constants.
13587         (output_init_element, process_init_element): Check for
13588         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
13589         initializing with string constants.
13590
13591 2004-07-25  Richard Henderson  <rth@redhat.com>
13592
13593         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
13594         on the RESULT_DECL.
13595         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
13596         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
13597         DECL_IGNORED_P to new decl.
13598
13599 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
13600
13601         * config/ia64/ia64.c (general_xfmode_operand)
13602         (destination_xfmode_operand): Delete.
13603         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
13604         * config/ia64/ia64.md (*movxf_internal): Use general_operand
13605         and destination_operand.
13606
13607 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
13608
13609         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
13610         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
13611
13612 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
13613             Zack Weinberg  <zack@codesourcery.com
13614
13615         PR 16684
13616         * c-decl.c (diagnose_mismatched_decls): Don't issue a
13617         redundant-declaration warning the first time a builtin is
13618         declared explicitly.
13619
13620 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13621
13622         * tree.h (staticp): Change return type to bool.
13623
13624 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13625
13626         * c-common.c (c_staticp): Last episode of the staticp saga.
13627
13628 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13629
13630         * c-common.h (c_staticp): Change return type from int to bool.
13631         * tree.c (staticp): Likewise.
13632         * langhooks.h (staticp): Likewise.
13633
13634 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13635
13636         * langhooks-def.h (lhd_staticp): Change return type from int to
13637         bool in prototype to match definition.
13638
13639 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13640
13641         * system.h (bool, true, false): Don't redefine as preprocessor macros
13642         in C++.
13643
13644 2004-07-24  Roger Sayle  <roger@eyesopen.com>
13645
13646         * expmed.c (init_expmed): A signed modulus by a power of two is
13647         considered cheap if its less than or equal to four instructions.
13648
13649 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13650
13651         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
13652         GGC_CNEWVAR): New macros.
13653
13654 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
13655
13656         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
13657         lists.
13658         * c-decl.c: Likewise.
13659         * c-format.c: Likewise.
13660         * c-lex.c: Likewise.
13661         * c-opts.c: Likewise.
13662         * c-pragma.c: Likewise.
13663         * c-typeck.c: Likewise.
13664         * gencheck.c: Likewise.
13665         * genconditions.c: Likewise.
13666         * genconfig.c: Likewise.
13667         * genflags.c: Likewise.
13668         * gengtype.c: Likewise.
13669         * gensupport.c: Likewise.
13670         * ggc-none.c: Likewise.
13671         * langhooks.c: Likewise.
13672         * statistics.h: Likewise.
13673         * stub-objc.c: Likewise.
13674         * java/decl.c: Likewise.
13675
13676 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
13677
13678         * config/m68k/m68k.c (output_scc_di): Fix coding style.
13679         (symbolic_operand): Fix prototype.
13680         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
13681         * config/m68k/m68k.md: Add constants for registers a0 and sp and
13682         use them, change from the "{...}" syntax to the simpler {...}
13683         syntax.
13684         (*cfv4_extendqisi2): Fix destination predicate.
13685         * config/m68k/m68k-protos.h: Remove various declarations also
13686         generated via PREDICATE_CODES.
13687
13688 2004-07-23  Mike Stump  <mrs@apple.com>
13689
13690         * c-typeck.c (convert_for_assignment): Tightened up pointer
13691         converstions that differ in signedness.
13692
13693 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
13694
13695         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
13696
13697 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13698
13699         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
13700         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
13701
13702         * gimplify.c (gimplify_compound_lval): Check for no handled
13703         operations, rather than checking for explicit list of nodes.
13704         (is_gimple_addr_expr_arg_or_indirect): New function.
13705         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
13706         redundant setting of TREE_INVARIANT.
13707         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
13708         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
13709
13710 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
13711
13712         PR tree-optimization/16688
13713         PR tree-optimization/16689
13714         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
13715         unnecessary initialization of 'tag'.
13716         (get_tmt_for): Check that the new type tag has the same alias
13717         set as the pointed-to type.
13718         (group_aliases): Only regular variables need to be removed
13719         from the alias set of a name tag.
13720         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
13721         propagation if the two types are not compatible.
13722         (merge_alias_info): Rename from replace_ssa_names_ann.
13723         Add more checking.
13724         (replace_exp_1): If both arguments are SSA_NAMEs, check that
13725         the propagation can be done.
13726         Only call merge_alias_info on pointers.
13727         (propagate_value): Likewise.
13728         * tree-ssa-copyrename.c: Include langhooks.h.
13729         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
13730         to do the merging.
13731         Do not coalesce variables with incompatible types.
13732         (rename_ssa_copies): Call replace_ssa_name_symbol.
13733         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
13734         the same type as the underlying _DECL.
13735         * tree-ssanames.c (replace_ssa_name_symbol): New function.
13736         * tree.h (replace_ssa_name_symbol): Declare.
13737
13738 2004-07-23  Richard Henderson  <rth@redhat.com>
13739
13740         PR c++/16277
13741         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
13742         unshare it properly.
13743         (gimplify_modify_expr_rhs): Push assignment from a conditional into
13744         the conditional for all non-register types.
13745
13746 2004-07-23  Richard Henderson  <rth@redhat.com>
13747
13748         * expr.c (expand_expr_real_1): Don't handle non-local variables.
13749         * expr.h (fix_lexical_addr): Remove.
13750         * function.c (NEED_SEPARATE_AP): Remove.
13751         (fix_lexical_addr): Remove.
13752         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
13753         not null decl_function_context.
13754         (create_alias_vars): Likewise.
13755         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
13756         (simple_goto_p): Likewise.
13757         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
13758         * tree-ssa-ccp.c (get_default_value): Likewise.
13759         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
13760         * tree.c (needs_to_live_in_memory): Likewise.
13761         * tree-flow-inline.h (may_be_aliased): Move...
13762         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
13763         when TREE_STATIC variables may be addressable.
13764
13765 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
13766
13767         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
13768
13769 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
13770
13771         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
13772         bitmap contents if GENERATOR_FILE is defined.
13773         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
13774         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
13775
13776 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
13777
13778         * c-decl.c (start_function): Form composite type of function types
13779         rather than copying type from previous prototype declaration.
13780
13781 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
13782
13783         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
13784         the const qualifier for the second argument in the C++ functions.
13785
13786         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
13787         specific pointer types.
13788
13789         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
13790         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
13791         for vector bool and/or vector pixel, add C++ and C missing support.
13792         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
13793         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
13794         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
13795         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
13796         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
13797         missing C++ and C support for vector bool and/or vector pixel.
13798         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
13799         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
13800         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
13801         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
13802         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
13803         C++ and C types used for vector bool and/or vector pixel.
13804         (vec_st, vec_stl): Add C++ support for vector pixel.
13805         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
13806         (vec_all_ne): Add C++ support for vector pixel.
13807
13808         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
13809         (vec_vmulesb): Add missing C++ function.
13810         (vec_perm): Fix type of third argument in C++ function.
13811         (vec_vsum4shs): Fix C++ function name.
13812         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
13813         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
13814         argument passed to the error handler in C macro.
13815         (vec_nmsub): Remove extra parens around argument names in C macro.
13816         (vec_packpx): Add missing parens in C macro.
13817
13818 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
13819
13820         * machmode.def: Remove vector modes.
13821         * config/alpha/alpha-modes.def: Add supported vector modes.
13822         * config/arm/arm-modes.def: Likewise.
13823         * config/frv/frv-modes.def: Likewise.
13824         * config/i386/i386-modes.def: Likewise.
13825         * config/rs6000/rs6000-modes.def: Likewise.
13826         * config/sh/sh-modes.def: Likewise.
13827
13828 2004-07-23  Matthias Klose  <doko@debian.org>
13829
13830         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
13831         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
13832         * config.h: Regenerate.
13833         * configure: Likewise.
13834
13835 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
13836
13837         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
13838         generated SYMBOL_REFs for labels.
13839         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
13840         Change prototype.
13841         (machopic_stub_name): Remove.
13842         (machopic_indirection_name): New function.
13843         (machopic_mcount_stub_name): Likewise.
13844         (machopic_classify_name): Remove.
13845         (machopic_function_base_sym): New function.
13846         (machpoic_classify_symbol): Likewise.
13847         (machopic_classify_ident): Remove.
13848         (machopic_define_ident): Likewise.
13849         (machopic_define_name): Likewise.
13850         (machopic_name_defined_p): Likewise.
13851         (machopic_ident_defined_p): Likewise.
13852         (darwin_strip_name_encoding): Likewise.
13853         (machopic_define_symbol): New function.
13854         * config/darwin.c (hashtab.h): Include.
13855         (machopic_defined_list): Remove.
13856         (machopic_classify_ident): Likewise.
13857         (machopic_classify_name): Likewise.
13858         (machopic_ident_defined_p): Likewise.
13859         (machopic_define_ident): Likewise.
13860         (machopic_define_name): Likewise.
13861         (machopic_symbol_defined_p): New function.
13862         (machopic_classify_symbol): Likewise.
13863         (machopic_data_defined_p): Use machopic_classify_symbol.
13864         (machopic_define_symbol): New function.
13865         (machopic_function_base_sym): New function.
13866         (machopic_non_lazy_pointers): Remove.
13867         (machopic_non_lazy_ptr_name): Likewise.
13868         (machopic_stubs): Likewise.
13869         (machopic_stub_name): Likewise.
13870         (NON_LAZY_POINTER_SUFFIX): New macro.
13871         (STUB_SUFFIX): Likewise.
13872         (machopic_indirection): New structure.
13873         (machopic_indirections): New variable.
13874         (machopic_indirection_hash): New function.
13875         (machopic_indirection_eq): Likewise.
13876         (machopic_indirection_name): Likewise.
13877         (machopic_mcount_stub_name): New function.
13878         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
13879         hash table.
13880         (machopic_indirect_data_reference): Rework to use new functions.
13881         (machopic_indirect_call_target): Likewise.
13882         (machopic_legitimize_pic_address): Likewise.
13883         (machopic_output_indirection): New function.
13884         (machopic_finish): Use it.
13885         (machopic_operand_p): Rework to use new functions.
13886         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
13887         (darwin_strip_name_encoding): Remove.
13888         (update_non_lazy_ptrs): Remove.
13889         (update_stubs): Likewise.
13890         (darwin_non_lazy_pcrel): Use new functions.
13891         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
13892         (ASM_OUTPUT_LABELREF): Likewise.
13893         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
13894         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
13895         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
13896         (TARGET_STRIP_NAME_ENCODING): Do not use
13897         darwin_strip_name_encoding.
13898         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
13899         darwin_strip_name_encoding.
13900         * config/i386/darwin.h (FUNCTION_PROFILER): Use
13901         machopic_mcount_stub_name.
13902         * config/i386/i386.c (x86_output_mi_thunk): Use
13903         machopic_indirection_name, not machopic_stub_name.
13904         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
13905         machopic_function_base_sym.
13906         (print_operand): Use machopic_classify_symbol.
13907         (rs6000_emit_prologue): Use machopic_function_base_sym.
13908         (output_profile_hook): Do not use machopic_stub_name.
13909         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
13910
13911 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13912
13913         PR c/7284
13914         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
13915         as multiplication.
13916
13917 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
13918
13919         * doc/implement-c.texi: New file.
13920         * doc/extend.texi (C Implementation): Move to there.
13921         * doc/gcc.texi: Include implement-c.texi.
13922         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
13923
13924 2004-07-22  Jason Merrill  <jason@redhat.com>
13925
13926         * integrate.c (copy_decl_for_inlining): Remove invisible reference
13927         handling.
13928         * tree-inline.c (setup_one_parameter): Likewise.
13929
13930 2004-07-22  Brian Booth  <bbooth@redhat.com>
13931
13932         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
13933         (substitute_and_fold): Propigate into VUSE operands when possible.
13934         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
13935         (cp_lattice_meet): Handle merging of latticevalues when
13936         UNKNOWN_VAL is present.
13937         (visit_stmt): Visit assignments with V_MUST_DEFs.
13938         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
13939         (ccp_fold): Deal with RHS' that are constant and virtual.
13940         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
13941         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
13942         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
13943         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
13944         computing immediate uses.
13945         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
13946         transition.
13947         (replace_vuse_in): New function.
13948         (likely_value): Add check of vuse operands.
13949         (get_default_value): Set the default value of virtually defined
13950         variables to UKNOWN_VAL instead of VARYING.
13951
13952 2004-07-22  Richard Henderson  <rth@redhat.com>
13953
13954         * expr.c (emit_push_insn): Don't use set_mem_attributes.
13955
13956 2004-07-22  Richard Henderson  <rth@redhat.com>
13957
13958         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
13959         variables due to conditional compilation.
13960
13961 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
13962
13963         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
13964         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
13965         Release SSA names that have been re-renamed.
13966         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
13967         variable.
13968         * tree-ssa-alias.c (init_alias_info): If aliases have been
13969         computed before, clear existing alias information.
13970         (create_name_tags): Do no fixup PT_ANYTHING pointers.
13971         If the new name tag for a pointer is different than the one it
13972         had before, mark the old tag for renaming.
13973         (replace_may_alias): New function.
13974         (group_aliases): Call it.
13975         (setup_pointers_and_addressables): Always call get_tmt_for.
13976         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
13977         once.
13978         (set_pt_anything): New local function.
13979         (set_pt_malloc): New local function.
13980         (merge_pointed_to_info): Don't merge pointed-to variables from
13981         the original pointer if the destination is pointing to an
13982         unknown location.
13983         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
13984         (add_pointed_to_var): Do not add a variable to the points-to
13985         set if the pointer is already pointing to anywhere.
13986         (collect_points_to_info_r): If the defining statement is a PHI
13987         node, only merge pointed-to information if the argument has
13988         already been visited.
13989         (get_tmt_for): Only create a new tag if the pointer didn't
13990         have one already.
13991         (dump_alias_info): Emit more information.
13992         (dump_points_to_info_for): Likewise.
13993         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
13994         try to get the annotation of an SSA_NAME.
13995         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
13996         alias sets when checking is enabled.
13997         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
13998         (eliminate): Mark basic blocks that will need
13999         EH information cleaned up.
14000         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
14001         predecessor.
14002         Initialize need_eh_cleanup.
14003         (fini_pre): Call tree_purge_all_dead_eh_edges and
14004         cleanup_tree_cfg if needed.
14005         Free need_eh_cleanup.
14006         * tree-ssa.c (verify_ssa_name): New function.
14007         (verify_def): Call it.
14008         Re-arrange to avoid printing too many error messages.
14009         (verify_use): Likewise.
14010         (verify_phi_args): Likewise.
14011         (verify_flow_insensitive_alias_info): New function.
14012         (verify_flow_sensitive_alias_info): New function.
14013         (verify_alias_info): New function.
14014         (verify_ssa): Call verify_alias_info.
14015         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
14016         program.
14017         Re-arrange to avoid printing too many error messages.
14018         * tree-ssanames.c (make_ssa_name): Clear
14019         SSA_NAME_IN_FREE_LIST.
14020         (release_ssa_name): Never release a default definition.
14021         (release_defs): New function.
14022         * tree.h: Declare it.
14023         * tree-ssa-dce.c (remove_dead_stmt): Call it.
14024
14025 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
14026
14027         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
14028         If true, do a depth-first search.  Do a breadht-first search,
14029         otherwise.
14030         (walk_use_def_chains): Add new argument IS_DFS.
14031         Update all users.
14032         * tree-flow.h (walk_use_def_chains): Update prototype.
14033
14034 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
14035
14036         * config/cris/cris.md: Tweak formatting.
14037         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
14038         (mover2side, moverside, movemside, movei, op3, andu): Replace
14039         live define_peephole:s with define_peephole2 near-equivalents.
14040         Delete the rest.
14041         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
14042         word-size modes.
14043         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
14044         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
14045         "*mov_sidesi_mem" respectively.
14046
14047 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
14048
14049         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
14050         (gimplify_build1): Move from tree-complex.c do_unop.
14051         (gimplify_build2): Move from tree-complex.c do_binop.
14052         (gimplify_build3): New.
14053         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
14054         Adjust throughout to call the functions above.
14055         * tree-flow.h: Declare the functions above.
14056         * tree-nested.c (gimplify_val): Rename to...
14057         (tsi_gimplify_val): ... this.
14058
14059         * Makefile.in (tree_complex.o): Update dependencies.
14060         (stor-layout.o): Depend on regs.h.
14061         * c-common.c (handle_vector_size_attribute): Update for
14062         vector types without corresponding vector modes.
14063         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
14064         a corresponding vector mode is not available.
14065         * print-tree.c (print_node): Print nunits for vector types
14066         * regclass.c (have_regs_of_mode): New.
14067         (init_reg_sets_1): Initialize it and use it instead
14068         of allocatable_regs_of_mode.
14069         * regs.h (have_regs_of_mode): Declare it.
14070         * stor-layout.c (layout_type): Pick a mode for vector types.
14071         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
14072         build_replicated_const, do_unop, do_binop, do_plus_minus,
14073         do_negate, expand_vector_piecewise, expand_vector_parallel,
14074         expand_vector_addition, expand_vector_operations_1,
14075         expand_vector_operations, tree_lower_operations,
14076         pass_lower_vector_ssa, pass_pre_expand): New.
14077         (expand_complex_operations, pass_lower_complex): Remove.
14078         * tree-optimize.c (init_tree_optimization_passes): Adjust
14079         pass ordering for changes in tree-complex.c.
14080         * tree-pass.h: Declare new passes.
14081         * tree.c (finish_vector_type): Remove.
14082         (make_vector_type): New.
14083         (build_vector_type_for_mode, build_vector_type): Rewritten.
14084         * tree.def (VECTOR_TYPE): Document where the number of
14085         subparts is stored.
14086         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
14087         (make_vector): Remove declaration.
14088
14089 2004-07-21  Richard Henderson  <rth@redhat.com>
14090
14091         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
14092         TREE_THIS_VOLATILE, may_aliases, or optimization level.
14093         (remove_useless_vars): Dump debugging info.
14094         (expand_used_vars): Move ...
14095         * cfgexpand.c (expand_used_vars): ... here.  Make static.
14096         * tree-flow-inline.h (set_is_used): New.
14097         (set_default_def): Use get_var_ann.
14098         * tree-flow.h: Update decls.
14099         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
14100         (create_ssa_var_map): Use it.
14101         * tree-ssa.c (set_is_used): Remove.
14102
14103 2004-07-22  Ben Elliston  <bje@au.ibm.com>
14104
14105         * gdbinit.in: Set a breakpoint on internal_error.
14106
14107 2004-07-21  Richard Henderson  <rth@redhat.com>
14108
14109         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
14110         to create a new basic block.
14111
14112 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14113
14114         PR c/15052
14115         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
14116         return type on function definitions.  Move other warnings for
14117         qualified return type to -Wreturn-type.  Do not condition any such
14118         warnings on -pedantic.  Update comments.
14119         (start_function): Only copy function type from previous prototype
14120         declaration if return types are compatible.
14121         * c-typeck.c (function_types_compatible_p): Don't condition
14122         warning for incompatibility of volatile qualifiers on the return
14123         type on -pedantic.  Update comment.
14124         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
14125
14126 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14127
14128         * c-typeck.c (set_init_index): Require designator to be of integer
14129         type.
14130
14131 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
14132
14133         PR c/11250
14134         * c-parse.in (init): Change to exprtype.
14135         (primary): Set original_code for STRING to STRING_CST.
14136         Call maybe_warn_string_init for compound literals.
14137         (initdcl, notype_initdcl): Call maybe_warn_string_init.
14138         (initval): Update.
14139         * c-tree.h (maybe_warn_string_init): New.
14140         (pop_init_level, process_init_element): Use struct c_expr.
14141         (struct c_expr): Update comment.
14142         * c-typeck.c (maybe_warn_string_init): New function.
14143         (digest_init): Call it.  Additional parameter strict_string.  All
14144         callers changed.
14145         (output_init_element): Likewise.
14146         (struct constructor_stack): Use struct c_expr for
14147         replacement_value.
14148         (really_start_incremental_init, push_init_level): Update.
14149         (pop_init_level): Update.  Return struct c_expr.
14150         (process_init_level): Update.  Take struct c_expr argument.
14151
14152 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
14153
14154         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
14155         commit.
14156
14157 2004-07-21  Eric Christopher  <echristo@redhat.com>
14158
14159         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
14160         removal.
14161         * c-decl.c (pop_scope): Ditto.
14162         * calls.c (expand_call): Remove call to current_nesting_level,
14163         update comment accordingly. Remove calls to expand_start_target_temps
14164         and expand_end_target_temps.
14165         * cfgexpand.c (construct_init_block): Remove call to
14166         expand_start_bindings_and_block.
14167         (construct_exit_block): Remove call to expand_end_bindings.
14168         * expr.c (safe_from_p): Remove BIND_EXPR handling.
14169         (expand_expr_real_1): Ditto. Fix formatting.
14170         (expand_vars): Delete.
14171         * stmt.c (POPSTACK): Remove block_stack.
14172         (stmt_status): Remove x_block_stack.
14173         (block_stack): Delete.
14174         (expand_start_bindings_and_block): Ditto.
14175         (expand_start_target_temps): Ditto.
14176         (expand_end_target_temps): Ditto.
14177         (current_nesting_level): Ditto.
14178         (warn_about_unused_variables): Ditto.
14179         (expand_end_bindings): Ditto.
14180         * tree.h: Remove declarations for above.
14181
14182 2004-07-21  Steven Bosscher  <stevenb@suse.de>
14183
14184         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
14185         * rtl.c (note_insn_name): Likewise.
14186         * print-rtl.c (print_rtx): Don't print it.
14187         * cfgrtl.h (can_delete_note_p): Don't handle it.
14188         (rtl_delete_block): Likewise.
14189         * passes.c (rest_of_handle_guess_branch_prob): Remove.
14190         (rest_of_compilation): Don't call it.
14191         * predict.c (process_note_predictions, process_note_prediction,
14192         note_prediction_to_br_prob): Remove.
14193         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
14194         * stmt.c (return_prediction): Remove.
14195         (expand_value_return): Don't call it.  Don't add prediction
14196         notes for return statements.
14197
14198 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
14199
14200         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
14201         once.
14202
14203 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
14204
14205         * c-common.c (vector_types_convertible_p): Use vector types'
14206         TYPE_SIZE and TREE_TYPE instead of their mode.
14207         * convert.c (convert_to_integer): Likewise.
14208         (convert_to_vector): Likewise.
14209         * fold-const.c (fold_convert): Likewise.
14210         * varasm.c (output_constant): Likewise.
14211         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
14212         Allow a VECTOR_TYPE initializer to be made of several vectors.
14213         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
14214         of cleared and need_to_clear, and use fold_convert.
14215         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
14216         integer vectors.
14217
14218 2004-07-20  Richard Henderson  <rth@redhat.com>
14219
14220         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
14221         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
14222
14223 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
14224
14225         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
14226         enormous cost if not TARGET_HARD_MUL.
14227
14228 2004-07-20  Andrew Pinski  <apinski@apple.com>
14229
14230         PR target/16557
14231         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
14232         (ASM_SPEC): here.
14233
14234 2004-07-21  Paul brook  <paul@codesourcery.com>
14235
14236         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
14237
14238 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14239
14240         * fold-const.c (operand_equal_p): Temporarily support NULL args.
14241         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
14242         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
14243
14244 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
14245
14246         * rtl.h (plus_constant): Delete.
14247         (plus_constant_wide): Rename to plus_constant.
14248         (plus_constant_for_output_wide): Delete vestigial prototype.
14249         (GEN_INT): Remove unnecessary cast.
14250         * tree.h (build_int_2, size_int_type): Delete.
14251         (build_int_2_wide): Rename to build_int_2.
14252         (size_int_wide): Rename to size_int_kind.
14253         (size_int_type_wide): Rename to size_int_type.
14254         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
14255         Remove unnecessary cast.
14256         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
14257         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
14258         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
14259         (size_int_type_wide): Rename size_int_type.
14260         (int_const_binop): Use size_int_type.
14261         * c-lex.c (interpret_integer): Use build_int_2.
14262         * final.c (split_double): Remove unnecessary casts.
14263         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
14264
14265 2004-07-20  Richard Henderson  <rth@redhat.com>
14266
14267         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
14268         (gimplify_compound_lval): Use is_gimple_tmp_reg.
14269         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
14270         (is_gimple_tmp_reg): New.
14271         * tree-gimple.h (is_gimple_tmp_reg): Declare.
14272
14273 2004-07-20  Richard Henderson  <rth@redhat.com>
14274
14275         * tree-pretty-print.c (dump_generic_node): Dump
14276         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
14277
14278 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
14279
14280         * tree-mudflap.c (mf_set_options_fndecl): New tree.
14281         (mudflap_init): Set it.
14282         (mudflap_register_call): Remove __mf_init call.
14283         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
14284         to pass "-ignore-reads" option to libmudflap if needed.
14285
14286 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
14287
14288         PR c++/14607
14289         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
14290         (MAKE_DECL_ONE_ONLY): Undefine.
14291         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
14292         readonly_data, one_only_data_section, forget_section): New prototypes.
14293         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
14294         functions.
14295         (pa_select_section): Add one-only (COMDAT) support.
14296         * pa.h (struct machine_function): Define.
14297         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
14298         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
14299         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
14300         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
14301         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
14302         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
14303         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
14304         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
14305         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
14306         for EXTRA_SECTION_FUNCTIONS.
14307         * doc/install.texi: Update binutils requirements.
14308
14309 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14310
14311         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
14312         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
14313         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
14314         size_t.
14315         (struct VEC): Use unsigned for num and alloc.
14316         * vec.c (struct vec_prefix): Likewise.
14317         (vec_o_reserve): Adjust.
14318
14319         * dbxout.c (dbxout_type): Fix printf format.
14320
14321         * tree.h (binfo_member): Remove.
14322         * tree.c (binfo_member): Remove.
14323
14324 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
14325
14326         * tree.h: Include vec.h
14327         (DEF_VEC_P(tree)): New type.
14328         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
14329         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
14330         (BINFO_LANG_SLOT): Remove.
14331         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
14332         (struct tree_binfo): Turn base_binfos into a trailing
14333         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
14334         (binfo_lang_slots): Remove.
14335         * tree.c (binfo_lang_slots): Remove.
14336         (make_tree_binfo_stat): Take a base binfo count, not a
14337         lang slot count.  Adjust.
14338         * Makefile.in (TREE_H): Add vec.h
14339         * alias.c (record_component_aliases): Adjust BINFO access.
14340         * dbxout.c (dbxout_type): Likewise.
14341         * dwarf2out.c (gen_member_die): Likewise.
14342         * sdbout.c (sdbout_one_type): Likewise.
14343         * tree-dump.c (deque_and_dump): Likewise.
14344         * config/i386/i386.c (classify_argument,
14345         contains_128bit_aligned_vector_p): Likewise.
14346         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
14347         * doc/c-tree.texi (Classes): Update BINFO documentation.
14348
14349 2004-07-20  Steven Bosscher  <stevenb@suse.de>
14350
14351         * c-common.h (check_case_value): Remove prototype.
14352         (c_add_case_label): Adjust prototype.
14353         * c-common.c (check_case_value): Make static.
14354         (check_case_bounds): New function.
14355         (c_add_case_label): Use it.  Take new argument orig_type.
14356         * c-typeck.c (struct c_switch): New orig_type field.
14357         (c_start_case): Set it.
14358         (do_case): Pass it to c_add_case_label.
14359         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
14360         cases from here.  Add the labels in reverse order.
14361         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
14362         (add_case_node): Return nothing, don't check for duplicate cases.
14363         Insert new case nodes in a list, not in an AVL tree.
14364         (expand_end_case_type): Don't turn a case tree into a case list.
14365         (case_tree2list): Remove.
14366         * tree.h (add_case_node): Adjust prototype.
14367
14368 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
14369
14370         * genattr.c (struct range, struct function_unit,
14371         write_units, extend_range, init_range): Remove them.
14372         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
14373         Output "#define INSN_SCHEDULING" here.
14374         * genattrtab.c (struct range, struct function_unit_op,
14375         struct function_unit, struct dimension, enum operator,
14376         operate_exp, expand_units, simplify_knowing,
14377         encode_units_mask, simplify_by_exploding,
14378         find_and_mark_used_attributes, unmark_used_attributes,
14379         add_values_to_cover, increment_current_value,
14380         test_for_current_value, simplify_with_current_value,
14381         simplify_with_current_value_aux, gen_unit,
14382         write_unit_name, write_function_unit_info,
14383         write_complex_function, write_toplevel_expr,
14384         find_single_value, extend_range): Remove.
14385         (write_attr_get): Do not handle common_av->value
14386         being an FFS.
14387         (struct attr_desc): Remove func_units_p and blockage_p.
14388         (write_attr_valueq): Do not handle them.
14389         (find_attr): Do not clear them.
14390         (make_internal_attr): Do not initialize them.
14391         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
14392         * sched-vis.c (init_target_units, insn_print_units,
14393         init_block_visualization, print_block_visualization,
14394         visualize_scheduled_insns, visualize_no_unit,
14395         visualize_stall_cycles, visualize_alloc,
14396         visualize_free, target_units, get_visual_tbl_length,
14397         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
14398         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
14399         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
14400         * haifa-sched.c (blockage_range, clear_units,
14401         schedule_unit, actual_hazard, potential_hazard,
14402         insn_unit, unit_last_insn, unit_tick,
14403         actual_hazard_this_instance, potential_hazard,
14404         schedule_unit, max_insn_queue_index_value): Remove.
14405         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
14406         max_insn_queue_index.
14407         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
14408         * doc/md.texi (Processor pipeline description): Remove
14409         references to old pipeline descriptions.
14410         (Automaton pipeline description): Merge with the above.
14411         (Old pipeline description, Comparison of the two descriptions):
14412         Remove.
14413
14414         * bt-load.c (migrate_btr_def): Remove references to
14415         use_pipeline_interface.
14416         * haifa-sched.c (insn_cost, schedule_insn,
14417         schedule_block, advance_one_cycle, sched_init,
14418         queue_to_ready, sched_finish): Likewise.
14419         * modulo-sched.c (sms_schedule, advance_one_cycle,
14420         ps_has_conflicts): Likewise.
14421         * sched-rgn.c (init_ready): Likewise.
14422         (debug_dependencies): Likewise, and remove an "if (1)".
14423         * target.h (use_dfa_pipeline_interface): Remove.
14424         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14425         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14426         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14427         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14428         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14429         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14430         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14431         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14432         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14433         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14434         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14435         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14436         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14437         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14438         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14439         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14440         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14441         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14442         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
14443
14444 2004-07-19  Roger Sayle  <roger@eyesopen.com>
14445
14446         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
14447
14448 2004-07-19  Jeff Law  <law@redhat.com>
14449
14450         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
14451         (get_eq_expr_value): Use it.  Simplify slightly.
14452
14453 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
14454
14455         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
14456         (umulsidi3_32bit_r4000): Likewise.
14457
14458 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
14459
14460         * vec.h: Propagate location information properly.
14461         (VEC_T_iterate): Add result pointer parameter.
14462         (VEC_T_space): New.
14463         (VEC_T_reserve): Use it.
14464
14465 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
14466
14467         * Makefile.in (c-format.o): Depend on c-format.h.
14468         * c-format.h: New file.
14469         (struct format_char_info): Add CHAIN member.
14470         * c-format.c: Move some types and constants to c-format.h.
14471         (format_type_error): Set to -1.
14472         (struct function_format_info): Use an int for format_type.
14473         (decode_format_type): Return an int.  Return format_type_error
14474         on error.
14475         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
14476         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
14477         (scan_char_table, time_char_table, monetary_char_table): Initialize
14478         CHAIN to NULL.
14479         (n_format_types): New variable.
14480         (check_format_info_main): Handle CHAIN in format_char_info.
14481         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
14482         TARGET_N_FORMAT_TYPES.
14483         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
14484         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
14485         * config/sol2-c.c: New file.
14486         * config/t-sol2: New file.
14487         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
14488         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
14489         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
14490
14491         * doc/extend.texi (Target Format Checks): New section.
14492         (Function Attributes): Mention it.
14493         * doc/invoke.texi: Mention target format checks.
14494         * doc/sourcebuild.texi: Mention target format checks.
14495         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
14496         TARGET_FORMAT_TYPES.
14497
14498 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
14499
14500         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
14501         added.
14502         * config/s390/s390.c (regclass_map initializer): Register 35 added to
14503         ADDR_REGS.
14504         (load_multiple_operation, store_multiple_operation): Removed
14505         pointless sanity check.
14506         (s390_decompose_address): Added check for return_address_pointer_rtx.
14507         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
14508         (s390_return_address_offset): New function.
14509         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
14510         (FRAME_REGNO_P): Added check for register 35.
14511         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
14512         REG_ALLOC_ORDER): Appended entry for register 35.
14513         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
14514         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
14515         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
14516         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
14517         is eliminable using stack pointer or hard frame pointer.
14518         (REGISTER_NAMES): Added name for register 35.
14519         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
14520         pointless sanity check.
14521
14522 2004-07-19  Roger Sayle  <roger@eyesopen.com>
14523
14524         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
14525         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
14526         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
14527         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
14528         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
14529         (fold_relational_const): Tidy up handling of floating point
14530         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
14531         transformation; fold_relational_const assumes constant operands.
14532
14533 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
14534
14535         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
14536         directory.
14537
14538 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
14539
14540         * c-tree.h (struct c_expr): Define.
14541         (C_SET_EXP_ORIGINAL_CODE): Remove.
14542         (parser_build_binary_op, build_compound_expr): Update prototypes.
14543         * c-parse.in (%union): Add exprtype.
14544         (FUNC_NAME): Mark as ttype.
14545         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
14546         exprtype.
14547         (expr): Update.  Define directly in terms of expr_no_commas
14548         instead of using nonnull_exprlist.
14549         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
14550         offsetof_member_designator, typespec_nonreserved_nonattr, init,
14551         initval, designator, component_declarator,
14552         component_notype_declarator, enumerator, array_declarator,
14553         condition, exexpr, switch_statement, stmt_nocomp, stmt,
14554         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
14555         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
14556         where appropriate.
14557         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
14558         * c-common.c (c_common_truthvalue_conversion): Don't check
14559         C_EXP_ORIGINAL_CODE.
14560         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
14561         Don't use C_EXP_ORIGINAL_CODE.
14562         (default_conversion, default_function_array_conversion): Don't use
14563         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
14564         (internal_build_compound_expr): Merge into build_compound_expr.
14565         (build_compound_expr): Take two operands instead of a TREE_LIST.
14566         * objc/objc-act.c (get_super_receiver): Update calls to
14567         build_compound_expr.
14568
14569 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
14570
14571         * config/sh/sh.c (sh_use_dfa_interface): Remove.
14572         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
14573         hook_int_void_1.
14574         * config/sh/sh.md: Extract pipeline descriptions
14575         into separate files.
14576         * config/sh/sh1.md: New file, extracted from sh.md.
14577         * config/sh/sh4.md: New file, extracted from sh.md.
14578         * config/sh/shmedia.md: New file, extracted from sh.md
14579         and rewritten using new-style pipeline description.
14580
14581 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
14582
14583         * config/pa/pa.md: Delete the two remaining define_peephole
14584         patterns.
14585
14586 2004-07-18  Steven Bosscher  <stevenb@suse.de>
14587             Joseph S. Myers  <jsm@polyomino.org.uk>
14588
14589         * c-common.c (c_common_truthvalue_conversion): Don't warn if
14590         TREE_NO_WARNING is set.
14591
14592 2004-07-18  Roger Sayle  <roger@eyesopen.com>
14593
14594         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
14595         simplify_builtin_strncmp): Delete.
14596         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
14597         Change argument to accept an arglist instead of an "exp".  Assume
14598         that the return type is always integer_type_node.  Copy missing
14599         transformations from their now obsolete simplify_builtin_*
14600         equivalents.
14601         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
14602         fold_builtin_strcmp and fold_builtin_strncmp.
14603         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
14604         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
14605         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
14606
14607 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
14608
14609         * Makefile.in (tree-alias-common.o): Update dependencies.
14610
14611 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
14612
14613         * cfgloop.c (flow_loop_nested_p): Fix comment.
14614
14615 2004-07-17  Jason Merrill  <jason@redhat.com>
14616
14617         PR c++/16115
14618         * stor-layout.c (relayout_decl): New fn.
14619         * tree.h: Declare it.
14620         (DECL_BY_REFERENCE): New macro.
14621
14622 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
14623
14624         * libgcc2.c (__enable_execute_stack): New symbol.
14625         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
14626         and declare __enable_execute_stack.
14627         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
14628         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
14629         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
14630         ENABLE_EXECUTE_STACK.
14631         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
14632         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
14633         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
14634         ENABLE_EXECUTE_STACK.
14635         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
14636         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
14637         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
14638         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
14639         ENABLE_EXECUTE_STACK.
14640         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
14641         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
14642         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
14643         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
14644         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
14645         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
14646         (sparc64_initialize_trampoline): Likewise.
14647         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
14648
14649 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
14650
14651         * langhooks.h (builtin_function): New langhook.
14652         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
14653         (LANG_HOOKS_INITIALIZER): Update.
14654         * tree.h (builtin_function): Remove.
14655         * doc/tm.texi: Update.
14656         * c-tree.h (builtin_function): Declare.
14657         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
14658         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
14659         config/ia64/ia64.c, config/iq2000/iq2000.c,
14660         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
14661         config/stormy16/stormy16.c: All callers of builtin_function
14662         changed.
14663
14664 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
14665
14666         PR target/16556
14667         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
14668         Remove white space after the backslash.
14669
14670 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
14671
14672         PR rtl-optimization/16294
14673         * resource.c (return_insn_p): New predicate.
14674         (mark_target_live_regs): Use it.  Special-case return insns.
14675         (init_resource_info): Use it.  Don't scan the epilogue past
14676         a return.
14677
14678 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14679
14680         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
14681         destroy dominance information.
14682         * passes.c (rest_of_handle_loop2):  Free dominance information.
14683         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
14684         jump threading.
14685         (thread_jumps): Update dominance information and remove unreachable
14686         blocks.
14687         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
14688         information and remove the unreachable block.
14689
14690 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
14691
14692         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
14693
14694 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
14695
14696         * doc/sourcebuild.texi: Remove libf2c entry.
14697
14698 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
14699
14700         * config/i386/i386.md (movv16qi_internal): Fix typo.
14701
14702 2004-07-17  Steven Bosscher  <stevenb@suse.de>
14703
14704         * final.c (final_scan_insn): Fix broken commit from previous
14705         patch.
14706
14707 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
14708
14709         * c-typeck.c (parser_build_binary_op): Condition warnings for
14710         X<=Y<=Z on -Wparentheses instead of -Wextra.
14711         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
14712         supported for C only.
14713
14714 2004-07-17  Steven Bosscher  <stevenb@suse.de>
14715
14716         * cfgcleanup.c (try_simplify_condjump): Don't remove line
14717         notes to avoid unreachable code warnings.
14718         * toplev.c (backend_init): Don't emit line notes for
14719         unreachable code warnings.
14720
14721         * combine.c (distribute_notes): Don't distribute a
14722         REG_VTABLE_REF note.
14723         * final.c (final_scan_insn): Don't handle it.
14724         * rtl.c (reg_note_name): Remove it.
14725         * rtl.h (enum reg_node): Dito.
14726
14727         * emit-rtl.c (force_line_numbers, restore_line_number_status):
14728         Remove.
14729         * rtl.h (force_line_numbers, restore_line_number_status):
14730         Remove prototypes.
14731
14732         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
14733         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
14734         (using_eh_for_cleanups): Also moved here.
14735
14736         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
14737         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
14738         to expand_start_case and add_case_node.
14739         * stmt.c (struct nesting): Cleanup unused fields condition_code,
14740         last_unconditional_cleanup, nominal_type, printname, and
14741         line_number_status.
14742         (struct fixup_goto): Remove.
14743         (struct stmt_status): Remove x_goto_fixup_chain field.
14744         (goto_fixup_chain): Remove.
14745         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
14746         pushcase, pushcase_range): Remove.
14747         (expand_start_bindings_and_block): Don't set unused fields in
14748         the nesting stack.
14749         (expand_start_case, add_case_node): Cleanup unused formal arguments.
14750         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
14751         instead of emit_jump_if_reachable.
14752         (emit_case_nodes): Likewise.
14753         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
14754         static.
14755         (update_eh_label): Work around left-over exception handing regions.
14756         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
14757         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
14758         (pass_cleanup_cfg_post_optimizing): New pass.
14759         (init_tree_optimization_passes): Run the new pass after all
14760         optimizations.
14761         * tree.h (pushcase, pushcase_range): Remove prototypes.
14762         (expand_start_case, add_case_node): Update prototypes.
14763
14764 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
14765
14766         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
14767
14768 2004-07-16  Richard Henderson  <rth@redhat.com>
14769
14770         * builtins.c (std_expand_builtin_va_arg): Remove.
14771         (expand_builtin_va_arg): Remove.
14772         * expr.h: Don't declare them.
14773         * gimplify.c (mark_decls_volatile_r): Remove.
14774         (copy_if_shared_r): Don't call it.
14775         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
14776         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
14777         * gimple-low.c (lower_stmt): Likewise.
14778         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
14779         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
14780         * tree-ssa-operands.c (get_expr_operands): Likewise.
14781         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
14782         EXPAND_BUILTIN_VA_ARG.
14783         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
14784         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
14785         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
14786         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
14787
14788 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
14789
14790         * tree-ssa-pre.c (insert_aux): Break out if we hit
14791         a critical edge.
14792
14793 2004-07-16  Richard Henderson  <rth@redhat.com>
14794
14795         * basic-block.h (remove_fake_exit_edges): Declare.
14796         * cfganal.c (remove_fake_predecessors): Rename from
14797         remove_fake_successors; iterate over predecessors.
14798         (remove_fake_exit_edges): New.
14799         * cfgcleanup.c (try_optimize_cfg): Use it.
14800         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
14801         * predict.c (estimate_probability): Likewise.
14802         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
14803         * tree-cfg.c (make_edges): Likewise.
14804         * tree-ssa-pre.c (fini_pre): Likewise.
14805         * profile.c (instrument_edges): Don't remove_fake_edges.
14806         (branch_prob): Do it earlier here.
14807
14808 2004-07-16  Richard Henderson  <rth@redhat.com>
14809
14810         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
14811         switchification wrt CONSTRUCTOR.  Document the reason.
14812
14813 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
14814
14815         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
14816         that prevented descriptive __mf_check source location strings.
14817
14818 2004-07-16  Richard Henderson  <rth@redhat.com>
14819
14820         * tree-def (WITH_SIZE_EXPR): New.
14821         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
14822         * expr.c (expand_expr_real_1): Likewise.
14823         * gimplify.c (maybe_with_size_expr): New.
14824         (gimplify_arg, gimplify_modify_expr): Use it.
14825         (gimplify_modify_expr_to_memcpy): Take size parameter.
14826         (gimplify_modify_expr_to_memset): Likewise.
14827         (gimplify_expr): Handle WITH_SIZE_EXPR.
14828         * tree-alias-common.c (find_func_aliases): Likewise.
14829         * tree-eh.c (tree_could_trap_p): Likewise.
14830         (tree_could_throw_p): Likewise.
14831         * tree-gimple.c (is_gimple_lvalue): Likewise.
14832         (get_call_expr_in): Likewise.
14833         * tree-inline.c (estimate_num_insns_1): Likewise.
14834         (expand_calls_inline): Likewise.
14835         * tree-nested.c (convert_call_expr): Likewise.
14836         * tree-pretty-print.c (dump_generic_node): Likewise.
14837         * tree-sra.c (sra_walk_expr): Likewise.
14838         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
14839         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
14840         * tree-ssa-operands.c (get_expr_operands): Likewise.
14841         * tree-tailcall.c (find_tail_calls): Likewise.
14842
14843         * calls.c (expand_call): Reset old_stack_allocated after
14844         calling emit_stack_restore.
14845
14846 2004-07-16  Richard Henderson  <rth@redhat.com>
14847
14848         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
14849         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
14850         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
14851         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
14852         copy_res_decl_for_inlining.
14853
14854         * tree-inline.c (declare_return_variable): New modify_dest argument.
14855         Use it as the return value, when possible or manditory.  Handle
14856         TREE_ADDRESSABLE types.
14857         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
14858         replacement of CALL_EXPR.
14859
14860 2004-07-16  Richard Henderson  <rth@redhat.com>
14861
14862         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
14863         * gimple-low.c (expand_var_p): Don't check it.
14864         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
14865         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
14866         * tree-ssa-operands.c (add_stmt_operand): Likewise.
14867         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
14868         (find_referenced_vars): Don't call them.
14869         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
14870
14871 2004-07-16  Richard Henderson  <rth@redhat.com>
14872
14873         * function.c (pass_by_reference): True for all variable sized types.
14874
14875 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
14876
14877         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
14878         * tree-pretty-print.c: Include tree-chrec.h.
14879         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
14880         and POLYNOMIAL_CHREC nodes.
14881
14882 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
14883
14884         * builtins.c (expand_builtin_stpcpy): Do not create temporary
14885         reg with VOIDmode.
14886
14887 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
14888
14889         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
14890
14891 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
14892
14893         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
14894         to BASE_REGNUM.
14895         * config/s390/s390.c: Likewise.
14896         * config/s390/s390.h: Likewise.
14897
14898 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14899
14900         * config/mips/mips.md (addsi3, adddi3): Remove special handling
14901         of $sp adds.  Remove REGNO checks from mips16 patterns.
14902
14903 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14904
14905         * config/mips/mips.md: Delete outdated comment.
14906
14907 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14908
14909         * config/mips/mips.c (get_float_compare_codes): Delete.
14910         (mips_emit_compare): New function, mostly extracted from
14911         get_float_compare_codes and gen_conditional_branch.
14912         (gen_conditional_branch, gen_conditional_move): Use it.
14913
14914 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
14915
14916         * genautomata.c (add_vect): Speedup by using integers as
14917         bit-vectors for walking through the comb_vect and finding
14918         a match.
14919
14920 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14921
14922         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
14923         operand is an uns_arith_operand; use subtraction otherwise.
14924         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
14925         not just arith_operands.
14926
14927 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14928
14929         * config/mips/mips-protos.h (gen_int_relational): Delete.
14930         (mips_emit_scc): Declare.
14931         * config/mips/mips.c (internal_test): Delete.
14932         (sle_operand, sleu_operand): New functions.
14933         (map_test_to_internal_test, gen_int_relational): Delete.
14934         (mips_emit_binary, mips_relational_operand_ok_p)
14935         (mips_emit_int_relational, mips_zero_if_equal)
14936         (mips_emit_scc): New functions.
14937         (gen_conditional_branch): Rework to use mips_emit_int_relational.
14938         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
14939         sleu_operand.
14940         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
14941         (sltu, sleu): Use mips_emit_scc.
14942         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
14943         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
14944         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
14945
14946 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14947
14948         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
14949
14950 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14951
14952         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
14953         (*sne_[sd]i): Likewise sne_[sd]i_zero.
14954         (*sgt_[sd]i): ...and sgt_[sd]i.
14955         (*slt_[sd]i): ...and slt_[sd]i.
14956         (*sgtu_[sd]i): ...and sgtu_[sd]i.
14957         (*sltu_[sd]i): ...and sltu_[sd]i.
14958         (*sleu_[sd]i): ...and sleu_[sd]i_const.
14959         Name previously unnamed mips16 patterns.  Formatting fixes.
14960
14961 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14962
14963         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
14964         (branch_type): Delete.
14965         (gen_conditional_branch, gen_conditional_move)
14966         (mips_gen_conditional_trap): Update after name change.  Get the
14967         comparison mode from cmp_operands[0].
14968         * config/mips/mips.h (cmp_type, branch_type): Delete.
14969         (cmp_operands): Renamed from branch_cmp.
14970         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
14971         name change.  Don't set branch_type.
14972         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
14973         mode class of cmp_operands[0] rather than branch_type.  Update after
14974         name change.
14975
14976 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14977
14978         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
14979         of 0...255 to 0 when inside a SET.
14980
14981 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
14982
14983         * config/mips/mips.md: Remove mips16 define_peepholes.
14984
14985 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
14986
14987         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
14988         (fini_pre): Remove fake edges.
14989
14990 2004-07-15  Richard Henderson  <rth@redhat.com>
14991
14992         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
14993         (get_indirect_ref_operands, get_call_expr_operands): ... these.
14994
14995 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
14996
14997         * vec.h (VEC_address): New function.
14998
14999 2004-07-14  Jason Merrill  <jason@redhat.com>
15000
15001         PR middle-end/15885
15002         * gimplify.c (gimplify_arg): New fn, split out from...
15003         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
15004
15005 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15006
15007         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
15008         generate code which is generated by pushqi1 now
15009         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
15010
15011 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
15012
15013         * combine.c (simplify_set): match the mode of the constant 0 with
15014         the tested operand to match the compare behaviour and the
15015         simplify_relational_operation() expectation.
15016
15017 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15018
15019         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
15020         ("bordered"): Same.
15021
15022 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
15023
15024         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
15025         unconditionally.
15026         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
15027
15028 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15029
15030         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
15031         calls in mips16 code.
15032
15033 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
15034
15035         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
15036         the destination of the li as well as for the neg.
15037
15038 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
15039
15040         g++/15861
15041         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
15042         * cgraph.h: Update declaration.
15043         * c-decl.c (build_cdtor): Update call with default priority.
15044         * coverage.c (create_coverage): Ditto.
15045         * tree-mudflap.c (mf_init_fndecl): New tree.
15046         (mudflap_init): Set it.
15047         (mudflap_register_call): Arrange to call __mf_init before the first
15048         __mf_register call.
15049         (mudflap_finish_file): Mark the mudflap static initializer as extra
15050         high priority, to beat all C++ static constructors.
15051
15052 2004-07-15  Jeff Law  <law@redhat.com>
15053
15054         * loop.c (check_insn_for_givs): Restore check for code labels that was
15055         accidentally deleted by a recent checkin.
15056
15057 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
15058
15059         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
15060         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
15061
15062 2004-07-14  Richard Henderson  <rth@redhat.com>
15063
15064         * print-tree.c (print_node): Fix casts last change.
15065
15066 2004-07-15  Paul Brook  <paul@codesourcery.com>
15067
15068         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
15069         to TARGET_UNWIND_INFO.
15070         * except.c (output_function_exception_table): Ditto.
15071         * except.h: Ditto.
15072         * opts.c (decode_options): Ditto.
15073         * passes.c (rest_of_handle_final): Ditto.
15074         * final.c (final_start_function): Ditto.
15075         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
15076         target hook.
15077         * targhooks.h (default_unwind_emit): Declare.
15078         * targhooks.c (default_unwind_emit): New function.
15079         * target-def.h: Define and use TARGET_UNWIND_EMIT.
15080         * target.h (struct gcc_target): Add unwind_emit.
15081         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
15082         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
15083         Remove IA64_UNWIND_EMIT.
15084         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
15085
15086 2004-07-14  Richard Henderson  <rth@redhat.com>
15087
15088         * print-tree.c (print_node): Handle SSA_NAME.
15089
15090 2004-07-14  James E Wilson  <wilson@specifixinc.com>
15091
15092         PR target/16325
15093         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
15094         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
15095
15096 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
15097
15098         * expr.c (expand_assignment): Reenable bitfield += optimizations.
15099         Use alias set 0 for memory, do proper mode calculations and adjust
15100         address for memories.
15101
15102 2004-07-14  Per Bothner  <per@bothner.com>
15103
15104         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
15105         structure with extra column field.
15106         * tree.c (expand_location):  Also fill in column field.
15107         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
15108         gets confused by the two conditionally-compiled definitions.
15109
15110 2004-07-14  Eric Christopher  <echristo@redhat.com>
15111
15112         * calls.c (expand_call): Fix typo in comment.
15113
15114 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
15115
15116         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
15117         comparision of TFmode.
15118
15119 2004-07-14  Richard Henderson  <rth@redhat.com>
15120
15121         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
15122         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
15123         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
15124         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
15125         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
15126         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
15127         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15128         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
15129         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
15130
15131 2004-07-14  Mike Stump  <mrs@apple.com>
15132
15133         * config/darwin.h (WINT_TYPE): Define to be int to match
15134         system header files.
15135
15136 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
15137
15138         * config/xtensa/xtensa.c (function_arg_advance): Check for args
15139         that must be passed in the stack.
15140         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
15141         arguments if the size is not a constant.
15142
15143 2004-07-14  Per Bothner  <per@bothner.com>
15144
15145         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
15146         instead of EXPR_LOCUS in a boolean context, which is always true
15147         if --enable-mapped-location.
15148         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
15149
15150 2004-07-14  Richard Henderson  <rth@redhat.com>
15151
15152         * dominance.c (struct dom_info): Add fake_exit_edge.
15153         (init_dom_info): Allocate it.
15154         (free_dom_info): Free it.
15155         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
15156         in two passes.
15157         (calc_idoms): Honor fake_exit_edge.
15158
15159 2004-07-13  Jason Merrill  <jason@redhat.com>
15160
15161         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
15162         (rhs_test_for): New fn.
15163         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
15164         * tree-gimple.h: Declare them.
15165         * gimplify.c (gimplify_modify_expr): Use the new fns.
15166
15167 2004-07-14  Richard Henderson  <rth@redhat.com>
15168
15169         * config/arm/arm-protos.h (arm_va_arg): Remove.
15170         * config/arm/arm.c (arm_va_arg): Remove.
15171         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
15172         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
15173
15174 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15175
15176         * pa.c (fix_range): New function to mark a range(s) of registers as
15177         fixed registers.
15178         (override_options): Call fix_range if the -mfixed-range option string
15179         is not empty.
15180         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
15181         * doc/invoke.texi (-mfixed-range): Document new option.
15182
15183 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
15184
15185         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
15186         for TARGET_64BIT.
15187         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
15188
15189 2004-07-14  Roger Sayle  <roger@eyesopen.com>
15190
15191         * expmed.c (expand_sdiv_pow2): New function to expand signed division
15192         by a positive power of two, split out from expand_divmod.  Provide
15193         an alternate implementation when shifts are expensive.  Lower the
15194         threshold for using a branchless implementation to BRANCH_COST >= 2.
15195         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
15196
15197 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15198
15199         * tree-dfa.c (make_rename_temp): *Really* work just
15200         like create_tmp_var if called while outside SSA form.
15201
15202 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
15203
15204         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
15205         for division by zero.
15206         ("umodsi3"): Likewise.
15207
15208 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15209
15210         * config/mips/mips.c (mips_output_move): When generating mips16 code,
15211         force loads of negative constants to be split.
15212         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
15213         Generalize SImode li/neg splitter to cope with other modes.
15214
15215 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15216
15217         * expmed.c: Remove more references to QUEUED in the comments.
15218         * expr.c: Likewise.
15219
15220 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
15221
15222         Revert:
15223         2004-07-13  Richard Henderson  <rth@redhat.com>
15224         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
15225         correctly.
15226
15227 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15228
15229         * tree-dfa.c (make_rename_temp): Work just like
15230         create_tmp_var if called while outside SSA form.
15231
15232 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
15233
15234         * expr.c (enqueue_insn, finish_expr_for_function,
15235         protect_from_queue, queued_subexp_p, mark_queue,
15236         emit_insns_enqueued_after_mark, emit_queue,
15237         expand_increment): Remove.
15238         (store_constructor): Expand increment as an assignment.
15239         (expand_expr_real_1 <case PREINCREMENT_EXPR,
15240         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
15241         case POSTDECREMENT_EXPR>): Abort.
15242         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
15243         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
15244         protect_from_queue, emit_queue, queued_subexp_p): Remove.
15245         * function.h (pending_chain, x_pending_chain): Remove.
15246         * rtl.def (QUEUED): Remove.
15247
15248         * emit-rtl.c (copy_insn_1, copy_most_rtx,
15249         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
15250         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
15251         encode_units_mask): Likewise.
15252         * local-alloc.c (equiv_init_varies_p): Likewise.
15253         * rtl.c (copy_rtx): Likewise.
15254         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
15255         * simplify-rtx.c (simplify_gen_subreg): Likewise.
15256         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
15257
15258         * builtins.c (expand_builtin, expand_builtin_apply,
15259         expand_builtin_mathfn, expand_builtin_mathfn_2,
15260         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
15261         Remove calls to emit_queue and protect_from_queue.
15262         * calls.c (expand_call, precompute_arguments,
15263         precompute_register_parameters, rtx_for_function_call,
15264         store_one_arg): Likewise.
15265         * dojump.c (do_compare_and_jump, do_jump): Likewise.
15266         * explow.c (memory_address): Likewise.
15267         * expmed.c (clear_by_pieces_1, clear_storage,
15268         clear_storage_via_libcall, emit_group_load,
15269         emit_group_store, emit_store_flag,
15270         expand_expr_real_1, store_by_pieces,
15271         store_constructor, store_expr, try_casesi,
15272         try_tablejump): Likewise.
15273         * function.c (expand_pending_sizes): Likewise.
15274         * optabs.c (emit_cmp_and_jump_insns,
15275         emit_conditional_add, emit_conditional_move,
15276         expand_fix, expand_float, prepare_cmp_insn): Likewise.
15277         * stmt.c (emit_case_bit_tests,
15278         expand_asm_expr, expand_computed_goto,
15279         expand_decl_init, expand_end_case_type,
15280         expand_end_stmt_expr, expand_expr_stmt_value,
15281         expand_return, expand_start_case,
15282         optimize_tail_recursion): Likewise.
15283         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15284         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
15285
15286 2004-07-14  Ben Elliston  <bje@au.ibm.com>
15287
15288         * vec.h: Comment fix.
15289
15290 2004-07-13  Richard Henderson  <rth@redhat.com>
15291
15292         * target.h (struct gcc_target): Add calls.pass_by_reference.
15293         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
15294         * function.c (pass_by_reference): Use the hook.
15295         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
15296         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
15297         (hook_pass_by_reference_must_pass_in_stack): New.
15298         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
15299         (alpha_pass_by_reference): New.
15300         (TARGET_PASS_BY_REFERENCE): New.
15301         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15302         * config/arc/arc.c (arc_pass_by_reference): New.
15303         (TARGET_PASS_BY_REFERENCE): New.
15304         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15305         (FUNCTION_ARG_CALLEE_COPIES): True.
15306         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
15307         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
15308         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
15309         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15310         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15311         * config/cris/cris.c (cris_pass_by_reference): New.
15312         (TARGET_PASS_BY_REFERENCE): New.
15313         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
15314         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
15315         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15316         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
15317         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15318         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
15319         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
15320         (frv_function_arg_pass_by_reference): Remove.
15321         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15322         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
15323         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
15324         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
15325         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15326         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
15327         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
15328         (ia64_pass_by_reference): Rename from
15329         ia64_function_arg_pass_by_reference.
15330         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15331         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15332         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
15333         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
15334         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
15335         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15336         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15337         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
15338         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
15339         (m32r_pass_by_reference): Adjust prototype.  Make static.
15340         Handle mode sizes correctly.
15341         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15342         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
15343         (m68hc11_function_arg_pass_by_reference): Remove.
15344         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15345         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15346         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
15347         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15348         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
15349         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
15350         (mips_va_arg): Use pass_by_reference.
15351         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
15352         Handle mode sizes correctly.
15353         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15354         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
15355         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
15356         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
15357         (mmix_pass_by_reference): Rename from
15358         mmix_function_arg_pass_by_reference.
15359         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15360         (FUNCTION_ARG_CALLEE_COPIES): True.
15361         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
15362         (mn10300_pass_by_reference): New.
15363         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15364         (FUNCTION_ARG_CALLEE_COPIES): True.
15365         * config/pa/pa.c (pa_pass_by_reference): New.
15366         (TARGET_PASS_BY_REFERENCE): New.
15367         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15368         (FUNCTION_ARG_CALLEE_COPIES): True.
15369         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
15370         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
15371         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
15372         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15373         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
15374         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
15375         (s390_pass_by_reference): Rename from
15376         s390_function_arg_pass_by_reference.
15377         (s390_function_arg_advance): Don't query pass-by-ref.
15378         (s390_function_arg): Likewise.
15379         (s390_gimplify_va_arg): Use pass_by_reference.
15380         (s390_call_saved_register_used): Likewise.
15381         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15382         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
15383         (shcompact_byref, sh_pass_by_reference): New.
15384         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15385         (SHCOMPACT_BYREF): Remove.
15386         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
15387         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
15388         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
15389         (sparc_gimplify_va_arg): Use pass_by_reference.
15390         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15391         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15392         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
15393         (v850_pass_by_reference): New.
15394         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15395         (FUNCTION_ARG_CALLEE_COPIES): True.
15396         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
15397         FUNCTION_ARG_PASS_BY_REFERENCE docs.
15398
15399 2004-07-14  Richard Henderson  <rth@redhat.com>
15400             Richard Sandiford  <rsandifo@redhat.com>
15401
15402         * config/mips/mips-protos.h (mips_va_arg): Delete.
15403         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
15404         * config/mips/mips.c: Include tree-gimple.h.
15405         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
15406         (mips_arg_info): Remove special handling of must_pass_in_stck args.
15407         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
15408         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
15409
15410 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
15411
15412         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
15413         arguments for COND_EXPR in big-endian adjustment code.
15414
15415 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15416
15417         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
15418         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
15419         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
15420         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
15421
15422 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
15423
15424         PR tree-optimization/16443
15425         * tree-ssa-alias.c: Add more description for
15426         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
15427         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
15428         clobbering of call-clobbered and addressable variables.  If
15429         there are any before aliases have been computed, add them.
15430
15431 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
15432
15433         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
15434         verification.
15435
15436 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
15437
15438         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
15439         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
15440         to the same type.
15441
15442 2004-07-13  Per Bothner  <per@bothner.com>
15443
15444         * collect2.c (main):  Handle --no-demangle and --demangle flags.
15445
15446 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
15447
15448         * Makefile.in (OBJS-common): Add tree-data-ref.o.
15449         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
15450         (tree-data-ref.o): New rule.
15451         * lambda.h: New file.
15452         * tree-data-ref.c: New file.
15453         * tree-data-ref.h: New file.
15454         * tree.c (int_cst_value, tree_fold_gcd): New functions.
15455         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
15456
15457 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15458
15459         PR target/13926
15460         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
15461         * config/sparc/sparc.c (output_ubranch): New function.
15462         * config/sparc/sparc.md (jump pattern): Use it.
15463
15464 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15465
15466         PR target/16494
15467         * config/sparc/sparc.c (output_cbranch): Properly guard
15468         the code handling far branches with TARGET_V9.
15469         * config/sparc/sparc.md (length attribute): Document the
15470         side-effect of having a length greater or equal to 3.
15471
15472 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15473             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
15474
15475         PR target/15186
15476         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
15477         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
15478
15479 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15480             Martin Sebor  <sebor@roguewave.com>
15481
15482         PR target/12602
15483         * doc/invoke.texi (SPARC options): Document -threads
15484         and -pthreads on Solaris.
15485
15486 2004-07-13  Richard Henderson  <rth@redhat.com>
15487
15488         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
15489         by reference.
15490         (ind_gimplify_va_arg_expr): Remove.
15491         * tree.h (ind_gimplify_va_arg_expr): Remove.
15492         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
15493         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
15494         argsp to be null.
15495
15496         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
15497         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
15498         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
15499         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
15500         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
15501
15502 2004-07-13  Richard Henderson  <rth@redhat.com>
15503
15504         * function.c (pass_by_reference): New.
15505         (assign_parm_find_data_types): Use it.
15506         * calls.c (initialize_argument_information): Likewise.
15507         (emit_library_call_value_1): Likewise.
15508         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
15509         * function.h (pass_by_reference): Declare.
15510
15511 2004-07-13  Richard Henderson  <rth@redhat.com>
15512
15513         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
15514         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
15515         * expr.h (MUST_PASS_IN_STACK): Remove.
15516         * system.h (MUST_PASS_IN_STACK): Poison.
15517         * tree.h (must_pass_in_stack_var_size): Declare.
15518         (must_pass_in_stack_var_size_or_pad): Declare.
15519         * calls.c (must_pass_in_stack_var_size): New.
15520         (must_pass_in_stack_var_size_or_pad): Rename from
15521         default_must_pass_in_stack.
15522         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
15523         (TARGET_MUST_PASS_IN_STACK): New.
15524         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
15525         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
15526         (TARGET_MUST_PASS_IN_STACK): New.
15527         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
15528         * config/frv/frv.c (frv_must_pass_in_stack): New.
15529         (TARGET_MUST_PASS_IN_STACK): New.
15530         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
15531         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
15532         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
15533         (ix86_must_pass_in_stack): Make static.
15534         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
15535         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
15536         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
15537         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
15538         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
15539         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
15540         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
15541         (mcore_must_pass_on_stack): Remove.
15542         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
15543         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
15544         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
15545         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
15546         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
15547         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
15548         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
15549         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
15550         (TARGET_MUST_PASS_IN_STACK): New.
15551         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
15552         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
15553         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
15554         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
15555         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
15556         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
15557         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
15558         MUST_PASS_IN_STACK.
15559
15560         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
15561         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
15562         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
15563         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
15564         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
15565         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
15566         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
15567         config/xtensa/xtensa.c: Use target hook.
15568
15569 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
15570
15571         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
15572         * configure: Rebuilt.
15573
15574 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
15575
15576         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
15577         * config/mips/mips.h (mips_reg_names): Don't declare.
15578         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
15579         (TARGET_NAME_REGS): Delete.
15580         (TARGET_SWITCHES): Remove -mrnames.
15581         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
15582         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
15583         in REGISTER_NAMES.
15584         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
15585         (override_options): Remove handling of TARGET_NAME_REGS.
15586
15587 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
15588
15589         * config/mips/mips.h (TARGET_*): Boolify.
15590
15591 2004-07-12  Nick Clifton  <nickc@redhat.com>
15592
15593         * config.gcc: Add sh-*-symbianelf target.
15594         * config/sh/sh.c: Add new target macros:
15595         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
15596         TARGET_CXX_IMPORT_EXPORT_CLASS.
15597         (sh_file_start): Create a definition of the .directive section.
15598         (sh_attribute): Add dllimport and dllexport attributes.
15599         * config/sh/symbian-pre.h: New file.
15600         * config/sh/symbian-post.h: New file.
15601         * config/sh/symbian.c: New file. Contains Symbian specific
15602         functions.
15603         * config/sh/sh-protos.h: Add prototypes for new functions
15604         provided by symbian.c.
15605         * config/sh/t-symbian: New file.
15606         * doc/extend.texi: Document support for dllimport and dllexport
15607         attributes by the sh-symbianelf target.
15608
15609 2004-07-12  James E Wilson  <wilson@specifixinc.com>
15610
15611         * Makefile.in (AR): Use @AR@ not ar.
15612         (NM): New.
15613         (AR_FOR_TARGET): Use $(AR) not ar for native.
15614         (NM_FOR_TARGET): Use $(NM) not nm for native.
15615         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
15616         * configure: Regenerate.
15617
15618 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
15619
15620         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
15621         special case.
15622         (ashldi3_sp64): Likewise.
15623
15624 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15625
15626         PR target/16477
15627         * pa.c (function_arg): Update comment.
15628         * pa.h (BLOCK_REG_PADDING): Define.
15629
15630 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15631
15632         PR tree-optimization/16461
15633         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
15634         arguments of phi nodes.
15635
15636 2004-07-12  Devang Patel  <dpatel@apple.com>
15637
15638         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
15639
15640 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
15641
15642         * function.c (expand_function_start): Ensure r_save is in Pmode.
15643         * calls.c (prepare_call_address): Ensure static_chain_value is
15644         in Pmode.
15645         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
15646         r_save_area are in Pmode.
15647         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
15648         fnaddr, and static_chain are in Pmode.
15649
15650 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
15651
15652         PR target/16445
15653         * config/ia64/ia64.c (bundling): Don't count ignored insns.
15654
15655 2004-07-12  Richard Henderson  <rth@redhat.com>
15656
15657         * target.h (struct gcc_target): Move gimplify_va_arg_expr
15658         next to build_builtin_va_list.
15659         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
15660         * builtins.c (gimplify_va_arg_expr): Likewise.
15661         * gimplify.c (copy_if_shared_r): Likewise.
15662
15663 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
15664
15665         * passes.c (rest_of_decl_compilation): Don't defer call of
15666         assemble_variable if its DECL_RTL is already set.
15667
15668 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
15669
15670         * cfgloop.h (struct loop): Add nb_iterations field.
15671         (current_loops): Declare.
15672         * tree-chrec.c (chrec_not_analyzed_yet,
15673         chrec_dont_know, chrec_known, count_ev_in_wider_type,
15674         chrec_contains_symbols_defined_in_loop): Remove the temporary
15675         hooks.
15676         * tree-flow-inline.h (loop_containing_stmt): New function.
15677         * tree-scalar-evolution.c: Add implementation.
15678         * tree-scalar-evolution.h: Add declarations.
15679
15680 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
15681
15682         PR rtl-optimization/15921
15683         * Makefile.in (global.o): Add recog.h.
15684
15685         * global.c (recog.h): Add the include-clause.
15686         (bb_info): New member earlyclobber.
15687         (allocate_bb_info, free_bb_info): Initialize/finish the new
15688         member.
15689         (earlyclobber_regclass, earlyclobber_regclass_length): The new
15690         global variables.
15691         (check_earlyclobber, regclass_intersect,
15692         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
15693         New functions.
15694         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
15695         (make_accurate_live_analysis): Modify pavin.
15696
15697 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
15698
15699         * tree-cfg.c (find_taken_edge): Statically compute the truth
15700         value of a predicate comparing an SSA_NAME to itself.
15701
15702 2004-07-12  Roger Sayle  <roger@eyesopen.com>
15703
15704         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
15705         rs6000 doesn't have shift-and-add or shift-and-sub instructions
15706         by returning the cost of a multiplication plus an addition.
15707
15708 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
15709
15710         PR tree-optimization/14107
15711         * gimplify.c (gimplify_return_expr): Accept a
15712         RETURN_EXPR with an error argument.
15713         * tree-optimize.c (init_tree_optimization_passes):
15714         Run pass_warn_function_return at -O0.
15715
15716 2004-07-12  Roger Sayle  <roger@eyesopen.com>
15717
15718         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
15719         index entry.
15720
15721 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
15722
15723         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
15724         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
15725         * config/mips/3000.md: Add copyright notice.  Remove automota and
15726         function units; use generic ones instead.  Only define reservations
15727         for things that are different from generic.md.  Extend each clause
15728         to include r3900.
15729         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
15730         * config/mips/mips.md: Include them. Remove define_function_units.
15731         (alu, imuldiv): New automata and units.
15732
15733 2004-07-12  Ben Elliston  <bje@au.ibm.com>
15734
15735         * doc/invoke.texi (Optimize Options): Document -frename-registers
15736         not being enabled by default at -O3.
15737
15738 2004-07-11  Roger Sayle  <roger@eyesopen.com>
15739
15740         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
15741         floating point additions, to keep real immediate constant positive.
15742         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
15743         into X + C, and leave positive real constants as X - C.
15744
15745 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15746
15747         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
15748
15749 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15750
15751         PR tree-optimization/15654
15752         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
15753
15754 2004-07-11  Roger Sayle  <roger@eyesopen.com>
15755
15756         * builtins.c (fold_builtin_fputs): Don't bother converting the
15757         return type to integer_type_node, as we've already checked that
15758         the result will be ignored.
15759
15760         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
15761         that signed addition, subtraction, multiplication, division,
15762         remainder, negation and absolute value may potentially trap.
15763
15764         * fold-const.c (fold_ignored_result): New function to strip
15765         non-side-effecting tree nodes from an expression whose result
15766         is ignored.
15767         (fold_convert): Call fold_ignored_result when casting a value
15768         to VOID_TYPE.
15769         (omit_one_operand):  Call fold_ignored_result on the "omitted"
15770         operand when building a COMPOUND_EXPR.
15771         (pedantic_omit_one_operand): Likewise.
15772         * tree.h (fold_ignored_result): Prototype here.
15773         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
15774         when we're going to ignore the result.
15775
15776 2004-07-11  Richard Henderson  <rth@redhat.com>
15777
15778         PR tree-opt/16383
15779         * tree-ssa-ccp.c (fold_stmt_r): Split out...
15780         * tree.c (fields_compatible_p, find_compatible_field): ... new.
15781         * tree.h (fields_compatible_p, find_compatible_field): Declare.
15782         * tree-sra.c (sra_hash_tree): Hash fields by offset.
15783         (sra_elt_eq): Use fields_compatible_p.
15784         (generate_one_element_ref): Use find_compatible_field.
15785
15786 2004-07-11  Richard Henderson  <rth@redhat.com>
15787
15788         PR tree-opt/16422
15789         * tree-sra.c (generate_one_element_init): New.
15790         (generate_element_init): Use it.
15791         (scalarize_init): Push/pop gimplify context around it.
15792         (find_new_referenced_vars_1, find_new_referenced_vars): New.
15793         * gimplify.c (gimplify_expr): Allow SSA_NAME.
15794
15795 2004-07-11  Roger Sayle  <roger@eyesopen.com>
15796
15797         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
15798         combine.c's combine_insn_cost.
15799         * rtl.h (insn_rtx_cost): Prototype here.
15800         * combine.c (combine_insn_cost): Delete function.
15801         (combine_validate_cost): Update callers of combine_insn_cost to
15802         call insn_rtx_cost instead.
15803         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
15804         requesting the rtx_cost of call and/or jump instructions.
15805
15806         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
15807         rtx_cost directly.  Don't request/use the cost of call or jump
15808         instructions.  Return -1 if the cost of any instruction can't be
15809         determined (or the BB contains a function call).
15810         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
15811         -1 (i.e. can't determine the cost of any instruction or the basic
15812         block contains a subroutine call).
15813         (find_if_case_2): Likewise.
15814
15815 2004-07-11  Roger Sayle  <roger@eyesopen.com>
15816
15817         * rs6000.c (struct processor_costs): Change semantics of fields to
15818         include the COST_N_INSNS scaling, and update all initializers.
15819         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
15820         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
15821         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
15822         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
15823
15824 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15825
15826         * LANGUAGES: Remove obsolete information.
15827
15828 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
15829
15830         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
15831         SIGBUS signal frames, the PSW address points *to* the faulting
15832         instruction, not after it.
15833
15834 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
15835
15836         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
15837         added to TLS symbol addresses.
15838
15839 2004-07-11  Richard Henderson  <rth@redhat.com>
15840
15841         * expmed.c (init_expmed): Use stack-local structures for
15842         temporary rtl.  Don't recognize shifts.
15843
15844 2004-07-11  Richard Henderson  <rth@redhat.com>
15845
15846         * expr.c (store_expr): Don't fiddle subreg promotion for types
15847         with precision smaller than the mode.
15848
15849 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15850
15851         * tree.h (all_types_permanent): Remove.
15852
15853 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15854
15855         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
15856         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
15857         * langhooks.c (lhd_clear_binding_stack): Remove.
15858         * langhooks-def.h (lhd_clear_binding_stack,
15859         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
15860         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
15861         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
15862         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15863         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
15864         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
15865         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
15866         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
15867         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
15868         * tree.h (poplevel): Don't declare.
15869         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
15870         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15871         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
15872         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
15873         Remove.
15874
15875 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15876
15877         PR tree-optimization/16437
15878         * c-common.c (shorten_compare): Don't mark result of conversion to
15879         narrower signed type as overflowing.
15880         * fold-const.c (decode_field_reference): Determine whether
15881         signedness comes from outer type using precision rather than size.
15882
15883 2004-07-11  Phil Edwards  <phil@codesourcery.com>
15884
15885         * configure.ac:  Alphabetize --enable-checking list, add
15886         missing valgrind entry.
15887         * configure:  Regenerate.
15888
15889 2004-07-11  Phil Edwards  <phil@codesourcery.com>
15890
15891         * doc/install.texi (Testing):  Fix syntax in "make check" example.
15892
15893 2004-07-10  James E Wilson  <wilson@specifixinc.com>
15894
15895         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
15896
15897 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15898
15899         PR rtl-optimization/16001
15900         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
15901         niter_expr.
15902
15903 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
15904
15905         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
15906
15907 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
15908             James Morrison  <phython@gcc.gnu.org>
15909
15910         * doc/contrib.texi (Contributors): Add gfortran contributors and
15911         fix a couple of typos.
15912
15913 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15914
15915         PR rtl-optimization/15387
15916         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
15917         to incoming args space correctly.
15918
15919 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15920
15921         * pa.c (output_indirect_call): Only use %r2 as the link register in
15922         indirect calls with the long PA 2.0 pc-relative branch.
15923
15924 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
15925
15926         * config/i386/i386.c (override_options): Pick a 64-bit CPU
15927         for the default tuning if TARGET_64BIT.
15928
15929 2004-07-10  Richard Henderson  <rth@redhat.com>
15930
15931         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
15932         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
15933
15934 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
15935
15936         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
15937         * expmed.c (store_bit_field, extract_bit_field): Remove last
15938         argument.
15939         * builtins.c (expand_builtin_signbit): Adjust callers.
15940         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
15941         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
15942         * ifcvt.c (noce_emit_move_insn): Likewise.
15943         * stmt.c (expand_return): Likewise.
15944         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
15945         store_field, expand_expr_real_1): Likewise.
15946
15947 2004-07-10  Richard Henderson  <rth@redhat.com>
15948
15949         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
15950
15951 2004-07-09  Mike Stump  <mrs@apple.com>
15952
15953         * config/darwin.c (no_dead_strip): Add.
15954         (HAVE_DEAD_STRIP): Add.
15955         (darwin_emit_unwind_label): Ensure that we don't dead code strip
15956         the .eh label.
15957
15958 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15959
15960         * tree-ssa-loop-im.c: New file.
15961         * Makefile.in (tree-ssa-loop-im.o): Add.
15962         * cfgloop.c (superloop_at_depth): New function.
15963         * cfgloop.h (superloop_at_depth): Declare.
15964         * common.opt (ftree-lim): New flag.
15965         * expr.c (array_ref_up_bound): New function.
15966         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
15967         * timevar.def (TV_LIM): New timevar.
15968         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
15969         computing immediate uses of a phi node.
15970         * tree-flow.h (struct tree_ann_common_d): Add aux field.
15971         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
15972         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
15973         * tree-pass.h (pass_lim): Declare.
15974         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
15975         functions.
15976         (pass_lim): New pass structure.
15977         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
15978         * tree.c (in_array_bounds_p): New function.
15979         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
15980         (in_array_bounds_p, array_ref_up_bound): Declare.
15981         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
15982         * doc/passes.texi (tree-ssa-loop-im.c): Document.
15983
15984 2004-07-09  Richard Henderson  <rth@redhat.com>
15985
15986         * builtins.c (expand_builtin_stpcpy): Don't modify len.
15987
15988         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
15989         with prejudice.
15990
15991 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
15992
15993         * flags.h: Delete redundant prototypes that are being generated
15994         in options.h from common.opt.
15995         * common.opt: Add in the expository comments formerly in flags.h.
15996
15997 2004-07-09  Jan Beulich  <jbeulich@novell.com>
15998
15999         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
16000         available for use only when TARGET_MMX/_SSE is set, and check for
16001         variable argument function if any register count is non-zero.
16002         (function_arg): Correctly suppress repeated warnings for passing SSE
16003         vectors are arguments without SSE enabled.
16004         (ix86_function_arg_boundary): Without SSE enabled, the use of what
16005         would be SSE register modes does no longer influence the alignment.
16006
16007 2004-07-09  Richard Henderson  <rth@redhat.com>
16008
16009         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
16010         Always align upward to arg boundary.  Use size_in_bytes/round_up.
16011         Maintain type-correctness of constants.
16012         * stor-layout.c (round_up, round_down): Special-case powers of 2.
16013
16014 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16015
16016         * config/sparc/sparc.c (*_costs): Scale instruction costs
16017         by COSTS_N_INSNS.
16018         (sparc_rtx_costs): Adjust as appropriate.
16019
16020 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16021
16022         * config/i386/mm3dnow.h: New.
16023         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
16024
16025 2004-07-09  Richard Henderson  <rth@redhat.com>
16026
16027         * simplify-rtx.c (simplify_const_relational_operation): Only
16028         look at bounds of scalar integers.
16029
16030 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16031
16032         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
16033
16034 2004-07-09  Andrew Pinski  <apinski@apple.com>
16035
16036         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
16037         always referenced.
16038         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
16039         UOBJC_METACLASS_decl.
16040
16041 2004-07-09  James E Wilson  <wilson@specifixinc.com>
16042
16043         PR target/16364
16044         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
16045         do return a parallel if hfa_mode == XFmode and mode == TImode.
16046
16047 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16048
16049         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
16050         permissible for unary plus.
16051
16052 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16053
16054         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
16055         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
16056         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
16057         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
16058         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
16059         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
16060         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
16061         (BUILTIN_xxxIMAX): New.
16062         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
16063         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
16064         BUILT_IN_PARITYIMAX.
16065
16066 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
16067
16068         * config/sparc/sparc.h (processor_costs): Define.
16069         (sparc_costs): Declare.
16070         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
16071         hypersparc_costs, sparclet_costs, ultrasparc_costs,
16072         ultrasparc3_costs): New.
16073         (sparc_override_options): Set sparc_costs as appropriate.
16074         (sparc_rtx_costs): Use sparc_costs instead of messy
16075         conditionals.
16076
16077 2004-07-09  Steven Bosscher  <stevenb@suse.de>
16078
16079         * doc/md.texi (Processor pipeline description): Mention that
16080         the old pipeline description is deprecated.
16081
16082         * config/rs6000/7450.md (automaton ppc7450): Split up, move
16083         mciu_7450 function unit to...
16084         (automaton ppc7450mciu): ...new automaton.
16085
16086         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
16087         (schedule_block): Don't consider inserting bubbles.
16088         (sched_init): Don't initialize DFA bubbles.
16089         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
16090         TARGET_SCHED_DFA_BUBBLE): Remove.
16091         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
16092         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
16093         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
16094
16095         * stmt.c (conditional_context): Remove prototype.
16096         * tree.h (conditional_context): Remove.
16097         * tree-cfg.c (pre_insert_on_edge): Remove.
16098
16099         * c-common.h (c_expand_asm_operands): Remove prototype.
16100         * c-typeck.c (c_expand_asm_operands): Remove.
16101
16102 2004-07-09  Jan Beulich  <jbeulich@novell.com>
16103
16104         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
16105         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
16106         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
16107         and V8QI are class SSE. All sufficiently small remaining vector modes
16108         must be passed in one or two integer registers.
16109         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
16110         returned in memory.
16111         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
16112         __builtin_ia32_pmuludq128 have non-uniform argument and return types
16113         and must thus be handled explicitly.
16114         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
16115         MMX and XMM regs.
16116         (movv8qi_internal, movv4hi_internal, movv2si_internal,
16117         movv2sf_internal): Permit moving between MMX and XMM registers (since
16118         MMX areguments and return values are passed in XMM registers).
16119         (sse2_umulsidi3): Correct type and mode.
16120
16121 2004-07-09  Richard Henderson  <rth@redhat.com>
16122
16123         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
16124
16125 2004-07-09  Eric Christopher  <echristo@redhat.com>
16126
16127         * config/rs6000/40x.md: Split into two automatons.
16128
16129 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16130             Andrew Pinski  <apinski@apple.com>
16131
16132         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
16133         on when we have more than one input file.
16134         (c_common_parse_file): Restore loop over all input files.
16135         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
16136
16137         * c-decl.c (set_type_context): New function.
16138         (pop_scope): Use it to set context of types.  When we
16139         encounter a TYPE_DECL, set the context of the attached type too.
16140         (pop_file_scope): Don't call cpp_undef_all here.
16141         (diagnose_mismatched_decls): Do not complain about a second
16142         definition of an 'extern inline' function if it's not in the
16143         same translation unit.  Do not complain about inline
16144         declaration after use if the use was in a different
16145         translation unit.
16146         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
16147         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
16148         the external scope.
16149         (pushdecl_top_level): Likewise.
16150         (grokdeclarator): Clarify what is going on with setting
16151         DECL_EXTERNAL on function types, a little.
16152         (c_write_global_declarations): Don't do anything if
16153         -fsyntax-only or errors have been encountered.
16154
16155 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
16156
16157         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
16158
16159 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16160
16161         PR target/16459
16162         * pa.c (output_indirect_call): Use %r2 as the link register when
16163         calling $$dyncall with a pc-relative branch.
16164
16165 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
16166
16167         * doc/install.texi (Binaries): Mention OpenPKG.
16168
16169 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
16170
16171         Fix PR tree-optimization/15555
16172         * tree-dfa.c (dump_variable): If the variable is a pointer
16173         SSA_NAME, also dump its points-to information.
16174         * tree-flow.h (struct ptr_info_def): Add field
16175         is_dereferenced.
16176         (dump_points_to_info_for): Declare.
16177         (debug_points_to_info_for): Declare.
16178         * tree-optimize.c (init_tree_optimization_passes): Add a
16179         second alias analysis pass after DOM2.
16180         Move pass_del_pta to a later spot.
16181         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
16182         create a name tags when we find a dereferenced pointer.  Just
16183         mark the pointer dereferenced.
16184         (collect_points_to_info_for): Move code to clear points-to
16185         information to create_name_tags.
16186         (create_name_tags): New function.
16187         (compute_flow_sensitive_aliasing): Call it.
16188         (setup_pointers_and_addressables): Mark type tags for renaming
16189         here instead of ...
16190         (create_memory_tag): ... here.
16191         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
16192         (dump_points_to_info_for): Declare extern.
16193         (debug_points_to_info_for): New function.
16194
16195 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
16196
16197         * config/arc/arc.md: Switch to DFA-based scheduler description.
16198         * config/arc/arc.c: Switch to DFA-based scheduler description.
16199
16200 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16201
16202         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
16203         pointer.
16204
16205 2004-07-09  Richard Henderson  <rth@redhat.com>
16206
16207         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
16208         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16209         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
16210         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16211
16212         * config/v850/v850-protos.h (v850_va_arg): Remove.
16213         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16214         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
16215         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
16216         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
16217         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
16218
16219 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16220
16221         PR target/12133
16222         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
16223         and DImode to use +/-4k offset.
16224
16225 2004-07-09  Richard Henderson  <rth@redhat.com>
16226
16227         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
16228         Remove.
16229         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16230         (xstormy16_gimplify_va_arg_expr): Rewrite from
16231         xstormy16_expand_builtin_va_arg.
16232         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
16233
16234         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
16235         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
16236
16237         * config/sh/sh-protos.h (sh_va_arg): Remove.
16238         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16239         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
16240         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
16241
16242         * config/pa/pa-protos.h (hppa_va_arg): Remove.
16243         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16244         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
16245         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
16246
16247         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
16248         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16249         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
16250         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
16251
16252 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16253
16254         * config/sparc/sparc.md (return): Rewrite length formula.
16255         * config/sparc/sparc.c (output_return): Pass 1 as 5th
16256         argument to final_scan_insn when in a delay slot.
16257         (output_sibcall): Likewise.
16258
16259 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
16260
16261         * arm.c (arm_cpp_interwork): New variable.
16262         (arm_override_options): Set it if TARGET_INTERWORK was on the command
16263         line.
16264         * arm.h (arm_cpp_interwork): Declare it.
16265         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
16266         __THUMB_INTERWORK__ in the preprocessor.
16267
16268 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
16269
16270         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
16271
16272 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
16273
16274         PR target/16416
16275         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
16276         Override default settings to account for -m32 and -m64.
16277
16278 2004-07-08  Randolph Chung  <tausq@debian.org>
16279
16280         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
16281
16282 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
16283
16284         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
16285         before comparing it as such.
16286
16287 2004-07-08  Richard Henderson  <rth@redhat.com>
16288
16289         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
16290         temporary.  Use bit arithmetic to align.
16291
16292 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
16293
16294         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
16295         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
16296         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
16297         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
16298         add_labels_and_missing_jumps, find_jump_block,
16299         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
16300         Likewise.
16301         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
16302         link_btr_uses, move_btr_def): Likewise.
16303         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
16304         expand_builtin_expect_jump): Likewise.
16305         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
16306         * calls.c (expand_call, emit_library_call_value_1): Likewise.
16307         * cfganal.c (forwarder_block_p): Likewise.
16308         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
16309         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
16310         find_bb_boundaries): Likewise.
16311         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16312         merge_blocks_move_predecessor_nojumps,
16313         merge_blocks_move_successor_nojumps, insns_match_p,
16314         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
16315         try_optimize_cfg): Likewise.
16316         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
16317         * cfglayout.c (skip_insns_after_block, label_for_bb,
16318         record_effective_endpoints, insn_locators_initialize,
16319         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
16320         * cfgmainloop.c (create_loop_notes): Likewise.
16321         * cfgrtl.c (delete_insn, delete_insn_chain,
16322         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
16323         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
16324         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
16325         redirect_branch_edge, force_nonfallthru_and_redirect,
16326         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
16327         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
16328         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
16329         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
16330         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
16331         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
16332         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
16333         * combine.c (combine_instructions, can_combine_p, try_combine,
16334         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
16335         distribute_notes, distribute_links, insn_cuid): Likewise.
16336         * cse.c (fold_rtx, cse_insn, cse_around_loop,
16337         invalidate_skipped_block, cse_set_around_loop,
16338         cse_end_of_basic_block, cse_main, cse_basic_block,
16339         cse_condition_code_reg): Likewise.
16340         * cselib.c (cselib_process_insn): Likewise.
16341         * ddg.c (create_ddg): Likewise.
16342         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
16343         Likewise.
16344         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
16345         gen_label_die, dwarf2out_var_location): Likewise.
16346         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
16347         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
16348         last_call_insn, active_insn_p, next_label, prev_label,
16349         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
16350         add_insn_before, remove_insn, add_function_usage_to,
16351         reorder_insns, find_line_note, remove_unnecessary_notes,
16352         emit_insn_after_1, classify_insn): Likewise.
16353         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
16354         connect_post_landing_pads, sjlj_mark_call_sites,
16355         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
16356         can_throw_internal, can_throw_external, set_nothrow_function_flags,
16357         convert_to_eh_region_ranges): Likewise.
16358         * explow.c (optimize_save_area_alloca): Likewise.
16359         * expr.c (expand_expr_real): Likewise.
16360         * final.c (insn_current_reference_address, compute_alignments,
16361         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
16362         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
16363         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
16364         propagate_block_delete_insn, propagate_one_insn,
16365         init_propagate_block_info, propagate_block, libcall_dead_p,
16366         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
16367         Likewise.
16368         * function.c (instantiate_virtual_regs, reorder_blocks_1,
16369         expand_function_start, expand_function_end, contains,
16370         thread_prologue_and_epilogue_insns,
16371         reposition_prologue_and_epilogue_notes): Likewise.
16372         * gcse.c (constprop_register, bypass_conditional_jumps,
16373         insert_insn_end_bb, gcse_after_reload): Likewise.
16374         * genemit.c (gen_expand, gen_split): Likewise.
16375         * genpeep.c (gen_peephole, main): Likewise.
16376         * global.c (build_insn_chain): Likewise.
16377         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
16378         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
16379         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
16380         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
16381         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
16382         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
16383         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
16384         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
16385         dead_or_predicable): Likewise.
16386         * integrate.c (try_constants): Likewise.
16387         * jump.c (rebuild_jump_labels, cleanup_barriers,
16388         purge_line_number_notes, init_label_info, mark_all_labels,
16389         squeeze_notes, get_label_before, get_label_after,
16390         reversed_comparison_code_parts, simplejump_p, pc_set,
16391         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
16392         delete_barrier, delete_prior_computation, delete_computation,
16393         delete_related_insns, delete_for_peephole, redirect_jump):
16394         Likewise.
16395         * lcm.c (optimize_mode_switching): Likewise.
16396         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
16397         Likewise.
16398         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
16399         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
16400         * loop-iv.c (simplify_using_assignment): Likewise.
16401         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
16402         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
16403         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
16404         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
16405         check_insn_for_givs, check_final_value, update_giv_derive,
16406         basic_induction_var, product_cheap_p, check_dbra_loop,
16407         loop_insn_first_p, last_use_this_basic_block,
16408         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
16409         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
16410         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
16411         sms_schedule_by_order): Likewise.
16412         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
16413         * postreload.c (reload_cse_simplify_operands, reload_combine,
16414         reload_cse_move2add): Likewise.
16415         * predict.c (can_predict_insn_p, estimate_probability,
16416         expected_value_to_br_prob, process_note_predictions): Likewise.
16417         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
16418         * profile.c (branch_prob): Likewise.
16419         * ra-build.c (live_out_1, livethrough_conflicts_bb,
16420         detect_webs_set_in_cond_jump): Likewise.
16421         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
16422         ra_print_rtl_with_bb): Likewise.
16423         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
16424         * recog.c (next_insn_tests_no_inequality, find_single_use,
16425         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
16426         * reg-stack.c (next_flags_user, record_label_references,
16427         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
16428         compensate_edge, convert_regs_1): Likewise.
16429         * regclass.c (scan_one_insn): Likewise.
16430         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
16431         regmove_optimize, fixup_match_1, single_set_for_csa,
16432         combine_stack_adjustments_for_block): Likewise.
16433         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
16434         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
16435         find_equiv_reg): Likewise.
16436         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
16437         reload_as_needed, emit_input_reload_insns, do_output_reload,
16438         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
16439         Likewise.
16440         * reorg.c (find_end_label, emit_delay_sequence,
16441         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
16442         get_jump_flags, rare_destination, mostly_true_jump,
16443         try_merge_delay_insns, redundant_insn, own_thread_p,
16444         fill_simple_delay_slots, fill_slots_from_thread,
16445         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
16446         dbr_schedule): Likewise.
16447         * resource.c (find_basic_block, next_insn_no_annul,
16448         find_dead_or_set_registers, mark_target_live_regs): Likewise.
16449         * rtl.h (RTX_PREV): Likewise.
16450         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
16451         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
16452         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
16453         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
16454         tablejump_p, computed_jump_p, insns_safe_to_move_p,
16455         find_first_parameter_load, can_hoist_insn_p): Likewise.
16456         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
16457         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
16458         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
16459         schedule_ebbs): Likewise.
16460         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
16461         is_conditionally_protected, can_schedule_ready_p,
16462         add_branch_dependences, debug_dependencies): Likewise.
16463         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
16464         Likewise.
16465         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
16466         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
16467         set_dominates_use, ujump_to_loop_cont): Likewise.
16468         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
16469         * varasm.c (output_constant_pool_1): Likewise.
16470
16471 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16472
16473         * tree-scalar-evolution.c: New file.
16474         * tree-scalar-evolution.h: New file.
16475         * tree-ssa-loop-niter.c: New file.
16476         * Makefile.in (SCEV_H): New.
16477         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
16478         * cfgloop.h (struct loop): Add bounds field.
16479         * tree-flow.h (struct tree_niter_desc): New type.
16480         (number_of_iterations_cond, number_of_iterations_exit,
16481         loop_niter_by_eval, find_loop_niter_by_eval,
16482         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
16483         free_numbers_of_iterations_estimates): Declare.
16484         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
16485         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
16486         * doc/invoke.texi (max-iterations-to-track): Document.
16487
16488 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
16489
16490         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
16491         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
16492         (MODE_AFTER): Add cast appropriately.
16493         * config/sh/sh.md (movdi splitter): Likewise.
16494         (casesi_worker_2): Add const qualifier appropriately.
16495         (eh_return): Remove unused variable.
16496         (insv): Initialize v;
16497
16498 2004-07-08  Richard Henderson  <rth@redhat.com>
16499
16500         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
16501         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16502         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
16503         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
16504         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
16505
16506         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
16507         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16508         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
16509         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
16510
16511         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
16512         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16513         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
16514         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
16515
16516         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
16517         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16518         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
16519         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
16520
16521         * config/i860/i860-protos.h (i860_va_arg): Remove.
16522         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16523         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
16524         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
16525
16526 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
16527
16528         * system.h: Prototype getpagesize if missing.
16529         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
16530         * configure: Regenerate.
16531         * config.in: Regenerate.
16532
16533 2004-07-08  Richard Henderson  <rth@redhat.com>
16534
16535         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
16536         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16537         (fr30_gimplify_va_arg_expr): New.
16538         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
16539         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
16540
16541 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
16542
16543         PR target/16414
16544         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
16545         of asm_noperands result.
16546
16547 2004-07-08  Richard Henderson  <rth@redhat.com>
16548
16549         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
16550         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16551         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
16552         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
16553
16554 2004-07-08  Richard Henderson  <rth@redhat.com>
16555
16556         * builtins.c (ind_gimplify_va_arg_expr): New.
16557         * tree.h (ind_gimplify_va_arg_expr): Declare.
16558         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
16559
16560 2004-07-08  Jan Beulich  <jbeulich@novell.com>
16561
16562         * expmed.c (extract_bit_field): Correct condition to use vec_extract
16563         patterns also on vector elements other than the first one.
16564         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
16565         break statements.
16566
16567 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
16568
16569         * config/rs6000/darwin-ldouble.c: Correct reference
16570         to the Linnainmaa paper.
16571
16572 2004-07-08  Richard Henderson  <rth@redhat.com>
16573
16574         * config/arc/arc-protos.h (arc_va_arg): Remove.
16575         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16576         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
16577         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
16578
16579         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
16580         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
16581         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
16582         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
16583
16584 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16585
16586         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
16587
16588 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
16589
16590         * c-decl.c (static_ctors, static_dtors): Make static.
16591         (pop_file_scope): Call c_common_write_pch and
16592         cgraph_finalize_compilation_unit here.
16593         (build_cdtor): Moved here from c-objc-common.c; simplify.
16594         (c_write_global_declarations_1): Clarify comment.
16595         (c_write_global_declarations): Close the external scope before
16596         doing anything else.  Call build_cdtor, cgraph_optimize, and
16597         mudflap_finish_file here.
16598         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
16599         Clarify comment.
16600         * c-objc-common.c: No need to include cgraph.h.
16601         (build_cdtor): Moved to c-decl.c.
16602         (c_objc_common_finish_file): Delete.
16603         * c-tree.h: Update to match.
16604         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
16605         (generate_static_references): Set TREE_USED before calling finish_decl.
16606         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
16607         on the static_instances_decl.
16608
16609 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
16610
16611         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
16612         decls when there is only one input translation unit.
16613         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
16614         change of 2004-07-05; do not treat declarations with
16615         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
16616         * opts.c (cur_in_fname): Delete.
16617         * opts.h: Likewise.
16618         * tree.c: Revert changes of 2004-07-05; no special treatment
16619         for TRANSLATION_UNIT_DECLs.
16620         * Makefile.in (tree.o): Update dependencies.
16621
16622 2004-07-08  Roger Sayle  <roger@eyesopen.com>
16623
16624         * builtins.c (fold_builtin_strcpy): Merge functionality from
16625         simplify_builtin_strcpy.  Add additional len argument.  No longer
16626         static.  Remove function prototype.
16627         (fold_builtin_strncpy): Likewise integrate functionality from
16628         simplify_builtin_strncpy.  Add additional slen argument.  No
16629         longer static.  Remove function prototype.
16630         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
16631         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
16632         types of "ignore" and "unlocked" parameters to bool.
16633         (fold_builtin_1):  Add additional ignore argument.  Call renamed
16634         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
16635         builtins.  Update arguments to fold_builtin_strncpy and
16636         fold_builtin_strcpy.  Add function prototype.
16637         (fold_builtin): Add additional Boolean ignore argument to pass
16638         to fold_builtin_1.
16639         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
16640         and fold_builtin_strncpy instead of simplify_builtin_fputs,
16641         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
16642
16643         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
16644         simplify_builtin_strncpy): Delete function prototypes.
16645         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
16646         fold_builtin_strncpy): Add function prototypes here.
16647         (fold_builtin): Update function prototype with new "bool ignore".
16648
16649         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
16650         (ccp_fold_builtin):  Update call to fold_builtin.  Call
16651         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
16652         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
16653         simplify_builtin_strncpy respectively.
16654         * fold-const.c (fold): Update call to fold_builtin.
16655
16656 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
16657
16658         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
16659         to strcpy.
16660
16661         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
16662         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
16663         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
16664         * calls.c: Remove ifdefs of macros above.
16665         * functions.c: Likewise.
16666         * expr.c: Likewise.
16667
16668 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16669
16670         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
16671         (arch attribute): Delete.
16672         (current_function_calls_alloca attribute): Rename into calls_alloca.
16673         (calls_eh_return): New attribute.
16674         (leaf_function): Likewise.
16675         (length attribute): Fix formula for sibcalls.
16676         (return insn): Correctly compute the 'length' attribute.
16677         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
16678
16679 2004-07-08  Richard Henderson  <rth@redhat.com>
16680
16681         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
16682         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
16683         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
16684         * tree-eh.c (lower_eh_constructs_1): Likewise.
16685         * tree-sra.c (sra_walk_modify_expr): Likewise.
16686         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
16687         (eliminate_unnecessary_stmts): Likewise.
16688         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
16689         * tree-tailcall.c (optimize_tail_call): Likewise.
16690         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
16691
16692 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
16693             Jakub Jelinek  <jakub@redhat.com>
16694
16695         * config/i386/i386.c (override_options): Enable
16696         SSE prefetches with -mtune, as long as we are
16697         compiling for i686 or higher.  All i686 processors
16698         accept SSE prefetches as NOPS, some i586's don't.
16699
16700 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16701
16702         PR target/10567
16703         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
16704
16705 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
16706
16707         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
16708         the handling of clobbering ASM_EXPRs.
16709
16710 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16711
16712         PR target/16430
16713         * config/sparc/sparc.c (function_value): In 64-bit mode,
16714         return the aggregates larger than 16 bytes like unions.
16715
16716 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16717
16718         PR target/16199
16719         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
16720         'temp' is zero, generate new pseudos as needed and emit the
16721         sequence of insns in single-assignment form.  Resync comments
16722         with code.
16723         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
16724         function before reload.
16725
16726 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
16727
16728         * vec.c (vec_assert_fail): Remove duplicate 'function'.
16729
16730         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
16731
16732         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
16733         Allocation is signed.
16734         (VEC_reserve): Return flag, allocation is signed.
16735
16736 2004-07-08  Richard Henderson  <rth@redhat.com>
16737
16738         * tree-ssa-ccp.c (fold_stmt): Get type directly from
16739         OBJ_TYPE_REF_OBJECT.
16740
16741 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
16742             Neil Booth  <neil@daikokuya.co.uk>
16743
16744         PR c/2511
16745         PR c/3325
16746         * c-decl.c (finish_struct): Ensure bit-fields are given the
16747         correct type.
16748         * c-common.c (c_common_signed_or_unsigned_type): For C, require
16749         the precision to match as well as the mode.
16750         * expr.c (reduce_to_bit_field_precision): New function.
16751         (expand_expr_real_1): Reduce expressions of bit-field type to
16752         proper precision.
16753         * langhooks.h (reduce_bit_field_operations): New hook.
16754         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
16755         Define.
16756         * c-lang.c, objc/objc-lang.c
16757         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
16758         * objc/objc-act.c (check_ivars): Convert types to bit-field types
16759         before checking.
16760         * tree.c (build_nonstandard_integer_type): New function.
16761         * tree.h (build_nonstandard_integer_type): New prototype.
16762         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
16763         conversions between integer and boolean types as useless.
16764
16765 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
16766
16767         * c-common.c (c_common_nodes_and_builtins): Do not
16768         create __builtin_ptrdiff_t and __builtin_size_t.
16769
16770 2004-07-08  Andrew Pinski  <apinski@apple.com>
16771
16772         * Makefile.in (libbackend.o): Add -combine to the gcc
16773         command line.
16774
16775 2004-07-08  Nick Clifton  <nickc@redhat.com>
16776
16777         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
16778         Set to -Os.
16779
16780 2004-07-08  Richard Henderson  <rth@redhat.com>
16781
16782         * except.c (expand_eh_region_start, expand_eh_region_end,
16783         expand_eh_handler, expand_eh_region_end_cleanup,
16784         expand_start_all_catch, expand_start_catch, expand_end_catch,
16785         expand_end_all_catch, expand_eh_region_end_allowed,
16786         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
16787         expand_eh_region_end_fixup): Remove.
16788         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
16789         cleanups, outer_cleanups, label_chain, exception_region.
16790         (struct goto_fixup): Remove stack_level, cleanup_list_list.
16791         (struct label_chain): Remove.
16792         (struct stmt_status): Remove x_stack_block_stack.
16793         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
16794         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
16795         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
16796         end_cleanup_deferral, last_cleanup_this_contour,
16797         containing_blocks_have_cleanups_or_stack_level,
16798         any_pending_cleanups): Remove.
16799         (expand_null_return_1): Take no arguments.
16800         (expand_label, expand_naked_return, expand_return,
16801         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
16802         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
16803         expand_end_case_type): Don't use any of them.
16804         * calls.c (expand_call): Likewise.
16805         * dojump.c (do_jump): Likewise.
16806         * function.c (expand_function_end): Likewise.
16807         * expr.c (store_expr, expand_expr_real_1): Likewise.
16808         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
16809         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
16810         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
16811         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
16812         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
16813         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
16814         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
16815         for WITH_CLEANUP_EXPR.
16816         (gimple_push_cleanup): Likewise.
16817         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
16818         * print-tree.c (print_node): Likewise.
16819         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
16820         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
16821         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
16822         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
16823         (GOTO_SUBROUTINE_EXPR): Remove.
16824         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
16825         (DECL_TOO_LATE): Remove.
16826         * except.h, tree.h: Update decls.
16827
16828 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
16829
16830         * explow.c (optimize_save_area_alloca): Do not accept parameters.
16831         * passes.c (rest_of_handle_final): Handle symout.
16832         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
16833         Push timevar here.
16834         (rest_of_handle_sched): Break out SMS.  Remove ifs for
16835         flag_schedule_insns and flag_modulo_sched.
16836         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
16837         collect at the end.
16838         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
16839         (rest_of_handle_partition_blocks, rest_of_handle_sms,
16840         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
16841         rest_of_handle_mode_switching, rest_of_handle_jump,
16842         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
16843         rest_of_handle_jump2, rest_of_handle_postreload,
16844         rest_of_handle_flow2, rest_of_clean_state,
16845         rest_of_handle_shorten_branches,
16846         rest_of_handle_prologue_epilogue,
16847         rest_of_handle_branch_target_load_optimize): New.
16848         (rest_of_compilation): Call the above.  Remove ggc_collect
16849         calls moved to rest_of_handle_*.
16850         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
16851
16852         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
16853         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
16854         * except.h (set_nothrow_function_flags): Update comment.
16855         * function.c (current_function_nothrow): Remove.
16856         * output.h (current_function_nothrow): Remove.
16857         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
16858         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
16859
16860 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
16861
16862         PR bootstrap/16326
16863         * reorg.c: Revert 2004-06-30 change.
16864         (find_end_label): If HAVE_epilogue and !HAVE_return,
16865         return 0 instead of creating a label at the end of the insn chain.
16866         (optimize_skip): Account for the failure mode of find_end_label.
16867         (fill_simple_delay_slots): Likewise.
16868         (fill_slots_from_thread): Likewise.
16869         (relax_delay_slots): Likewise.
16870
16871 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
16872
16873         * tree-flow.h (addressable_vars): Declare.
16874         * tree-ssa-alias.c (addressable_vars): Define.
16875         (setup_pointers_and_addressables): Add addressable variables
16876         to addressable_vars.
16877         * tree-ssa-operands.c (get_stmt_operands): Move
16878         handling of ASM_EXPRs ...
16879         (get_asm_expr_operands): ... here.
16880         When the ASM_EXPR clobbers memory, also clobber addressable
16881         variables.
16882         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
16883         (delete_tree_ssa): Reset addressable_vars.
16884
16885 2004-07-07  Jan Beulich  <jbeulich@novell.com>
16886             Richard Henderson  <rth@redhat.com>
16887
16888         * varasm.c (assemble_variable): Use assemble_zeros for
16889         zero-initialized variables.
16890         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
16891         for SECCAT_BSS and SECCAT_TBSS.
16892
16893 2004-07-07  Jan Beulich  <jbeulich@novell.com>
16894
16895         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
16896
16897         * expmed.c (emit_store_flag): Also special-case double-word
16898         (in-)equality comparison against -1.
16899
16900         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
16901         passing arguments the containers for which are registers.
16902
16903         * calls.c (emit_library_call_value_1): Use mode of function parameter
16904         rather than that of argument since constants have none.
16905
16906 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
16907
16908         Introduce H8SX support.
16909         * expr.c (expand_strcpy): Renamed and moved to...
16910         * builtins.c (expand_movstr): ... here.  Tweak.
16911         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
16912         computed or has side effects.
16913         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
16914         unused, or if mempcpy fails.  Adjust the return value in the
16915         latter case.  Use movstr if everything else fails.
16916         * doc/md.texi (movstr): Document.
16917         (movmemM, clrmemM): Fix explanation of memory block operands.
16918         * config/h8300/h8300.md (stpcpy): Renamed to...
16919         (movstr): ... this.  Adjust.
16920         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
16921         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
16922         movmem* and clrstr* to clrmem*.
16923         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
16924         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
16925         GENERAL_REGS, always.
16926         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
16927         getting the stack pointer as addr.
16928         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
16929         from general_operand_dst.
16930         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
16931         variant of...
16932         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
16933         instead of requiring it to match only before reload.
16934         (stpcpy_internal_normal): New, normal-mode variant of...
16935         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
16936         `D' instead of requiring it to match only before reload.
16937         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
16938         mode argument.
16939         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
16940         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
16941         h8300_get_index.
16942         * config/h8300/h8300.md (attr type): Add call.
16943         (attr can_delay): If type is call, set it no.
16944         (call, call_value): Set type to call.
16945         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
16946         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
16947         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
16948         * tree.c (get_narrower): Don't narrow integral types into
16949         non-integral types.
16950         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
16951         frame_size *before* the first use.
16952         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
16953         on input.
16954         (peephole2): Don't widen instructions that push SP.  Move
16955         decrement of SP to the end of all stm-generating peepholes.
16956         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
16957         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
16958         and OR to set it to all ones.
16959         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
16960         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
16961         (call, call_value): Set can_delay to "no".
16962         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
16963         * config/h8300/h8300.md (extzv): Make subreg check more robust.
16964         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
16965         * config/h8300/h8300.md (*brabit): Remove.
16966         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
16967         zero_extract.  Use bit_memory_operand as the predicate for
16968         operand 1 and 'WU' as the constraint.  Check the difference
16969         between the base length and the final one when deciding which
16970         type of branch to use.
16971         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
16972         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
16973         Use convert_move to extend the result for TARGET_H8300SX.  Check
16974         for QImode memory references.  Optimize the case where the
16975         destination is a paradoxical subreg.
16976         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
16977         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
16978         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
16979         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
16980         * config/h8300/h8300.md: Include mova.md
16981         (length_table): Add mova and mova_zero.
16982         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
16983         after all constant addresses for '%R', '%X', '%T' and '%S'.
16984         (h8300_mova_length): New function.
16985         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
16986         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
16987         dependencies for s-config, etc.
16988         * config/h8300/gemova.sh: New file.
16989         * config/h8300/mova.md: Generated.
16990         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
16991         * config/h8300/h8300.c (h8300_bitfield_length): New.
16992         (nibble_operand): Adjust.
16993         (h8300_binary_length): Handle conditional binary op.
16994         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
16995         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
16996         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
16997         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
16998         constraints.  WU is introduced as a variant of U that requires a
16999         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
17000         * config/h8300/h8300.md (attr type): Added bitbranch.
17001         (attr length_table): Added bitfield and bitbranch.
17002         (attr length): Compute bitbranch length.
17003         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
17004         least-significant bit of a byte.
17005         (brabit, brabc, brabs): New.
17006         (insv, extzv): Emit bfst and bfld on H8300SX.
17007         (bfld, bfst, seq, sne): New.
17008         (bstzhireg, cmpstz, bstz, bistz): New.
17009         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
17010         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
17011         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
17012         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
17013         (h8sx_unary_memory_operator): New function.
17014         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
17015         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
17016         * config/h8300/h8300.md: Add peepholes to combine reloads and
17017         arithmetic insns.
17018         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17019         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
17020         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
17021         (and?i, ior?i, xor?i): Likewise.
17022         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
17023         * config/h8300/h8300.c: Move enums and prototypes to head of file.
17024         Various whitespace fixes.
17025         (h8300_constant_length): New function, split out from...
17026         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
17027         (h8300_classify_operand): Use IN_RANGE.
17028         (h8300_classify_operand): Use h8300_constant_length.
17029         (h8300_short_move_mem_p): Tighten size check.
17030         (h8sx_mergeable_memrefs_p): Tighten equality check.
17031         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
17032         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
17033         for -msx.
17034         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
17035         * config/h8300/crtn.asm: Likewise.
17036         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
17037         if __H8300SX__ is defined.
17038         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
17039         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
17040         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
17041         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
17042         addresses as mode-dependent.
17043         * config/h8300/h8300.c (print_operand_address): Update call to
17044         h8300_get_index.
17045         (h8300_get_index): Take a mode argument.  Rework to fix an
17046         earlier misunderstanding.
17047         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
17048         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
17049         into a register if TARGET_H8300SX.
17050         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
17051         TARGET_H8300SX.  Also disable related define_splits.
17052         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
17053         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
17054         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
17055         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17056         * config/h8300/h8300.h (OK_FOR_Z): New macro.
17057         (EXTRA_CONSTRAINT_STR): Check it.
17058         * config/h8300/h8300.c (h8300_classify_operand): Accept null
17059         class arguments.
17060         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
17061         * config/h8300/h8300.md (length_table): Add mov_imm4.
17062         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
17063         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
17064         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
17065         be a label.
17066         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
17067         * config/h8300/h8300.c (h8300_reorg): New function.
17068         (TARGET_MACHINE_DEPENDENT_REORG): Define.
17069         * config/h8300/h8300.md (length): Subtract the length of the
17070         delay slot from (pc) when checking the range of forward branches.
17071         (delay_slot, can_delay): New attributes.
17072         (define_delay): Add bra/s handling.
17073         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
17074         (jump): Add delayed-branch handling.
17075         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
17076         * expr.c (expand_strcpy): New function.
17077         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
17078         (expand_builtin_stpcpy): Likewise.
17079         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
17080         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
17081         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
17082         handling to improve register allocation for -fno-omit-frame-pointer.
17083         (h8sx_split_movmd): Delete, moving er6 handling into...
17084         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
17085         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
17086         (movmd): Add calls to copy_rtx.
17087         (movmd_internal): In the second alternative, allow the initial and
17088         final destination registers to be different .  Update the splitter
17089         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
17090         instead of h8sx_split_movmd.
17091         (stpcpy, movsd): New expanders.
17092         (movsd_internal): New define_insn.
17093         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
17094         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
17095         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
17096         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
17097         and DESTINATION_REGS.
17098         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
17099         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
17100         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
17101         (h8300_move_ratio): Declare.
17102         (MOVE_RATIO): Use it.
17103         * config/h8300/h8300.c (h8300_move_ratio): New variable.
17104         (h8300_init_once): Initialize it.
17105         (h8300_reg_class_from_letter): New function.
17106         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
17107         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
17108         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
17109         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
17110         (movstrsi, movmd): New expanders.
17111         (movmd_internal): New insn.
17112         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
17113         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
17114         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
17115         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
17116         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
17117         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17118         * config/h8300/h8300.c (nibble_operand): Fix warning.
17119         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
17120         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
17121         (movsf_h8300h): Disable for TARGET_H8300SX.
17122         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17123         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
17124         h8300_stm_parallel and h8300_return_parallel.
17125         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
17126         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
17127         h8300_stm_parallel, h8300_return_parallel): New functions.
17128         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
17129         if TARGET_H8300SX.  Use h8300_push_pop.
17130         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
17131         and final pop when generating h8sx code.  Always emit some form
17132         of return insn.
17133         * config/h8300/h8300.md: Don't enforce register alignment in
17134         stm peepholes if TARGET_H8300SX.
17135         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
17136         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
17137         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
17138         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
17139         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
17140         (MULTILIB_DIRNAMES): Add a directory for it.
17141         (MULTILIB_MATCHES): Delete.
17142         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17143         * final.c (walk_alter_subreg): Handle addresses with subregs
17144         inside a ZERO_EXTEND or AND.
17145         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
17146         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
17147         if TARGET_H8300SX.
17148         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
17149         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
17150         @(dd,Rn.w) and @(dd,ERn.L).
17151         (h8300_displacement_size): Take the whole address as argument.
17152         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
17153         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
17154         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
17155         (h8sx_mergeable_memrefs_p): Declare.
17156         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
17157         (HAVE_PRE_INCREMENT): Likewise.
17158         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
17159         addresses for TARGET_H8300SX,
17160         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
17161         and POST_DEC.
17162         (movb_length_table, movl_length_table): New tables.
17163         (movw_length_table): Define to movb_length_table.
17164         (h8300_displacement_size): New, split out from...
17165         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
17166         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
17167         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
17168         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
17169         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
17170         (compute_plussi_length, compute_plussi_cc): Update accordingly.
17171         (h8sx_unary_shift_operator): Get the mode from the operator.
17172         (binary_shift_operator): Likewise.
17173         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
17174         a memory reference, check whether the reference is offsettable.
17175         (length_table): Add movb, movw and movl.
17176         (movqi): Add new h8sx pattern.  Don't force one operand to be a
17177         register when generating h8sx code.
17178         (movhi, movsi, movsf): Likewise.
17179         (movstrictqi): Use the length_table attribute.
17180         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
17181         (addqi3): Split into a define_expand and define_insn.  Don't accept
17182         memory operands in the expander.  Use h8300_operands_match_p to
17183         check for matching operands in the define_insn.
17184         (subqi3, negqi2, one_cmplqi2): Likewise.
17185         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
17186         in any patterns that are unused in h8sx code.  In the h8sx patterns,
17187         use h8300_operands_match_p to check whether operands match.
17188         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
17189         one_cmpl[hs]i3): Likewise.
17190         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
17191         in the expander.
17192         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
17193         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
17194         (h8300_insn_length_from_table): Add a second parameter.
17195         (output_h8sx_shift): Declare.
17196         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
17197         (EXTRA_CONSTRAINT): Replace with...
17198         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
17199         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
17200         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
17201         and h8sx_binary_shift_operator.
17202         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
17203         for TARGET_H8300SX.
17204         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
17205         (bit_memory_operand, fix_bit_operand): Likewise.
17206         (h8300_length_table_for_insn): Remove.
17207         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
17208         instructions.
17209         (h8300_short_immediate_length, h8300_binary_length): New functions.
17210         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
17211         (output_plussi): Use sub to add negative constants.
17212         (compute_plussi_length): Adjust accordingly.
17213         (h8sx_single_shift_type): New enum.
17214         (h8sx_single_shift, h8sx_unary_shift_operator,
17215         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
17216         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
17217         single h8sx instruction.  Return false in this case.
17218         * config/h8300/h8300.md (length_table): Add short_immediate.
17219         (length): Pass the operand array to h8300_insn_length_from_table.
17220         (adjust_length): Assume "no" for insns with a length_table attribute.
17221         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
17222         (*addhi3_h8300hs): Don't use for h8sx.
17223         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
17224         and sub.w #xx:3.
17225         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
17226         1's predicate to nonimmediate_operand.  Only skip default expansion
17227         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
17228         for single h8sx shift instructions.
17229         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
17230         * config/h8300/h8300.c (nibble_operand): Split out of...
17231         (reg_or_nibble_operand): ... this.
17232         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
17233         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
17234         umulhisi3): Introduce expand, and introduce separate insns for
17235         sign- or zero-extended REG and already-extended CONST_INT.
17236         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
17237         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
17238         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
17239         (subhi3): Likewise.  Don't accept immediates for operand 1.
17240         Remove the early clobber from second alternative of the h8300s pattern.
17241         (subsi3): Generalize for h8sx.  Force operand 2 into a register
17242         on plain h8300 targets.
17243         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
17244         (subsi3_h8300h): Generalize for h8sx.
17245         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
17246         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
17247         * config/h8300/h8300.c (reg_or_nibble_operand): New.
17248         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17249         (TARGET_H8300SXMUL): New.
17250         (CONST_OK_FOR_P): New.
17251         (CONST_OK_FOR_LETTER_P): Adjust.
17252         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
17253         umulhisi3): Accept 4-bit immediate on H8SX.
17254         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
17255         (udivsi3, divhi3, udivsi3, divsi3): New.
17256         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
17257         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
17258         * config/h8300/h8300.h (OK_FOR_Q): New macro.
17259         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
17260         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
17261         Add ADDRESSOF to the bit_operand entry.
17262         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
17263         (h8300_src_operand): Likewise.
17264         (bit_operand): Check nonimmediate_operand rather than general_operand.
17265         Accept any nonimmediate_operand in h8sx code.
17266         (h8300_and_costs): Initialize operands[1].
17267         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
17268         (h8300_operand_class): New enum.
17269         (h8300_length_table): New typedef.
17270         (addb_length_table, addw_length_table, addl_length_table,
17271         logicl_length_table): New tables.
17272         (logicb_length_table, logicw_length_table): New macros.
17273         (h8300_classify_operand, h8300_length_from_table,
17274         h8300_length_table_for_insn, h8300_unary_length,
17275         h8300_insn_length_from_table): New functions.
17276         (output_plussi): Only use adds and subs for register destinations.
17277         Disable redundant clause.
17278         (compute_plussi_cc): Likewise.
17279         (compute_plussi_length): Likewise.  Use h8300_length_from_table
17280         to work out the length of an insn.
17281         (output_logical_op): Only use narrower immediate instructions
17282         if the destination is a register.
17283         (compute_logical_op_cc): Likewise.
17284         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
17285         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
17286         * config/h8300/h8300.md (length_table): New attribute.
17287         (length): When an instruction has a length_table attribute, use
17288         h8300_insn_length_from_table to calculate its default length.
17289         (cmpqi): Use h8300_dst_operand for the first operand and
17290         h8300_src_operand for the second.
17291         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
17292         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
17293         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
17294         iorsi3, xorhi3, xorsi3): Likewise.
17295         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
17296         so that it allows any combination of operands for TARGET_H8300SX.
17297         (iorqi3, xorqi3): Likewise.
17298         (cmpqi): Use the length_table attribute.
17299         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
17300         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17301         (cmpqi): Add 'Q' constraint.
17302         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
17303         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
17304         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
17305         * config/h8300/h8300.h (MASK_H8300SX): New macro.
17306         (TARGET_H8300S): True for both -ms and -msx.
17307         (TARGET_H8300SX): New macro.
17308         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
17309         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
17310         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
17311         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
17312         [Temporary change.]
17313         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
17314         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
17315         16-bit pointers and 32-bit ints.
17316         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
17317         CONST_DOUBLE with mode no wider than SImode.
17318         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
17319         output operand.
17320         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
17321         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
17322         or SUBREG thereof.
17323         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
17324         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
17325         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
17326
17327 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
17328
17329         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
17330
17331 2004-07-07  Per Bothner  <per@bothner.com>
17332
17333         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
17334
17335 2004-07-07  Mike Stump  <mrs@apple.com>
17336
17337         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
17338         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
17339         (machopic_finish): Likewise.
17340
17341 2004-07-07  Richard Henderson  <rth@redhat.com>
17342
17343         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
17344         through any value-preserving cast.
17345
17346 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17347
17348         * function.c (assign_parm_find_data_types): Call
17349         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
17350
17351 2004-07-07  Steven Bosscher  <stevenb@suse.de>
17352
17353         * tree-cfg.c (group_case_labels): Remove case labels that have
17354         the same target as the default case.
17355
17356 2004-07-07  Steven Bosscher  <stevenb@suse.de>
17357
17358         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
17359         regardless of DECL_LANG_SPECIFIC being present or not.
17360         * tree.h (DECL_NUM_STMTS): Purge.
17361
17362 2004-07-07  Andrew Pinski  <apinski@apple.com>
17363
17364         * configure: Regenerate with the right autoconf.
17365
17366 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
17367
17368         * ifcvt.c (total_bb_rtx_cost): New function.
17369         (find_if_case_1): Compare rtx_cost of basic block to cost of
17370         BRANCH_COST insns.
17371         (find_if_case_2): Same.
17372
17373 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
17374
17375         PR target/10567
17376         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
17377         (output_return): Likewise.
17378         (output_sibcall): Abort if !flag_delayed_branch.
17379         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
17380         (emit_and_preserve): New function.
17381         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
17382         indirect jump to the thunked-to function if !flag_delayed_branch.
17383         * config/sparc/sparc.md (delayed_branch): New attribute.
17384         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
17385         attribute to compute the length of the insn.
17386         (goto_handler_and_restore): Likewise.
17387
17388 2004-07-07  Andrew Pinski  <apinski@apple.com>
17389
17390         PR tree-optimization/15777
17391         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
17392
17393         * expr.c (expand_expr_real_1): Fix formating.
17394         BUFFER_REF and IN_EXPR are dead.
17395         * fold-const.c (non_lvalue): BUFFER_REF is dead.
17396         * tree-inline.c (estimate_num_insns_1): Likewise.
17397         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
17398         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
17399         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
17400
17401 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17402
17403         * collect2.c (dump_file): Don't call cplus_demangle if
17404         HAVE_LD_DEMANGLE is defined.
17405         (main): Pass "--demangle" to ld if no_demangle is not 0 and
17406         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
17407         if HAVE_LD_DEMANGLE is defined.
17408
17409         * configure.ac (--with-demangler-in-ld): Added
17410         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
17411         --with-demangler-in-ld is used.
17412         * config.in: Regenerated.
17413         * configure: Likewise.
17414
17415 2004-07-07  Roger Sayle  <roger@eyesopen.com>
17416
17417         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
17418         for simple floating point operations "fp", double precision
17419         multiplication "dmul", and single and double precision division
17420         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
17421         (ppc630_cost): New table split from ppc620_cost, to distinguish
17422         differences in floating point latencies.
17423         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
17424         (rs6000_rtx_costs): Add support for single and double precision
17425         floating point addition, subtraction, multiplication, division,
17426         fused-multiply-add, fused-multiply-sub, negation, absolute value
17427         and negative absolute value.  Tweak MEM case to use prefered idiom.
17428
17429 2004-07-07  Richard Henderson  <rth@redhat.com>
17430
17431         * tree-flow-inline.h (may_propagate_copy): Move...
17432         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
17433         attempt to copy between types requiring conversion.
17434         * tree-flow.h (may_propagate_copy): Update decl.
17435         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
17436
17437 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
17438
17439         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
17440         from -mtune= option.
17441
17442 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
17443
17444         * builtins.c: Rename movstr*, except for movstrict*, to
17445         movmem* and clrstr* to clrmem*.
17446         * expr.c: Likewise.
17447         * expr.h: Likewise.
17448         * genopinit.c: Likewise.
17449         * integrate.c: Likewise.
17450         * local-alloc.c: Likewise.
17451         * optabs.c: Likewise.
17452         * optabs.h: Likewise.
17453         * config/alpha/alpha.h: Likewise.
17454         * config/alpha/alpha.md: Likewise.
17455         * config/arm/arm-protos.h: Likewise.
17456         * config/arm/arm.c: Likewise.
17457         * config/arm/arm.md: Likewise.
17458         * config/avr/avr.md: Likewise.
17459         * config/c4x/c4x.c: Likewise.
17460         * config/c4x/c4x.md: Likewise.
17461         * config/frv/frv.md: Likewise.
17462         * config/i386/i386-protos.h: Likewise.
17463         * config/i386/i386.c: Likewise.
17464         * config/i386/i386.h: Likewise.
17465         * config/i386/i386.md: Likewise.
17466         * config/i860/i860.c: Likewise.
17467         * config/i860/i860.md: Likewise.
17468         * config/ip2k/ip2k.md: Likewise.
17469         * config/ip2k/libgcc.S: Likewise.
17470         * config/ip2k/t-ip2k: Likewise.
17471         * config/m32r/m32r.c: Likewise.
17472         * config/m32r/m32r.md: Likewise.
17473         * config/mcore/mcore.md: Likewise.
17474         * config/mips/mips.c: Likewise.
17475         * config/mips/mips.md: Likewise.
17476         * config/ns32k/ns32k.c: Likewise.
17477         * config/ns32k/ns32k.h: Likewise.
17478         * config/ns32k/ns32k.md: Likewise.
17479         * config/pa/pa.c: Likewise.
17480         * config/pa/pa.md: Likewise.
17481         * config/pdp11/pdp11.h: Likewise.
17482         * config/pdp11/pdp11.md: Likewise.
17483         * config/rs6000/rs6000.c: Likewise.
17484         * config/rs6000/rs6000.md: Likewise.
17485         * config/s390/s390-protos.h: Likewise.
17486         * config/s390/s390.c: Likewise.
17487         * config/s390/s390.md: Likewise.
17488         * config/sh/lib1funcs.asm: Likewise.
17489         * config/sh/sh.c: Likewise.
17490         * config/sh/sh.md: Likewise.
17491         * config/sh/t-sh: Likewise.
17492         * config/sparc/sparc.h: Likewise.
17493         * config/vax/vax.md: Likewise.
17494         * config/xtensa/xtensa.c: Likewise.
17495         * config/xtensa/xtensa.md: Likewise.
17496         * doc/invoke.texi: Likewise.
17497         * doc/md.texi: Likewise.
17498         * doc/rtl.texi: Likewise.
17499
17500 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
17501
17502         PR target/16407
17503         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
17504         * config/mips/mips.c (mips_declare_common_object): New function,
17505         mostly split out from...
17506         (mips_output_aligned_decl_common): ...here.
17507         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
17508         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
17509         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
17510         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
17511
17512 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17513
17514         PR c/16392
17515         * function.c (assign_parms): Fix typo from previous change.
17516
17517 2004-07-07  Jason Merrill  <jason@redhat.com>
17518
17519         PR c++/15815
17520         * doc/extend.texi (C++ Interface): Correct information and
17521         discourage use.
17522
17523 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
17524
17525         PR target/16130
17526         PR target/16142
17527         PR target/16143
17528         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
17529         insn.
17530
17531 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17532
17533         PR target/1679.
17534         * config/m32r/m32r.c (m32r_function_symbol): New function:
17535         Generate a symbol name RTX with the correct m32r specific flags
17536         set.
17537         (block_move_call): Use new function to generate correct symbol.
17538         * config/m32r/m32r-protos.h: Add prototype for new funcion.
17539         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
17540         function.
17541
17542 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
17543
17544         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
17545         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
17546         TYPE_BINFO_BASETYPE): Remove.
17547         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
17548         to ...
17549         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
17550         here.
17551         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
17552         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
17553         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
17554         (struct tree_binfo): Rename base_types to base_binfos.
17555         * alias.c (record_component_aliases): Adjust BINFO macros.
17556         * dbxout.c (dbxout_type): Likewise.
17557         * dwarf2out.c (gen_member_die): Likewise.
17558         * sdbout.c (sdbout_one_type): Likewise.
17559         * tree-dump.c (deque_and_dump): Likewise.
17560         * config/i386/i386.c (classify_argument,
17561         contains_128bit_aligned_vector_p): Likewise.
17562
17563 2004-07-07  Nick Clifton  <nickc@redhat.com>
17564
17565         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
17566         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
17567
17568 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
17569
17570         * vec.h: Fix the example use.
17571
17572 2004-07-06  Richard Henderson  <rth@redhat.com>
17573
17574         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
17575         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
17576         * tree-inline.c (copy_body_r, setup_one_parameter,
17577         initialize_inlined_parameters, expand_call_inline,
17578         declare_inline_vars): Don't check it.
17579         (expand_calls_inline): Remove old version, rename new version
17580         from gimple_expand_calls_inline.
17581         * tree-optimize.c (execute_gimple): Remove.
17582         (pass_gimple): Don't run anything.
17583
17584 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
17585
17586         * doc/sourcebuild.texi: Use semicolons instead of commas in
17587         section title.
17588
17589 2004-07-06  Richard Henderson  <rth@redhat.com>
17590
17591         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
17592         (sra_walk_modify_expr, scan_init): Likewise.
17593         (generate_element_zero): Check visited before scanning children.
17594         (generate_element_init): Set visited on error.
17595         (scalarize_init): Handle generate_element_init failure similar
17596         to use_block_copy.
17597
17598 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
17599
17600         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
17601         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
17602
17603 2004-07-06  Richard Henderson  <rth@redhat.com>
17604
17605         * config/i386/i386.c (legitimize_pic_address): Make static.
17606         (legitimize_address): Handle CONST with TLS operand.
17607         (ix86_expand_move): Don't call legitimize_pic_address directly.
17608         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
17609
17610 2004-07-06  Roger Sayle  <roger@eyesopen.com>
17611
17612         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
17613         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
17614         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
17615         is currently executed unconditionally, i.e. not in "else_bb".
17616
17617 2004-07-06  Steven Bosscher  <stevenb@suse.de>
17618
17619         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
17620         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17621         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
17622         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17623         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
17624         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17625         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
17626         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17627         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
17628         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17629         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
17630         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17631         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
17632         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17633         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
17634         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
17635
17636 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
17637
17638         * dojump.c (do_jump): REFERENCE_EXPR is dead.
17639         * expr.c (expand_expr_real_1): Ditto.
17640         * tree-inline.c (estimate_num_insns_1): Ditto.
17641         * tree-pretty-print.c (dump_generic_node): Ditto.
17642         (op_symbol): Ditto.
17643         * tree.def: Ditto.
17644
17645 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
17646
17647         * tree-ssa-pre.c (reference_node_pool): New pool.
17648         (find_or_generate_expression): Class 'r' is okay too.
17649         (create_value_expr_from): Ditto.
17650         (add_to_sets): LHS should not include vuses.
17651         (eliminate): Ditto.
17652         (compute_avail): Reverse ordering of tests.
17653         Valuize INDIRECT_REF as well.
17654
17655 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
17656
17657         PR rtl-optimization/16380
17658         * loop.c (check_dbra_loop): Sink comparison instructions if they
17659         do something other than set cc0.
17660
17661 2004-07-06  James E Wilson  <wilson@specifixinc.com>
17662
17663         * doc/interface.texi (longjmp and automatic variables): Delete
17664         paragraph recommending taking the address of a variable.
17665
17666 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
17667
17668         * vec.h (VEC_embedded_alloc): Remove.
17669         (VEC_embedded_size, VEC_embedded_init): New.
17670         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
17671         MEM_STAT_INFO.
17672         (VEC_truncate): New.
17673         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
17674         (vec_embedded_alloc): Remove.
17675         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
17676         (vec_embedded_alloc): Remove.
17677
17678 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
17679
17680         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
17681         (gt-langhooks.h): Remove.
17682
17683 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
17684
17685         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
17686
17687 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
17688
17689         * config/sparc/sparc.c (get_pc_symbol): Rename into
17690         add_pc_to_pic_symbol.
17691         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
17692         (load_pic_register): Account for previous changes.
17693         Use reg_names.  Don't create the label twice.
17694         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
17695         UNSPEC_LOAD_PCREL_SYM.
17696         (get_pc): Rename into load_pcrel_sym.  Add predicate to
17697         operands.  Remove condition.
17698
17699 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
17700
17701         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
17702         RECORD, UNION & QUAL_UNION is actually a binfo.
17703
17704         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
17705         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
17706         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
17707         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
17708         * dwarf2out.c (add_data_member_location_attribute): Likewise.
17709         (gen_inheritance_die): Likewise.
17710         * tree-dump.c (deque_and_dump): Likewise.
17711         * doc/c-tree.texi (Binfos): Add under reconstruction note.
17712
17713 2004-07-06  Steven Bosscher  <stevenb@suse.de>
17714
17715         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
17716         Define.
17717         * config/mcore/mcore.md: Model memory latency with a simple DFA
17718         pipeline description instead of a define_function_unit.
17719
17720 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17721
17722         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
17723         * langhooks.h (var_mod_type_p): Likewise.
17724         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
17725         * expr.c (count_type_elements): Properly handle return from
17726         array_type_nelts and properly test for overflow.
17727         * gimplify.c (gimplify_init_constructor): Properly handle return
17728         from array_type_nelts.
17729         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
17730         * integrate.c (copy_decl_for_inlining): Correct comments.
17731         * tree-inline.c (remap_decl): Update comments, remove dead code,
17732         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
17733         (remap_type): Only remap if variably modified by vars in function
17734         being inlined.
17735         (copy_body_r): Use compatible_type langhooks to see when can fold.
17736         (setup_one_parameter): Don't remap type.
17737         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
17738         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
17739         compute TREE_INVARIANT for decl case.
17740         (find_var_from_fn): New function.
17741         (variably_modified_type_p): Add arg and call new function.
17742         * tree.h (variably_modified_type_p): Add extra arg.
17743
17744 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
17745
17746         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
17747         (goto_handler_and_restore_v9): Delete disabled insn.
17748         (goto_handler_and_restore_v9_sp64): Likewise.
17749
17750 2004-07-05  Roger Sayle  <roger@eyesopen.com>
17751
17752         * calls.c (load_register_parameters): Call expand_shift instead
17753         of expand_binop with ashl_optab (or other shift optab) directly.
17754         * expr.c (emit_group_load, emit_group_store): Likewise.
17755         * function.c (assign_parm_setup_block): Likewise.
17756         * stmt.c (shift_return_value): Likewise.
17757
17758 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
17759
17760         * expr.c (expand_assignment): Disable the bitfield += optimizations.
17761
17762 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
17763
17764         * doc/sourcebuild.texi: Revert previous patch.
17765
17766 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
17767
17768         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
17769         TARGET_MEM_FUNCTIONS.
17770         * system.h: Poison TARGET_MEM_FUNCTIONS.
17771         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
17772         bcmp_libfunc, bzero_libfunc): Remove.
17773         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
17774         bzero_libfunc.
17775         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
17776         * doc/standards.texi: Don't mention calling BSD string functions.
17777         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
17778         * config/vax/t-memfuncs: New.
17779         * config/memcmp.c, config/memcpy.c, config/memmove.c,
17780         config/memset.c: New.
17781         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
17782         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
17783         vax/t-memfuncs.
17784         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
17785         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
17786         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
17787         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
17788         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
17789         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
17790         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
17791         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
17792         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
17793         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
17794
17795 2004-07-05  Richard Henderson  <rth@redhat.com>
17796
17797         * function.c (assign_parm_setup_reg): Properly rename variables in
17798         FUNCTION_ARG_CALLEE_COPIES section.
17799
17800 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
17801
17802         * tree-mudflap.c: Include cgraph.h.
17803         (mf_init_extern_trees): Rename to mudflap_init.  Export.
17804         Rewrite to create synthetic declarations instead of looking
17805         up declarations from mf-runtime.h.
17806         (mf_make_builtin, mf_make_cache_struct_type): New functions.
17807         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
17808         Correct commentary.
17809         (execute_mudflap_function_decls, mudflap_register_call):
17810         Don't call mf_init_extern_trees.
17811         (mudflap_finish_file): Use cgraph_build_static_cdtor.
17812
17813         * tree-mudflap.h: Update prototypes.
17814         * c-mudflap.c: Delete file.
17815         * c-common.c: Include tree-mudflap.h.
17816         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
17817         * Makefile.in: Remove all references to c-mudflap.o.
17818         Update dependencies.
17819
17820 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17821
17822         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
17823         displacements with the spatial-locality cache-control completer.
17824
17825 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
17826
17827         * langhooks.c: Don't include gt-langhooks.h.
17828         (var_labelno): Delete.
17829         (lhd_set_decl_assembler_name): Do not append a distinguishing
17830         number to file-scope internal-linkage declarations for the first
17831         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
17832         the declaration itself (if at block scope), or its containing
17833         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
17834         number.
17835
17836         * opts.c (cur_in_fname): New global.
17837         * opts.h: Declare it.
17838         * tree.c: Include opts.h.
17839         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
17840         DECL_UID equal to cur_in_fname.
17841         (copy_node_stat): Do not change DECL_UID when copying a
17842         TRANSLATION_UNIT_DECL.
17843         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
17844         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
17845
17846         * c-decl.c (c_static_assembler_name): Delete.
17847         * c-tree.h (c_static_assembler_name): Delete prototype.
17848         * c-lang.c, objc/objc-lang.c: Don't override
17849         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
17850
17851         * Makefile.in (tree.o): Update dependencies.
17852         (GTFILES): Remove langhooks.c.
17853
17854 2004-07-05  Roger Sayle  <roger@eyesopen.com>
17855
17856         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
17857         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
17858         Normalize "X % C" as "X % -C" for signed modulus and negative C.
17859         Optimize "X % -Y" as "X % Y" for signed modulus.
17860         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
17861         into "((unsigned) X % Y) == 0".
17862
17863 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
17864
17865         * sourcebuild.texi (Config Fragments): Use @comma{} in
17866         cross-reference to section title.
17867
17868 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17869
17870         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
17871         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
17872         (gimplify_target_expr, gimplify_expr): Likewise.
17873         (copy_if_shared_r): No longer need special case for BIND_EXPR.
17874         (unshare_body, unvisit_body): Only look at nested if BODY_P is
17875         whole function.
17876         (gimplify_compound_lval): See if we can strip any useless conversion.
17877         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
17878         from RHS, not LHS.
17879         (gimplify_modify_expr_to_memset): Likewise.
17880         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
17881         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
17882         (declare_inline_vars): Likewise.
17883         (walk_type_fields): New function.
17884         (walk_tree): Use it.
17885         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
17886
17887         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
17888         (sra_walk_modify_expr): Allow init function to fail.
17889         (scan_init): Now returns bool.
17890         (generate_element_init): If can't understand INIT, return false.
17891         (scalarize_init): Return false if generate_element_init does.
17892
17893         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
17894         print bounds.
17895
17896         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
17897         bounds if bounds aren't constant.
17898
17899         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
17900
17901         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
17902         to type hooks; remove bogus PARAMS.
17903
17904 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
17905
17906         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
17907         * dwarf2out.c (add_data_member_location_attribute): Check for
17908         TREE_BINFO.
17909         * tree.c (tree_node_kinds): Add "binfos".
17910         (binfo_lang_slots): New.
17911         (make_node_stat): Add TREE_BINFO.
17912         (make_tree_binfo_stat): New.
17913         (tree_node_structure): Add TREE_BINFO.
17914         * tree.def (TREE_BINFO): New.
17915         * tree.h (REC_OR_UNION_CHECK): Rename to ...
17916         (RECORD_OR_UNION_CHECK): ... here.
17917         (NOT_RECORD_OR_UNION_CHECK): New.
17918         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
17919         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
17920         RECORD_OR_UNION_CHECK.
17921         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
17922         (TYPE_LANG_SLOT_1): New.
17923         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
17924         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
17925         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
17926         (BINFO_ELTS): Remove.
17927         (BINFO_LANG_SLOT): New.
17928         (struct tree_binfo): New.
17929         (binfo_lang_slots): Declare.
17930         (enum tree_node_structure_enum): Add TS_BINFO.
17931         (union tree_node): Add binfo.
17932         (make_tree_binfo_stat): Declare.
17933         (make_tree_binfo): New.
17934         (enum tree_node_kind): Add binfo_kind.
17935
17936         * objc/objc-act.c (start_class, objc_declare_protocols,
17937         start_protocols): Use TYPE_LANG_SLOT_1.
17938         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
17939         to ...
17940         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
17941         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
17942         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
17943         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
17944
17945 2004-07-05  Steven Bosscher  <stevenb@suse.de>
17946
17947         * rtl.h (struct rtx_def): Remove the integrated flag.
17948         Use the return_val flag for MEM_SCALAR_P.
17949         Reshuffle and update flags in CLEAR_RTX_FLAGS.
17950
17951 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
17952
17953         PR target/16357
17954         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
17955         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
17956         move_by_pieces.
17957
17958 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
17959
17960         * var-tracking.c: Fix some comments.
17961         (frame_stack_adjust): New.
17962         (vt_stack_adjustments): Init stack_adjust of entry block to
17963         minus stack adjustment of function prologue.
17964         (adjust_stack_reference): Do not adjust if adjustment == 0.
17965         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
17966         (emit_notes_in_bb): Likewise.
17967         (vt_add_function_parameters): Do not adjust locations of
17968         function arguments.
17969         (vt_initialize): Compute the stack adjustment of function
17970         prologue and offset the initial "location" of frame_base_decl
17971         from the stack pointer after prologue.
17972
17973 2004-07-04  Richard Henderson  <rth@redhat.com>
17974
17975         * function.c (struct assign_parm_data_all): New.
17976         (struct assign_parm_data_one): New.
17977         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
17978         assign_parm_find_data_types, assign_parms_setup_varargs,
17979         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
17980         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
17981         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
17982         assign_parm_setup_block, assign_parm_setup_reg,
17983         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
17984         (assign_parms): ... here.
17985
17986 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
17987
17988         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
17989         now are bitmap_set_t's.
17990         (bitmap_insert_into_set): No point in inserting the value if
17991         it's invariant.
17992         (bitmap_set_contains): New function.
17993         (bitmap_set_replace_value): Add comment on why we do it
17994         this way.
17995         (set_contains): Removed.
17996         (bitmap_set_subtract_from_value_set): New name of
17997         set_subtract now that it's arguments are two different
17998         types of sets.
17999         Update callers.
18000         (bitmap_find_leader): Change algorithm used.
18001         (find_or_generate_expression): Update use of functions for new
18002         bitmap sets.
18003         (create_expression_by_pieces): Ditto.
18004         (insert_aux): Ditto.
18005         (insert): Ditto.
18006         (add_to_sets): Ditto.
18007         (init_pre): Ditto.
18008         (execute_pre): Ditto.
18009         (compute_avail): Ditto.
18010         Also ignore virtual phis.
18011
18012 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18013
18014         * combine.c (simplify_comparison): Fix comment typo.
18015
18016 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
18017
18018         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
18019         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
18020         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
18021         (output_restore): Change parameter from 'insn' to 'pat'.
18022         (output_return): Adjust call to output_restore.
18023         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
18024         Adjust call to output_restore.
18025
18026 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18027
18028         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
18029         and assert system is bsd.
18030
18031 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
18032
18033         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
18034         (TARGET_SWITCHES): Remove -mdebugc.
18035         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
18036         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
18037         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
18038         (sle_[sd]i_reg): Delete.
18039
18040 2004-07-04  Steven Bosscher  <stevenb@suse.de>
18041
18042         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
18043         Define.
18044         * config/iq2000/iq2000.md: Translate old pipeline description to an
18045         equivalent new one.
18046
18047 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18048
18049         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
18050         Ensure the replacement rhs is valid gimple before performing
18051         the substitution.  Return false if these sanity checks fail.
18052         (fold_stmt): Only set changed to true, if set_rhs returns true.
18053         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
18054         succeeds.
18055
18056 2004-07-04  Richard Henderson  <rth@redhat.com>
18057
18058         PR c/16348
18059         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
18060
18061 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
18062
18063         * configure.ac (ranlib_flags): New variable.
18064         * Makefile.in (RANLIB_FLAGS): New variable.
18065         (libbackend.a): Use it.
18066         * configure: Regenerated.
18067
18068 2004-07-04  Roger Sayle  <roger@eyesopen.com>
18069
18070         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
18071         a "sign mask" instead of using ashr_optab directly.
18072
18073 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
18074
18075         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
18076         * doc/cppopts.texi: Clarify processing of command-line defines.
18077
18078 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
18079
18080         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
18081
18082 2004-07-04  Richard Henderson  <rth@redhat.com>
18083
18084         * rtl.def (ADDRESSOF): Remove.
18085         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
18086         (find_base_term, memrefs_conflict_p): Likewise.
18087         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
18088         (fold_rtx, cse_insn, set_live_p): Likewise.
18089         * dwarf2out.c (mem_loc_descriptor): Likewise.
18090         (add_location_or_const_value_attribute): Likewise.
18091         * emit-rtl.c (copy_insn_1): Likewise.
18092         * explow.c (memory_address): Likewise.
18093         * expmed.c (store_split_bit_field): Likewise.
18094         * expr.c (expand_expr_real_1): Likewise.
18095         * function.c (instantiate_decl
18096         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
18097         * genrecog.c (preds, validate_pattern): Likewise.
18098         * integrate.c (copy_rtx_and_substitute): Likewise.
18099         * recog.c (general_operand, register_operand): Likewise.
18100         (memory_address_p): Likwise.
18101         * reload1.c (eliminate_regs, elimination_effects): Likewise.
18102         * rtl.c (copy_rtx): Likewise.
18103         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
18104         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
18105         * rtlhooks.c (gen_lowpart_general): Likewise.
18106         * stmt.c (expand_asm_operands): Likewise.
18107         * web.c (entry_register, replace_ref, web_main): Likewise.
18108         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
18109         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
18110         * config/arm/arm.c (thumb_rtx_costs): Likewise.
18111         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
18112         * config/frv/frv.c (move_destination_operand, move_source_operand,
18113         condexec_dest_operand, condexec_source_operand,
18114         condexec_memory_operand): Likewise.
18115         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
18116         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
18117         (destination_xfmode_operand): Likewise.
18118         * config/mips/mips.h (PREDICATE_CODES): Likewise.
18119         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
18120         * config/s390/s390.c (general_s_operand): Likewise.
18121         * config/s390/s390.md (mov*): Likewise.
18122         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
18123
18124         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
18125         * expr.c (expand_expr_real_1): Likewise.
18126         * stmt.c (expand_decl): Likewise.
18127         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
18128
18129         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
18130         postponed_insns, put_var_into_stack, put_reg_into_stack,
18131         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
18132         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
18133         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
18134         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
18135         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
18136         purge_bitfield_addressof_replacements, purge_addressof_replacements,
18137         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
18138         struct insns_for_mem_walk_info, insns_for_mem_walk,
18139         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
18140         setjmp_protect_args): Remove.
18141         (push_function_context_to): Don't handle var_refs_queue.
18142         (pop_function_context_from, free_after_compilation): Likewise.
18143         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
18144         (assign_parms, allocate_struct_function): Likewise.
18145         (use_register_for_decl): New.
18146         (expand_function_end): Don't setjmp_protect.
18147         * function.h (struct emit_status): Update commentary.
18148         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
18149         (max_parm_reg, parm_reg_stack_loc): Remove.
18150         * passes.c (DFI_addressof): Remove.
18151         (dump_file_info): Remove addressof.
18152         (rest_of_handle_addressof): Remove.
18153         (rest_of_compilation): Don't call it.
18154         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
18155         * stmt.c (expand_decl): Use use_register_for_decl.
18156         * tree.h: Update decls.
18157         * web.c (mark_addressof): Remove.
18158         * doc/invoke.texi (-dF): Remove.
18159
18160 2004-07-03  Richard Henderson  <rth@redhat.com>
18161
18162         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
18163         instead of gen_mem_addressof.
18164         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
18165         TImode output register.
18166
18167 2004-07-03  Richard Henderson  <rth@redhat.com>
18168
18169         PR tree-optimization/16341
18170         * tree-sra.c (sra_walk_function): Increment to next stmt before
18171         processing the current stmt.
18172         (sra_insert_after): Always use BSI_SAME_STMT.
18173
18174 2004-07-03  Richard Henderson  <rth@redhat.com>
18175
18176         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
18177         fp plus with minus.
18178
18179 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18180
18181         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
18182         with tree_int_cst_equal.
18183
18184 2004-07-03  Andreas Schwab  <schwab@suse.de>
18185
18186         * config/ia64/ia64.md: Define new attribute "empty".
18187         (prologue_use, nop_x, insn_group_barrier): Set it.
18188
18189         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
18190         skip over "empty" insns.
18191
18192 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18193
18194         * tree-inline.c (initialize_inlined_parameters): Pass proper function
18195         context to gimplify_body.
18196         (walk_tree): Don't walk into types twice.
18197         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
18198
18199         * tree-sra.c (generate_element_init): Remove any useless conversions.
18200
18201         * gimplify.c (gimplify_conversion): Remove stripping useless
18202         conversions from here.
18203         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
18204         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
18205         Unshare before substituting PLACEHOLDER_EXPR.
18206         (gimplify_modify_expr_to_memset): Likewise.
18207         Pass address of TO to memset, not TO itself.
18208         (gimplify_init_constructor): Make copy of OBJECT so we have it each
18209         time we make an expression (to match a PLACEHOLDER_EXPR).
18210
18211         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
18212         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
18213         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
18214         * tree-ssa-dom.c (local_fold): Likewise.
18215
18216         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
18217         * langhooks.h (strct lang_hooks): New field type_max_size.
18218         * function.c (assign_temp): Call it.
18219
18220 2004-07-03  Steven Bosscher  <stevenb@suse.de>
18221
18222         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
18223         * config/sh/sh.md: Convert the SH1 pipeline description to
18224         a DFA model.
18225
18226 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
18227
18228         * c-decl.c (struct c_binding): Remove contour field; add
18229         depth, invisible, nested fields.
18230         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
18231         (B_IN_EXTERNAL_SCOPE): New convenience macros.
18232         (bind): Add invisible and nested arguments. Initialize
18233         new fields of struct c_binding; adjust loop scanning for
18234         insertion point.
18235         (free_binding_and_advance): Clear structure with memset.
18236         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
18237         in file scope, even if it's in external scope too.
18238         (pushdecl): Adjust to match.  Create invisible file-scope
18239         declarations for block-scope forward declarations of static functions.
18240         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
18241         (undeclared_variable, lookup_label, declare_label, define_label)
18242         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
18243         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
18244         (store_parm_decls_oldstyle): Adjust to match.
18245         (diagnose_mismatched_decls): Correct handling of linkage clashes.
18246         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
18247
18248         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
18249         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
18250
18251 2004-07-02  Richard Henderson  <rth@redhat.com>
18252
18253         * c-decl.c (grokdeclarator): Don't frob current_function_decl
18254         around variable_size.
18255         (set_decl_nonlocal): Remove.
18256         (store_parm_decls): Add stmts for pending sizes.
18257         * calls.c (calls_function, calls_function_1): Remove.
18258         (precompute_arguments): Don't call it.
18259         * cfgexpand.c (set_save_expr_context): Remove.
18260         (tree_expand_cfg): Don't call it.
18261         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
18262         (dwarf2out_finish): Likewise.
18263         * expr.c (emit_block_move): Adjust addresses to BLKmode.
18264         (store_constructor): Don't pre-evaluate SAVE_EXPR.
18265         (safe_from_p): Don't queue SAVE_EXPRs.
18266         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
18267         or build plain VAR_DECLs.
18268         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
18269         (fold): Likewise.
18270         (fold_checksum_tree): Don't special-case SAVE_EXPR.
18271         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
18272         (put_var_into_stack): Don't handle SAVE_EXPR.
18273         (gen_mem_addressof): Likewise.
18274         * function.h (struct function): Remove x_save_expr_regs.
18275         (save_expr_regs): Remove.
18276         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
18277         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
18278         * stor-layout.c (variable_size): Don't set it.
18279         (force_type_save_exprs, force_type_save_exprs_1): Remove.
18280         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
18281         all callers.  Don't set SAVE_EXPR_CONTEXT.
18282         * tree-inline.h (remap_save_expr): Update decl.
18283         * tree.c (save_expr): Update build size.
18284         (first_rtl_op): Don't handle SAVE_EXPR.
18285         (unsave_expr_1, contains_placeholder_p): Likewise.
18286         (decl_function_context): Likewise.
18287         * tree.def (SAVE_EXPR): Remove args 1 and 2.
18288         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
18289         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
18290
18291 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
18292
18293         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
18294         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
18295         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
18296         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
18297         some first-person references and patronizing comments.  Based on
18298         printed manual.
18299         * doc/invoke.texi: Don't reference fortran@gnu.org.
18300         * doc/trouble.texi (Warning when a non-void function value is
18301         ignored): Rewrite.  From Russ Allbery and Chris Devers.
18302
18303 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
18304
18305         * tree-ssa-pre.c (bitmap_set_t): New.
18306         (bb_value_sets): avail_out is now a bitmap_set_t.
18307         (bitmap_find_leader): New function.
18308         (bitmap_value_insert_into_set): Ditto.
18309         (bitmap_set_copy): Ditto.
18310         (bitmap_value_replace_in_set): Ditto.
18311         (bitmap_set_contains_value): Ditto.
18312         (bitmap_set_new): Ditto.
18313         (bitmap_set_pool): New pool.
18314         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
18315         (insert_aux): Ditto.
18316         (add_to_sets): Ditto.
18317         (compute_avail): Ditto
18318         (eliminate): Ditto.
18319         (init_pre): Ditto.
18320         (fini_pre): Ditto.
18321         (execute_pre): Ditto.
18322
18323 2004-07-02  Roger Sayle  <roger@eyesopen.com>
18324
18325         * config/rs6000/rs6000.c (struct processor_costs): New structure
18326         used to hold instruction latencies/sizes for processor types.
18327         (rs6000_cost): New global variable pointing to current CPU's costs.
18328         (rs6000_override_options): Initialize rs6000_cost to point to the
18329         appropriate cost table based upon rs6000_cpu and optimize_size.
18330         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
18331         timings inline.
18332
18333 2004-07-02  Richard Henderson  <rth@redhat.com>
18334
18335         * expmed.c (make_tree): Don't use SET_DECL_RTL.
18336
18337 2004-07-02  Steven Bosscher  <stevenb@suse.de>
18338
18339         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
18340
18341 2004-07-01  Richard Henderson  <rth@redhat.com>
18342
18343         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
18344         (alpha_gp_save_rtx): Use assign_stack_local instead of
18345         gen_mem_addressof.
18346
18347 2004-07-01  Richard Henderson  <rth@redhat.com>
18348
18349         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
18350         (alpha_rtx_cost_data): Update to match.
18351         (alpha_rtx_cost_size): New.
18352         (alpha_rtx_costs): Honor optimize_size.
18353
18354 2004-07-01  Richard Henderson  <rth@redhat.com>
18355
18356         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
18357         * cfgexpand.c (tree_expand_cfg): Do it here.
18358         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
18359         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
18360         * config/mips/mips.c (mips_output_mi_thunk): And here.
18361         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
18362         * config/sh/sh.c (sh_output_mi_thunk): And here.
18363         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
18364
18365 2004-07-01  Richard Henderson  <rth@redhat.com>
18366
18367         * tree.def (RTL_EXPR): Remove.
18368         * c-typeck.c (lvalue_p): Don't handle it.
18369         * expr.c (safe_from_p): Likewise.
18370         (expand_expr_real_1): Likewise.
18371         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
18372         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
18373         * gengtype.c (adjust_field_tree_exp): Likewise.
18374         * stmt.c (warn_if_unused_value): Likewise.
18375         * tree-gimple.c (recalculate_side_effects): Likewise.
18376         * tree-pretty-print.c (dump_generic_node): Likewise.
18377         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
18378         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
18379         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
18380
18381         * stmt.c (struct stmt_status): Remove x_last_expr_type,
18382         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
18383         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
18384         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
18385         all the bits that tracked last_expr.
18386         (expand_end_bindings): Don't track last_expr.
18387         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
18388         (clear_last_expr): Remove.
18389         (expand_asm): Don't call it.
18390         (expand_asm_operands, expand_end_cond): Likewise.
18391         (expand_naked_return, expand_null_return_1): Likewise.
18392         * c-typeck.c (c_begin_compound_stmt): Likewise.
18393         * cfgexpand.c (expand_block): Use expand_expr_stmt.
18394         * expr.c (expand_expr_real_1): Likewise.
18395         * tree.h: Update prototypes.
18396
18397         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
18398         (struct emit_status): Remove sequence_rtl_expr.
18399         (struct function): Remove x_rtl_expr_chain.
18400         (seq_rtl_expr, rtl_expr_chain): Remove.
18401         * function.c (struct temp_slot): Remove rtl_expr.
18402         (assign_stack_temp_for_type): Don't set it.
18403         (free_temp_slots, pop_temp_slots): Don't check it.
18404         (free_after_compilation): Don't clear x_rtl_expr_chain.
18405         (fixup_var_refs): Don't search it.
18406         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
18407         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
18408         or seq_rtl_expr.
18409         (push_topmost_sequence): Likewise.
18410         (end_sequence, init_emit): Likewise.
18411         (start_sequence_for_rtl_expr): Remove.
18412         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
18413         * rtl.h (preserve_rtl_expr_result): Remove.
18414
18415 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
18416
18417         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
18418         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
18419         typos.
18420
18421 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
18422
18423         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
18424         (STANDARD_STARTFILE_PREFIX_2): Define.
18425         (standard_startfile_prefix_1): Initialize to
18426         STANDARD_STARTFILE_PREFIX_1.
18427         (standard_startfile_prefix_2): Initialize to
18428         STANDARD_STARTFILE_PREFIX_2.
18429         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
18430         (STANDARD_STARTFILE_PREFIX_1): Define.
18431         (STANDARD_STARTFILE_PREFIX_2): Define.
18432         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
18433         (STANDARD_STARTFILE_PREFIX_2): Document.
18434
18435 2004-07-01  Richard Henderson  <rth@redhat.com>
18436
18437         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
18438         in order to disable scalarization.  Instead set a flag and wait
18439         for a candidate decl.
18440
18441 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
18442
18443         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
18444         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
18445         Use terminology "testsuite" and "enumerated".
18446
18447 2004-07-01  Richard Henderson  <rth@redhat.com>
18448
18449         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
18450         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
18451         (initial_return_save): Likewise.
18452         (flush_queued_reg_saves): Remap register numbers.
18453         (dwarf2out_return_reg): Likewise.
18454
18455 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18456
18457         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
18458
18459         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
18460         access functions for lower bound and element size and only output
18461         if lower bound nonzero or element size not same as that of type.
18462         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
18463
18464 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18465
18466         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
18467
18468 2004-07-01  Per Bothner  <per@bothner.com>
18469
18470         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
18471
18472 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
18473
18474         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
18475         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
18476         first operand.  Don't optimize if the bitfield is volatile.
18477
18478 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18479
18480         * c-pretty-print.c (pp_c_postfix_expression): Handle
18481         floating-point comparison operators.
18482         (pp_c_expression): Pass floating-point comparison
18483         operators to pp_c_postfix_expression.
18484
18485 2004-07-01  Roger Sayle  <roger@eyesopen.com>
18486
18487         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
18488         rtx_cost instead of "had_mult" to determine whether the transformed
18489         expression is cheaper than the original.
18490
18491 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
18492
18493         * alias.c (get_alias_set, canon_rtx, get_addr,
18494         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
18495         Use MEM_P.
18496         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
18497         expand_builtin): Likewise.
18498         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
18499         Likewise.
18500         * combine.c (can_combine_p, combinable_i3pat, try_combine,
18501         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
18502         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
18503         record_dead_and_set_regs_1, get_last_value_validate,
18504         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
18505         * cse.c (check_dependence, canon_hash, equiv_constant,
18506         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
18507         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
18508         count_reg_usage): Likewise.
18509         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
18510         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
18511         cselib_record_sets): Likewise.
18512         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
18513         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
18514         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
18515         * df.c (df_uses_record): Likewise.
18516         * dojump (do_jump): Likewise.
18517         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
18518         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
18519         decl_start_label): Likewise.
18520         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
18521         operand_subword, change_address_1, make_safe_from): Likewise.
18522         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
18523         stabilize, force_not_mem): Likewise.
18524         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
18525         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
18526         * expr.c (convert_move, convert_modes, emit_block_move,
18527         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
18528         emit_move_insn_1, expand_assignment, store_expr,
18529         store_constructor_field, store_constructor, store_field,
18530         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
18531         Likewise.
18532         * final.c (cleanup_subreg_operands, alter_subreg,
18533         get_mem_expr_from_op): Likewise.
18534         * flow.c (notice_stack_pointer_modification_1,
18535         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
18536         Likewise.
18537         * function.c (mark_temp_addr_taken, preserve_temp_slots,
18538         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
18539         optimize_bit_field, flush_addressof, purge_addressof_1,
18540         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
18541         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
18542         keep_stack_depressed): Likewise.
18543         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
18544         noce_process_if_block, find_memory): Likewise.
18545         * integrate.c (subst_constants, allocate_initial_values): Likewise.
18546         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
18547         update_equiv_regs): Likewise.
18548         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
18549         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
18550         * optabs.c (expand_abs, emit_unop_insn): Likewise.
18551         * passes.c (rest_of_handle_final): Likewise.
18552         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
18553         move2add_note_store): Likewise.
18554         * ra-build.c (detect_remat_webs): Likewise.
18555         * ra-debug.c (dump_static_insn_cost): Likewise.
18556         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
18557         * recog.c (validate_change, apply_change_group, cancel_changes,
18558         validate_replace_rtx_1, general_operand, register_operand,
18559         nonmemory_operand, push_operand, pop_operand, memory_operand,
18560         indirect_operand, asm_operand_ok, offsettable_memref_p,
18561         offsettable_nonstrict_memref_p, constrain_operands,
18562         store_data_bypass_p): Likewise.
18563         * reg-stack.c (subst_stack_regs_pat): Likewise.
18564         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
18565         copy_cost, reg_scan_mark_refs): Likewise.
18566         * regmove.c (optimize_reg_copy_3, stack_memref_p,
18567         combine_stack_adjustments_for_block): Likewise.
18568         * regrename.c (copyprop_hardreg_forward_1): Likewise.
18569         * reload.c (can_reload_into, push_reload, decompose, immune_p,
18570         find_reloads, find_reloads_address, find_reloads_address_1,
18571         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
18572         find_equiv_reg): Likewise.
18573         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
18574         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
18575         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
18576         delete_address_reloads): Likewise.
18577         * resource.c (mark_referenced_resources): Likewise.
18578         * rtlanal.c (get_jump_table_offset, count_occurrences,
18579         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
18580         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
18581         num_sign_bit_copies1): Likewise.
18582         * rtlhooks.c (gen_lowpart_general): Likewise.
18583         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
18584         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
18585         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
18586         sdbout_global_decl): Likewise.
18587         * simplify-rtx.c (simplify_subreg): Likewise.
18588         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
18589         expand_anon_union_decl, expand_end_case_type): Likewise.
18590         * unroll.c (calculate_giv_inc): Likewise.
18591         * var-tracking.c (stack_adjust_offset_pre_post,
18592         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
18593         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
18594         vt_add_function_parameters): Likewise.
18595         * varasm.c (make_var_volatile, notice_global_symbol,
18596         assemble_external, decode_addr_const, mark_weak,
18597         default_encode_section_info): Likewise.
18598
18599 2004-07-01  Steven Bosscher  <stevenb@suse.de>
18600
18601         * stmt.c (check_seenlabel): Remove.
18602         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
18603
18604 2004-07-01  Richard Henderson  <rth@redhat.com>
18605
18606         * function.h (struct function): Remove x_function_call_count.
18607         (function_call_count): Remove.
18608         * calls.c (expand_call): Don't set it.
18609         * integrate.c (copy_rtx_and_substitute): Likewise.
18610
18611         * function.h (struct function): Remove x_cleanup_label.
18612         (cleanup_label): Remove.
18613         * stmt.c (expand_value_return): Don't use it.
18614         * function.c (free_after_compilation): Don't set it.
18615         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
18616         * cfgexpand.c (tree_expand_cfg): Update call.
18617         * tree.h (expand_function_start): Update decl.
18618
18619 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
18620
18621         PR c/1027
18622         * c-lang.c (c_initialize_diagnostics): Move from here ...
18623         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
18624         (c_tree_printer): Use pretty-printer to format %T.
18625         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
18626         before '*' if not C++.
18627         (pp_c_direct_abstract_declarator): Don't try to print array upper
18628         bound for flexible array members.
18629         * c-tree.h: Include "diagnostic.h".
18630         (c_initialize_diagnostics): Declare.
18631         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
18632         * c-format.c (format_type_warning): New function.  Improve
18633         diagnostics for incorrect format argument types.
18634         (check_format_types): Use it.  Add two parameters.  Use the
18635         TYPE_MAIN_VARIANT of wanted_type.
18636         (check_format_info_main): Pass new parameters to
18637         check_format_types.
18638         (struct format_wanted_type): Update comment.
18639
18640 2004-07-01  Nick Clifton  <nickc@redhat.com>
18641
18642         * target.h (struct gcc_target): Add new field to struct cxx:
18643         import_export_class.
18644         * target-def.h (TARGET_CXX): Initialise the new field.
18645         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
18646         the new field.
18647         * doc/tm.texi: Document the new target hook.
18648
18649 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18650
18651         * builtins.c (fold_builtin_classify): Fix typo.
18652
18653 2004-07-01  Richard Henderson  <rth@redhat.com>
18654
18655         * function.c (identify_blocks, identify_blocks_1): Remove.
18656         * function.h (identify_blocks): Remove.
18657         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
18658
18659 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
18660
18661         * builtins.c (fold_builtin_classify): New.
18662         (fold_builtin_unordered_cmp): Fix commentary.
18663         (fold_builtin): Use it.
18664         * builtins.def: Define builtins for isnan,
18665         isnanf, isnanl, finite, finitef, finitel,
18666         isinf, isinff, isinfl.
18667
18668 2004-07-01  Richard Henderson  <rth@redhat.com>
18669
18670         * function.h (struct function): Remove dont_emit_block_notes.
18671         * gimple-low.c (lower_function_body): Don't set it.
18672         * cfgexpand.c (expand_block): Don't check it.
18673         * cfglayout.c (insn_locators_initialize): Likewise.
18674         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
18675         * passes.c (rest_of_compilation): Likewise.
18676         * stmt.c (expand_start_bindings_and_block): Likewise.
18677         (expand_end_bindings): Likewise.
18678
18679 2004-07-01  Richard Henderson  <rth@redhat.com>
18680
18681         * cgraph.h (cgraph_build_static_cdtor): Declare.
18682         * cgraphunit.c (cgraph_build_static_cdtor): New.
18683         * c-objc-common.c (build_cdtor): Use it.
18684         * coverage.c (create_coverage): Likewise.
18685         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
18686         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
18687
18688 See ChangeLog.11 for earlier changes.