OSDN Git Service

2004-09-09 Vincent Celier <celier@gnat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-13  Richard Henderson  <rth@redhat.com>
2  
3         PR inline-asm/6806
4         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
5         (cselib_invalidate_rtx_note_stores): New.
6         (cselib_record_sets, cselib_process_insn): Update to match.
7         * cselib.h (cselib_invalidate_rtx): Declare.
8         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
9
10 2004-09-13  Richard Henderson  <rth@redhat.com>
11
12         PR tree-opt/10528
13         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
14         after copying its argument.
15
16 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
17
18         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
19         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
20         in diagnostics.  Use %' for English apostrophes.
21         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
22         (pedwarn_c90, pedwarn_c99): Use it.
23         * c-decl.c (lookup_label): Quote label name in diagnostic.
24         * c-parse.in (yyprint): Use ' instead of ` for left quote.
25         * c-typeck.c (warn_for_assignment): Likewise.
26
27 2004-09-13  Jan Hubicka  <jh@suse.cz>
28
29         * i386.c (x86_schedule): New global variable.
30         (override_options): Disable scheduling when not supported.
31         * i386.h (x86_schedule): Declare.
32         (TARGET_SCHEDULE): New macro.
33
34 2004-09-12  Richard Henderson  <rth@redhat.com>
35
36         PR c++/16254
37         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
38         * tree.c, tree.h (has_cleanups): Remove.
39
40 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
41
42         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
43         arguments of the phi nodes correctly.
44
45 2004-09-12  Jan Hubicka  <jh@suse.cz>
46
47         * ggc-common.c (cmp_statistics): Fix sorting.
48
49 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
50
51         PR target/16795
52         * expmed.c (expand_divmod): If cheap power of 2 divide is
53         available, use it for negative constant as well.
54
55 2004-09-12  Andrew Pinski  <apinski@apple.com>
56
57         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
58         size of 0.
59
60         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
61
62 2004-09-12  Richard Henderson  <rth@redhat.com>
63
64         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
65         or minus one.
66         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
67         post-reload, and scratch NULL.
68         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
69         (x86_shift_adj_2): Use ix86_expand_clear.
70         (ashldi3): Remove CMOVE expansion difference.
71         (ashldi3_1): Remove.
72         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
73         add constraints for immediates.  New peephole for split-with-temp.
74         Run splitter after peep2 pass.
75         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
76         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
77         (setcc_2): Rename with *.
78         * config/i386/predicates.md (reg_or_pm1_operand): New.
79         (ashldi_input_operand): New.
80
81 2004-09-12  Richard Henderson  <rth@redhat.com
82
83         * print-rtl.c (print_decl_name): New.
84         (print_mem_expr): Use it.
85
86 2004-09-12  Richard Henderson  <rth@redhat.com
87
88         PR 17186, part deux
89         * except.c (sjlj_emit_function_exit): Fix logic locating
90         sjlj_exit_after in final block.
91
92 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
93
94         * common.opt: Remove flags -fmove-all-movables and
95         -freduce-all-givs.
96         * loop-invariant.c (find_invariants_to_move):
97         Remove all uses of flag_move_all_movables.
98         * loop.c (move_movables): Remove all uses of
99         flag_move_all_movables.
100         (strength_reduce): Remove all uses of
101         flag_reduce_all_givs.
102         * doc/invoke.texi: Remove documentation of flags
103         -fremove-all-movables and -freduce-all-givs.
104
105 2004-09-11  Roger Sayle  <roger@eyesopen.com>
106
107         PR middle-end/17411
108         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
109         change. elt->type may be a floating point type, so use fold_convert.
110
111 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
112
113         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
114         the thing referenced as used, not the stub itself.
115
116 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
117
118         * c-tree.h (enum c_storage_class): New.
119         (struct c_declspecs): Add storage_class, inline_p and thread_p.
120         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
121         declarations and "auto" or "register" in file scope empty
122         declarations.  Give more specific warnings for other cases of
123         storage class specifiers in empty declarations.
124         (grokdeclarator): Update for new structures.  Don't check for
125         multiple storage classes.  Diagnose file-scope "register" if
126         pedantic.
127         (build_null_declspecs): Update.
128         (declspecs_add_scspec): Update.  Diagnose multiple storage class
129         specifiers and invalid uses of "__thread".
130
131 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
132
133         * tree.c (tree_code_size): New function, bulk of code from tree_size.
134         (tree_size, make_node): Use it.
135         * tree-ssa-pre.c (init_pre): Use it.
136         * tree.h: Prototype it.
137
138 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
139
140         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
141         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
142         redirect_immediate_use): Use PHI_DF.
143         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
144         (bb_for_stmt): Use PHI_BB.
145         (get_immediate_uses): Use PHI_DF.
146         * tree-ssa-dse.c (max_stmt_uid): New variable.
147         (get_stmt_uid): New function.
148         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
149         node annotations.
150         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
151         (max_uid): Renamed to max_stmt_uid.
152         (get_stmt_uid): New function.
153         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
154         phi node annotations.
155         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
156         * tree.h (PHI_BB, PHI_DF): New accessor functions.
157         (struct tree_phi_node): Add bb and df fields.
158
159 2004-09-11  Richard Henderson  <rth@redhat.com>
160
161         PR middle-end/17416
162         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
163         in conflict loop.
164
165 2004-09-11  Jan Hubicka  <jh@suse.cz>
166
167         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
168         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
169         * i386.md (i387_cw): Add 'uninitialized' mode.
170
171         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
172         (output_location): Break out from ....
173         (branch_prob): ... here; handle gcov output on trees.
174         * toplev.c (process_options): No longer be sorry about coverage for
175         trees.
176
177 2004-09-11  Steven Bosscher  <stevenb@suse.de>
178
179         PR c++/17412
180         * fold-const.c (fold): Do not try to fold the operand of a
181         CLEANUP_POINT_EXPR if that operand does itself not have any
182         operands.
183
184         PR middle-end/17417
185         * langhooks.c (lhd_decl_printable_name): Make sure that this
186         function is called with is a decl node that has an identifier.
187         * tree-pretty-print.c (dump_function_name): New function to
188         wrap PRINT_FUNCTION_NAME and dump_decl_name.
189         (print_call_name): Use it.
190
191 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
192
193         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
194         "config.h" if not.
195
196 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
197
198         * tree-ssa-alias.c (collect_points_to_info_r): Handle
199         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
200         to OFFSET.
201
202 2004-09-11  Richard Henderson  <rth@redhat.com>
203
204         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
205         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
206         operand of the ADDR_EXPR.
207         (expand_expr_real_1): Update to match.
208
209 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
210
211         PR target/17277
212         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
213         choose 64-bit version.
214
215 2004-09-11  Richard Henderson  <rth@redhat.com>
216
217         PR c/17396
218         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
219
220 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
221
222         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
223         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
224         Insert @: after i.e. or e.g.
225
226 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
227
228         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
229         D.xxx rather than <Dxxx>.
230
231 2004-09-10  Adam Nemet  <anemet@lnxw.com>
232
233         * configure.ac (AC_MSG_CHECKING(what linker to use)):
234         in_tree_ld_is_elf should be true for LynxOS.
235         * configure: Regenerate.
236
237 2004-09-10  Adam Nemet  <anemet@lnxw.com>
238
239         * Makefile.in (all.cross): Add srcextra.
240
241 2004-09-10  Roger Sayle  <roger@eyesopen.com>
242
243         PR middle-end/17024
244         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
245         floating point comparison operators.  Change aborts to gcc_asserts.
246
247 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
248
249         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
250
251 2004-09-10  James E Wilson  <wilson@specifixinc.com>
252
253         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
254         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
255
256         * convert.c (convert_to_vector): Replace recursive call with
257         error_mark_node.
258
259         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
260         Add integer argument named constant.  Use const_tiny_rtx instead of
261         CONST0_RTX.
262         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
263         and CONST1_RTX.
264         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
265         vector types.
266         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
267         of gen_rtx_raw_CONST_VECTOR.
268
269 2004-09-10  Eric Christopher  <echristo@redhat.com>
270
271         PR c/16046
272         * c-parse.in (attribute): Add NULL_TREE for error case
273         for error recovery.
274
275 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
276
277         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
278         (extract_interface_info): Delete prototype.
279         * c-decl.c (extract_interface_info): Delete stub.
280         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
281         it's not already been done ...
282         (init_c_lex): ... not here.
283         (fe_file_change): Don't call extract_interface_info.
284
285 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
286
287         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
288         typedef_p and typedef_signed_p.
289         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
290         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
291         Check typedef_p and typedef_signed_p, not typedef_decl.
292         (grokfield): Check typedef_p, not typedef_decl.
293         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
294         not typedef_decl.
295         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
296         typedef_decl.
297
298 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
299
300         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
301
302 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
303
304         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
305         temporary variables.
306
307         * dbxout.c (dbxout_block): Update for
308         current_function_func_begin_label a string.
309         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
310         * except.c (dw2_output_call_site_table): Likewise.
311         * toplev.c (current_function_func_begin_label): Likewise.
312         * tree.h (current_function_func_begin_label): Likewise.
313         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
314
315         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
316         loop.
317
318         * config/darwin.c: Include target.h.
319         (struct machopic_indirection): Make ptr_name a string.
320         (machopic_indirection_hash): Update for ptr_name a string.
321         (machopic_indirection_eq): Likewise.
322         (machopic_indirection_name): Likewise.
323         (machopic_output_indirection): Likewise.
324         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
325         string.  Don't expect stub names to be in the identifier hash table.
326         Do call strip_name_encoding before looking up entry in ID hash table.
327         * config/t-darwin (darwin.o): Add target.h to dependencies.
328
329         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
330         of fprintf for register names.
331
332         * output.h (unlikely_section_label): Delete declaration.
333         (unlikely_text_section_name): Likewise.
334         * varasm.c (unlikely_section_label_printed): Make static.
335         (unlikely_section_label): Likewise.
336         (unlikely_text_section_name): Likewise.
337         (assemble_start_function): Use reconcat.
338
339         * rtl.def (REG): Add comment to describe third field.
340
341 2004-09-10  Andrew Pinski  <apinski@apple.com>
342
343         * config/darwin.c (machopic_mcount_stub_name): Call
344         machopic_indirection_name instead of making the string
345         ourselves.
346
347 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
348
349         Revert
350
351         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
352
353             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
354             memory tag is call clobbered, so are its aliases.
355             (group_aliases): When two memory tags being grouped, if one is
356             call clobbered, so are the other and its aliases.
357             (add_may_alias): Remove call-clobbering stuff.
358             (replace_may_alias): Likewise.
359             (merge_pointed_to_info): Merge pt_global_mem
360
361 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
362
363         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
364         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
365         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
366         tree-scalar-evolution.c, tree-ssa-copyrename.c,
367         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
368
369 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
370
371         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
372         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
373         pair.  Remove match_dup from inputs.  Remove masaccs handling.
374         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
375         (masaccs, mdasaccs): Turn into define_insns.
376
377 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
378
379         * tree-tailcall.c (process_assignment): Only do accumulator transforms
380         for floating-point types if flag_unsafe_math_optimizations.
381
382 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
383
384         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
385         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
386         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
387         config/h8300/h8300.md, config/i386/gmm_malloc.h,
388         config/ia64/ia64.md, config/ip2k/libgcc.S,
389         config/mips/mips-ps-3d.md, config/mips/mips.c,
390         config/rs6000/rs6000.c, config/s390/s390.c,
391         config/sh/symbian.c: Fix comment typos.
392
393 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
394
395         * config/s390/s390.c (s390_emit_prologue): Added missing
396         "{}" brackets.
397
398 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
399
400         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
401         typos.  Follow spelling conventions.
402
403 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
404
405         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
406         in diagnostic.  Don't dereference NULL TYPE_NAME.
407
408 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
409
410         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
411         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
412         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
413         value-prof.c: Fix comment typos.  Follow spelling conventions.
414
415 2004-09-10  Jan Hubicka  <jh@suse.cz>
416
417         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
418         * tree-split_edge.c (tree_split_edge): Likewise.
419         (thread_jumps): Likewise.
420
421 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
422
423         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
424         typos.
425
426 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
427
428         * cgraph.h (cgraph_dump_file): Do not declare.
429         * cgraphunit.c (cgraph_dump_file): Declare as static.
430         (init_cgraph): New.
431         * toplev.c (cgraph_dump_file): Do not declare.
432         (compile_file): Call init_cgraph.
433         * tree-dump.c (dump_files): Add IPA dump file, remove
434         XML dump of call graph.
435         (get_dump_file_name): Support IPA dump file naming scheme.
436         * tree.h (enum tree_dump_index): Add IPA dump file, remove
437         XML dump of call graph.
438         * doc/invoke.texi (Debugging Options): Document the new options.
439
440 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
441
442         * doc/extend.texi: Document the FR-V built-in functions.
443
444 2004-09-09  James E Wilson  <wilson@specifixinc.com>
445
446         * doc/sourcebuild.texi: Delete libbanshee reference.
447
448 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
449
450         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
451
452 2004-09-09  James E Wilson  <wilson@specifixinc.com>
453
454         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
455         before calling vector_types_convertible_p.
456         (digest_init): Check that inside_init has VECTOR_TYPE before calling
457         vector_types_convertible_p.  Don't give another error if
458         convert_for_assignment returns error_mark_node.
459
460 2004-09-09  Roger Sayle  <roger@eyesopen.com>
461
462         PR middle-end/17055
463         * fold-const.c (build_zero_vector): New function to construct a
464         vector (either floating point or integer) of zeros.
465         (fold_convert): Internally, enable conversions of integer zero
466         to arbitrary vector types, using the new build_zero_vector.
467
468 2004-09-09  Roger Sayle  <roger@eyesopen.com>
469
470         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
471         expand a left shift by an immediate constant as either an ashl or
472         a sequence of additions.
473         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
474         instead of calling gen_ashlsi3 with a constant directly.
475
476 2004-09-09  Roger Sayle  <roger@eyesopen.com>
477
478         * config/i386/i386.c (ix86_split_long_move): When optimizing for
479         size, and the low and high parts of a DImode constant are equal,
480         copy one register to another instead of loading the same immediate
481         value twice.
482
483 2004-09-09  Richard Henderson  <rth@redhat.com>
484
485         PR middle-end/17367
486         * function.c (assign_parm_setup_block): Only put PARALLELs into
487         a register if use_register_for_decl.
488
489 2004-09-09  Eric Christopher  <echristo@redhat.com>
490
491         * ra-colorize.c (reset_lists): Move variable declaration inside
492         ENABLE_CHECKING to avoid unused variable warnings when
493         not --enable-checking.
494         (check_colors): Ditto.
495
496 2004-09-09  Mike Stump  <mrs@apple.com>
497
498         * version.c (version_string): Bump to 4.0.0.
499         * doc/include/gcc-common.texi (version-GCC): Likewise.
500
501 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
502
503         * doc/extend.texi (nothrow attribute): The attribute is not
504         implemented in 3.2 and earlier.
505
506 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
507
508         * genrecog.c (compute_predicate_codes): Use op0_codes
509         instead of codes.
510
511 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
512
513         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
514         implementation changes.
515
516 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
517
518         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
519         a PARALLEL instead of a SET due to added clobbers.
520
521 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
522
523         * reload.c (find_reloads_address): Pass correct operand to
524         maybe_memory_address_p.
525
526 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
527
528         * Makefile.in: Remove libbanshee, tree-alias-*.
529         Remove tree-alias-common.h dependencies.
530         * common.opt: Remove -ftree-points-to.
531         * configure.ac: Remove libbanshee.
532         * flags.h: Remove pta_type, flag_tree_points_to.
533         * gengtype.c (open_base_files): Remove tree-alias-type.h.
534         * opts.c (OPT_ftree_points_to): Remove.
535         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
536         * tree-dfa.c: Remove tree-alias-common.h
537         * tree-into-ssa.c: Ditto.
538         * tree-outof-ssa.c: Ditto.
539         * tree-ssa-copyrename.c: Ditto.
540         * tree-ssa-live.c: Ditto.
541         * tree-optimize.c: Ditto.
542         * tree-ssa.c: Ditto.
543         Remove pass_build_pta, pass_del_pta.
544         * tree-pass.h: Ditto.
545         * tree-ssa-alias.c: Remove tree-alias-common.h.
546         (struct alias_stats_d): Remove pta_queries, pta_resolved.
547         (pass_may_alias): Remove PROP_pta requirement.
548         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
549         (get_tmt_for): Ditto.
550         (dump_alias_stats): Ditto.
551         * doc/passes.texi: Remove blurb about points-to analysis.
552         * fortran/Make-lang.in: Remove tree-alias-*.o.
553
554 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
555
556         * genattrtab.c (write_insn_cases): New function, split out from
557         write_attr_case.  Correctly handle define_peepholes when printing
558         the instruction name.
559         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
560
561 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
562
563         PR target/17377
564         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
565         * config/cris/cris.c (cris_return_address_on_stack): New function.
566         * config/cris/cris.md ("return"): For location of return address,
567         also check cris_return_address_on_stack.
568
569 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
570
571         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
572         calling phi_ssa_name_p.
573
574 2004-09-09  Richard Henderson  <rth@redhat.com>
575
576         PR c/17322
577         * c-typeck.c (valid_compound_expr_initializer): Use only
578         initializer_constant_valid_p, and not TREE_CONSTANT.
579         (digest_init): Likewise.
580         (output_init_element): Likewise.
581
582 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
583
584         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
585         live_out_1, prune_hardregs_for_mode, init_one_web_common,
586         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
587         record_conflict, compare_and_free_webs, init_webs_defs_uses,
588         parts_to_webs_1, parts_to_webs, reset_conflicts,
589         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
590         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
591         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
592         put_move, remove_move, combine, select_spill, colorize_one_web,
593         try_recolor_web, insert_coalesced_conflicts, check_colors,
594         break_precolored_alias, restore_conflicts_from_coalesce,
595         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
596         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
597         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
598         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
599         check_df): Likewise.
600         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
601         real_arithmetic, real_compare, real_exponent, real_ldexp,
602         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
603         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
604         real_digit, real_nan, real_maxval, round_for_format, real_convert,
605         real_to_target, real_from_target, real_hash, encode_ieee_single,
606         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
607         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
608         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
609         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
610         extract_insn, peep2_next_insn, peep2_reg_dead_p,
611         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
612         if_test_bypass_p): Likewise.
613         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
614         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
615         emit_swap_insn, swap_to_top, move_for_stack_reg,
616         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
617         compensate_edge, convert_regs_1): Likewise.
618         * regclass.c (init_reg_sets, init_reg_sets_1,
619         memory_move_secondary_cost): Likewise.
620         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
621         Likewise.
622         * reload.c (push_secondary_reload, find_valid_class, push_reload,
623         operands_match_p, decompose, immune_p, find_reloads,
624         find_reloads_toplev, find_reloads_address_1, subst_reloads,
625         copy_replacements, refers_to_regno_for_reload_p,
626         reg_overlap_mentioned_for_reload_p): Likewise.
627         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
628         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
629         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
630         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
631         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
632         do_output_reload, fixup_abnormal_edges): Likewise.
633         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
634         fill_slots_from_thread, relax_delay_slots): Likewise.
635         * resource.c (mark_referenced_resources, mark_set_resources):
636         Likewise.
637         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
638         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
639         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
640         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
641         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
642         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
643         * rtlhooks.c (gen_lowpart_general): Likewise.
644         * sbitmap.c (sbitmap_difference): Likewise.
645         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
646         sched_analyze, add_forward_dependence): Likewise.
647         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
648         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
649         schedule_insns): Likewise.
650         * sched-vis.c (print_pattern): Likewise.
651         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
652         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
653         simplify_const_relational_operation, simplify_ternary_operation,
654         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
655         Likewise.
656         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
657         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
658         resolve_operand_name_1, expand_return, expand_decl,
659         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
660         * stor-layout.c (put_pending_size, smallest_mode_for_size,
661         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
662         set_sizetype, get_mode_bounds): Likewise.
663
664 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
665
666         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
667         * config/arm/pecoff.h, config/i386/beos-elf.h
668         * config/i386/cygming.h, config/i386/i386-interix.h:
669         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
670         comment cloned from manual.
671         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
672
673 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
674
675         * builtins.c (build_va_arg_indirect_ref): New function.
676         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
677         build_fold_indirect_ref.
678         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
679         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
680         * tree.h: Declare new function.
681
682 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
683
684         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
685         dumping for development builds.
686         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
687         development builds only.
688         * genattrtab.c (write_eligible_delay): Fix typo in previous
689         commit.
690         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
691         gcc_assert.
692
693 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
694
695         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
696         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
697         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
698         hoist_code, extract_mentioned_regs_helper, compute_store_table,
699         insert_store): Use gcc_assert and gcc_unreachable.
700         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
701         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
702         ggc_record_overhead): Likewise.
703         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
704         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
705         ggc_pop_context, clear_marks, validate_free_objects,
706         ggc_pch_read): Likewise.
707         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
708         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
709         ggc_push_context, check_cookies, ggc_collect,
710         ggc_print_statistics): Likewise.
711         * gimple-low.c (lower_function_body, lower_stmt,
712         lower_bind_expr): Likewise.
713         * gimplify.c (gimple_tree_eq, push_gimplify_context,
714         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
715         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
716         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
717         gimplify_case_label_expr, gimplify_exit_block_expr,
718         canonicalize_component_ref, gimplify_compound_lval,
719         gimplify_self_mod_expr, gimplify_call_expr,
720         gimplify_init_ctor_eval, gimplify_init_constructor,
721         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
722         gimplify_expr, check_pointer_types_r,
723         force_gimple_operand): Likewise.
724         * global.c (global_alloc, build_insn_chain): Likewise.
725         * graph.c (clean_graph_dump_file,
726         finish_graph_dump_file): Likewise.
727         gcov-io.c (gcov_open): Use GCOV_CHECK.
728
729 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
730
731         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
732
733 2004-09-09  Jan Hubicka  <jh@suse.cz>
734
735         middle-end/17128
736         * tree-inline.c (expand_call_inline): Make overactive sanity check
737         happy.
738
739 2004-09-09  Jan Hubicka  <jh@suse.cz>
740
741         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
742         VIEW_CONVERT_EXPR.
743
744 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
745
746         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
747         (gengtype.o): Depend on errors.h.
748         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
749         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
750         attr_alt_subset_p, attr_alt_subset_of_compl_p,
751         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
752         write_test_expr, write_attr_value, write_eligible_delay,
753         make_internal_attr, make_numeric_value): Likewise.
754         * genautomata.c (regexp_name, get_str_vect,
755         gen_presence_absence_set, automaton_decl_hash,
756         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
757         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
758         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
759         test_unit_reserv, it_is_empty_reserv_sets,
760         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
761         reserv_sets_and, output_cycle_reservs, get_free_state,
762         intersected_state_reservs_p, states_union, remove_arc,
763         copy_insn_regexp, transform_1, transform_2, transform_3,
764         regexp_transform_func, store_alt_unit_usage,
765         check_regexp_units_distribution, process_seq_for_forming_states,
766         process_alts_for_forming_states, make_automaton,
767         form_arcs_marked_by_insn, create_composed_state,
768         set_out_arc_insns_equiv_num, partition_equiv_class,
769         process_insn_equiv_class, set_insn_equiv_classes,
770         units_to_automata_heuristic_distr, form_regexp,
771         longest_path_length, output_dfa_max_issue_rate, add_vect,
772         out_state_arcs_num, add_vect_el, output_trans_table,
773         output_state_alts_table, output_dead_lock_vect,
774         output_max_insn_queue_index_def,
775         output_min_insn_conflict_delay_func,
776         output_internal_insn_latency_func, output_print_reservation_func,
777         output_cpu_unit_reservation_p, output_state_arcs,
778         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
779         make_default_insn_latency_attr,
780         form_important_insn_automata_lists): Likewise.
781         * genemit.c (gen_exp, output_add_clobbers,
782         output_added_clobbers_hard_reg_p): Likewise.
783         * genextract.c (print_path, main): Likewise.
784         * genflags.c (gen_macro): Likewise.
785         * gengenrtl.c: Include errors.h
786         (type_from_format, accessor_from_format): Likewise.
787         * gengtype.c (get_file_basename, output_mangled_typename,
788         walk_type, write_types_process_field,
789         write_types_local_process_field): Likewise.
790         * genmodes.c (complete_mode): Likewise.
791         * genopinit.c (gen_insn): Likewise.
792         * genoutput.c (output_insn_data, check_constraint_len,
793         constraint_len): Likewise.
794         * genpreds.c (add_mode_tests):Likewise.
795         * gen-protos.c (add_hash): Likewise.
796         * genrecog.c (find_operand, find_matching_operand,
797         validate_pattern, add_to_sequence, maybe_both_true,
798         nodes_identical_1, merge_trees, write_switch, write_cond,
799         write_action, is_unconditional, make_insn_sequence,
800         debug_decision_2): Likewise.
801         * gensupport.c (is_predicable, collect_insn_data,
802         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
803
804 2004-09-09  Jan Hubicka  <jh@suse.cz>
805
806         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
807         * cfgbuild.c (compute_outgoing_frequencies): When probability is
808         missing, guess it.
809         (find_many_sub_basic_blocks): Do update profile only when it is
810         present.
811         * predict.c (set_even_probabilities): Break out from ...
812         (combine_predictions_for_insn): ... here; deal with
813         !can_predict_insn_p insns.
814         (combine_predictions_for_bb): Use set_even_probabilities.
815         (bb_estimate_probability_locally): Break out from ....
816         (estimate_probability): ... here.
817         (guess_outgoing_edge_probabilities): New entry point.
818
819 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
820
821         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
822         handle_braces, process_brace_body, main, used_arg,
823         set_multilib_dir, print_multilib_info): Use fatal, not abort.
824
825         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
826
827         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
828         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
829         Morgan's theorem in last checkin.
830
831 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
832             Nathan Sidwell  <nathan@codesourcery.com>
833
834         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
835         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
836         * timevar.c (timevar_push, timevar_pop, timevar_start,
837         timevar_stop): Likewise.
838         * toplev.c (default_pch_valid_p): Likewise.
839         * tracer.c (tail_duplicate): Likewise.
840         * tree-alias-common.c (get_alias_var_decl,
841         get_values_from_constructor, create_alias_var, delete_alias_vars,
842         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
843         Likewise.
844         * tree.c (tree_size, make_node_stat, copy_node_stat,
845         build_int_cst_wide, integer_all_onesp, list_length, chainon,
846         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
847         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
848         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
849         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
850         build_method_type_directly, decl_type_context, get_callee_fndecl,
851         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
852         tree_fold_gcd): Likewise.
853         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
854         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
855         cleanup_control_expr_graph, find_taken_edge,
856         find_taken_edge_switch_expr, phi_alternatives_equal,
857         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
858         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
859         tree_split_edge, tree_verify_flow_info, thread_jumps,
860         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
861         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
862         chrec_fold_multiply_poly_poly): Likewise.
863         * tree-complex.c (extract_component, expand_complex_division,
864         expand_complex_comparison, expand_complex_operations_1,
865         build_replicated_const, expand_vector_operations_1): Likewise.
866         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
867         build_classic_dir_vector): Likewise.
868         * tree-dfa.c (compute_immediate_uses_for_phi,
869         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
870         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
871         * tree-dump.c (dequeue_and_dump): Likewise.
872         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
873         record_in_finally_tree, replace_goto_queue_1,
874         maybe_record_in_goto_queue, verify_norecord_switch_expr,
875         do_return_redirection): Likewise.
876         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
877         add_to_dst_predicate_list, find_phi_replacement_condition,
878         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
879         Likewise.
880         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
881         initialize_inlined_parameters, declare_return_variable,
882         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
883         optimize_inline_calls, copy_tree_r): Likewise.
884         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
885         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
886         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
887         tsi_split_statement_list_after, tsi_split_statement_list_before):
888         Likewise.
889         * tree-mudflap.c (mf_varname_tree): Likewise.
890         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
891         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
892         * tree-optimize.c (tree_rest_of_compilation): Likewise.
893         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
894         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
895         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
896         Likewise.
897         * tree-phinodes.c (resize_phi_node, add_phi_arg,
898         remove_all_phi_nodes_for): Likewise.
899         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
900         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
901         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
902         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
903         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
904         generate_one_element_ref, generate_element_copy,
905         generate_element_zero, scalarize_copy, scalarize_init,
906         scalarize_ldst): Likewise.
907         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
908         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
909         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
910         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
911         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
912         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
913         widen_bitfield, ccp_fold_builtin): Likewise.
914         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
915         replace_exp_1, propagate_tree_value): Likewise.
916         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
917         * tree-ssa-dce.c (set_control_dependence_map_bit,
918         find_control_dependence, find_pdom, mark_operand_necessary,
919         mark_stmt_if_obviously_necessary,
920         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
921         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
922         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
923         eliminate_redundant_computations, avail_expr_eq): Likewise.
924         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
925         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
926         duplicate_blocks): Likewise.
927         * tree-ssa-loop-im.c (for_each_index, set_level,
928         is_call_clobbered_ref): Likewise.
929         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
930         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
931         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
932         peel_address, ptr_difference_cost, may_replace_final_value,
933         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
934         rewrite_use, rewrite_uses): Likewise.
935         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
936         check_loop_closed_ssa_use): Likewise.
937         * tree-ssanames.c (make_ssa_name): Likewise.
938         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
939         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
940         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
941         get_indirect_ref_operands, add_stmt_operand): Likewise.
942         * tree-ssa-pre.c (value_exists_in_set_bitmap,
943         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
944         phi_translate, valid_in_set, compute_antic,
945         find_or_generate_expression, create_expression_by_pieces, insert_aux,
946         create_value_expr_from, eliminate): Likewise.
947         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
948         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
949         Likewise.
950         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
951         eliminate_tail_call): Likewise.
952         * tree-vectorizer.c (vect_create_index_for_array_ref,
953         vect_align_data_ref, vect_create_data_ref,
954         vect_create_destination_var, vect_get_vec_def_for_operand,
955         vect_finish_stmt_generation, vect_transform_stmt,
956         vect_transform_loop_bound, vect_transform_loop,
957         vect_analyze_operations): Likewise.
958         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
959         Likewise.
960         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
961         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
962         bsi_after_labels, bsi_last): Likewise.
963         * tree-ssa-live.c (var_union, change_partition_var,
964         create_ssa_var_map, calculate_live_on_entry, root_var_init,
965         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
966         Likewise.
967         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
968         tpa_find_tree): Likewise.
969         (register_ssa_partition_check): Declare.
970         (register_ssa_partition): use it.
971         * tree-ssa-live.c: Include errors.h.
972         (register_ssa_partition_check): New.
973         * tree-ssa-operands.c: Include errors.h.
974         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
975
976 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
977             Catherine Moore  <clm@redhat.com>
978
979         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
980         (FRV_CPU_FR405): New processor enums.
981         (frv_issue_rate, frv_acc_group): Declare.
982         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
983         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
984         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
985         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
986         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
987         handled by CPP_SPEC.
988         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
989         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
990         (ACC_MASK): New macro.
991         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
992         (TARGET_MEDIA_FR450): New macro.
993         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
994         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
995         (LABEL_ALIGN_AFTER_BARRIER): Define.
996         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
997         (IACC_FIRST, IACC_LAST): New pair of SPRs.
998         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
999         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
1000         (REGISTER_NAMES): Add entries for new registers.
1001         (REG_CLASS_CONTENTS): Update for new register ranges.
1002         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
1003         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
1004         (PACKING_FLAG_USED_P): Delete.
1005         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
1006         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
1007         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
1008         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
1009         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
1010         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
1011         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
1012         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
1013         (CPU_UNITS_QUERY): Define to 1.
1014         * config/frv/frv.c: Include gt-frv.h
1015         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
1016         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
1017         (frv_insn_group): New enumeration.
1018         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
1019         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
1020         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
1021         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
1022         gap left by REGSTATE_LIVE.
1023         (regstate_t): New typedef.
1024         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1025         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
1026         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
1027         Initialize frv_unit_codes[] and frv_type_to_unit[].
1028         (frv_conditional_register_usage): Remove redundant fixing of
1029         accumulator registers.
1030         (frv_insn_packing_flag): Update specification.
1031         (frv_function_prologue): Don't set frv_insn_packing_flag here.
1032         Zero out frv_nops[].
1033         (frv_expand_epilogue): Remove comments about the no-longer-present
1034         SIBCALL_P argument.
1035         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
1036         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
1037         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
1038         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
1039         packing is disabled and if INSN can only issue to M1.
1040         (call_operand): Check TARGET_LONG_CALLS.
1041         (acc_operand, even_acc_operand, quad_acc_operand)
1042         (accg_operand): Simplify.  Don't accept pseudo registers.
1043         (output_move_single): Handle SPR<-zero moves.
1044         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
1045         (frv_registers_update, frv_registers_used_p): Delete.
1046         (frv_registers_set_p): Delete.
1047         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
1048         (frv_issues_to_branch_unit_p): New function.
1049         (frv_packet): New structure.
1050         (frv_cond_flags, frv_regstate_conflict_p): New functions.
1051         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
1052         (frv_registers_update_1, frv_registers_update): New functions.
1053         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
1054         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
1055         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
1056         (frv_sort_insn_group, frv_reorder_packet): New functions.
1057         (frv_pack_insns): Use frv_reorder_packet.
1058         (frv_packet_address): New variable.
1059         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
1060         (frv_register_nop, frv_reorg): New functions.
1061         (bdesc_1arg): Add __SCUTSS.
1062         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
1063         __SUBSS, __SLASS and __SCAN.
1064         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
1065         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
1066         (frv_init_builtins): Register the above builtins.
1067         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
1068         registers.  Turn the referenced accumulators into global registers.
1069         (frv_read_iacc_argument): New function.
1070         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
1071         (frv_split_iacc_move): New function.
1072         (frv_expand_builtin): Handle the new builtins.
1073         * config/frv/frv.md: Replace old schedulers with new order-independent
1074         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
1075         packing algorithm.
1076         (cpu): Add fr550, fr450 and fr405.
1077         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
1078         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
1079         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
1080         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
1081         (fnop, mnop): New patterns.
1082         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
1083         New constants.
1084         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
1085         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
1086         registers.
1087         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
1088         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
1089         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
1090         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
1091         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
1092         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
1093         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
1094         (frv_prefetch0, frv_prefetch): New patterns.
1095         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
1096         -mcpu=simple.  Add -mcpu=fr550.
1097         (MULTILIB_DIRNAMES): Update accordingly.
1098         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
1099         -mcpu=fr450.
1100         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
1101         -mlong-calls and -malign-labels options for FR-V.
1102
1103 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1104
1105         PR c/8420
1106         * c-tree.h (struct c_declspecs): New.
1107         (struct c_declarator, struct c_type_name, struct c_parm): Update
1108         element types.
1109         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
1110         start_function, start_decl, build_c_parm,
1111         make_pointer_declarator): Update prototypes.
1112         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1113         declspecs_add_scspec, declspecs_add_attrs): New.
1114         (split_specs_attrs): Remove.
1115         * c-parse.in (%union): Add dsptype.
1116         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1117         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1118         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1119         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1120         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1121         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1122         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1123         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
1124         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
1125         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
1126         maybe_type_quals_attrs): Change to dsptype.
1127         (struct c_declspec_stack): New.
1128         (current_declspecs, declspec_stack): Change type.
1129         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
1130         structures.
1131         (extdefs): Likewise.
1132         (setspecs): Likewise.
1133         (fndef): Use current_declspecs for empty declspecs list.
1134         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1135         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1136         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1137         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1138         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1139         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1140         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1141         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
1142         structures and helper functions.  Update comments.
1143         (typespec_nonattr): Correct comment.
1144         (maybe_type_quals_attrs, typename): Update to new structures.
1145         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
1146         shadow_tag, shadow_tag_warned, start_function, start_decl,
1147         build_c_parm, make_pointer_declarator,
1148         set_array_declarator_inner, groktypename): Update to new
1149         structures.
1150         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1151         declspecs_add_scspec, declspecs_add_attrs): New.
1152         (split_specs_attrs): Remove.
1153         (shadow_tag_warned): Make warning for useless type names a
1154         pedwarn.  Give hard error for long, short, signed, unsigned or
1155         _Complex used with struct, union or enum in empty declaration.
1156         Make found_tag a bool.
1157         (grokdeclarator): Remove checks now done at parse time.
1158
1159 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1160
1161         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
1162         c_declarator, struct c_type_name, struct c_parm): New.
1163         (build_array_declarator, set_array_declarator_inner,
1164         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
1165         start_function, start_decl, build_c_parm, build_attrs_declarator,
1166         build_function_declarator, make_pointer_declarator, c_cast_expr,
1167         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
1168         (build_id_declarator): New.
1169         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
1170         structures.
1171         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
1172         ARG_INFO_OTHERS): Remove.
1173         (build_id_declarator): New.
1174         (build_array_declarator, set_array_declarator_inner, groktypename,
1175         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
1176         grokfield, start_function, store_parm_decls_newstyle,
1177         store_parm_decls_oldstyle, store_parm_decls,
1178         build_c_parm, build_attrs_declarator, build_function_declarator,
1179         make_pointer_declarator, grokdeclarator): Update to new
1180         structures.
1181         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
1182         parmtype.
1183         (declarator, notype_declarator, after_type_declarator,
1184         parm_declarator, parm_declarator_starttypename,
1185         parm_declarator_nostarttypename, array_declarator, typename,
1186         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
1187         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
1188         parmlist_1, parmlist_2, parmlist_or_identifiers,
1189         parmlist_or_identifiers_1): Use these types.
1190         (primary, after_type_declarator, parm_declarator_starttypename,
1191         notype_declarator, component_decl, component_declarator,
1192         component_notype_declarator, typename, absdcl,
1193         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
1194         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
1195
1196 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1197
1198         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
1199         in_typeof, record_maybe_used_decl, pop_maybe_used,
1200         c_expr_sizeof_expr, c_expr_sizeof_type): New.
1201         * c-decl.c (parser_obstack): New.
1202         (c_init_decl_processing): Initialize parser_obstack.
1203         (c_write_global_declarations_1): Check for used but undefined
1204         static functions.
1205         * c-parse.in (%union): Add otype.
1206         (save_obstack_position): New.
1207         (extdefs): Use it.
1208         (unary_expr): Update in_sizeof and in_alignof.  Use
1209         c_expr_sizeof_expr and c_expr_sizeof_type.
1210         (sizeof): Update in_sizeof.
1211         (alignof): Update in_alignof.
1212         (typeof): Update in_typeof.
1213         (typespec_nonreserved_nonattr): Call pop_maybe_used.
1214         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
1215         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
1216         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
1217         (build_external_ref): Set C_DECL_USED or call
1218         record_maybe_used_decl if appropriate.
1219         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
1220
1221 2004-09-08  Eric Christopher  <echristo@redhat.com>
1222
1223         * builtins.c: Fix prototype for fold_builtin_atan.
1224
1225 2004-09-08  Eric Christopher  <echristo@redhat.com>
1226
1227         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
1228         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
1229         fold_builtin_atan): New functions. Migrate function bodies...
1230         (fold_builtin_1): ... from here.
1231
1232 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
1233
1234         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
1235         save_size.
1236
1237 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
1238
1239         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
1240         * config/rs6000/power5.md (power5-lmul): Same.
1241
1242 2004-09-08  Richard Henderson  <rth@redhat.com>
1243
1244         PR rtl-opt/17186
1245         * function.c (expand_function_end): Have fall-off-the-end
1246         return path jump around return register setup.
1247
1248 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1249
1250         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
1251         (output_return): Do not test for the presence of the 'unimp' insn.
1252         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
1253         as predicates instead of custom ones.  Return raw strings when
1254         possible.
1255         (output_sibcall): Likewise.  Concatenate strings.
1256         (output_ubranch): Remove kludge for TurboSPARC.
1257         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
1258         (output_v9branch): Likewise.
1259         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
1260         <#>: Set sparc_indent_opcode if the delay slot is filled.
1261         <(>: Likewise.
1262         <)>: New operand to emit the displacement from the saved PC on return.
1263         <@>: Remove.
1264         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
1265         (ASM_OUTPUT_OPCODE): New macro.
1266         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
1267         * config/sparc/sparc.md (normal_branch, inverted_branch,
1268         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
1269         inverted_fpe_branch): Adjust call to output_cbranch.
1270         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
1271         call to output_v9branch.
1272         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
1273         (output_v9branch): Likewise.
1274
1275 2004-09-08  Devang Patel  <dpatel@apple.com>
1276
1277         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
1278         -segs_read_only_addr and -segs_read_write_addr.
1279         (WORD_SWITCH_TAKES_ARG): Same.
1280         (LINK_SPEC): Same.
1281         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
1282         -segs_read_write_addr.
1283
1284 2004-09-08  Richard Henderson  <rth@redhat.com>
1285
1286         * function.c (reference_callee_copied): New.
1287         (assign_parm_setup_reg): Use it.
1288         * calls.c (initialize_argument_information): Likewise.
1289         (emit_library_call_value_1): Likewise.
1290         * function.h (reference_callee_copied): Declare.
1291
1292         * target.h (struct gcc_target): Add callee_copies.
1293         * target-def.h (TARGET_CALLEE_COPIES): New.
1294         (TARGET_PASS_BY_REFERENCE): Update default.
1295         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1296         * targhooks.c (hook_callee_copies_named): New.
1297         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
1298         hook_pass_by_reference_false.
1299         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
1300         * targhooks.h: Update decls.
1301         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
1302         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1303         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
1304         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
1305         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1306         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
1307         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1308         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
1309         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1310         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
1311         (mips_callee_copies): New.
1312         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1313         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
1314         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1315         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
1316         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1317         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
1318         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1319         * config/sh/sh.c (sh_callee_copies): New.
1320         (TARGET_CALLEE_COPIES): New.
1321         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1322         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
1323         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1324         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
1325         for FUNCTION_ARG_CALLEE_COPIES.
1326         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
1327
1328 2004-09-08  Devang Patel  <dpatel@apple.com>
1329
1330         * tree-if-conv.c (find_phi_replacement_condition): Return true
1331         edge block.
1332         (replace_phi_with_cond_modify_expr): Select conditional expr args
1333         based on true edge basic block.
1334
1335 2004-09-08  Jan Hubicka  <jh@suse.cz>
1336
1337         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
1338         variables being alias set.
1339
1340 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1341
1342         * final.c (shorten_branches, final, get_insn_template,
1343         output_alternate_entry_point, final_scan_insn, alter_subreg,
1344         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
1345         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
1346         * fix-header.c (lookup_std_proto): Likewise.
1347         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
1348         verify_local_live_at_start, update_life_info, mark_reg,
1349         calculate_global_regs_live, allocate_reg_life_data,
1350         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
1351         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
1352         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
1353         * fold-const.c (force_fit_type, div_and_round_double,
1354         may_negate_without_overflow_p, int_const_binop, const_binop,
1355         size_binop, size_diffop, fold_convert_const, fold_convert,
1356         invert_tree_comparison, swap_tree_comparison,
1357         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
1358         range_binop, make_range, fold_cond_expr_with_comparison,
1359         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
1360         fold_abs_const, fold_not_const, fold_relational_const, round_up,
1361         round_down): Likewise.
1362         * function.c (find_function_data, assign_stack_temp_for_type,
1363         instantiate_virtual_regs_lossage, aggregate_value_p,
1364         assign_parm_find_entry_rtl, assign_parm_setup_block,
1365         expand_function_start, expand_function_end, keep_stack_depressed,
1366         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
1367
1368 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
1369
1370         * Makefile.in (tree-loop-linear.o): Added.
1371         (OBJS-common): Add tree-loop-linear.o
1372         * common.opt: New flag, ftree-loop-linear.
1373         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
1374         * tree-flow.h: Add prototype for linear_transform_loops.
1375         * tree-optimize.c: Add linear transform after vectorization.
1376         * tree-pass.h: Add struct pass_linear_transform.
1377         * tree-ssa-loop.c: Add pass_linear_transform.
1378         * tree-loop-linear.c: New file.
1379         * lambda-code.c: gcc_assertify.
1380         (gcc_loop_to_lambda_loop): Handle all exit tests.
1381         Handle case where we have (invariant >= induction var).
1382         (find_induction_var_from_exit_cond): Ditto.
1383
1384 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
1385
1386         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
1387         memory tag is call clobbered, so are its aliases.
1388         (group_aliases): When two memory tags being grouped, if one is
1389         call clobbered, so are the other and its aliases.
1390         (add_may_alias): Remove call-clobbering stuff.
1391         (replace_may_alias): Likewise.
1392         (merge_pointed_to_info): Merge pt_global_mem
1393
1394 2004-09-08  Jan Hubicka  <jh@suse.cz>
1395
1396         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
1397         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
1398         (cgraph_expand_function): Remove stale cgraph edges of currently
1399         compiled function; fix non-unit-at-a-time code copying function
1400         node for later reuse.
1401
1402 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1403
1404         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
1405         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
1406         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
1407         (vec_gc_free, vec_heap_free): New.
1408         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
1409         (DEF_VEC_P): Add allocator argument. Adjust.
1410         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
1411         (DEF_VEC_O): Add allocator argument. Adjust.
1412         (VEC(free)): New.
1413
1414         * tree.h (tree): Define a GC'd vector.
1415         * lamba-code.c (lambda_loop): Likewise.
1416         * value-prof.h (histogram_value): Likewise.
1417
1418 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1419
1420         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
1421         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
1422         gen_lowpart_common, gen_highpart, gen_highpart_mode,
1423         subreg_highpart_offset, operand_subword, operand_subword_force,
1424         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
1425         set_mem_alias_set, change_address_1, verify_rtx_sharing,
1426         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
1427         try_split, add_insn_after, add_insn_before, remove_insn,
1428         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
1429         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
1430         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
1431         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
1432         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
1433         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
1434         record_path_before_1, check_path_after_1, check_path_after): Likewise.
1435         * except.c (gen_eh_region, resolve_one_fixup_region,
1436         remove_unreachable_regions, convert_from_eh_region_ranges_1,
1437         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
1438         connect_post_landing_pads, sjlj_emit_function_exit,
1439         remove_exception_handler_label, remove_eh_handler,
1440         reachable_next_level, collect_one_action_chain,
1441         output_function_exception_table): Likewise.
1442         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
1443         optimize_save_area_alloca, allocate_dynamic_stack_space,
1444         probe_stack_range, hard_function_value): Likewise.
1445         * expmed.c (mode_for_extraction, store_bit_field,
1446         store_fixed_bit_field, extract_bit_field, expand_shift,
1447         expand_mult_const, expand_mult, choose_multiplier,
1448         expand_mult_highpart, expand_divmod, emit_store_flag,
1449         do_cmp_and_jump): Likewise.
1450         * expr.c (convert_move, convert_modes, move_by_pieces,
1451         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
1452         move_block_from_reg, gen_group_rtx, emit_group_load,
1453         emit_group_move, emit_group_store, use_reg, use_regs,
1454         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
1455         emit_move_insn, emit_move_insn_1, emit_push_insn,
1456         expand_assignment, store_expr, count_type_elements,
1457         store_constructor, store_field, safe_from_p, expand_var,
1458         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
1459
1460 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1461
1462         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
1463         gcc_assert and gcc_unreachable.
1464         * ddg.c (create_ddg_dependence, add_deps_for_def,
1465         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
1466         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
1467         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
1468         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
1469         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
1470         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
1471         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
1472         dataflow_set_copy, hybrid_search, diagnostic.c,
1473         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
1474         * dojump.c (do_jump): Likewise.
1475         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
1476         compute_dom_fast_query, calculate_dominance_info,
1477         free_dominance_info, get_immediate_dominator,
1478         set_immediate_dominator, get_dominated_by,
1479         redirect_immediate_dominators, nearest_common_dominator,
1480         dominated_by_p, verify_dominators, recount_dominator,
1481         iterate_fix_dominators, add_to_dominance_info,
1482         delete_from_dominance_info): Likewise.
1483         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
1484         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
1485         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
1486         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
1487         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
1488         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
1489         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
1490         output_call_frame_info, output_loc_operands, build_cfa_loc,
1491         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
1492         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
1493         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
1494         splice_child_die, attr_checksum, same_dw_val_p,
1495         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
1496         unmark_dies, value_format, output_loc_list, output_die,
1497         output_pubnames, output_aranges, base_type_die, is_base_type,
1498         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
1499         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
1500         field_byte_offset, add_data_member_location_attribute,
1501         add_const_value_attribute, rtl_for_decl_location,
1502         add_location_or_const_value_attribute, add_byte_size_attribute,
1503         add_bit_offset_attribute, add_bit_size_attribute,
1504         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
1505         decl_start_label, gen_formal_parameter_die,
1506         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
1507         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
1508         force_decl_die, force_type_die, gen_decl_die,
1509         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
1510         dwarf2out_finish): Likewise.
1511
1512 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
1513
1514         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
1515         * builtins.c: Include tree-mudflap.h.
1516
1517 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
1518
1519         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
1520         force operand 0.0 into register in XFmode. Also do not force
1521         operand 0.0 into register if !TARGET_CMOVE.
1522         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
1523         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
1524         implement ftst x87 instruction.
1525         (*fp_jcc_7): New insn pattern. Change corresponding split
1526         pattern to handle "general_operand" instead of
1527         "nonimmediate_operand".
1528
1529 2004-09-08  Ben Elliston  <bje@au.ibm.com>
1530
1531         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
1532
1533 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
1534
1535         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
1536         generated from standard va_arg expansion.
1537         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
1538         marked nodes.
1539         (mf_varname_tree, mf_file_function_line_tree): Add some support
1540         for column numbers if compiled with USE_MAPPED_LOCATION.
1541
1542 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1543
1544         * c-decl.c (groktypename_in_parm_context): Remove function.
1545         * c-tree.h (groktypename_in_parm_context): Remove prototype.
1546
1547 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1548
1549         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
1550         * c-parse.in: Include c-common.h instead of objc-act.h.
1551         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
1552         myparms, myparm): Remove %type declarations.
1553         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
1554         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
1555         declarations.
1556         (objc_inherit_code, objc_public_flag): Remove.
1557         (typespec_nonreserved_nonattr): Call
1558         objc_get_protocol_qualified_type() instead of get_static_reference()
1559         and get_protocol_reference().
1560         (stmt_nocomp): Call grokparm() on @catch parameter.
1561         (objcdef): Move semantic action to objc_finish_implementation().
1562         (classdef): Move semantic action to objc_start_class_interface(),
1563         objc_continue_interface(), objc_finish_interface(),
1564         objc_start_class_implementation(), objc_continue_implementation(),
1565         objc_start_category_interface() and
1566         objc_start_category_implementation().
1567         (protocoldef): Move semantic actions to objc_start_protocol() and
1568         objc_finish_interface().
1569         (ivar_decl_list): Remove nonterminal.
1570         (visibility_spec): Move semantic actions to objc_set_visibility().
1571         (ivar_decls): Remove assignment to $$.
1572         (ivar_decl): Rephrase in terms of component_decl; call
1573         objc_add_instance_variable().
1574         (ivars, ivar_declarator): Remove nonterminals.
1575         (opt_semi): New nonterminal.
1576         (methodtype): Remove semantic actions.
1577         (methoddef): Move semantic actions to objc_set_method_type(),
1578         objc_start_method_definition() and objc_finish_method_definition().
1579         (methodproto): Move semantic actions to objc_set_method_type() and
1580         objc_add_method_declaration().
1581         (methoddecl): Use objc_typename instead of typename; move semantic
1582         actions to objc_build_method_signature().
1583         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
1584         (optparmlist): Express in terms of optparms and optellipsis.
1585         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
1586         nonterminals.
1587         (keyworddecl): Use objc_typename instead of typename.
1588         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
1589         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
1590
1591 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
1592
1593         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
1594         (MD_FALLBACK_FRAME_STATE_FOR): Update.
1595         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
1596         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1597         (MD_FROB_UPDATE_CONTEXT): Remove default.
1598         (uw_update_context_1): Instead #ifdef invocation.
1599         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
1600         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1601         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
1602         (MD_UNWIND_SUPPORT): Undefine this instead.
1603         * config/i386/gnu.h: Likewise.
1604         * config/alpha/linux-unwind.h: New file, macro converted to
1605         function, extracted from..
1606         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
1607         (MD_UNWIND_SUPPORT): Define.
1608         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
1609         * config/i386/linux-unwind.h, config/i386/linux.h,
1610         config/i386/linux64.h: Likewise.
1611         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
1612         MD_HANDLE_UNWABI too.
1613         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
1614         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
1615         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
1616         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
1617         * config/sparc/linux-unwind.h, config/sparc/linux.h,
1618         config/sparc/linux64.h: Likewise.
1619         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
1620         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
1621         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
1622         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
1623         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
1624
1625 2004-09-07  Jan Hubicka  <jh@suse.cz>
1626
1627         * cse.c (fold_rtx):  Avoid building of
1628         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
1629
1630         * tree-ssa-pre.c (grand_bitmap_obstack): New.
1631         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
1632         (init_pre): Initialize obstack.
1633         (fini_pre): Free obstack.
1634
1635 2004-09-07  David Daney  <ddaney@avtrex.com>
1636
1637         * config.gcc: Added support for --with-divide=[breaks|traps] for
1638         mips targets.
1639         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
1640         (TARGET_DIVIDE_TRAPS): New macro.
1641         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
1642         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
1643         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
1644         GENERATE_DIVIDE_TRAPS.
1645         (mips_output_division): Emit conditional trap if
1646         GENERATE_DIVIDE_TRAPS is set.
1647         * doc/install.texi: Document --with-divide.
1648         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
1649
1650 2004-09-07  Caroline Tice  <ctice@apple.com>
1651
1652         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
1653         EDGE_CROSSING, to flags test case.
1654
1655 2004-09-07  Jan Hubicka  <jh@suse.cz>
1656
1657         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
1658         class too.
1659
1660 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1661
1662         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
1663         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
1664         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
1665         or gcc_unreachable.
1666         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
1667         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
1668         alloc_aux_for_edges, free_aux_for_edges): Likewise.
1669         * cfgcleanup.c (try_forward_edges,
1670         merge_blocks_move_predecessor_nojumps,
1671         merge_blocks_move_successor_nojumps): Likewise.
1672         * cfgexpand.c (expand_gimple_cond_expr,
1673         expand_gimple_tailcall): Likewise.
1674         * cfghooks.c (duplicate_block): Likewise.
1675         * cfglayout.c (record_effective_endpoints,
1676         insn_locators_initialize, change_scope, fixup_reorder_chain,
1677         verify_insn_chain, fixup_fallthru_exit_predecessor,
1678         duplicate_insn_chain, cfg_layout_finalize): Likewise.
1679         * cfgloopanal.c (check_irred): Likewise.
1680         * cfgloop.c (superloop_at_depth, flow_loops_free,
1681         flow_loop_entry_edges_find, flow_loops_find,
1682         flow_loop_outside_edge_p, get_loop_body,
1683         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
1684         get_loop_exit_edges, num_loop_branches, cancel_loop,
1685         verify_loop_structure): Likewise.
1686         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
1687         duplicate_loop_to_header_edge, create_preheader,
1688         create_loop_notes): Likewise.
1689         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
1690         edirect_branch_edge, force_nonfallthru_and_redirect,
1691         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1692         commit_edge_insertions, commit_edge_insertions_watch_calls,
1693         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
1694         cfg_layout_redirect_edge_and_branch_force,
1695         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
1696         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
1697         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
1698         cgraph_varpool_node): Likewise.
1699         * cgraphunit.c (cgraph_finalize_function,
1700         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
1701         cgraph_expand_function, cgraph_remove_unreachable_nodes,
1702         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1703         cgraph_mark_inline, cgraph_expand_all_functions,
1704         cgraph_build_static_cdtor): Likewise.
1705         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
1706         simplify_logical, distribute_notes, insn_cuid): Likewise.
1707         * conflict.c (conflict_graph_add, print_conflict): Likewise.
1708         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
1709         coverage_checksum_string): Likewise.
1710         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
1711         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
1712         cse_cc_succs, cse_condition_code_reg): Likewise.
1713         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
1714         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
1715         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
1716         cselib_record_set): Likewise.
1717
1718 2004-09-07  Jan Hubicka  <jh@suse.cz>
1719
1720         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
1721
1722 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1723
1724         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
1725         fold_convert.
1726         (fold_builtin_strpbrk): Likewise.
1727         * expr.c (array_ref_low_bound): Likewise.
1728         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
1729         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
1730         * tree-sra.c (generate_element_zero): Likewise.
1731         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1732         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
1733         add_old_iv_candidates, add_iv_candidates): Likewise.
1734         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1735
1736 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1737
1738         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
1739         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
1740         c_expand_expr, boolean_increment, nonnull_check_p,
1741         check_function_arguments_recurse, fold_offsetof_1): Likewise.
1742         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
1743         builtin_define_type_max): Likewise.
1744         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
1745         implicit_decl_warning, builtin_function, build_compound_literal,
1746         complete_array_type, grokdeclarator, get_parm_info,
1747         start_function, store_parm_decls_oldstyle,
1748         c_write_global_declarations): Likewise.
1749         * c-format.c (get_constant, decode_format_attr,
1750         maybe_read_dollar_number, get_flag_spec, check_format_arg,
1751         check_format_types, format_type_warning,
1752         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
1753         init_dynamic_diag_info, handle_format_attribute): Likewise.
1754         * c-gimplify.c (push_context, pop_context, finish_bc_block):
1755         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
1756         * c-objc-common.c (c_tree_printer): Likewise.
1757         * c-pch.c (pch_init): Likewise.
1758         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
1759         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
1760         * c-typeck.c (c_incomplete_type_error, composite_type,
1761         common_pointer_type, common_type, same_translation_unit_p,
1762         tagged_types_tu_compatible_p, finish_init, pop_init_level,
1763         set_designator, set_nonincremental_init_from_string,
1764         process_init_element, c_finish_if_stmt): Likewise.
1765         * caller-save.c (init_caller_save, save_call_clobbered_regs,
1766         insert_restore, insert_save, insert_one_insn): Likewise.
1767         * calls.c (emit_call_1, compute_argument_block_size,
1768         precompute_arguments, expand_call, emit_library_call_value_1,
1769         store_one_arg): Likewise.
1770
1771 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1772
1773         * configure.ac (enable-checking): Add release option. Reorganize
1774         to avoid repetition.
1775         * configure: Rebuilt.
1776         * doc/install.texi (enable-checking): Amend documentation.
1777
1778 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR bootstrap/17313
1781         * Makefile.in (specs.ready): Depend on cc1$(exeext).
1782
1783 2004-09-06  James E Wilson  <wilson@specifixinc.com>
1784
1785         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
1786         movdf_hardfloat_32bit): Split fG into two alternatives.
1787         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
1788
1789         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
1790
1791 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1792
1793         * final.c (output_in_slot): Delete.
1794         (final_scan_insn): Revert 2004-09-03 change.
1795         (output_asm_insn): Likewise.
1796         * config/sparc/sparc.c (output_return): Likewise.
1797         (output_sibcall): Likewise.
1798
1799 2004-09-06  Jan Hubicka  <jh@suse.cz>
1800
1801         * loop.c (loop_dump_aux): Do not print RTL when not available.
1802         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
1803         frontend specific type nodes.
1804         (produce_memory_decl_rtl): Break out from ...
1805         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
1806         (get_computation_at): Avoid random tree sharing.
1807         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
1808
1809 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
1810
1811         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
1812         unnecessary commands.
1813
1814 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
1815
1816         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
1817         (bitmap.o): Likewise.
1818
1819 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
1820
1821         Unify the management of RTL and tree-level dump files.
1822
1823         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
1824         Don't print function name to the dump file, the pass manager
1825         would do this for us. Add code from the top of
1826         rest_of_compilation, up to the initial RTL dump.
1827         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
1828         close the DFI_sibling dump file.
1829         (rest_of_compilation): Don't do that here.  Remove code up to the
1830         initial RTL dump.
1831         (init_optimization_passes): Remove.
1832         (pass_rest_of_compilation): Change pass name to NULL.
1833         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
1834         Do not call init_optimization_passes.
1835         * toplev.h (init_optimization_passes): Remove.
1836
1837         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1838         finish_graph_dump_file): Remove SUFFIX parameter.
1839         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
1840         finish_graph_dump_file): Likewise.
1841
1842         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
1843         * cfgexpand.c (pass_expand): Adjust.
1844         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
1845         * passes.c (pass_rest_of_compilation): Adjust.
1846         * predict.c (pass_profile): Adjust.
1847         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
1848         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
1849         pass_split_crit_edges, pass_warn_function_return): Adjust.
1850         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
1851         * tree-dfa.c (pass_referenced_vars): Adjust.
1852         * tree-eh.c (pass_lower_eh): Adjust.
1853         * tree-if-conv.c (pass_build_ssa): Adjust.
1854         * tree-into-ssa.c (pass_build_ssa): Adjust.
1855         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1856         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1857         * tree-nrv.c (pass_nrv): Adjust.
1858         * tree-optimize.c (pass_gimple, pass_all_optimizations,
1859         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
1860         pass_init_datastructures): Adjust.
1861         * tree-outof-ssa.c (pass_del_ssa): Adjust.
1862         * tree-profile.c (pass_tree_profile): Adjust.
1863         * tree-sra.c (pass_sra): Adjust.
1864         * tree-ssa-alias.c (pass_may_alias): Adjust.
1865         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
1866         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
1867         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
1868         * tree-ssa-dom.c (pass_dominator): Adjust.
1869         * tree-ssa-dse.c (pass_dse): Adjust.
1870         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
1871         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
1872         * tree-ssa-loop-ch.c (pass_ch): Adjust.
1873         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
1874         pass_loop_done, pass_complete_unroll, pass_iv_canon,
1875         pass_iv_optimize, pass_vectorize): Adjust.
1876         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
1877         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
1878         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
1879         pass_late_warn_uninnitialized): Adjust.
1880         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
1881
1882         * Makefile.in (tree-dump.o): Add new dependencies.
1883         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
1884         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
1885         Likewise.
1886         * toplev.c (dump_file_name): New.
1887         * tree-dump.c (dump_enable_all): Add LETTER parameter.
1888         (struct dump_file_info): Add NUM and LETTER fields.
1889         (dump_files): Adjust and add RTL dump files.
1890         (dump_register): Add NUM and LETTER fields.
1891         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
1892         (dump_begin): Use get_dump_file_name.
1893         (dump_switch_p_1): Adjust call to dump_enable_all.
1894         * tree-dump.h (dump_register): Adjust prototype.
1895         * tree-optimize.c (register_one_dump_file): Take dump file index.
1896         Support flags for RTL dumps.
1897         (register_dump_files): Fill in NUM field of struct dump_file_info.
1898         Track properties both when the gate is executed and when it is not.
1899         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
1900         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
1901         dumps of RTL.
1902         * tree-pass.h (dump_file_name): New.
1903         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
1904         New.
1905
1906         * Makefile.in (passes.o): Add new dependencies.
1907         * passes.c (struct dump_file_info, enum dump_file_index,
1908         dump_file_tbl, init_optimization_passes): Remove.
1909         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
1910         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
1911         dump_enabled_p.
1912         (finish_optimization_passes): Update finish_graph_dump_file loop.
1913         (enable_rtl_dump_file): Remove.
1914         * tree-dump.c (dump_files): Adjust and add RTL dump files.
1915         (enable_rtl_dump_file): Add here.
1916         * tree.h (enum tree_dump_index): Add RTL dump file indices.
1917         * doc/invoke.texi (Debugging options): Document new RTL debugging
1918         options.  Update.
1919
1920 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1921
1922         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
1923         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
1924         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
1925         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1926         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
1927         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
1928         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
1929         vec.h: Fix comment formatting.
1930
1931 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1932
1933         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
1934         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
1935         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
1936         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
1937         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1938         tree-ssa-loop-niter.c, tree-ssa-operands.c,
1939         tree-ssa-operands.h, tree-ssa-propagate.c,
1940         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
1941         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
1942
1943 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
1944
1945         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
1946         vectorizer is enabled.
1947
1948 2004-09-05  Andreas Jaeger  <aj@suse.de>
1949
1950         * tree-if-conv.c: Spell check comments and clean up whitespace.
1951
1952 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1953
1954         * tree-ssa-loop-ivopts.c: New file.
1955         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
1956         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
1957         target_pres_cost, target_spill_cost): Declare.
1958         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
1959         spill_cost): Renamed to ...
1960         (target_avail_regs, target_res_regs, target_small_cost,
1961         target_pres_cost, target_spill_cost): ... and exported.
1962         (init_set_costs, global_cost_for_size): Work with renamed variables.
1963         * common.opt (flag_ivopts): New flag.
1964         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
1965         REF_ORIGINAL.
1966         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
1967         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
1968         generating SSA form.
1969         (force_gimple_operand): New function.
1970         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
1971         * tree-cfg.c (stmt_bsi): New function.
1972         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1973         PARAM_IV_MAX_CONSIDERED_USES): New.
1974         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
1975         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
1976         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
1977         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
1978         * tree-nested.c (build_addr): Export.
1979         * tree-optimize.c (init_tree_optimization_passes): Add
1980         pass_iv_optimize.
1981         * tree-pass.h (pass_iv_optimize): Declare.
1982         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
1983         IMAGPART_EXPR.
1984         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
1985         as a phi node argument.
1986         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
1987         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
1988         functions.
1989         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
1990         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
1991         pass_iv_optimize): New pass.
1992         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
1993         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
1994         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
1995         * tree.h (REF_ORIGINAL): New macro.
1996         (build_int_cst_type, unsigned_type_for, zero_p,
1997         cst_and_fits_in_hwi, build_addr): Declare.
1998         * doc/invoke.texi (-fivopts): Document.
1999         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2000         PARAM_IV_MAX_CONSIDERED_USES): Document.
2001         * doc/passes.texi: Document induction variable optimizations pass.
2002
2003 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2004
2005         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
2006         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
2007         * c-common.c (c_common_attribute_table): Accept parameters to
2008         sentinel attribute.
2009         (check_function_sentinel, handle_sentinel_attribute): Likewise.
2010         * doc/extend.texi: Update accordingly.
2011
2012 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2013
2014         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
2015         New.
2016         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
2017         attribute.
2018         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
2019         New functions.
2020         (c_common_attribute_table): Add `sentinel' attribute.
2021         (check_function_arguments): Handle `sentinel' attribute.
2022         * doc/extend.texi: Document `sentinel' attribute.
2023
2024 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
2025
2026         * configure: Regenerated.
2027
2028 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2029
2030         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
2031
2032         * tree.c (save_expr): No longer TREE_READONLY.
2033
2034 2004-09-04  Jan Hubicka  <jh@suse.cz>
2035
2036         * passes.c (rest_of_clean_state):  Fix merge conflict made during
2037         commiting the patch.
2038
2039 2004-09-04  Jan Hubicka  <jh@suse.cz>
2040
2041         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
2042
2043 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2044
2045         * doc/md.texi (shift patterns): New anchor.  Add reference to
2046         TARGET_SHIFT_TRUNCATION_MASK.
2047         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
2048         * target.h (shift_truncation_mask): New target hook.
2049         * targhook.h (default_shift_truncation_mask): Declare.
2050         * targhook.c (default_shift_truncation_mask): Define.
2051         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
2052         (TARGET_INITIALIZER): Include it.
2053         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
2054         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
2055         reject all out-of-range values.  Fix sign-extension code for modes
2056         whose width is smaller than HOST_BITS_PER_WIDE_INT.
2057         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
2058         (expand_superword_shift, expand_subword_shift): Likewise.
2059         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
2060         (expand_binop): Use them to implement double-word shifts.
2061         * config/arm/arm.c (arm_shift_truncation_mask): New function.
2062         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2063
2064 2004-09-04  Jan Hubicka  <jh@suse.cz>
2065
2066         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
2067         (mix): New macro copied from hashtab.c
2068         (iterative_hash_hashval_t, iterative_hash_pointer,
2069         iterative_hash_host_wide_int): New functions based on hashtab.c
2070         implementation.
2071
2072 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2073
2074         * config/mips/mips.md (mask): New mode attribute.
2075         (zero_extendsidi2): Add memory alternative.
2076         (*zero_extendsidi2_mem): Delete.
2077         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
2078         memory_operand in the TARGET_MIPS16 check.
2079         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
2080         Redefine using :GPR and :SHORT.
2081         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
2082
2083 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
2084
2085         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
2086         using rint_optab.
2087         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
2088         expand_builtin_mathfn.
2089         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
2090         btrunc?f patterns for btrunc_optab. Implement rint_optab using
2091         rint?f patterns.
2092         * optabs.c (init_optabs): Initialize rint_optab.
2093         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
2094         Add new OTI_rint.
2095         (btrunc_optab): Rename macro from trunc_optab.
2096         (rint_optab): Define corresponding macro.
2097
2098         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
2099         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
2100
2101         * config/i386/i386-protos.h (emit_i387_cw_initialization):
2102         Change prototype. Add new int parameter.
2103         * config/i386/i386.c (emit_i387_cw_initialization):
2104         Handle new rounding modes.
2105
2106         * config/i386/i386.h (enum fp_cw_mode): Delete.
2107         (MODE_NEEDED): Handle new rounding modes.
2108         (EMIT_MODE_SET): Change condition to handle new rounding modes.
2109
2110         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
2111         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
2112         represent different rounding modes of frndint insn.
2113         (type): Add frndint type.
2114         (i387, length, memory): Handle this type.
2115         (i387_cw): New attribute definition.
2116         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
2117         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
2118         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
2119         Add "i387_cw" attribute defined to "trunc".
2120         (x86_fnstcw_1): Remove comment.
2121         (*frndintxf2): Rename insn definition to frndintxf2. Move
2122         insn definition near rint?f2 expanders.
2123         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
2124         rintf and rintl built-ins as inline x87 intrinsics.
2125         (frndintxf2_floor): New pattern to implement floor rounding
2126         mode with frndint x87 instruction.
2127         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
2128         floorf and floorl built-ins as inline x87 intrinsics.
2129         (frndintxf2_ceil): New pattern to implement ceil rounding
2130         mode with frndint x87 instruction.
2131         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
2132         ceilf and ceill built-ins as inline x87 intrinsics.
2133         (frndintxf2_trunc): New pattern to implement trunc rounding
2134         mode with frndint x87 instruction.
2135         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
2136         truncf and truncl built-ins as inline x87 intrinsics.
2137         (frndintxf2_mask_pm): New pattern to implement rounding
2138         mode with exceptions with frndint x87 instruction.
2139         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
2140         implement nearbyint, nearbyintf and nearbyintl built-ins as
2141         inline x87 intrinsics.
2142
2143 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2144
2145         * config/mips/mips.md (SHORT): New mode macro.
2146         (size): New mode attribute.
2147         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
2148         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
2149         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
2150         !ISA_HAS_SEB_SEH.
2151         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
2152         *extend[qh]isi2_hw patterns and extending them to di.
2153         (extendqihi2): Implement as define_insn_and_split that produces
2154         extendqisi2 after reload.
2155
2156 2004-09-03  Devang Patel  <dpatel@apple.com>
2157
2158         * Makefile.in (OBJS-common): Add tree-if-conv.o
2159         (tree-if-conv.o): New rule.
2160         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
2161         (get_loop_body_in_bfs_order): New.
2162         * cfgloop.h (get_loop_body_in_bfs_order): New.
2163         * tree-flow.h (enum move_pos): Move here from ..
2164         * tree-ssa-loop-im.c (enum move_pos): here.
2165         (movement_possibility): Make externally visible.
2166         * tree-optimize.c (init_tree_optimization_passes): New entry for
2167         if conversion pass.
2168         * tree-pass.h (pass_if_conversion): New.
2169         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
2170         * tree-if-conv.c: New file.
2171         * doc/passes.texi: Document tree if-conversion pass.
2172         * doc/tree-ssa.texi: Same.
2173
2174 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
2175
2176         PR target/14925:
2177         Makefile.in (LIB2ADDEHSTATIC): New.
2178         (LIB2ADDEHSHARED): New.
2179         (LIBUNWIND): New.
2180         (LIBUNWINDDEP): New.
2181         (SHLIBUNWIND_LINK): New.
2182         (SHLIBUNWIND_INSTALL): New.
2183         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
2184         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
2185         (clean): Remove libunwind*
2186         (stage1-start): Remove and copy stage1/libunwind*.
2187         (stage2-start): Remove and copy stage2/libunwind*.
2188         (stage3-start): Remove and copy stage3/libunwind*.
2189         (stage4-start): Remove and copy stage4/libunwind*.
2190         (stageprofile-start): Remove and copy stageprofile/libunwind*.
2191         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
2192
2193         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
2194         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
2195         tmake_file if --with-system-libunwind isn't used.
2196
2197         * config/ia64/t-glibc-libunwind: New file.
2198         * config/t-libunwind-elf: Likewise.
2199         * unwind-compat.c: Likewise.
2200         * unwind-compat.h: Likewise.
2201         * unwind-dw2-fde-compat.c: Likewise.
2202
2203         * config/ia64/t-glibc (LIB2ADDEH): Updated.
2204         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2205
2206         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
2207         aliases if needed.
2208         * unwind-dw2-fde-glibc.c: Likewise.
2209         * unwind-dw2.c: Likewise.
2210
2211         * config/t-libunwind (LIB2ADDEH): Updated.
2212         (LIB2ADDEHSTATIC): New.
2213         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2214         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
2215
2216         * configure.ac: Change --enable-libunwind-exceptions to
2217         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
2218         * configure: Regenerated.
2219         * config.in: Updated.
2220
2221         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
2222         above and mention --with-system-libunwind.
2223         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
2224         removed in gcc 3.4.3 and later.
2225
2226         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
2227         USE_LIBUNWIND_EXCEPTIONS is defined.
2228
2229         * mklibgcc.in: Support libunwind.
2230
2231 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
2232
2233         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
2234         m_NOCONA.
2235
2236 2004-09-03  Richard Henderson  <rth@redhat.com>
2237
2238         PR middle-end/9997
2239         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
2240         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
2241         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
2242         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
2243         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
2244         resize_stack_vars_conflict, add_stack_var_conflict,
2245         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
2246         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
2247         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
2248         expand_one_static_var, expand_one_hard_reg_var,
2249         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
2250         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
2251         (expand_used_vars): Rewrite.
2252         * Makefile.in (cfgexpand.o): Update dependencies.
2253
2254 2004-09-04  Jan Hubicka  <jh@suse.cz>
2255
2256         * cfg.c (free_edge): Use ggc_free.
2257         (expunge_block): Use ggc_free.
2258         * passes.c (rest_of_clean_state): Free after compilation.
2259         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
2260         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
2261
2262 2004-09-03  James E Wilson  <wilson@specifixinc.com>
2263
2264         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
2265         DECL_EXTERNAL check.
2266
2267 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2268
2269         * final.c (output_in_slot): New global variable.
2270         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
2271         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
2272         'output_in_slot' before invoking output_asm_insn.
2273         (output_asm_insn): Add a space after the tab if 'output_in_slot'
2274         is set.
2275         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
2276         final_scan_insn.
2277         (output_sibcall): Likewise.
2278
2279 2004-09-03  Jan Hubicka  <jh@suse.cz>
2280
2281         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
2282         * tree-ssanames (init_ssanames): Likewise.
2283
2284 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
2285
2286         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
2287         objc_declare_protocols, objc_start_protocol,
2288         objc_start_class_interface, objc_start_category_interface,
2289         objc_continue_interface, objc_finish_interface,
2290         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
2291         objc_start_class_implementation, objc_start_category_implementation,
2292         objc_continue_implementation, objc_finish_implementation,
2293         objc_add_method_declaration, objc_start_method_definition,
2294         objc_finish_method_definition, objc_build_keyword_decl,
2295         objc_build_method_signature, objc_build_encode_expr,
2296         objc_build_protocol_expr, objc_build_selector_expr,
2297         objc_build_message_expr, objc_build_string_object,
2298         objc_get_class_reference, objc_get_protocol_qualified_type,
2299         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
2300
2301 2004-09-03  James E Wilson  <wilson@specifixinc.com>
2302
2303         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
2304
2305         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
2306         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
2307         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
2308         (mips_recip1_<fmt>): Use frdiv1 type.
2309         (mips_recip2_<fmt>): Use frdiv2 type.
2310         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
2311         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
2312         and frsqrt1.
2313         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
2314
2315 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
2316
2317         * reload.c (find_reloads): Swap operand_loc pointers for
2318         find_dummy_reload if we have swapped two operands.
2319
2320 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
2321
2322         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
2323         to get the tablejump-insn before the jump-table label.
2324
2325 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
2326
2327         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
2328         objc_declare_protocols, objc_build_message_expr,
2329         objc_finish_message_expr, objc_build_selector_expr,
2330         objc_build_protocol_expr, objc_build_encode_expr,
2331         objc_build_string_object, objc_get_protocol_qualified_type,
2332         objc_get_class_reference, objc_get_class_ivars,
2333         objc_start_class_interface, objc_start_category_interface,
2334         objc_start_protocol, objc_continue_interface, objc_finish_interface,
2335         objc_start_class_implementation, objc_start_category_implementation,
2336         objc_continue_implementation, objc_finish_implementation,
2337         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
2338         objc_add_method_declaration, objc_start_method_definition,
2339         objc_finish_method_definition, objc_add_instance_variable,
2340         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
2341         objc_finish_try_stmt, objc_begin_catch_clause,
2342         objc_finish_catch_clause, objc_build_finally_clause,
2343         objc_build_synchronized, objc_static_init_needed_p,
2344         objc_generate_static_init_call): New prototypes.
2345
2346 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
2347
2348         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
2349         is only one reg.
2350         (ia64_function_value): Ditto.
2351
2352 2004-09-03  Jan Beulich  <jbeulich@novell.com>
2353
2354         * config.gcc: Resurrect NetWare as a target. Handle special case of
2355         Novell linker to be used (specified through --with-ld=) and threading
2356         model of either Posix (default) or NKS.
2357         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
2358         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
2359         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
2360         * config/i386/netware.c, config/i386/netware.h: New.
2361         * config/i386/nwld.c, config/i386/nwld.h: New.
2362         * config/i386/netware-crt0.c: New.
2363         * config/i386/netware-libgcc.c: New.
2364         * config/i386/netware-libgcc.def: New.
2365         * config/i386/netware-libgcc.exp: New.
2366         * config/i386/t-netware, config/i386/t-nwld: New.
2367         * gthr-nks.h: New.
2368         * doc/install.texi: Document NKS threading model.
2369
2370 2004-09-03  Jan Beulich  <jbeulich@novell.com>
2371
2372         PR c/7054
2373         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
2374         * tree.h (initial_max_fld_align): Declare
2375         * stor-layout.c (initial_max_fld_align): Define and initialize.
2376         (maximum_field_alignment): Initialize to the same value.
2377         * common.opt: Add -fpack-struct= variant of switch.
2378         * opts.c: Handle -fpack-struct= variant of switch.
2379         * c-pragma.c: Change #pragma pack() handling so that it becomes
2380         compatible to other compilers: accept individual 'push' argument,
2381         make final pop restore (command line) default, correct interaction
2382         of push/pop and sole specification of a new alignment (so that the
2383         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
2384         to #pragma pack(push, <n>).
2385         * doc/extend.texi: New node "Structure-Packing Pragmas" under
2386         "Pragmas", describing #pragma pack.
2387         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
2388         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
2389         Document new TARGET_DEFAULT_PACK_STRUCT.
2390
2391 2004-09-03  Devang Patel  <dpatel@apple.com>
2392
2393         * dwarf2out.c (gen_field_die). Equate decl number to die.
2394
2395 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
2396
2397         PR target/15832
2398         * global.c (modify_reg_pav): New function.
2399         (make_accurate_live_analysis): Call the new function.  Move pavin
2400         modification by earlyclobber set into the new function.
2401
2402 2004-09-03  Andreas Schwab  <schwab@suse.de>
2403
2404         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
2405         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
2406         extended.
2407
2408 2004-09-02  Jan Beulich  <jbeulich@novell.com>
2409
2410         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
2411         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
2412         not unwind code specific ones.
2413         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
2414         Remove unwind code specific dependencies.
2415         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
2416         Remove gbl-ctors.h.
2417         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
2418         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
2419         * tsystem.h: Declare memcpy and memset when inhibit_libc.
2420
2421 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
2422
2423         * combine.c (try_combine): Delay modifying of insns which cannot
2424         be easily undone.
2425
2426 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
2427
2428         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
2429         tree-loop-im.
2430         * gcc/tree-ssa-loop.c: Ditto
2431         * gcc/tree-ssa-loop-ivcanon.c: Ditto
2432         * gcc/doc/invoke.texi: Ditto.
2433
2434 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
2435
2436         * c-decl.c (store_parm_decls_newstyle): Make static.
2437         (store_parm_decls_from): New function.
2438         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
2439         (store_parm_decls_from): New prototype.
2440
2441 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
2442
2443         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
2444         HImode with STRICT_ALIGNMENT.
2445
2446 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
2447
2448         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
2449         (TARGET_OS_CPP_BUILTINS): Likewise.
2450         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
2451         TARGET_BPABI_CPP_BUILTINS.
2452
2453 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
2454
2455         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
2456
2457 2004-09-02  Eric Christopher  <echristo@redhat.com>
2458
2459         * builtins.c (expand_builtin_cabs): Delete.
2460         (expand_builtin): If unable to fold the values do a normal
2461         library call for builtin_cab*.
2462         (fold_builtin_cabs): Depend on optimize and optimize_size.
2463         * optabs.c (expand_cmplxdiv_straight): Delete.
2464         (expand_cmplxdiv_wide): Ditto.
2465         (expand_vector_binop): Ditto.
2466         (expand_vector_unop): Ditto.
2467         (expand_complex_abs): Delete.
2468         (expand_binop): Remove calls to above functions.
2469         Remove open coding of complex arithmetic.
2470         (expand_unop): Ditto.
2471         * optabs.h: Remove prototypes.
2472
2473 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
2474
2475         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
2476         * c-tree.h (store_parm_decls_newstyle): New prototype.
2477
2478 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
2479
2480         * config/rs6000/rs6000.c (expand_block_clear): Use vector
2481         instructions if available.
2482         (expand_block_move): Likewise.
2483
2484 2004-09-03  Jan Hubicka  <jh@suse.cz>
2485
2486         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
2487
2488 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
2489
2490         * config/arm/symbian.h (LIB_SPEC): Define to empty.
2491         * config/arm/t-symbian (SHLIB_LC): Likewise.
2492
2493 2004-09-02  Paul Brook  <paul@codesourcery.com>
2494
2495         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
2496
2497 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2498
2499         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
2500         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
2501         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
2502         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
2503         (mips_issue_rate): Remove unreachable abort.
2504         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2505         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
2506         (mips_block_move_straight, print_operand_address, mips_file_start)
2507         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
2508         (mips_output_conditional_branch, mips_expand_builtin_direct)
2509         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
2510         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
2511         with gcc_assert.
2512
2513 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2514
2515         * config/mips/mips.md (*lea_high64): Change split condition to
2516         flow2_completed.  Add a peephole2 to generate a more parallel version.
2517
2518 2004-09-02  Jan Hubicka  <jh@suse.cz>
2519
2520         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
2521         GGC.
2522
2523         * ggc-page.c: include tree-flow.h.
2524         (extra_order_size_table): Add stmt_ann_d.
2525         (STAT_LABEL): Rename from ....
2526         (LABEL): ... this one.
2527         * Makefile.in (ggc-page.o): Add dependency.
2528
2529         * ggc-common.c (ggc_force_collect): New global variable.
2530         (loc_description): Add fields "freed", "collected"
2531         (ptr_hash): New static hash
2532         (ptr_hash_entry): New structure.
2533         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
2534         (ggc_record_overhead): Take ptr argument, record it
2535         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
2536         (cmp_statistics): Imrove sorting.
2537         (dump_ggc_loc_statistics): Output newly collected statistics
2538         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
2539         (ggc_free): Call ggc_free_overhead.
2540         (ggc_collect): Force collection when asked to be forced.
2541         (ggc_collect): Call ggc_prune_overhead_list.
2542         * ggc.h (ggc_force_collect): Declare
2543         (ggc_record_overhead): Update prototype.
2544         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
2545
2546 2004-09-02  James E Wilson  <wilson@specifixinc.com>
2547
2548         * common.opt (ftrapping-math): Default to on.
2549
2550 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
2551
2552         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
2553
2554 2004-09-02  Denis Chertykov  <denisc@overta.ru>
2555
2556         PR target/16884
2557         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
2558         match_scratch.
2559         (*movmemqi_insn): Likewise.
2560         (*movmemhi): Likewise.
2561         (clrmemhi): Likewise.
2562         (*clrmemqi): Likewise.
2563         (*clrmemhi): Likewise.
2564
2565 2004-09-02  Paul Brook  <paul@codesourcery.com>
2566
2567         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
2568         default_use_cxa_atexit=yes.
2569
2570 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
2571
2572         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
2573         (struct kernel_old_ucontext): Delete.
2574         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
2575         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
2576         when IN_LIGGCC2.
2577
2578 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2579
2580         * toplev.c (process_options): Fix typo.
2581
2582 2004-09-01  Richard Henderson  <rth@redhat.com>
2583
2584         PR middle-end/17258
2585         * calls.c (initialize_argument_information): Tighten pass-through
2586         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
2587         Use build_fold_addr_expr.
2588         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
2589         that assumes ADDR_EXPR allocates stack space.
2590         * fold-const.c (build_fold_addr_expr_with_type): Look through
2591         WITH_SIZE_EXPR.
2592
2593 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
2594
2595         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
2596         * ggc.h (ggc_alloc_rtx): Delete.
2597
2598 2004-09-01  Roger Sayle  <roger@eyesopen.com>
2599
2600         * expmed.c (enum alg_code): Remove long unused enumeration values.
2601         (struct mult_cost): New structure to hold the "score" of a synthetic
2602         multiply sequence, including both a rtx_cost and a latency field.
2603         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
2604         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
2605         (struct algorithm): Change type of cost field to be mult_cost.
2606         (synth_mult): Change type of cost_limit argument to be a
2607         pointer to a mult_cost.  Update all cost comparisons to use the
2608         new mult_cost infrastructure.  For alg_add_factor and
2609         alg_sub_factor operations, latency is lower than the rtx_cost.
2610         (choose_mult_variant):  Update calls to synth_mult.  Perform
2611         cost comparisons using the new mult_cost infrastructure.
2612         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
2613         to optain the total rtx_cost of a synth_mult "algorithm".
2614
2615 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
2616
2617         * config/rs6000/power4.md: Increase store latency to 12.
2618         * config/rs6000/power5.md: Same.
2619
2620 2004-09-01  James E Wilson  <wilson@specifixinc.com>
2621
2622         PR target/14064
2623         * config/avr/avr.c (avr_unique_section): Delete prototype and
2624         definition.
2625         (TARGET_ASM_UNIQUE_SECTION): Delete.
2626
2627 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2628
2629         * c-parse.in (primary): Call objc_build_message_expr(),
2630         objc_build_selector_expr(), objc_build_protocol_expr(),
2631         objc_build_encode_expr() and objc_build_string_object() instead of
2632         build_message_expr(), build_selector_expr(), build_protocol_expr(),
2633         build_encode_expr() and build_objc_string_object(), respectively.
2634         (component_decl_list2): Call objc_get_class_ivars() instead of
2635         get_class_ivars_from_name().
2636         (keyworddecl): Call objc_build_keyword_decl() instead of
2637         build_keyword_decl().
2638         (receiver): Call objc_get_class_reference() instead of
2639         get_class_reference().
2640         (reswords): Add blank line before @@ifobjc section, for clarity.
2641
2642 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
2643
2644         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
2645         to Altivec vetors.
2646
2647 2004-09-01  Wu Yongwei  <adah@sh163.net>
2648             Danny Smith  <dannysmith@users.sourceforge.net>
2649
2650         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
2651         not Windows 'DWORD'.
2652         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
2653         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
2654         (__gthr_win32_recursive_mutex_init_function): Add prototype for
2655         __GTHREAD_HIDE_WIN32API case..
2656         (__gthr_win32_recursive_mutex_lock): Likewise.
2657         (__gthr_win32_recursive_mutex_trylock): Likewise.
2658         (__gthr_win32_recursive_mutex_unlock): Likewise.
2659         (__gthread_recursive_mutex_init_function); Add definition for
2660         __GTHREAD_HIDE_WIN32API case.
2661         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
2662         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
2663         call to InterlockedDecrement.
2664
2665 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2666
2667         * tree-tailcall.c (find_tail_calls): Also fail is statement has
2668         volatile operands.
2669
2670         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
2671
2672         * doc/c-tree.texi: Document new operands for ARRAY_REF and
2673         COMPONENT_REF.
2674
2675 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2676
2677         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
2678         * common.opt (fspeculative-prefetching): New.
2679         * flags.h (flag_speculative_prefetching_set): Declare.
2680         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
2681         values.
2682         * opts.c (flag_sepculative_prefetching_set): New variable.
2683         (common_handle_option): Handle -fspeculative-prefetching.
2684         * passes.c (rest_of_compilation): Ditto.
2685         * profile.c (instrument_values, compute_value_histograms, branch_prob):
2686         Use vectors instead of arrays.
2687         * toplev.c (process_options): Handle -fspeculative-prefetching.
2688         * rtl-profile.c: Include ggc.h.
2689         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
2690         rtl_gen_one_value_profiler_no_edge_manipulation,
2691         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
2692         argument changed.
2693         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2694         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
2695         argument changed.
2696         * value-prof.c: Include ggc.h.
2697         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
2698         macros.
2699         (insn_prefetch_values_to_profile, find_mem_reference_1,
2700         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
2701         speculative_prefetching_transform): New.
2702         (value_profile_transformations): Call speculative_prefetching_transform.
2703         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
2704         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
2705         tree_find_values_to_profile, find_values to profile): Use vectors
2706         instead of arrays.
2707         (free_profiled_values): Removed.
2708         * value-prof.h (struct histogram_value): Renamed to
2709         struct histogram_value_t.
2710         (histogram_value, histogram_values): New types.
2711         (find_values_to_profile): Declaration changed.
2712         (free_profiled_values): Removed.
2713         (struct profile_hooks): Type of argument of the hooks changed to
2714         histogram_value.
2715         * doc/invoke.texi (-fspeculative-prefetching): Document.
2716
2717 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2718
2719         PR rtl-optimization/16408
2720         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
2721
2722 2004-09-01  Richard Henderson  <rth@redhat.com>
2723
2724         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
2725         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
2726
2727 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2728
2729         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
2730
2731 2004-09-01  Mike Stump  <mrs@apple.com>
2732
2733         * config/darwin.c (machopic_symbol_defined_p): In addition to
2734         being SYMBOL_REF_LOCAL_P, a symbol must also be
2735         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
2736         defined in this output file, or translation unit in the case
2737         of IMA not being used.
2738         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
2739         never need .indirect_symbol when indirecting.
2740
2741 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2742
2743         * Makefile.in (bb-reorder.o): Add several dependencies.
2744
2745 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2746
2747         * fold-const.c (operand_equal_p): Require equal sign also for
2748         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
2749
2750 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2751
2752         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
2753         for use in configargs.h.  Put the cname in a separate variable.  Use
2754         that to set target_cpu_default2.
2755
2756 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
2757             Nick Clifton  <nickc@redhat.com>
2758
2759         * config/sh/sh.md ("length"): Increase branch length when
2760         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
2761         constant, 2 byte for aligning the constant.
2762
2763 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2764
2765         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
2766         CPU.
2767         (arm7tdmi-s): New CPU name.
2768         * arm/arm.c (ARM_CORE): Update for new format.
2769         * arm/arm.h (ARM_CORE): Likewise.
2770         * arm/gentune.sh: Update for extra field.
2771         * config.gcc: Likewise.
2772         * arm/arm-tune.md: Regenerate.
2773         * doc/invoke.texi: Document the real processor names for ARM cpus.
2774
2775 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2776
2777         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
2778         (floatdidf): New functions.
2779         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
2780         (floatdisf): New functions.
2781         * t-arm-elf: Use them.
2782
2783 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2784
2785         * c-common.h (lookup_interface): Remove prototype.
2786         (is_class_name): Rename to objc_is_class_name.
2787         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2788         (get_current_scope): Rename to objc_get_current_scope.
2789         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
2790         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
2791         (yylexname): Call objc_is_class_name() instead of is_class_name().
2792         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
2793         instead of lookup_objc_ivar().
2794         * stub-objc.c (lookup_interface): Remove stub.
2795         (is_class_name): Rename to objc_is_class_name.
2796         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2797
2798 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2799
2800         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
2801         * config/arm/lib1funcs.asm: Do not include supplemental .S files
2802         when compiling for Symbian.
2803         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
2804         (TARGET_OS_CPP_BUILTINS): Likewise.
2805         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
2806
2807 2004-08-31  Stan Shebs  <shebs@apple.com>
2808
2809         * toplev.c (process_options): Ensure debug_hooks is initialized.
2810
2811 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2812
2813         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
2814         * target.h (cxx): Add export_class_data.
2815         * config/arm/arm.c (arm_cxx_export_class_data): New function.
2816         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
2817         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
2818
2819 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2820
2821         * config/sh/sh.c (output_branch): Check the insn length possibly
2822         in the delayed slot.
2823
2824 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2825
2826         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
2827         blank after ')'.
2828         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
2829
2830         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
2831         (c_sizeof_of_alignof_type): Likewise.
2832         * expr.c (array_ref_element_size): Likewise.
2833         (highest_pow2_factor_for_target): Likewise.
2834         * gimplify.c (canonicalize_addr_expr): Likewise.
2835         (gimplify_compound_lval): Likewise.
2836         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
2837         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2838         * varasm.c (assemble_variable): Likewise.
2839         (output_constant_def_contents): Alignments are unsigned.
2840
2841 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2842             Jeff Law  <law@redhat.com>
2843
2844         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
2845         gets modified.
2846
2847 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2848
2849         * hooks.c (hook_bool_void_true): New function.
2850         * hooks.h (hook_bool_void_true): Declare.
2851         * target-def.h (TARGET_CXX): Add
2852         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
2853         * target.h (struct cxx): Add key_method_may_be_inline.
2854         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
2855         function.
2856         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
2857         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
2858         __THUMB_INTERWORK.
2859
2860 2004-08-31  Denis Chertykov  <denisc@overta.ru>
2861
2862         PR target/15417
2863         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
2864         frame pointer register only in Pmode while reload in progress.
2865
2866 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
2867
2868         PR target/15334
2869         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
2870         because it breaks the 32-bit shift patterns that rely on a match_dup.
2871
2872 2004-08-31  Matt Austern  <austern@apple.com>
2873
2874         * config/darwin.c (darwin_make_decl_one_only): Allocate section
2875         names once per compilation, instead of once per symbol.
2876
2877 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
2878
2879         * Makefile.in (build_subdir): New substitution.
2880         (fixinc.sh): Simplify heavily since fixincludes is already built.
2881         (stmp-fixinc): Depend on specs.ready.
2882         (install-mkheaders): Use new location of fixincludes.
2883         (clean): Do not descend into fixinc.
2884         (FORBUILD): Replace with ../$(build_subdir).
2885         * configure.ac (build_subdir): Substitute.
2886         (FORBUILD): Do not set.
2887         (all_outputs): Remove fixinc/Makefile.
2888         (default commands): Do not create links in fixinc.
2889         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
2890         the fixincludes configuration steps and substituting
2891         @FIXINCL@ in fixinc.in.
2892         * fixinc.in: New, from fixinc/fixincl.sh.
2893
2894         * fixinc/*: Removed.
2895
2896 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2897
2898         * attribs.c (strip_attrs): Remove.
2899         (split_specs_attrs): Move ...
2900         * c-decl.c: ... to here.
2901         * tree.h (split_specs_attrs, strip_attrs): Remove.
2902         * c-tree.h (split_specs_attrs): Declare.
2903
2904 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2905
2906         * read-rtl.c: Disable RTL checking.
2907         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
2908
2909 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2910
2911         * config/mips/mips.md (fcond): New code macro and attribute.
2912         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
2913         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
2914         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
2915
2916 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
2917
2918         Revert:
2919         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
2920         PR rtl-optimization/16590
2921         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2922
2923 2004-08-30  Andrew Pinski  <apinski@apple.com>
2924
2925         * hard-reg-set.h:
2926         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
2927         * ChangeLog: Fix previous ChangeLog entry.
2928
2929         PR rtl-opt/13987
2930         * config.host (use_long_long_for_widest_fast_int): New, default is
2931         off.
2932         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
2933         * configure.ac: If use_long_long_for_widest_fast_int, then
2934         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
2935         * configure: Regenerate.
2936         * config.in: Regenerate.
2937         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
2938         New: widest integer type supported efficiently in hardware for the
2939         host.
2940         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
2941         HOST_BITS_PER_WIDEST_FAST_INT.
2942         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
2943         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
2944         HOST_WIDEST_FAST_INT
2945         instead of HOST_WIDE_INT.
2946         (HARD_REG_SET_LONGS): Likewise.
2947         (UHOST_BITS_PER_WIDE_INT): Likewise.
2948         Change the checks for the fast cases to be based on
2949         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
2950
2951 2004-08-30  Steven Bosscher  <stevenb@suse.de>
2952
2953         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
2954         not the pointers.
2955
2956 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
2957
2958         PR 12738
2959         PR 17205
2960         Radar 3460526
2961         Radar 3775729
2962         * c-decl.c (grokdeclarator): Produce error for 'static' on local
2963         function declaration.
2964
2965 2004-08-30  Richard Henderson  <rth@redhat.com>
2966
2967         * expr.c (array_ref_element_size): Force aligned_size back to
2968         sizetype.
2969         (component_ref_field_offset): Similarly for aligned_offset.
2970         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
2971         low-bound, element-size, field-offset fields rather than
2972         computed values.
2973
2974 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2975
2976         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
2977         redundant code.
2978
2979 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2980
2981         * c-tree.h (struct language_function): Add arg_info element.
2982         * c-decl.c (current_function_arg_info): New.
2983         (grokdeclarator, store_parm_decls): Use it instead of
2984         DECL_ARGUMENTS.
2985         (c_push_function_context, c_pop_function_context): Save and
2986         restore it.
2987
2988 2004-08-30  Richard Henderson  <rth@redhat.com>
2989
2990         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
2991         COMPONENT_REF to pointer arithmetic.
2992         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
2993         constant "c" as a valid constant initializer.  Allow narrowing of
2994         differences against the same base object, for any base object.
2995
2996 2004-08-30  Richard Henderson  <rth@redhat.com>
2997
2998         * expr.c (expand_expr_addr_expr): New.
2999         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
3000
3001 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3002
3003         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
3004         (mips_fp_condition): New enum.
3005         (mips_fp_conditions): New array.
3006         (print_fcc_operand): Delete.
3007         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
3008         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
3009         (builtin_description): Add "cond" field.
3010         (DIRECT_BUILTIN): Initialize it.
3011         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
3012         into INSN and CODE.  Initialize the "cond" field.
3013         (CMP_BUILTINS): Update accordingly.
3014         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
3015         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
3016         mips_fp_condition as argument.  Make it the final operand of the
3017         comparison instruction.
3018         (mips_expand_builtin): Update accordingly.
3019         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
3020         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
3021         the gaps.
3022         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
3023         Don't use the 'Q' operand prefix; just print the operand normally.
3024         (mips_cabs_*, mips_c_*): Delete, replacing with...
3025         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
3026         patterns.  Split the 4s versions into 2 ps patterns after reload.
3027
3028 2004-08-30  Richard Henderson  <rth@redhat.com>
3029
3030         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
3031         assuming an ADDR_EXPR is non-null.
3032
3033 2004-08-30  Jason Merrill  <jason@redhat.com>
3034
3035         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
3036
3037 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3038
3039         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
3040         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
3041         gcc_assert and gcc_unreachable instead of abort.
3042         * alloc-pool.c (abort, fancy_abort): Remove.
3043         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
3044         gcc_assert or gcc_unreachable.
3045         * attribs.c (init_attributes, decl_attributes): Likewise.
3046         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
3047         mark_bb_for_unlikely_executed_section,
3048         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
3049         fix_crossing_unconditional_branches):  Likewise.
3050         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
3051         bitmap_operation):  Likewise.
3052         * bt-load.c (insn_sets_btr_p, augment_live_range,
3053         move_btr_def):  Likewise.
3054         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
3055         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
3056         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
3057         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
3058         expand_builtin_memcmp, expand_builtin_args_info,
3059         std_gimplify_va_arg_expr, expand_builtin_unop,
3060         expand_builtin_fputs, expand_builtin_profile_func,
3061         expand_builtin_fork_or_exec, fold_builtin_bitop,
3062         fold_builtin_classify, fold_builtin_fputs): Likewise.
3063
3064 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3065
3066         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
3067         * gcov.c (abort): Remove undef.
3068
3069         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
3070         (struct tree_binfo): Remove primary field.
3071
3072 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3073
3074         * fixinc/Makefile.in (machname.h): Remove.
3075         (fixincl.x): Do not pass $@ to genfixes.
3076         * fixinc/genfixes: Remove code to produce machname.h.
3077         * fixinc/fixincl.sh: Move it here instead.
3078         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
3079         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
3080         return a bool indicating whether pz_mn_name_pat is NULL.
3081         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
3082         Declare extern C variables for the ENV_TABLE.
3083         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
3084         instead use the result of mn_get_regexps.
3085         * fixinc/fixtests.c: Likewise.
3086
3087 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3088
3089         * configure.ac: Do not run fixincludes after stage1 during
3090         toplevel bootstrap.
3091         * configure: Regenerate.
3092
3093 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
3094
3095         * sched-deps.c (get_condition): Partially revert previous, by never
3096         trying to extract the condition from a condjump.
3097
3098 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3099
3100         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
3101         (handle_visibility_attribute, c_determine_visibility): Likewise.
3102         * c-common.h (my_friendly_assert): Remove.
3103
3104 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3105
3106         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
3107         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
3108         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
3109         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
3110         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
3111
3112 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
3113
3114         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
3115         in COMPONENT_REF nodes.
3116
3117 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3118
3119         PR c++/15378
3120         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
3121         global_dc->warning_as_error_requested.
3122         * diagnostic.c (diagnostic_initialize): Tidy.
3123         * diagnostic.h (diagnostic_context::x_data): Remove
3124         (diagnostic_context::issue_warnings_are_errors_message): Rename
3125         from warnings_are_errors_message.
3126         (diagnostic_context::warning_as_error_requested): New.
3127
3128 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
3129
3130         * sched-deps.c (get_condition): Fix breakage in previous patch.
3131
3132 2004-08-30  Paul Brook  <paul@codesourcery.com>
3133
3134         * doc/install.texi: Fix broken mpfr link.
3135
3136 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
3137
3138         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
3139         other FreeBSD platforms.
3140
3141 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3142
3143         * arm.h (REVERSE_CONDITION): Define.
3144         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
3145
3146 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3147
3148         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
3149         just the codes, call reversed_comparison_code ().
3150         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
3151         (not_reg_cond): Use reversed_comparison_code.
3152         (and_reg_cond): Likewise.
3153         * ifcvt.c (cond_exec_process_if_block): Likewise.
3154         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
3155
3156 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3157
3158         * sched-deps.c (get_condition): Rewrite using jump support functions.
3159         Use reversed_comparison_code.
3160         (conditions_mutex_p): Use reversed_comparison_code.
3161
3162 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3163
3164         * config/mips/mips.c (override_options): Disable hot/cold partitioning
3165         for MIPS16.
3166
3167 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3168
3169         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
3170         (mips_function_type): Move to mips.c.
3171         * config/mips/mips.c (mips_builtin_type): New enum.
3172         (builtin_description): Replace code and ftype with builtin_type
3173         and function_type.
3174         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
3175         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
3176         (CODE_FOR_mips_abs_ps): Define.
3177         (mips_bdesc): Use new macros.
3178         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
3179         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
3180         (mips_expand_builtin_direct): New function.
3181         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
3182         builtin.  Replace boolean parameter with builtin_type.
3183         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
3184         (mips_expand_4s_compare_builtin): Delete, replacing with...
3185         (mips_expand_builtin_compare): ...this new function.
3186
3187 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
3188
3189         PR rtl-optimization/16590
3190         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
3191
3192 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
3193
3194         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
3195         * tree-ssa-propagate.c: Fix documentation.
3196
3197 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3198
3199         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
3200         (mov[sd]fcc): Likewise.
3201
3202 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3203
3204         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
3205
3206 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3207
3208         * config/mips/mips.md (divide_condition): New mode attribute.
3209         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
3210         (sqrt[sd]f3): Redefine using SCALARF.
3211         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
3212         patterns.
3213
3214 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3215
3216         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
3217         (loadx, storex, fmt, UNITMODE): New mode attributes.
3218         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
3219         (mul[sd]f3): Redefine using :SCALARF.
3220         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
3221         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
3222         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
3223         Check TARGET_FUSED_MADD for V2SF too.
3224         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
3225         were already named.
3226         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
3227         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
3228
3229 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3230
3231         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
3232         V2SF_type_node if it will be needed.
3233
3234 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3235
3236         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
3237         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
3238         (mips_prepare_builtin_target): New function.
3239         (mips_expand_builtin): Use them.  Update calls to subroutines.
3240         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
3241         cmp_choice with a boolean argument to select between movt and movf.
3242         Take the comparison's icode as an argument, not the function's fcode.
3243         (mips_expand_compare_builtin): New function.  Rename existing function
3244         to mips_expand_scalar_compare_builtin.
3245         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
3246         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
3247         comparison's icode as an argument, not the builtin's fcode.
3248
3249 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3250
3251         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
3252         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
3253         registers are false and -1 if all registers are true.
3254         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
3255         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
3256         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
3257         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
3258         (bc1any2t, bc1any2f): Likewise CCV2.
3259         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
3260
3261 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3262
3263         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
3264         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
3265         UNSPEC rather than an IF_THEN_ELSE.
3266         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
3267         mips_cond_move_tf_ps by name.
3268
3269 2004-08-29  Chao-ying Fu  <fu@mips.com>
3270             James E Wilson  <wilson@specifixinc.com>
3271
3272         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
3273         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
3274         * config/mips/mips-ps-3d.md: New file.
3275         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
3276         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3277         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
3278         (mips_output_move): Emit "mov.ps" for V2SFmode.
3279         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
3280         MODE_VECTOR_FLOAT.
3281         (override_options): Check if TARGET_MIPS3D and there was an explicit
3282         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
3283         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
3284         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
3285         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
3286         and allow CCV2 and CCV4 to occupy two and four CC registers.
3287         (print_fcc_operand): New function.
3288         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
3289         %Z to call print_fcc_operand.
3290         (mips_function_value): Handle MODE_VECTOR_FLOAT.
3291         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
3292         (mips_vector_mode_supported_p): New function.
3293         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
3294         (builtin_description): New struct.
3295         (mips_bdesc): New array of struct builtin_description.
3296         (mips_expand_builtin, mips_init_builtins,
3297         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
3298         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
3299         functions.
3300         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
3301         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
3302         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
3303         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
3304         "-mips3d", and "-mno-mips3d".
3305         (ASM_SPEC): Map -mips3d to -mips3d in gas.
3306         (EXTRA_CONSTRAINT_Y): New macro.
3307         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
3308         multi-letter constraint 'Y'.
3309         (CONSTRAINT_LEN): New macro.
3310         (enum mips_builtins): New for MIPS builtin functions.
3311         (enum mips_function_type): New for the types of MIPS builtin functions.
3312         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
3313         * config/mips/mips.md: New constants for paired single and MIPS-3D
3314         instructions.  Include the new mips-ps-3d.md file.
3315         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
3316         movv2sf_hardfloat_64bit): New named patterns.
3317         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
3318         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
3319         sdxc1_v2sf_di): New unnamed patterns.
3320         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
3321         const_vector support.
3322         (const_0_or_1_operand): New predicate.
3323         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
3324
3325 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
3326
3327         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
3328         (tree-ssa-propagate.o): New rule.
3329         (GTFILES): Add tree-ssa-propagate.c.
3330         * tree-flow.h (struct stmt_ann_d): Remove field
3331         in_ccp_worklist.
3332         * tree-ssa-propagate.c: New file.
3333         * tree-ssa-propagate.h: New file.
3334         * tree-ssa-ccp.c: Re-write to use the routines from
3335         tree-ssa-propagate.c.
3336
3337 2004-08-28  Andrew Pinski  <apinski@apple.com>
3338
3339         * tree-ssa-loop.c: Remove extra include of basic-block.h.
3340
3341 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
3342
3343         * c-common.h: Update comments about ObjC/ObjC++ entry points.
3344         (objc_is_reserved_word): New prototype.
3345         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
3346         separate section; these are call-backs.
3347         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
3348         ObjC/ObjC++ "@" keywords.
3349         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
3350         prototypes; they already live in c-common.h.
3351         * stub-objc.c: Update copyright notice.
3352         (objc_is_reserved_word): New stub.
3353
3354 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
3355
3356         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
3357         even when not checking.
3358
3359 2004-08-27  Jason Merrill  <jason@redhat.com>
3360
3361         PR c++/13684
3362         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
3363         (gimple_push_cleanup): Add eh_only parm.
3364         (gimplify_target_expr): Pass it.
3365         * c.opt (-fno-threadsafe-statics): New option.
3366         * c-opts.c (c_common_handle_option): Handle it.
3367         * c-common.h (flag_threadsafe_statics): Declare it.
3368         * c-common.c (flag_threadsafe_statics): Record it.
3369         * doc/invoke.texi: Document it.
3370         * tsystem.h (_GNU_SOURCE): Define.
3371         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
3372         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
3373         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
3374         (__gthread_recursive_mutex_init_function): New fn.
3375         (__gthread_recursive_mutex_lock): New fn.
3376         (__gthread_recursive_mutex_trylock): New fn.
3377         (__gthread_recursive_mutex_unlock): New fn.
3378         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
3379         * gthr-win32.h, gthr-vxworks.h: Likewise.
3380         * gthr.h: Document.
3381
3382 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
3383
3384         * config/rs6000/rs6000.c (rs6000_override_options): Increase
3385         maximum skip to 15.  Set function alignment, jump alignment, and
3386         loop alignment to 16 for processors that form dispatch groups.
3387         (rs6000_rtx_costs): outer_code is used.
3388
3389 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
3390
3391         * stor-layout.c (sizetype_set): Remove.
3392         (set_sizetype): Don't test or set it.
3393
3394         * tree.h (size_int_type): Remove.
3395         * fold-const.c: Do not #include gt-fold-const.h.
3396         (size_htab_hash, size_htab_eq): Remove.
3397         (size_int_kind): Use build_int_cst.
3398         (new_const, size_htab): Remove.
3399         (size_int_type): Remove.
3400         (round_up): Use build_int_cst.
3401         (round_down): Likewise. Remove spurious constant build.
3402
3403 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
3404
3405         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
3406         Add is_release variable, use it for --enable-werror and
3407         --enable-checking defaults.
3408         * system.h (gcc_assert, gcc_unreachable): New.
3409         * doc/install.texi (--enable-checking): Update.
3410         * configure, config.in: Rebuilt.
3411
3412 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
3413
3414         * rtl.h (read_rtx): Change prototype.
3415         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
3416         line number.  Return true on success.
3417         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
3418         callers accordingly.
3419
3420 2004-08-26  Richard Henderson  <rth@redhat.com>
3421
3422         * c-typeck.c (build_offsetof): Remove.
3423         * c-tree.h (build_offsetof): Remove.
3424         * c-common.c (fold_offsetof_1, fold_offsetof): New.
3425         * c-common.h (fold_offsetof): Declare.
3426         * c-parse.in (offsetof_base): New.
3427         (offsetof_member_designator): Use it.  Build references, not just
3428         a tree list.
3429         (primary): Use fold_offsetof, not build_offsetof.
3430
3431 2004-08-26  Richard Henderson  <rth@redhat.com>
3432
3433         * tree.c (staticp): Return the static object.
3434         * tree.h (staticp): Update decl.
3435         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
3436         * langhooks.c (lhd_staticp): Return NULL_TREE.
3437         * langhooks-def.h (lhd_staticp): Update decl.
3438         * c-common.c (c_staticp): Return the static object.
3439         * c-common.h (c_staticp): Update decl.
3440
3441 2004-08-26  Richard Henderson  <rth@redhat.com>
3442
3443         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
3444         modes.
3445
3446 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3447
3448         PR c/13801
3449         * c-decl.c (struct c_binding): Add type and inner_comp fields.
3450         (bind): Set type and inner_comp fields.
3451         (pop_scope): Restore type of decl to the correct type from an
3452         outer scope.  Give error when popping file scope for incomplete
3453         arrays completed incompatibly with default initialization in an
3454         inner scope.
3455         (diagnose_mismatched_decls): Handle externs with initializers at
3456         block scope.
3457         (pushdecl): Set type of external declaration at block scope based
3458         only on the visible declarations.  Save type when changing the
3459         type of a declaration.  Merge an external declaration at block
3460         scope with a visible static declaration at file scope.
3461         (implicitly_declare): Give recycled old declaration the new type
3462         except for incompatible declarations of built-in functions, saving
3463         the old type.
3464
3465 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
3466
3467         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
3468
3469 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
3470
3471         * tree-alias-common.c (gate_pta): New function.
3472         (pass_build_pta): Use it.
3473         (pass_del_pta): Use it.
3474         (delete_alias_vars): Don't check flag_tree_points_to.
3475
3476 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3477
3478         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
3479         TFmode as additional register mode cloberred by call.
3480
3481 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3482
3483         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
3484         parallel pattern for library call returning DImode in
3485         mixed mode.
3486
3487 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3488
3489         * config/rs6000/rs6000.c (function_arg): Generate parallel
3490         pattern for more split args.
3491
3492 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3493
3494         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
3495         either gen_movdi_di_update or gen_movdi_si_update depending on
3496         target mode.
3497         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
3498         to generate two versions.
3499
3500 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
3501
3502         * Makefile.in (lambda-code.o): New.
3503         (lambda-trans.o): Ditto.
3504         (TREE_DATA_REF_H): Ditto.
3505         (LAMBDA_H): Ditto.
3506         (lambda-mat.o): Use LAMBDA_H.
3507         (tree-data-ref.o): Ditto.
3508         * lambda-code.c: New file.  Lambda code generation algorithm.
3509         * lambda-trans.c: Ditto. Lambda transformation matrix support.
3510         * lambda.h: Add lambda loop structures.
3511         Add lambda loopnest structures.
3512         Add lambda body vector structure.
3513         Add lambda linear expression structures.
3514         Add prototypes for functions in new files.
3515         * lambda-mat.c: Include tree.h
3516
3517 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
3518             Sebastian Pop  <pop@cri.ensmp.fr>
3519
3520         * tree-data-ref.h: Include lambda.h
3521         (free_dependence_relation): Declared here.
3522         (free_dependence_relations): Ditto.
3523         (free_data_refs): Ditto.
3524         * tree-data-ref.c (free_dependence_relation): New function.
3525         (free_dependence_relations): Ditto.
3526         (free_data_refs): Ditot.
3527         (analyze_all_data_dependences): Free datarefs and dependence_relations.
3528         (build_classic_dist_vector): Store in the dependence_relations the
3529         information. Each arc in the dependence_relations graph is labelled
3530         with the distance and direction vectors.
3531         (build_classic_dir_vector): Ditto.
3532         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
3533         Now computes again the whole dependence graph including read-read
3534         relations.
3535         (compute_data_dependences_for_loop): Now dependence_relations contains
3536         all the data, and thus it doesn't need to initialize the classic_dir
3537         and classic_dist vectors.
3538         (analyze_all_data_dependences): Adjusted for using the new interface of
3539         compute_data_dependences_for_loop.  Remove the statistics dump.
3540
3541 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
3542
3543         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
3544         (xtensa_expand_block_move): Update comment.
3545         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
3546
3547 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
3548
3549         PR target/13506
3550         * toplev.c (crash_signal): If we crashed while emitting
3551         a user asm, then die more gracefully.
3552
3553 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3554
3555         PR target/17119.
3556         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
3557         checking for a valid constant, regardless of sign.
3558
3559 2004-08-25  Richard Henderson  <rth@redhat.com>
3560
3561         PR target/16974
3562         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
3563         if the constant satisfies add_operand.
3564
3565 2004-08-25  Richard Henderson  <rth@redhat.com>
3566
3567         PR debug/10695
3568         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
3569         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
3570         unwind info for >16-bit frames.
3571
3572 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
3573
3574         PR target/17171
3575         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
3576
3577 2004-08-25  Richard Henderson  <rth@redhat.com>
3578
3579         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
3580         (TARGET_CANNOT_FORCE_CONST_MEM): New.
3581
3582 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3583
3584         * doc/tree-ssa.texi: Document new operand iterator.
3585
3586 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
3587
3588         PR target/16480
3589         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
3590         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
3591         as PLUS base regs.
3592
3593 2005-08-28  Paul Brook  <paul@codesourcery.com>
3594
3595         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
3596         -mfpu=vfp -march=armv5t
3597         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
3598
3599 2004-08-25  Richard Henderson  <rth@redhat.com>
3600
3601         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3602         * target.h (struct gcc_target): Add scalar_mode_supported_p.
3603         * targhooks.c (default_scalar_mode_supported_p): New.
3604         * targhooks.h (default_scalar_mode_supported_p): Declare.
3605         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
3606
3607         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
3608         before attempting to create types.  Tidy.
3609         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
3610
3611         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
3612         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3613
3614 2004-08-25  Richard Henderson  <rth@redhat.com>
3615
3616         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3617         set REAL_MODE_FORMAT for TFmode.
3618
3619 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3620
3621         * c-decl.c (grokparm): New function.
3622         * c-tree.h (grokparm): New prototype.
3623
3624 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3625
3626         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
3627         iterator controlling structure.
3628         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
3629         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
3630         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
3631         iterator flags.
3632         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
3633         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
3634         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
3635         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
3636         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
3637         Empty operand pointers.
3638         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
3639         (op_iter_next_use): New.  Return next use_operand_p.
3640         (op_iter_next_def): New.  Return next def_operand_p.
3641         (op_iter_next_tree): New.  Return next operands as a tree.
3642         (op_iter_init): New.  Initialize an iterator structure.
3643         (op_iter_init_use): New.  Initialize structure and get the first use.
3644         (op_iter_init_def): New.  Initialize structure and get the first def.
3645         (op_iter_init_tree): New.  Initialize structure and get the first tree.
3646         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
3647         (op_iter_init_maydef): New.  Initialize structure and get the first
3648         V_MAY_DEF operands.
3649         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
3650         * tree-dfa.c (compute_immediate_uses_for_stmt,
3651         redirect_immediate_uses): Use new operand iterator.
3652         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
3653         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
3654         operands instead of using *_disappeared_p routines.
3655         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
3656         ssa_rewrite_stmt): Use new operand iterator.
3657         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3658         rewrite_trees): Use new operand iterator.
3659         * tree-pretty-print.c (dump_vops): Use new operand iterator.
3660         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
3661         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
3662         dump_points_to_info): Use new operand iterator.
3663         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
3664         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
3665         operand iterator.
3666         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
3667         propagate_necessity): Use new operand iterator.
3668         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
3669         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
3670         a parameter instead of a stmt_ann_t.
3671         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
3672         build_tree_conflict_graph): Use new operand iterator.
3673         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
3674         rewrite_mem_refs): Use new operand iterator.
3675         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
3676         check_loop_closed_ssa_use): Use new operand iterator.
3677         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
3678         * tree-ssanames.c (release_defs): Use new operand iterator.
3679         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
3680
3681 2004-08-25  Adam Nemet  <anemet@lnxw.com>
3682
3683         * tlink.c (initial_cwd): New variable.
3684         (tlink_init): Initialize it.
3685         (recompile_files): Use tlink_execute() instead of system().  Don't
3686         duplicate verbose output of collect_execute.  Restore initial_cwd.
3687         Update comment before the function.
3688
3689 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3690
3691         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
3692         accept) a cast from one Objective-C pointer type to another.
3693
3694 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
3695
3696         * doc/install.texi: Document that libstdc++-v3 requires
3697         now automake 1.9.1.
3698
3699 2004-08-25  Caroline Tice  <ctice@apple.com>
3700
3701         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
3702         to comments at start of function.
3703         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
3704         comment.
3705         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3706         merge_blocks_move_predecessor_nojumps,
3707         merge_blocks_move_successor_nojumps, merge_blocks_move,
3708         try_crossjump_to_edge, try_crossjump_bb): Likewise.
3709         * cfglayout.c (fixup_reorder_chain): Likewise.
3710         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
3711         cfg_layout_can_merge_blocks_p):  Likewise.
3712         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
3713         * passes.c (rest_of_compilation): Update comments for calling
3714         optimization that partitions hot/cold basic blocks.
3715         * doc/invoke.texi:  Update documentation of
3716         freorder-blocks-and-partition flag.
3717
3718 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3719
3720         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
3721         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
3722
3723 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3724
3725         * config/mips/mips.md (any_shift): New code macro.
3726         (optab, insn): New code attributes.
3727         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
3728         Use the standard rather than internal patterns for the MIPS16
3729         double-shift optimization.
3730         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
3731         Redefine using :GPR and any_shift.
3732         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
3733         to cover all three shifts.
3734         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
3735         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
3736         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
3737
3738 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
3739
3740         * gimplify.c (lookup_tmp_var): Separate temporaries when not
3741         optimizing.
3742
3743 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3744
3745         PR libstdc++/17005 (fix for HP-UX 11.11)
3746         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
3747         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
3748         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
3749         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
3750         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
3751         (LINK_SPEC): Handle march=1.0 option.
3752         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3753         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
3754         (SUBTARGET_OPTIONS): New define.
3755         (LINK_SPEC): Handle march=1.0 option.
3756         (STARTFILE_SPEC): New define.
3757         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3758         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
3759         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
3760         (SUBTARGET_OPTIONS): New define.
3761         (LINK_SPEC): Handle march=1.0 option.
3762         (STARTFILE_SPEC): New define.
3763         * config/pa/pa.c (override_options): Add code to process -munix= option.
3764         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
3765         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
3766         defines.
3767         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
3768         (SUBTARGET_OPTIONS): Provide default define.
3769         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
3770         STANDARD_STARTFILE_PREFIX_2): New defines.
3771         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
3772         (ENDFILE_SPEC): Use %O.
3773         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
3774         Mention issue caused by changing namespace and runtime to UNIX 95/98.
3775         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
3776         Document -munix=std option.
3777
3778 2004-08-25  Steven Bosscher  <stevenb@suse.de>
3779
3780         * cse.c (cse_around_loop, cse_check_loop_start,
3781         cse_set_around_loop): Remove.
3782         (cse_basic_block): Remove the around_loop argument.
3783         (cse_end_of_basic_block): Remove the after_loop argument.
3784         (cse_main): Likewise.
3785         * rtl.h (cse_main): Update prototype.
3786         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
3787         rest_of_handle_gcse): Update cse_main calls.
3788
3789 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
3790
3791         * tree.h  (build_int_cst): New, sign extended constant.
3792         (build_int_cstu): New, zero extended constant.
3793         (build_int_cst_wide): Renamed from build_int_cst.
3794         * tree.c (build_int_cst, build_int_cstu): New.
3795         (build_int_cst_wide): Renamed from build_int_cst.
3796         (make_vector_type, build_common_tree_nodes,
3797         build_common_tree_nodes_2): Adjust build_int_cst calls.
3798         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3799         expand_builtin_strpbrk, expand_builtin_fputs,
3800         build_string_literal, expand_builtin_printf,
3801         expand_builtin_sprintf, fold_builtin_classify_type,
3802         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
3803         fold_builtin_toascii, fold_builtin_isdigit,
3804         simplify_builtin_strstr, simplify_builtin_strpbrk,
3805         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
3806         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
3807         DEF_ATTR_INT): Likewise.
3808         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
3809         Likewise.
3810         * c-lex.c (interpret_integer, lex_charconst): Likewise.
3811         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
3812         * c-pretty-print.c (pp_c_integer_constant): Likewise.
3813         * c-typeck.c (really_start_incremental_init, push_init_level,
3814         set_nonincremental_init_from_string): Likewise.
3815         * calls.c (load_register_parameters): Likewise.
3816         convert.c (convert_to_pointer): Likewise.
3817         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3818         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
3819         build_gcov_info): Likewise.
3820         * except.c (init_eh, assign_filter_values): Likewise.
3821         * expmed.c (store_fixed_bit_field, extract_bit_field,
3822         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3823         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3824         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3825         * expr.c (convert_move, emit_group_load, emit_group_store,
3826         expand_assignment, store_constructor, store_field,
3827         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3828         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3829         invert_truthvalue, optimize_bit_field_compare,
3830         decode_field_reference, all_ones_mask_p, constant_boolean_node,
3831         fold_div_compare, fold, fold_read_from_constant_string,
3832         fold_negate_const, fold_abs_const, fold_not_const, round_up,
3833         round_down): Likewise.
3834         * function.c (assign_parm_setup_block): Likewise.
3835         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
3836         Likewise.
3837         * stor-layout.c (layout_type, initialize_sizetypes,
3838         set_min_and_max_values_for_integral_type): Likewise.
3839         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3840         reset_evolution_in_loop): Likewise.
3841         * tree-chrec.h (build_polynomial_chrec): Likewise.
3842         * tree-complex.c (build_replicated_const): Likewise.
3843         * tree-eh.c (honor_protect_cleanup_actions,
3844         lower_try_finally_onedest, lower_try_finally_copy,
3845         lower_try_finally_switch): Likewise.
3846         * tree-mudflap.c (mf_build_string, mx_register_decls,
3847         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3848         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3849         * tree-pretty-print.c (dump_generic_node): Likewise.
3850         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3851         Likewise.
3852         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3853         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3854         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3855         Likewise.
3856         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
3857         canonicalize_loop_induction_variables): Likewise.
3858         * tree-vectorizer.c (vect_create_index_for_array_ref,
3859         vect_transform_loop_bound, vect_compute_data_ref_alignment):
3860         Likewise.
3861
3862         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
3863         alpha_gimplify_va_arg_1): Likewise.
3864         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3865         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3866         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3867         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3868         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3869         mips_gimplify_va_arg_expr): Likewise.
3870         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3871         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3872         add_compiler_branch_island): Likewise.
3873         * config/s390/s390.c (s390_va_start): Likewise.
3874         * config/sh/sh.c (sh_va_start): Likewise.
3875         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3876         Likewise.
3877         * config/xtensa/xtensa.c (xtensa_va_start,
3878         xtensa_gimplify_va_arg_expr): Likewise.
3879
3880         * objc/objc-act.c (build_objc_string_object,
3881         build_objc_symtab_template, init_def_list, init_objc_symtab,
3882         init_module_descriptor, generate_static_references,
3883         build_selector_translation_table, get_proto_encoding,
3884         build_typed_selector_reference, build_selector_reference,
3885         build_next_objc_exception_stuff,
3886         build_method_prototype_list_template, generate_descriptor_table,
3887         generate_protocols, build_protocol_initializer,
3888         build_ivar_list_template, build_method_list_template,
3889         build_ivar_list_initializer, generate_ivars_list,
3890         generate_dispatch_table, generate_protocol_list,
3891         build_category_initializer, build_shared_structure_initializer,
3892         generate_shared_structures, handle_impent,
3893         generate_objc_image_info): Likewise.
3894
3895 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3896
3897         * cfglayout.c (duplicate_insn_chain): Remove references to
3898         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
3899         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
3900         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
3901         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
3902         and NOTE_INSN_LOOP_CONT.
3903         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
3904         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
3905         and NOTE_INSN_LOOP_CONT.
3906         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
3907         check_dbra_loop, loop_dump_aux): Remove references to removed notes
3908         and fields.
3909         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
3910         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
3911         references to removed notes and fields.
3912         (subtract_reg_term, ujump_to_loop_cont): Remove.
3913
3914 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
3915
3916         * doc/install.texi: Document that libcpp does not require
3917         Automake any longer.  Document that Automake 1.9.1 should
3918         work everywhere.
3919
3920 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3921
3922         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
3923         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
3924         DWARF_DEBUGGING_INFO from choice-of-definition chain;
3925         restructure using C89 features (#elif, #error).
3926         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
3927         * config/sh/sh.h: Remove references to DWARF_DEBUG.
3928         * doc/invoke.texi: Remove references to DWARF version 1;
3929         clarify why -gdwarf-2<n> doesn't work.
3930
3931 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3932
3933         * basic-block.h (BB_SET_PARTITION): Clear old value first.
3934         * cfg.c (clear_bb_flags): Don't clear partition setting.
3935         * ifcvt.c (find_if_case_1): Remove ??? comment.
3936
3937 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
3938
3939         PR target/17052
3940         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
3941         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
3942         current_function_stdarg in place of sysv_varargs_p.
3943         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
3944         sysv_varargs_p.
3945
3946 2004-08-24  Richard Henderson  <rth@redhat.com>
3947
3948         PR target/16298
3949         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
3950         random codes within CONST.
3951
3952 2004-08-24  James E Wilson  <wilson@specifixinc.com>
3953
3954         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
3955         -freorder-blocks-and-partition.
3956
3957 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3958
3959         PR middle-end/17044
3960         * tree-ssa-threadupdate.c (redirection_data): Make static.
3961         (thread_block): Use ggc_alloc_cleared to allocate struct
3962         redirection_data.  Don't free elements in redirection_data.
3963
3964 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3965
3966         * config/mips/predicates.md (small_data_pattern): Match prefetches.
3967
3968 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3969
3970         PR tree-optimization/17016
3971         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3972         number_of_iterations_exit): Use POINTER_TYPE_P instead
3973         of testing for POINTER_TYPE.
3974
3975 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3976
3977         * tree-ssa-loop-ivcanon.c: New file.
3978         * tree-ssa-loop-manip.c (create_iv): New function.
3979         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
3980         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
3981         * cfgloop.c (mark_single_exit_loops): New function.
3982         (verify_loop_structure): Verify single-exit loops.
3983         * cfgloop.h (struct loop): Add single_exit field.
3984         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
3985         (mark_single_exit_loops): Declare.
3986         (tree_num_loop_insns): Declare.
3987         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
3988         (duplicate_loop_to_header_edge): Use it.
3989         * common.opt (fivcanon): New flag.
3990         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
3991         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
3992         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
3993         (bsi_insert_on_edge_immediate): New function.
3994         * tree-flow.h (bsi_insert_on_edge_immediate,
3995         canonicalize_induction_variables, tree_unroll_loops_completely,
3996         create_iv): Declare.
3997         * tree-optimize.c (init_tree_optimization_passes): Add
3998         pass_iv_canon and pass_complete_unroll.
3999         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
4000         * tree-scalar-evolution.c (get_loop_exit_condition,
4001         get_exit_conditions_rec, number_of_iterations_in_loop,
4002         scev_initialize): Use single_exit information.
4003         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
4004         missing assumptions.
4005         (loop_niter_by_eval):  Return number of iterations as unsigned
4006         int.
4007         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
4008         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
4009         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
4010         New passes.
4011         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
4012         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
4013         the defining statement is ready.
4014         * tree-vectorizer.c (vect_create_iv_simple): Removed.
4015         (vect_create_index_for_array_ref, vect_transform_loop_bound):
4016         Use create_iv.
4017         (vect_transform_loop_bound): Use single_exit information.
4018         (vect_analyze_loop_form): Cleanup bogus tests.
4019         (vectorize_loops): Do not call flow_loop_scan.
4020         * tree.h (may_negate_without_overflow_p): Declare.
4021         * fold-const.c (may_negate_without_overflow_p): Split out from ...
4022         (negate_expr_p): ... this function.
4023         (tree_expr_nonzero_p): Handle overflowed constants correctly.
4024         * doc/invoke.texi (-fivcanon): Document.
4025         * doc/passes.texi: Document canonical induction variable creation.
4026
4027 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4028
4029         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
4030         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
4031         using the mode of the operand to decide between them.
4032         * config/mips/mips.md (MOVECC): New mode macro.
4033         (ccreg): New mode attribute.
4034         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
4035         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
4036         (mov[sd]icc): Redefine using :GPR.
4037
4038 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4039
4040         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
4041         (mips_prefetch_cookie): New function.
4042         * config/mips/mips.c (print_operand_address): Fix handling of
4043         ADDRESS_CONST_INT.
4044         (mips_emit_prefetch): Delete.
4045         (mips_prefetch_cookie): New function.
4046         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
4047         mode of QImode for the address_operand.  Use mips_prefetch_cookie
4048         to calculate the first "pref" operand.
4049         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
4050         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
4051
4052 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
4053
4054         * arm.md: Include predicates.md.
4055         * predicates.md: New file.
4056         * arm.c (s_register_operand, arm_hard_register_operand)
4057         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
4058         (arm_immediate_operand, arm_neg_immediate_operand)
4059         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
4060         (arm_add_operand, arm_addimm_operand, arm_not_operand)
4061         (offsettable_memory_operand, alignable_memory_operand)
4062         (arm_reload_memory_operand, arm_float_rhs_operand)
4063         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
4064         (index_operand, shiftable_operator, logical_binary_operator)
4065         (shift_operator, equality_operator, arm_comparison_operator)
4066         (minmax_operator, cc_register, dominant_cc_register)
4067         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
4068         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
4069         (const_shift_operand, load_multiple_operation)
4070         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
4071         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
4072         (cirrus_register_operand, cirrus_fp_register)
4073         (cirrus_shift_const): Delete, replaced with equivalents in
4074         predicates.md.
4075         (shift_op): Handle ROTATE.
4076         * arm-protos.h: Delete declarations for above.
4077         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
4078         * t-arm (MD_INCLUDES): Add predicates.md.
4079         (s-preds): Depends on MD_INCLUDES.
4080
4081 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4082
4083         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
4084         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
4085         patterns.  Redefine using :GPR.  Give the match_operator a mode.
4086         Use '%2' rather than '%z2' for operand 2.
4087
4088 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4089
4090         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
4091         attribute.
4092
4093 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4094
4095         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
4096         of internal patterns.
4097         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
4098         Redefine using :P.
4099         (tablejump): Use expand_binop to calculate address.  Adjust names
4100         of internal patterns.
4101         (tablejump[sd]i): Renamed from tablejump_internal[12].
4102         Redefine using :P.
4103         (tablejump_mips16[12]): Delete.
4104
4105 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4106
4107         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
4108         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
4109         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
4110         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
4111         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
4112
4113 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4114
4115         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
4116         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
4117         using :GPR.
4118         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
4119         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
4120         (*branch_equality[sd]i_inverted): Likewise
4121         branch_equality{,_di}_inverted.
4122         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
4123         Redefine using :GPR.
4124
4125 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
4126
4127         * rtl.def: Reorganize, placing all codes used only in machine
4128         descriptions at the end.
4129
4130         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
4131         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
4132         rtx_name, rtx_format arrays by direct reference to rtl.def,
4133         first undefining GENERATOR_FILE.  Define enum insn_note and
4134         note_insn_name array by direct reference to insn-notes.def.
4135         (adjust_field_rtx_def): Remove local definition of rtx_name.
4136         Use symbolic names for insn notes.
4137         * Makefile.in (gengtype.o): Update dependencies.
4138
4139 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
4140
4141         * basic-block.h (struct basic_block_def): Reorder fields to
4142         eliminate interior padding.  Remove 'partition' field.
4143         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
4144         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
4145         (BB_COPY_PARTITION): New macros.
4146         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
4147         Replace all references to the 'partition' field of a basic
4148         block with new macros.
4149
4150         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
4151         * final.c (final_scan_insn): Don't handle it.
4152         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
4153         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
4154         * sched-rgn.c (sched_is_disabled_for_current_region_p):
4155         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
4156
4157 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4158
4159         * c-decl.c (c_init_decl_processing): Adjust
4160         build_common_tree_nodes call.
4161         * expmed.c (const_mult_add_overflow_p): Use
4162         build_distinct_type_copy.
4163         * stor-layout.c (early_type_list): Remove.
4164         (layout_type): Don't append to early_type_list.
4165         (initialize_sizetypes): Add signed_p argument.
4166         (set_sizetype): Overwrite the stub type nodes directly.
4167         * tree.c (copy_node_stat): Clear a type's value cache here ...
4168         (build_distinct_type): ... not here.
4169         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
4170         * tree.h (initialize_sizetypes): Add signed_p argument.
4171         (build_common_tree_nodes): Likewise.
4172
4173         * objc/objc-act.c (get_static_reference): Use
4174         build_variant_type_copy.
4175         (get_protocol_reference): Likewise.
4176         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
4177
4178 2004-08-24  Richard Henderson  <rth@redhat.com>
4179             Andrew Pinski  <apinski@apple.com>
4180
4181         * gimplify.c (gimplify_array_ref_to_plus): Delete.
4182         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
4183         for ARRAY_REF.
4184
4185         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
4186         ARRAY_REF also to get to the STRING_CST.
4187
4188 2004-08-24  Paul Brook  <paul@codesourcery.com>
4189
4190         * config/arm/arm.c (arm_override_options): Update error message.
4191         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
4192         TARGET_HARD_FLOAT_ABI.
4193         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
4194         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
4195
4196 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4197
4198         PR target/17093
4199         * config/m32r.md (movsi_sda): Add SI mode specification to
4200         UNSPEC.
4201
4202 2004-08-24  Nick Clifton  <nickc@redhat.com>
4203
4204         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
4205         of seth_add3_operand.
4206
4207 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4208
4209         * Makefile.in (PROTO_OBJS): Add errors.o.
4210         * protoize.c (fancy_abort): Remove.
4211         * mips-tfile.c (fancy_abort): Add parameters.
4212
4213 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
4214
4215         * doc/trouble.texi (C++ misunderstandings): Fix example code.
4216
4217 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
4218
4219         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
4220         (host-default.o): Add dependency on HOOKS_H.
4221         * config/x-linux: Likewise.
4222         * config/x-solaris: Likewise.
4223         * config/i386/x-mingw32: Likewise.
4224         * config/rs6000/x-darwin: Likewise.
4225
4226 2004-08-23  James E Wilson  <wilson@specifixinc.com>
4227
4228         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
4229         DEF_REG_NOTE.
4230
4231 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
4232
4233         PR c/14492
4234         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
4235
4236 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
4237
4238         * cfg.c (check_bb_profile): Fix typos.
4239         * function.c (assign_parm_is_stack_parm): Likewise.
4240         * tree-nested.c: Likewise.
4241
4242 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
4243
4244         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
4245         Remove TYPECODE.
4246         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
4247
4248 2004-08-23  Eric Christopher  <echristo@redhat.com>
4249
4250         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
4251         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
4252         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
4253         * target.h: Ditto.
4254         * hooks.h: Include machmode.h.
4255         (hook_bool_mode_false): Declare.
4256         * hooks.c (hook_bool_mode_false): Define.
4257         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
4258         * stor-layout.c (layout_type): Ditto.
4259         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
4260         Define to target macro.
4261         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
4262         * config/arm/arm.c: Ditto. Use.
4263         * config/arm/arm.h: Ditto.
4264         * config/arm/arm-protos.h: Ditto.
4265         * config/i386/i386.c: Ditto.
4266         * config/i386/i386.h: Ditto.
4267         * config/rs6000/rs6000.c: Ditto.
4268         * config/rs6000/rs6000.h: Ditto.
4269         * config/sh/sh.c: Ditto.
4270         * config/sh/sh.h: Ditto.
4271         * config/sh/sh-protos.h: Ditto.
4272         * config/sh/sh.md: Use.
4273         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
4274         to TARGET_VECTOR_MODE_SUPPORTED_P.
4275
4276 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
4277
4278         * Makefile.in (BUILD_ERRORS): Set to build-errors.
4279         (errors.o): New target for host.
4280         (build-errors.o): New target for build.
4281         (genobjs): Replace errors.o with build-errors.
4282         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
4283         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
4284         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
4285         (fix-header.o): Add errors.h
4286         * collect2.c (fancy_abort): Add parameters.
4287         * collect2.h (fancy_abort): Don't declare.
4288         * errors.h (fancy_abort): Don't declare.
4289         * errors.c: Include either bconfig.h or config.h.
4290         (fancy_abort): Trim filename.
4291         * fix-header.c (v_fatal, fatal): Remove.
4292         (progname): Remove definition.
4293         (main): Set progname here.
4294         * gcc.c (fancy_abort): Add parameters.
4295         * gcc.h (fancy_abort): Remove declaration.
4296         * gcov.c (fancy_abort): Remove.
4297         * rtl.h (fancy_abort): Don't declare.
4298         (abort): Don't define.
4299         * tree.h (fancy_abort): Don't declare.
4300         (abort): Don't define.
4301         * system.h (fancy_abort): Declare.
4302         (abort): Define to fancy_abort.
4303         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
4304
4305         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
4306         (usize_type, ubitsizetype): Remove.
4307         * stor-layout.c (set_sizetype): Don't initialize usizetype,
4308         ubitsizetype.
4309         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
4310
4311         * tree.h (build_distinct_type_copy): New.
4312         (build_type_copy): ... here.  Rename to ...
4313         (build_variant_type_copy): ... here.
4314         * tree.c (build_qualified_type): Rename build_type_copy call.
4315         (build_distinct_type_copy): New, broken out of ...
4316         (build_type_copy): ... here.  Rename to ...
4317         (build_variant_type_copy): ... here.  Use
4318         build_distinct_type_copy.
4319         (build_common_tree_nodes_2): Rename build_type_copy call.
4320         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
4321         call.
4322         (handle_packed_attribute, handle_unused_attribute,
4323         handle_transparanet_union_attribute, handle_aligned_attribute,
4324         handle_deprecated_attribute): Likewise.
4325         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
4326         Likewise.
4327         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
4328         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
4329         build_distinct_type_copy.
4330
4331 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4332
4333         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
4334         attribute.
4335
4336 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4337
4338         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
4339         loads and stores.
4340         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
4341         formerly unnamed patterns.  Redefine using :P for the address.  Remove
4342         explicit length attributes.
4343
4344 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4345
4346         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
4347         New functions.
4348         (single_reachable_address): Use them.
4349         (schedule_sm): Add dump.
4350         (is_call_clobbered_ref): New function.
4351         (determine_lsm_reg): Check whether the reference is call clobbered.
4352         Only work for gimple_reg_type values.
4353
4354 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4355
4356         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
4357         $31 store insns.  Redefine using :GPR.
4358
4359 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4360
4361         * config/mips/mips.md (P): New mode macro.
4362         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
4363         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
4364         Add mode attributes.
4365
4366 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4367
4368         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
4369         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
4370         later constants to cover the gap.
4371         (load, store): New mode attributes.
4372         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
4373         Use new unspec constants.
4374
4375 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4376
4377         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
4378         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
4379         to use register_operand rather than uns_arith_operand as the predicate
4380         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
4381         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
4382         Redefine using :GPR.  Make same predicate change here.  Extend the
4383         commutativity of operands 1 and 2 from the SImode version to the
4384         DImode one.
4385         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
4386         but with no predicate changes.
4387         (*nor[sd]i3): Redefine using :GPR.
4388
4389 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4390
4391         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
4392         noreturn functions.
4393
4394 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4395
4396         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
4397         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
4398         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
4399         rather than "%z2" (with a fake const0_rtx for operand 2).
4400         (ffs[sd]i2): Redefine using :GPR.
4401         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
4402
4403 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4404
4405         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
4406
4407 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4408
4409         * config/mips/mips.md (any_extend): New code macro.
4410         (u, su): New code attributes.
4411         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
4412         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
4413         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
4414         (*{s,u}mul_acc_di): Redefine using any_extend.
4415         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
4416         to reflect real insn names.
4417         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
4418         with an any_extend template.
4419         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
4420         Add '*' to name.
4421
4422 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4423
4424         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
4425         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
4426         (mul[sd]i3_r4000): Redefine using :GPR.
4427         (mulsi3_mult3): Don't check TARGET_MAD separately.
4428         (muldi3_mult3): Moved after mulsi_mult3.
4429
4430 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4431
4432         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
4433         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
4434         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
4435         (TARGET_GAS, TARGET_MIPS_AS): Delete.
4436         (TARGET_GPWORD): Define to true for n32 on IRIX.
4437         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
4438         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
4439         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
4440         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
4441         (MDEBUG_ASM_SPEC): Delete, folding into...
4442         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
4443         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
4444         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
4445         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
4446         to define asm_abi_default_spec.
4447         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
4448         (TARGET_ASM_SELECT_SECTION): Delete.
4449         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
4450         for non-mips16 code, removing previous workaround for SGI assemblers.
4451         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
4452         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
4453         (override_options): Remove !TARGET_GAS and !have_named_sections code.
4454         (print_operand): Fold TARGET_GAS conditionals into asm strings.
4455         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
4456         ASM_STABS_OP and ASM_STABN_OP.
4457         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
4458         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
4459         (mips_output_function_prologue): Remove !TARGET_GAS code.
4460         (mips_select_rtx_section): Remove !have_named_sections code.
4461         (mips_select_section): Delete.
4462         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
4463         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
4464         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
4465         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
4466         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
4467         * config/mips/windiss.h (ASM_SPEC): Likewise.
4468
4469 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4470
4471         * read-rtl.c (map_value, mapping, macro_group): New structures.
4472         (BELLWETHER_CODE): New macro.
4473         (modes, codes, bellwether_codes): New variables.
4474         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
4475         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
4476         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
4477         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
4478         (add_map_value, initialize_macros): New functions.
4479         (def_hash, def_hash_eq_p): Generalize to anything that points to,
4480         or starts with, a char * field.
4481         (find_macro, read_mapping, check_code_macro): New functions.
4482         (read_rtx_1): New, split out from read_rtx.  Handle the new
4483         define_{mode,code}_{macro,attr} constructs.  Use find_macro
4484         to parse the name of a code or mode.  Use BELLWETHER_CODE to
4485         extract the format and to choose a suitable code for rtx_alloc.
4486         Modify recursive invocations to use read_rtx_1.
4487         (read_rtx): Call initialize_macros.  Apply code and mode macros
4488         to the rtx returned by read_rtx_1.  Cache everything after the
4489         first macro expansion for subsequent read_rtx calls.
4490         * doc/md.texi: Document new .md constructs.
4491         * config/mips/mips.md (GPR): New mode macro.
4492         (d, si8_di5): New mode attributes.
4493         (any_cond): New code macro.
4494         (add[sd]i3): Redefine using :GPR.
4495         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
4496         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
4497         previously unnamed MIPS16 patterns.
4498         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
4499         lines.  Don't match (plus (const_int 0) ...).
4500         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
4501         Use a define_split to generate the addition.
4502         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
4503         (subsi3_internal): Delete.
4504         (*subsi3_extended): Renamed from subsi3_internal_2.
4505         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
4506         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
4507         using an any_cond template.
4508
4509 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4510
4511         * read-rtl.c (read_rtx): Tidy use of format_ptr.
4512
4513 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4514
4515         * read-rtl.c (string_obstack): New file-scope variable.
4516         (read_string, read_quoted_string, read_braced_string)
4517         (read_escape): Remove obstack parameter and use string_obstack instead.
4518         (read_rtx): Remove function-local rtl_obstack and initialize
4519         string_obstack instead.  Update call to read_string.
4520
4521 2004-08-22  Andrew Pinski  <apinski@apple.com>
4522
4523         PR c/15262
4524         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
4525         expression is not constant.
4526         (c_finish_return): Do not go through INDIRECT_REF when looking
4527         for the inner expression of an ADDR_EXPR for warning about.
4528
4529 2004-08-22  Richard Henderson  <rth@redhat.com>
4530
4531         PR 17075
4532         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
4533         create new blocks and fall through.
4534         (expand_gimple_basic_block): Update to match.
4535
4536 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
4537
4538         * reload.c (find_reloads_address): Make return value tri-state.
4539         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
4540         (find_reloads): Assume that reloaded addresses match 'o' or
4541         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
4542         returned 1 (not -1).  Omit optional reloads for address operands
4543         only if find_reloads_address returned 1 (not -1).
4544
4545         * config/s390/s390.c (legitimize_reload_address): New function.
4546         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
4547         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
4548         legitimize_reload_address.
4549
4550 2004-08-22  Richard Hendersion  <rth@redhat.com>
4551
4552         * tree.h (SAVE_EXPR_RESOLVED_P): New.
4553         * gimplify.c (gimplify_save_expr): Use it.
4554         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
4555         on the temporary variable.
4556
4557 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
4558
4559         * fold-const.c (rtl_expr_nonnegative_p): Delete.
4560         * tree.h (rtl_expr_nonnegative_p): Remove.
4561
4562 2004-08-22  Steven Bosscher  <stevenb@suse.de>
4563
4564         * config/i386/ppro.md (ppro_complex_insn): Add missing check
4565         for cpu==pentiumpro.
4566
4567         * combine.c (struct reg_stat): Fix comment typo.
4568
4569 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4570
4571         * c-tree.h (c_sizeof_nowarn): Remove.
4572
4573 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4574
4575         * c-decl.c (set_array_declarator_type): Rename to
4576         set_array_declarator_inner.
4577         (build_c_parm, build_attrs_declarator, build_function_declarator):
4578         New functions.
4579         (make_pointer_declarator): Call build_attrs_declarator.
4580         * c-tree.h (set_array_declarator_type): Rename to
4581         set_array_declarator_inner.
4582         (build_c_parm, build_attrs_declarator, build_function_declarator):
4583         New prototypes.
4584         * c-parse.in (after_type_declarator,
4585         parm_declarator_starttypename, parm_declarator_nostarttypename,
4586         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
4587         firstparm): Use these functions
4588
4589 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4590
4591         * c-decl.c (build_array_declarator, set_array_declarator_type,
4592         start_decl, grokdeclarator, grokparms): Change boolean parameters
4593         to type bool.
4594         * c-tree.h (build_array_declarator, set_array_declarator_type,
4595         start_decl): Update prototypes.
4596         * c-decl.c, c-parse.in: All callers changed.
4597
4598 2004-08-21  Mike Stump  <mrs@apple.com>
4599
4600         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
4601         (darwin_fix_and_continue): Likewise.
4602         (darwin_fix_and_continue_switch): Likewise.
4603         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
4604         (darwin_fix_and_continue): Likewise.
4605         (darwin_fix_and_continue_switch): Likewise.
4606
4607 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
4608
4609         PR  c++/16030
4610         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
4611         Remove, merging into ...
4612         (gen_stdcall_or_fastcall_suffix): New function, returning tree
4613         rather than const char*, and accepting additional parameter.
4614         Don't add suffix to '*'-prefixed symbols or variadic functions.
4615         (i386_pe_encode_section_info): Adjust for call to new function.
4616         Call change_decl_assembler_name.
4617
4618 2004-08-20  Mike Stump  <mrs@apple.com>
4619
4620         * config/darwin.c (machopic_indirect_data_reference): Mark
4621         stubs as defined.
4622         * config/386/386.c (darwin_local_data_pic): Add.
4623         (legitimate_constant_p): Reorder so that PLUS handling runs
4624         before darwin_local_data_pic to match the ordering in
4625         legitimate_pic_address_disp_p and so that MINUS runs after
4626         darwin_local_data_pic as otherwise the darwin_local_data_pic
4627         logic can be skipped, which would be very bad.
4628         (legitimate_pic_address_disp_p): Move from from here to
4629         darwin_local_data_pic so it can be reused.
4630
4631 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
4632
4633         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
4634         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
4635         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
4636         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
4637         (RS6000_ABI_NAME): Define as "linux".
4638         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
4639         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
4640         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
4641         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
4642         * config/rs6000/rs6000.c (dot_symbols): New global var.
4643         (rs6000_output_function_entry): New function, modified for
4644         !DOT_SYMBOLS..
4645         (print_operand <case 'z'>): ..extracted from here.
4646         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
4647         (rs6000_output_function_epilogue): Likewise.
4648         (rs6000_elf_declare_function_name): Likewise.
4649         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
4650         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
4651         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
4652         * configure: Regenerate.
4653         * config.in: Regenerate.
4654
4655 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
4656
4657         * reload.c (find_reloads_address): Fix thinko in previous change.
4658
4659         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
4660         a CONST_INT.
4661
4662 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
4663
4664         PR rtl-optimization/17099
4665         * combine.c (force_to_mode): Check if inner_mask has any bits set
4666         outside of GET_MODE (x) instead of op_mode.
4667
4668 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
4669
4670         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
4671         fragment.
4672         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
4673         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
4674         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
4675         architecture.
4676         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
4677         configurations.
4678         * config/arm/t-symbian: New file.
4679
4680 2004-08-20  Andrew Pinski  <apinski@apple.com>
4681
4682         * regrename.c (kill_value_regno): ANSIfy.
4683
4684 2004-08-20  Dale Johannesen  <dalej@apple.com>
4685
4686         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
4687
4688 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
4689
4690         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
4691         (kill_value_regno): New function, derived from kill_value.
4692         (kill_value): Update.
4693         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
4694
4695 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
4696
4697         Fix PR tree-optimization/17111
4698         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
4699         of non-value_handles.
4700         (bitmap_set_contains): All constants are in every set.
4701
4702 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4703
4704         * fold-const.c (round_up, round_down): Use build_int_cst.
4705         Optimize common case.
4706
4707 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
4708             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4709
4710         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
4711         one_only_data_section): Rename to som_readonly_data_section,
4712         som_one_only_readonly_data_section and som_one_only_data_section.
4713         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
4714         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
4715         conditional defines.
4716         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
4717         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
4718         string values.
4719         (pa_select_section): Use renamed section functions.
4720         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
4721         SOM_READONLY_DATA_SECTION_FUNCTION,
4722         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
4723         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
4724         Define here ...
4725         * config/pa/som.h: ... not here.
4726         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
4727         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
4728         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
4729         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
4730         (READONLY_DATA_SECTION): Use som_readonly_data_section.
4731
4732 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4733
4734         * fold-const.c (int_const_binop): Don't generate non-overflowing
4735         size-types specially.
4736         (fold_convert_const): Likewise.
4737
4738         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
4739         clear cache on copied sizetype.
4740
4741 2004-08-20  Ben Elliston  <bje@au.ibm.com>
4742
4743         * configure.ac: Don't escape apostrophe in --enable-coverage help.
4744         * configure: Regenerate.
4745
4746 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
4747
4748         PR 5620
4749         * gcc.c (struct stat input_stat): Don't define if
4750         HOST_LACKS_INODE_NUMBERS
4751         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
4752         than stat to determine if temp file is same as input file.
4753         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
4754         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
4755
4756 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
4757
4758         * configure.ac (mips*-*-*): Print an error if not using GAS.
4759         * configure: Regenerated.
4760         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
4761         comments about buggy MIPSpro assemblers.
4762         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
4763         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
4764         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
4765         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
4766         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
4767         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
4768         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
4769         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
4770         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
4771         of more general IRIX 6 definitions.
4772         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
4773         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
4774         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
4775         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
4776         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4777         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
4778         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
4779         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
4780         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
4781         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
4782         (LINK_SPEC): Move most of definition to iris.h.
4783         (SUBTARGET_LINK_SPEC): New macro.
4784         (IRIX_STARTFILE_SPEC): Fold into...
4785         (STARTFILE_SPEC): ...here.
4786         (IRIX_ENDFILE_SPEC): Fold into...
4787         (ENDFILE_SPEC): ...here.
4788         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
4789         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
4790         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
4791         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
4792         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
4793         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
4794         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
4795         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4796         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
4797         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
4798         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
4799         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
4800         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
4801         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
4802         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
4803         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
4804         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
4805         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
4806         (TARGET_IRIX6): Define to 1.
4807         (DRIVER_SELF_SPECS): Define.
4808         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
4809         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
4810         (SUBTARGET_LINK_SPEC): New macro.
4811         (IRIX_STARTFILE_SPEC): Fold into...
4812         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
4813         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
4814         (LIB_SPEC, LIBGCC_SPEC): Use them.
4815         (LIB_SPEC): Remove !mabi=* case.
4816         (IRIX_ENDFILE_SPEC): Fold into...
4817         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
4818         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
4819         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
4820         (TARGET_IRIX6): New macro.
4821         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
4822         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
4823         (LABEL_AFTER_LOC): Delete.
4824         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
4825         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
4826         (mips_build_builtin_va_list): Check TARGET_IRIX6.
4827         (override_options): Remove TARGET_SGI_O32_AS-related code.
4828         (irix_output_external_libcall): Make static.
4829         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
4830         LABEL_AFTER_LOC.
4831         (mips_file_start): Tidy guard for ABI sections.  Remove use of
4832         ABICALLS_ASM_OP; use .abicalls instead.
4833         (mips_output_aligned_decl_common, mips_declare_object_name)
4834         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
4835         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
4836         .globl foo .text directives.
4837         (irix_asm_named_section_1, irix_asm_named_section)
4838         (irix_section_align_entry, irix_section_align_htab)
4839         (irix_orig_asm_out_file, irix_section_align_entry_eq)
4840         (irix_section_align_entry_hash, irix_asm_output_align)
4841         (irix_file_start, irix_section_align_1, copy_file_data)
4842         (irix_file_end, irix_section_type_flags): Delete.
4843         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
4844         Use standard section syntax.  Remove protective "jr $31".
4845         (__gcc_fini): Likewise .gcc_fini.
4846         * config/mips/irix-crtn.asm: Adjust sections accordingly.
4847         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
4848         iris5gas.h.
4849         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
4850         from t-irix-gld.
4851         (EXTRA_MULTILIB_PARTS): Define.
4852         * config/mips/t-iris6: Remove bogus comment.
4853         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
4854         * config/mips/iris5gas.h, config/mips/iris5gld.h,
4855         config/mips/iris6gas.h, config/mips/iris6gld.h,
4856         config/mips/t-iris5-as, config/mips/t-iris5-gas
4857         config/mips/t-irix-gld: Delete.
4858         * config/mips/iris.h: New file.
4859         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
4860
4861 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
4862
4863         * postreload.c (reload_cse_move2add): Allow any condjump, but check
4864         that the implicit set isn't clobbered in the jump insn.
4865
4866 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
4867
4868         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
4869         * optabs.c (init_optabs): Don't check it.
4870         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
4871         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
4872
4873 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
4874
4875         * config/s390/s390.md (s390_warn_framesize_string)
4876         (s390_warn_dynamic_string, s390_stack_size_string)
4877         (s390_stack_guard_string): New global string variables.
4878         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
4879         (s390_stack_guard): New global variables.
4880         (override_options): Added checks for the new options.
4881         (s390_emit_prologue): Emit stack check and trap code and perform
4882         compile time stack size checking.
4883
4884         * config/s390/s390.h (TARGET_OPTIONS): Added new options
4885         "warn-framesize", "warn-dynamicstack", "stack-size" and
4886         "stack-guard".
4887
4888         * doc/invoke.texi: Added documentation for the new options.
4889
4890 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
4891
4892         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
4893         to eliminate warning.
4894         (linear_search_fdes): Declare p as unsigned.
4895         (binary_search_mixed_encoding_fdes): Likewise.
4896         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
4897         to eliminate warning.
4898         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
4899         type cast.
4900
4901 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
4902
4903         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
4904         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
4905         instead of one.  Check for strictly legitimate address.
4906         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
4907         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
4908
4909 2004-08-19  Eric Christopher  <echristo@redhat.com>
4910
4911         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
4912         * langhooks.h (unsave_expr_now): Ditto.
4913         * tree.h (unsave_expr_1): Remove prototype.
4914         (lhd_unsave_expr_now): Rename to unsave_expr_now.
4915         * tree-inline.c (unsave_expr_1): Move here
4916         from tree.c. Make static.
4917         (unsave_expr_now): Rename from lhd_unsave_expr_now.
4918         * tree-sra.c: Fix up for rename.
4919         * tree-ssa-copy.c: Ditto.
4920         * tree-eh.c: Ditto.
4921         * tree.c (unsave_expr_1): Move to tree-inline.c.
4922
4923 2004-08-19  Caroline Tice  <ctice@apple.com>
4924
4925         * config/i386/cygming.h (switch_to_section):  Fix typo (change
4926         in_unlikely_text_section to in_unlikely_executed_text).
4927
4928 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
4929
4930         * vec.h (VEC_lower_bound): New macro.
4931
4932 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
4933
4934         PR target/16446
4935         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
4936         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
4937         treat each ABI separately.  Deal with n32/n64 complex float arguments.
4938         (function_arg): Add associated complex handling here.
4939
4940 2004-08-19  Richard Henderson  <rth@redhat.com>
4941
4942         * config/arm/arm.c (arm_gen_load_multiple): Use
4943         adjust_automodify_address.  Take base memory and offset instead
4944         of unchanging/struct/scalar bits.
4945         (arm_gen_store_multiple): Likewise.
4946         (arm_gen_movmemqi): Use adjust_automodify_address.
4947         * config/arm/arm-protos.h: Update decls.
4948         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
4949         (store_multiple): Similarly.
4950
4951 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
4952
4953         * regclass.c (globalize_reg): Update call_really_used_regs.
4954
4955 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
4956
4957         * doc/invoke.texi (integer-share-limit): Document.
4958
4959         * tree.h (TYPE_CACHED_VALUES_P): New.
4960         (TYPE_CACHED_VALUES): New.
4961         (TYPE_ORIG_SIZE_TYPE): Adjust.
4962         * tree.def (INTEGER_CST): Update documentation.
4963         * tree.c: Inlcude params.h.
4964         (build_int_cst): Cache small values.
4965         (build_type_copy): Do not copy the value cache.
4966         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
4967         unneeded zeroing.
4968         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
4969         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
4970         cache.
4971         * fold-const.c (force_fit_type): Copy value when setting
4972         overflows.
4973         (int_const_binop): Likewise.
4974         * stor-layout.c: Include params.h
4975         (set_sizetype): Create values cache.
4976         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
4977         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
4978         * params.h (INTEGER_SHARE_LIMIT): New.
4979         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
4980
4981 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
4982
4983         * gimplify.c (gimplify_minimax_expr): Remove.
4984         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
4985
4986 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
4987
4988         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
4989         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
4990
4991 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
4992
4993         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
4994
4995 2004-08-18  Andrew Pinski  <apinski@apple.com>
4996
4997         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
4998
4999 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
5000
5001         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
5002         (__aeabi_ul2f): Likewise.
5003
5004 2004-08-18  Richard Henderson  <rth@redhat.com>
5005
5006         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
5007         move to rtl completely.
5008         (struct meminsnbuf, xtensa_emit_block_move): Remove.
5009         (xtensa_find_mode_for_size): Remove.
5010         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
5011         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
5012
5013 2004-08-18  Richard Henderson  <rth@redhat.com>
5014
5015         * config/mcore/mcore.c (mode_from_align): Remove DImode.
5016         (block_move_sequence): Rewrite to use adjust_address.
5017         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
5018         Return boolean indicating success/failure.
5019         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
5020         * config/mcore/mcore.md (movmemsi): Update to match.
5021
5022 2004-08-18  Mike Stump  <mrs@apple.com>
5023
5024         * doc/invoke.texi (-mfix-and-continue): Add support for
5025         fast turn around debugging.
5026         (-ffix-and-continue): Likewise.
5027         (-mindirect-data): Likewise.
5028         (-findirect-data): Likewise.
5029         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
5030         (indirect_data): Likewise.
5031         (machopic_data_defined_p): Likewise.
5032         (machopic_output_indirection): Likewise.
5033         (darwin_encode_section_info): Likewise.
5034         (darwin_fix_and_continue): Likewise.
5035         (darwin_fix_and_continue_switch): Likewise.
5036         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
5037         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5038         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
5039         (SUBTARGET_OPTIONS): Likewise.
5040         (darwin_fix_and_continue): Likewise.
5041         (darwin_fix_and_continue_switch): Likewise.
5042         (TARGET_FIX_AND_CONTINUE): Likewise.
5043         * config/rs6000.c (rs6000_emit_prologue): Likewise.
5044
5045 2004-08-19  Steven Bosscher  <stevenb@suse.de>
5046
5047         * basic-block.h (struct edge_def): Remove crossing_edge.
5048         (EDGE_CROSSING): New define.
5049         (EDGE_ALL_FLAGS): Update.
5050         * bb-reorder.c (find_traces_1_round, better_edge_p,
5051         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
5052         find_jump_block, fix_crossing_conditional_branches,
5053         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
5054         Replace all occurences of crossing_edge with an edge flag check
5055         or set/reset.
5056         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5057         try_crossjump_bb): Likewise.
5058         * cfglayout.c (fixup_reorder_chain): Likewise.
5059         * cfgrtl.c (force_nonfallthru_and_redirect,
5060         commit_one_edge_insertion): Likewise.
5061
5062         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
5063         * tree-flow.h (compute_dominance_frontiers): Move prototype...
5064         * basic-block.h:  ...here.
5065         * tree-cfg.c (compute_dominance_frontiers_1,
5066         compute_dominance_frontiers): Move from here...
5067         * cfganal.c: ...to here.  Include timevar.h.
5068
5069 2004-08-18  James E Wilson  <wilson@specifixinc.com>
5070
5071         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
5072         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
5073
5074         * config/mips/mips.md (type): Add frdiv.
5075         (divsf3+1, divsf3+2): Change type to frdiv.
5076         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
5077         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
5078
5079         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
5080         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
5081         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
5082         * config/mips/5000.md (r5k_fdiv_single): Likewise.
5083         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
5084         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
5085         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
5086         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
5087         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
5088         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
5089         Likewise.
5090         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
5091
5092 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
5093
5094         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
5095         get regression tester working again.
5096
5097 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5098
5099         * insn-notes.def, reg-notes.def: New files.
5100         * rtl.h: Use them to define enum insn_note and enum reg_note.
5101         * rtl.c: Use them to define note_insn_name and reg_note_name.
5102         * Makefile.in (RTL_BASE_H): Update.
5103
5104         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
5105         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5106
5107 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
5108
5109         * arm.c (arm_size_rtx_costs): New function.
5110         (arm_override_options): Use it if optimizing for space.
5111
5112 2004-08-18  Richard Henderson  <rth@redhat.com>
5113
5114         * emit-rtl.c (gen_const_mem): New.
5115         * rtl.h (gen_const_mem): Declare.
5116         * expr.c (do_tablejump): Use it.
5117         * varasm.c (force_const_mem): Likewise.
5118         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5119         (machopic_legitimize_pic_address): Likewise.
5120         * config/arm/arm.c (legitimize_pic_address): Likewise.
5121         * config/i386/i386.c (legitimize_pic_address): Likewise.
5122         (legitimize_tls_address): Likewise.
5123         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5124         * config/ia64/ia64.md (load_fptr): Likewise.
5125         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5126         * config/pa/pa.c (legitimize_pic_address): Likewise.
5127         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5128         (rs6000_emit_move): Likewise.
5129         * config/s390/s390.c (legitimize_pic_address): Likewise.
5130         (legitimize_tls_address): Likewise.
5131         * config/s390/s390.md (casesi): Likewise.
5132         * config/sh/sh.c (sh_reorg): Likewise.
5133         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
5134         * config/v850/v850.md (casesi): Likewise.
5135
5136         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
5137         * config/sh/sh.c (prepare_move_operands): Remove incorrect
5138         use of MEM_READONLY_P.
5139
5140 2004-08-18  Steven Bosscher  <stevenb@suse.de>
5141
5142         * Makefile.in (OBJS-common): Add postreload-gcse.c.
5143         Add new postreload-gcse.o.
5144         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
5145         (lookup_as_function, insert, rehash_using_reg, use_related_value,
5146         equiv_constant): Use SAFE_HASH instead of safe_hash.
5147         (exp_equiv_p): Export.  Add for_gcse argument when comparing
5148         for GCSE.
5149         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
5150         find_comparison_args, fold_rtx, cse_insn): Update callers.
5151         (hash_rtx): New function derived from old canon_hash and bits
5152         from gcse.c hash_expr_1.
5153         (canon_hash_string): Rename to hash_rtx_string.
5154         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
5155         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
5156         (cselib_lookup): Update this caller.
5157         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
5158         Make static.
5159         (hash_expr): Call hash_rtx.
5160         (ldst_entry): Likewise.
5161         (expr_equiv_p): Call exp_equiv_p.
5162         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
5163         reg_used_on_edge, reg_set_between_after_reload_p,
5164         reg_used_between_after_reload_p, get_avail_load_store_reg,
5165         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
5166         get_bb_avail_insn, hash_scan_set_after_reload,
5167         compute_hash_table_after_reload,
5168         eliminate_partially_redundant_loads, gcse_after_reload,
5169         get_bb_avail_insn, gcse_after_reload_main): Remove.
5170         * postreload-gcse.c: New file, reincarnating most of the above.
5171         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
5172         (gcse_after_reload_main): Update prototype.
5173         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
5174         * passes.c (rest_of_handle_gcse2): Use it.
5175
5176 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
5177
5178         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
5179         (pass_loop_done): Likewise.
5180
5181 2004-08-18  Andrew Pinski  <apinski@apple.com>
5182
5183         * config/rs6000/darwin.md: Delete the altivec patterns which are
5184         handled differently now.
5185         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
5186         (macho_correct_pic_di): Likewise.
5187         (call_indirect_nonlocal_darwin64): Likewise.
5188         Delete the save world/saveFP/saveVec patterns.
5189
5190         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
5191         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5192         * config/rs6000/rs6000.md: Include darwin.md.
5193         (builtin_setjmp_receiver): Add DImode case.
5194         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
5195         Darwin bits.
5196
5197 2004-08-18  Matt Austern  <austern@apple.com>
5198
5199         Dead code stripping
5200         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
5201         * darwin.c (darwin_file_end): Mark file as potentially strippable.
5202
5203 2004-08-18  Richard Henderson  <rth@redhat.com>
5204
5205         * alias.c (readonly_fields_p): Remove.
5206         (objects_must_conflict_p): Don't call it.
5207         * tree.h (readonly_fields_p): Remove.
5208         * langhooks.h (struct lang_hooks): Remove honor_readonly.
5209         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
5210
5211 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
5212
5213         * tree-dfa.c (add_referenced_var): Only global variables are
5214         call-clobbered.
5215         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
5216         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
5217         all pointers dereferenced if the statement dereferences them.
5218         (create_name_tags): Do not create memory tags for pointers
5219         that have PT_ANYTHING set.
5220         Also check if PT_VARS is not empty before creating a name tag.
5221         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
5222         variables that share the same alias set with a pointer that
5223         may point anywhere.
5224         (add_may_alias): Add FIXME comment to remove clobbering
5225         aliased variables and tags.
5226         (replace_may_alias): Likewise.
5227         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
5228         (merge_pointed_to_info): If the original variable has not
5229         points-to information, call set_pt_anything.
5230         (add_pointed_to_var): Do not prevent adding a pointed-to
5231         variable if the pointers is PT_ANYTHING.
5232         If the variable is a global, set PT_GLOBAL_MEM.
5233         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
5234         pointer type only come in PTR+OFFSET flavours.
5235         Always call merge_pointed_to_info on PHI arguments that are
5236         SSA_NAMEs.
5237         (get_nmt_for): Mark call-clobbered tags whose pointer points
5238         to global memory.
5239         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
5240         values.
5241         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
5242         FLAGS.
5243         (add_stmt_operand): Abort if the caller tried to add a killing
5244         definition for a memory tag.
5245         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
5246         unnecessary checks.
5247
5248 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
5249
5250         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
5251         from call_used_regs.  Update call_really_used_regs.
5252         (CALL_REALLY_USED_REGISTERS): Define.
5253         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
5254         Replace call_used_regs with call_really_used_regs.
5255         (calc_live_regs, sh_media_register_for_return): Likewise.
5256         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
5257         * sh.md (return_media): Likewise.
5258
5259 2004-08-18  Andrew Pinski  <apinski@apple.com>
5260
5261         * config/darwin.c (machopic_legitimize_pic_address): Only set
5262         MEM_READONLY_P in the non TARGET_TOC case.
5263
5264 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5265
5266         * rtl.def (NIL): Delete.
5267         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
5268         Tighten the syntax a little.
5269
5270         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
5271         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
5272         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
5273         * config/i386/predicates.md, config/m32r/m32r.h
5274         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
5275         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
5276         * config/sparc/sparc.h, doc/tm.texi:
5277         Replace all occurrences of NIL with UNKNOWN.
5278
5279 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5280
5281         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
5282         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
5283         sequence inline.  Move drop_through_label code into this
5284         block, being the only place it is used.  Adjust comments.
5285
5286 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
5287
5288         * config/rs6000/altivec.md: Add new patterns for calls to
5289         save_world/rest_world functions.
5290
5291         * config/rs6000/rs6000-protos.h: (save_world_operation,
5292         restore_world_operation) new declarations.
5293
5294         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
5295         field added.
5296         (rs6000_stack_info): Set world_save_p field.
5297         (save_world_operation): New function.
5298         (restore_world_operation): New function.
5299         (compute_save_world_info): New function.
5300         (rs6000_stack_info): Call compute_save_world_info.
5301         (rs6000_emit_prologue): Check for world_save_p and generate
5302         pattern to call save_world for saving all non-volatile and
5303         special registers.
5304         (rs6000_emit_epilogue): Check for world_save_p and generate
5305         pattern to call rest_world to restore saved registers.
5306
5307         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
5308         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
5309         (rs6000_reg_names): New entries added for save_world_operation and
5310         restore_world_operation.
5311
5312 2004-08-18  Caroline Tice  <ctice@apple.com>
5313
5314         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
5315         "-freorder-blocks-and-partition" to the flags used in second
5316         stage of profiledbootstrap.
5317         * bb-reorder.c (push_to_next_round_p): Add new variable,
5318         next_round_is_last; set and use variable to make sure, when
5319         partitioning, that the last trace construction round consists
5320         of all (and only) cold basic blocks.
5321         (rotate_loop): Don't copy blocks that end in a section
5322         crossing jump.
5323         (copy_bb): Correctly initialize "partition" of duplicated bb.
5324         (add_unlikely_executed_notes): Add a comment.
5325         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
5326         to make sure, if function contains hot blocks, that the
5327         successors of ENTRY_BLOCK_PTR are hot; also, only look for
5328         crossing edges if the architecture supports named sections.
5329         (mark_bb_for_unlikely_executed_section): Modify to always
5330         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
5331         the basic block note insn.
5332         (fix_crossing_unconditional_branches): Remove extra space.
5333         (fix_edges_for_rarely_executed_code): Modify to only do
5334         partitioning work if the architecture supports named sections.
5335         (reorder_basic_blocks): Modify to only add
5336         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
5337         supports named sections.
5338         * c-common.c (handle_section_attribute): Initialize new global
5339         variable, user_defined_section_attribute, to true if user has
5340         specified one.
5341         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
5342         forward edges that cross section boundaries.
5343         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
5344         partitioning information if the architecture supports named
5345         sections.
5346         * cfgrtl.c (target.h): Add statement to include this.
5347         (rtl_split_block): Make sure newly created bb gets correct
5348         partition.
5349         (try_redirect_by_replacing_jump): Make sure redirection isn't
5350         attempting to cross section boundaries.
5351         (force_nonfallthru_and_redirect): Only do partition fix up if
5352         architecture supports named sections.
5353         (rtl_split_edge): Make sure newly created bb ends up in
5354         correct partition.
5355         (commit_one_edge_insertion): Remove code that incorrectly
5356         updated basic block partition; Make sure partition fix up only
5357         happens if architecture supports named sections and it's not
5358         already done.
5359         (rtl_verify_flow_info_1): Fix if-condition on test/error
5360         condition that fallthru edges are not allowed to cross section
5361         boundaries.
5362         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
5363         * final.c (final_scan_insn): Remove redundant test from if-statement;
5364         change calls to text_section into calls to function_section; add code
5365         to only to partitioning fix up if architecture supports named
5366         sections.
5367         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
5368         partition.
5369         (if_convert): Add targetm.have_named_sections to test.
5370         * output.h (unlikely_section_label): Extern declaration for new global
5371         variable.
5372         (unlikely_text_section_name): Likewise.
5373         * opts.c (decode_options): If both partitioning and DWARF debugging
5374         are turned on, issue a warning that this doesn't work, and change
5375         partitiong to basic block reordering (without hot/cold partitions).
5376         * passes.c (rest_of_handle_final): Re-set new global variable,
5377         user_defined_section_attribute, to false.
5378         (rest_of_compilation): Change options for calling partitioning
5379         function: Don't call if the user defined the section attribute, and
5380         don't call if DECL_ONE_ONLY is true for the current function.
5381         * predict.c (choose_function_section): Return immediately if we
5382         are doing hot/cold partitioning (i.e. let the basic block partitioning
5383         determine where the function belongs).
5384         * reg-stack.c (emit_swap_insn): Add condition to step over
5385         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5386         * toplev.c (user_defined_section_attribute): New global variable.
5387         * toplev.h (user_defined_section_attribute): Extern declaration
5388         for new global variable.
5389         * varasm.c (unlikely_section_label): New global variable.
5390         (unlikely_text_section_name): New global variable.
5391         (unlikely_text_section): Add code to initialize
5392         unlikely_text_section_name if necessary; modify to use
5393         unlikely_text_section_name and unlikely_section_label; also to use
5394         named_section properly.
5395         (in_unlikely_text_section):  Modify to work correctly with
5396         named_section and to use unlikely_text_section_name.
5397         (named_section):  Add code to work properly with cold section.
5398         (function_section): Clean up if-statement.
5399         * config/darwin.c (darwin_asm_named_section): Return to original
5400         code, removing use of SECTION_FORMAT_STRING.
5401         * config/arm/pe.h (switch_to_section):  Add case for
5402         in_unlikely_executed_text to switch statement.
5403         * config/i386/cygming.h (switch_to_section): Likewise.
5404         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5405         (SECTION_FORMAT_STRING): Likewise.
5406         * config/mcore/mcore.h (switch_to_section): Likewise.
5407         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5408         (SECTION_FORMAT_STRING): Remove.
5409
5410 2004-08-18  Roger Sayle  <roger@eyesopen.com>
5411
5412         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
5413         -ffixed-reg safe, by preserving the meanings of zero and one.
5414         (CALL_USED_REGISTERS): Likewise.
5415         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
5416
5417 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5418
5419         * config/sh/sh.c (split_branches): Check the result of
5420         next_active_insn.
5421         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
5422         Call rtl_register_cfg_hooks.
5423
5424 2004-08-18  Richard Henderson  <rth@redhat.com>
5425
5426         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5427         * alias.c (true_dependence): Update to match new semantics.
5428         (canon_true_dependence, write_dependence_p): Likewise.
5429         (anti_dependence, output_dependence): Update write_dependence_p args.
5430         (unchanging_anti_dependence): Remove.
5431         * calls.c (purge_mem_unchanging_flag): Remove.
5432         (fixup_tail_calls): Don't call it.
5433         (expand_call): Don't add unchanging memory to function usage.
5434         * expr.c (emit_block_move_via_libcall): Likewise.
5435         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
5436         (get_subtarget): Don't use RTX_UNCHANGING_P.
5437         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
5438         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
5439         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
5440         * cse.c (insert): Don't use RTX_UNCHANGING_P.
5441         (cse_insn, canon_hash): Use MEM_READONLY_P.
5442         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
5443         instead of RTX_UNCHANGING_P.
5444         * explow.c (maybe_set_unchanging): Remove.
5445         * expr.h (maybe_set_unchanging): Remove.
5446         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
5447         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
5448         (assign_parm_setup_reg, expand_function_start): Likewise.
5449         * integrate.c (copy_rtx_and_substitute): Likewise.
5450         * ra-rewrite.c (emit_colors): Likewise.
5451         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
5452         (fixup_match_1): Likewise.
5453         * reload1.c (reload, alter_reg): Likewise.
5454         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
5455         not RTX_UNCHANGING_P.
5456         (equiv_init_varies_p): Likewise.
5457         * loop-invariant.c (check_maybe_invariant): Likewise.
5458         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
5459         * loop.c (note_addr_stored): Likewise.
5460         (prescan_loop): Likewise. Don't check function usage for clobbered
5461         unchanging memory.
5462         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
5463         not RTX_UNCHANGING_P.
5464         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
5465         * varasm.c (force_const_mem): Likewise.
5466         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
5467         * web.c (entry_register): Likewise.
5468         * tree-gimple.h (get_base_address): Move decl ...
5469         * tree.h: ... here.
5470         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5471
5472         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
5473         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
5474         (alpha_set_memflags): Update to match.
5475
5476         * config/darwin.c (machopic_indirect_data_reference): Set
5477         MEM_READONLY_P instead of RTX_UNCHANGING_P.
5478         (machopic_indirect_call_target): Likewise.
5479         (machopic_legitimize_pic_address): Likewise.
5480         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
5481         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
5482         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
5483         * config/frv/frv.md (symGOT2reg): Likewise.
5484         * config/i386/i386.c (legitimize_pic_address,
5485         legitimize_tls_address, ix86_split_to_parts): Likewise.
5486         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5487         * config/ia64/ia64.md (load_fptr): Likewise.
5488         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5489         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
5490         * config/mcore/mcore.c (block_move_sequence): Likewise.
5491         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
5492         * config/pa/pa.c (legitimize_pic_address): Likewise.
5493         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5494         (rs6000_emit_move): Likewise.
5495         * config/s390/s390.c (legitimize_pic_address): Likewise.
5496         (legitimize_tls_address): Likewise.
5497         * config/s390/s390.md (casesi): Likewise.
5498         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
5499         * config/sh/sh.md (symGOT2reg): Likewise.
5500         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
5501         * config/v850/v850.md (casesi): Likewise.
5502
5503         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
5504         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
5505         * config/mips/mips.c (mips_restore_gp): Likewise.
5506         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
5507         * config/sh/sh.c (sh_reorg): Likewise.
5508
5509 2004-08-18  Richard Henderson  <rth@redhat.com>
5510
5511         * tree.h (struct tree_decl): Add gimple_formal_temp.
5512         (DECL_GIMPLE_FORMAL_TEMP_P): New.
5513         * gimplify.c (pop_gimplify_context): Clear it.
5514         (lookup_tmp_var): Set it, if is_formal.
5515         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
5516         Use is_gimple_val for VECTOR.  Simplify return value.
5517         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
5518         (gimplify_expr): Likewise.
5519         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
5520         is_gimple_tmp_rhs for clarity.  Update all callers.
5521         (is_gimple_reg_rhs): Simplify logic.
5522         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
5523         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
5524         (is_gimple_formal_tmp_reg): Similarly.
5525         * tree-gimple.h: Update decls.
5526         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
5527         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
5528         * tree-ssa-live.c (var_union, type_var_init): Likewise.
5529
5530 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
5531
5532         * c4x.c (legitimize_operands): Remove calls to
5533         preserve_subexpressions_p.
5534
5535 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
5536
5537         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
5538         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
5539
5540 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
5541
5542         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
5543         Objective-C++ extensions.
5544         * gengtype.c (get_file_basename): Match entire subdirectory name
5545         ('cp', 'objc', 'objcp') rather than just its suffix.
5546         (get_base_file_bitmap): Allow for files to belong to more than one
5547         language.
5548         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
5549         used by more than one front-end.
5550
5551 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
5552
5553         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
5554         avoid use of preserve_subexpressions_p.
5555
5556 2004-08-17  Richard Henderson  <rth@redhat.com>
5557
5558         PR 17051
5559         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
5560
5561 2004-08-17  DJ Delorie  <dj@redhat.com>
5562
5563         * doc/extend.texi: Document new xstormy16 attribute.
5564
5565         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
5566         (xstormy16_splittable_below100_or_register): New.
5567         (combine_bnp): New.
5568         (xstormy16_reorg): New.
5569         (TARGET_MACHINE_DEPENDENT_REORG): Define.
5570
5571         * config/stormy16/stormy16.md (movqi_internal): Make name public.
5572         (movhi_internal): Likewise.
5573         (cbhranchhi): Likewise.
5574         (cbhranchhi_neg): Likewise.
5575         (andhi3): Only allow splittable below100 operands.
5576         (iorhi3): Likewise.
5577         (peephole2): New and/zero_extend->and peephole.
5578         (peephole2): New load/ior/save->set1 peephole.
5579         (peephole2): New load/and/save->clr1 peephole.
5580         (bclrx, bclrx2, bclr7, bclr15): New.
5581         (bsetx, bsetx2, bset7, bset15): New.
5582
5583         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
5584         liberal about acceptable 'B' masks.
5585
5586         * config/stormy16/stormy16-protos.h
5587         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5588         xstormy16_below100_operand, xstormy16_below100_or_register,
5589         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5590         (PREDICATE_CODES): Add new predicates.
5591
5592         * config/stormy16/stormy16.c
5593         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5594         xstormy16_below100_operand, xstormy16_below100_or_register,
5595         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5596         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
5597         (xstormy16_legitimate_address_p): Allow below100 symbols.
5598         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
5599         (xstormy16_expand_move): Leave below100 operands as-is.
5600         (xstormy16_encode_section_info): Encode below100 symbols.
5601         (xstormy16_strip_name_encoding): New.
5602         (xstormy16_print_operand): Print 'b' as shift mask.
5603         (xstormy16_attribute_table): Add below100 attributes.
5604         (xstormy16_handle_below100_attribute): New.
5605
5606         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
5607         (XSTORMY16_SECTION_FUNCTION): New.
5608         (EXTRA_SECTION_FUNCTIONS): Define using the above.
5609         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
5610         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
5611         (ASM_OUTPUT_LABELREF): Define.
5612
5613         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
5614         (movhi_internal): Add below100 support.
5615         (andhi3): Add below100 support.
5616         (iorhi3): Add below100 support.
5617         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
5618
5619 2004-08-17  James E Wilson  <wilson@specifixinc.com>
5620
5621         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
5622         of VOIDmode for comparison code mode.
5623         * config/mips/mips.md: For conditional move patterns, use mode of
5624         first compare operand for comparison mode, instead of VOIDmode.
5625
5626         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
5627         normal and -ffast-math code.
5628
5629 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
5630
5631         PR c++/15871
5632         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
5633
5634 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
5635
5636         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
5637
5638 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
5639
5640         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
5641         for non Darwin targets.
5642         (*call_value_nonlocal_darwin64): Likewise.
5643
5644 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
5645
5646         * config/rs6000/rs6000.c (rs6000_function_value): Check for
5647         altivec mode for altivec return register.
5648
5649 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
5650
5651         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
5652         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5653         * config/rs6000/rs6000.md: Include darwin.md.
5654         (builtin_setjmp_receiver): Add DImode case.
5655         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
5656         Darwin bits.
5657
5658 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
5659
5660         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
5661         trees.
5662         * tree-vectorizer.h: New File: Same.
5663         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
5664         * common.opt (ftree-vectorize): New flag to enable vectorization.
5665         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
5666         vectorization pass.
5667         * tree-data-ref.h (init_data_ref): Additional argument.
5668         (array_base_name_differ_p): Moved to tree-data-ref.c.
5669         * tree-data-ref.c (array_base_name_differ_p): Revised.
5670         (initialize_data_dependence_relation): Call array_base_name_differ_p
5671         with an extra argument.
5672         (analyze_all_data_dependences): Same.
5673         (init_data_ref): Additional argument is_read to set DR_IS_READ.
5674         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
5675         file.
5676         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
5677         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
5678         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
5679         vectorization pass.
5680         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
5681         (tree_ssa_loop_done): Call scev_finalize.
5682         (tree_vectorize): Define the new vectorization pass.
5683         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
5684         size of the vector they support (until support for multiple vector
5685         sizes is added to the vectorizer).
5686         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
5687         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
5688         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
5689         documentation.
5690
5691 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
5692
5693         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
5694         usage.
5695         (generate_protocol_list, handle_impent): Likewise.
5696
5697 2004-08-17  Roger Sayle  <roger@eyesopen.com>
5698
5699         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
5700         ensure that call_used_regs is a superset of both fixed_regs and
5701         call_really_used_regs.
5702
5703 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
5704
5705         PR target/17019
5706         * arm.md (addsi3_cbranch_scratch): Correct case labels.
5707
5708 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
5709
5710         PR middle-end/17036
5711         * fold-const.c (fold): Check for integer operand when
5712         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
5713         Pinski  <pinskia@physics.uc.edu>.
5714
5715 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
5716
5717         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
5718         No need to check if in a cross configuration.
5719         * configure: Regenerate.
5720
5721         * calls.c (precompute_register_parameters):
5722         Inline preserve_subexpressions_p ().
5723         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
5724         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
5725         Likewise.
5726         * expr.c (get_subtarget): Likewise.
5727         * rtl.h (preserve_subexpressions_p): Remove.
5728         * stmt.c (preserve_subexpressions_p): Remove.
5729
5730         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
5731         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
5732         Abort on gimplified cases.
5733
5734 2004-08-16  James E Wilson  <wilson@specifixinc.com>
5735
5736         * tree.h (VECTOR_FLOAT_TYPE_P): New.
5737         (FLOAT_TYPE_P): Use it.
5738         * c-typeck.c (build_binary_op): After convert calls, check for
5739         check for ERROR_MARK operands.
5740
5741 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
5742
5743         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
5744         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
5745         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
5746         (genobjs static pattern rule): Remove %.c dependency.
5747         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
5748         Rename rules; delete commands; fix dependencies.
5749         (mostlyclean): Do not delete temporary source copies.
5750         * configure.ac: Delete all references to BUILD_PREFIX and
5751         BUILD_PREFIX_1.
5752         * configure: Regenerate.
5753
5754         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
5755         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
5756         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
5757         with #ifndef GENERATOR_FILE so that nothing from those headers
5758         is used.
5759
5760         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
5761
5762 2004-08-16  Adam Nemet  <anemet@lnxw.com>
5763
5764         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
5765
5766 2004-08-16  Andrew Pinski  <apinski@apple.com>
5767
5768         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
5769         extraneous semicolon.
5770
5771 2004-08-16  Devang Patel  <dpatel@apple.com>
5772
5773         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
5774         * print-tree.c (print_node): Print DECL_PRESERVE_P.
5775         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
5776         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
5777         * target.h (struct gcc_target): New member, mark_decl_preserved.
5778         * hooks.c (hook_void_charptr): Rename to ...
5779         (hook_void_constcharptr): ... new name.
5780         * hooks.h (hook_void_charptr): Rename to ..
5781         (hook_void_constcharptr): ... new name.
5782         * tree.h (DECL_PRESERVE_P): New #define.
5783         (struct tree_decl): New member, preserve_flag.
5784         * varasm.c (assemble_start_function): Mark decl preserved.
5785         (assemble_variable): Same.
5786         * darwin.c (darwin_mark_decl_preserved): New function.
5787         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
5788         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
5789         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
5790
5791 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
5792
5793         * c-decl.c (grokdeclarator): Allow for function definition where
5794         innermost declarator has attributes.
5795
5796 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
5797
5798         * except.c (get_exception_filter, build_post_landing_pads,
5799         dw2_build_landing_pads): Use target-specific mode for 'filter'.
5800         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
5801         * target.h (eh_return_filter_mode): New field added.
5802         * targhooks.c (default_eh_return_filter_mode): Defined.
5803         * targhooks.h (default_eh_return_filter_mode): Declared.
5804         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
5805
5806 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5807
5808         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
5809         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
5810         * configure: Regenerate.
5811
5812 2004-08-16  Stan Shebs  <shebs@apple.com>
5813
5814         Basic support for 64-bit Darwin.
5815         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5816         (machopic_legitimize_pic_address): Similarly, plus use Pmode
5817         instead of SImode.
5818         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
5819         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
5820         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
5821         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
5822         (PROCESSOR_DEFAULT64): Define.
5823         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
5824         Darwin.
5825         * config/rs6000/rs6000.md: Include darwin.md.
5826         (builtin_setjmp_receiver): Add DImode case.
5827         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
5828         Darwin.
5829         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
5830         (rs6000_emit_move): Add DImode case to Darwin bits.
5831         (machopic_output_stub): Use .quad if 64-bit.
5832         * invoke.texi: Document -m32 and -m64.
5833
5834 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
5835
5836         * doc/extend.texi (AltiVec builtins): Document additional differences
5837         from the Motorola AltiVec PIM.
5838
5839 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
5840
5841         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
5842         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
5843         (struct tree_common): Update public_flag documentation.
5844
5845 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5846
5847         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5848         Check for artificial variables, not is_gimple_tmp_var.
5849         * tree-ssa-live.c (var_union): Likewise.
5850
5851 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
5852
5853         * calls.c (load_register_parameters): Remove spurious FIXME token.
5854
5855 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
5856
5857         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
5858         (c-lang.o): Depend on c-objc-common.h.
5859         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
5860         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
5861         * c-lang.c: Include c-objc-common.h.
5862         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
5863         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
5864         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
5865         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
5866         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
5867         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
5868         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
5869         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
5870         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
5871         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
5872         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
5873         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
5874         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5875         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
5876         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
5877         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
5878         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
5879         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
5880         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
5881         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
5882         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
5883         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
5884         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
5885         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
5886         Move to c-objc-common.h.
5887         * c-objc-common.c: Include c-objc-common.h.
5888         * c-objc-common.h: New file.
5889
5890 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
5891             Andrew Pinski  <pinskia@physics.uc.edu>
5892
5893         PR target/14931
5894         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
5895         style.
5896
5897 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
5898
5899         * tree.h (build_int_cst): New.
5900         (build_int_2): Remove.
5901         * tree.c (build_int_2): Remove.
5902         (build_int_cst): New.
5903         (make_vector_type, build_common_tree_nodes,
5904         build_common_tree_nodes_2): Use build_int_cst.
5905         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
5906         expand_builtin_strpbrk, expand_builtin_fputs,
5907         build_string_literal, expand_builtin_printf,
5908         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
5909         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
5910         fold_builtin_isdigit, simplify_builtin_strstr,
5911         simplify_builtin_strpbrk, fold_builtin_fputs,
5912         simplify_builtin_sprintf): Use build_int_cst.
5913         * c-common.c (start_fname_decls, fix_string_type,
5914         c_common_nodes_and_builtins, c_init_attributes,
5915         shorten_compare): Likewise.
5916         * c-decl.c (complete_array_type,
5917         check_bitfield_type_and_width): Likewise.
5918         * c-lex.c (interpret_integer, lex_charconst): Likewise.
5919         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
5920         * c-pretty-print.c (pp_c_integer_constant): Likewise.
5921         * c-typeck.c (really_start_incremental_init, push_init_level,
5922         set_nonincremental_init_from_string): Likewise.
5923         * calls.c (load_register_parameters): Likewise.
5924         * convert.c (convert_to_pointer): Likewise.
5925         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
5926         build_fn_info_type, build_ctr_info_value, build_gcov_info):
5927         Likewise.
5928         * except.c (init_eh, assign_filter_values, assign_filter_values):
5929         Likewise.
5930         * expmed.c (store_fixed_bit_field, extract_bit_field,
5931         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
5932         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
5933         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
5934         * expr.c (convert_move, emit_group_load, emit_group_store,
5935         expand_assignment, store_constructor, store_field,
5936         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
5937         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
5938         invert_truthvalue, optimize_bit_field_compare,
5939         decode_field_reference, all_ones_mask_p, constant_boolean_node,
5940         fold_div_compare, fold, fold_read_from_constant_string,
5941         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
5942         * function.c (assign_parm_setup_block): Likewise.
5943         * stmt.c (shift_return_value, expand_end_case_type,
5944         estimate_case_costs): Likewise.
5945         * stor-layout.c (layout_type, initialize_sizetypes,
5946         set_min_and_max_values_for_integral_type): Likewise.
5947         * tree-chrec.c (chrec_fold_multiply_poly_poly,
5948         reset_evolution_in_loop): Likewise.
5949         * tree-chrec.h (build_polynomial_chrec): Likewise.
5950         * tree-complex.c (build_replicated_const): Likewise.
5951         * tree-eh.c (honor_protect_cleanup_actions,
5952         lower_try_finally_onedest, lower_try_finally_copy,
5953         lower_try_finally_switch): Likewise.
5954         * tree-mudflap.c (mf_build_string, mx_register_decls,
5955         mudflap_register_call, mudflap_enqueue_constant): Likewise.
5956         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
5957         * tree-pretty-print.c (dump_generic_node): Likewise.
5958         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
5959         Likewise.
5960         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5961         * tree-ssa-loop-niter.c (number_of_iterations_cond,
5962         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
5963         Likewise.
5964
5965         * config/alpha/alpha.c (alpha_initialize_trampoline,
5966         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
5967         * config/arm/arm.c (arm_get_cookie_size): Likewise.
5968         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
5969         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
5970         * config/i860/i860.c (i860_va_start): Likewise.
5971         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5972         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
5973         mips_gimplify_va_arg_expr): Likewise.
5974         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5975         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
5976         add_compiler_branch_island): Likewise.
5977         * config/s390/s390.c (s390_va_start): Likewise.
5978         * config/sh/sh.c (sh_va_start): Likewise.
5979         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5980         Likewise.
5981         * config/xtensa/xtensa.c (xtensa_va_start,
5982         xtensa_gimplify_va_arg_expr): Likewise.
5983
5984         * objc/objc-act.c (build_objc_string_object,
5985         build_objc_symtab_template, init_def_list, init_objc_symtab,
5986         init_module_descriptor, generate_static_references,
5987         build_selector_translation_table, get_proto_encoding,
5988         build_typed_selector_reference, build_selector_reference,
5989         build_next_objc_exception_stuff,
5990         build_method_prototype_list_template, generate_descriptor_table,
5991         generate_protocols, build_protocol_initializer,
5992         build_ivar_list_template, build_method_list_template,
5993         build_ivar_list_initializer, generate_ivars_list,
5994         generate_dispatch_table, generate_protocol_list,
5995         build_category_initializer, build_shared_structure_initializer,
5996         generate_shared_structures, handle_impent,
5997         generate_objc_image_info): Use build_int_cst.
5998
5999 2004-08-15  Ben Elliston  <bje@au.ibm.com>
6000
6001         * vec.h: Comment improvements.
6002
6003 2004-08-14  Roger Sayle  <roger@eyesopen.com>
6004
6005         * c-common.c (shorten_compare, pointer_int_sum,
6006         c_common_truthvalue_conversion, boolean_increment): Replace calls
6007         to build with calls to buildN.
6008         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
6009         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
6010         gimplify_switch_stmt): Likewise.
6011         * c-typeck.c (default_function_array_conversion,
6012         build_component_ref, build_array_ref, build_function_call,
6013         pointer_diff, build_unary_op, build_conditional_expr,
6014         build_compound_expr, build_modify_expr, c_finish_goto_label,
6015         c_finish_goto_ptr, c_finish_return, c_finish_loop,
6016         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
6017         build_binary_op): Likewise.
6018
6019 2004-08-15  Steven Bosscher  <stevenb@suse.de>
6020
6021         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
6022
6023 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6024
6025         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
6026         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
6027         * fixinc/fixincl.x: Rebuilt.
6028
6029 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
6030
6031         * config/mips/mips-protos.h (mips_symbolic_constant_p)
6032         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
6033         (mips_small_data_pattern_p): Declare.
6034         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
6035         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
6036         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
6037         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
6038         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
6039         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
6040         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
6041         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
6042         (pc_or_label_operand, call_insn_operand, move_operand)
6043         (consttable_operand, symbolic_operand, general_symbolic_operand)
6044         (global_got_operand, local_got_operand, stack_operand)
6045         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
6046         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
6047         (mips_small_data_pattern_p): Replace previous small_data_pattern
6048         predicate.  Turn into a bool () (rtx) function.
6049         * config/mips/predicates.md: New file.
6050         * config/mips/mips.md: Include it.  Use the target-independent
6051         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
6052         trap_comparison_operator and equality_op to equality_operator.
6053         Replace uses of small_int with the equivalent const_arith_operand.
6054         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
6055         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
6056         to fcc_reload_operand.
6057         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
6058
6059 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6060
6061         PR libstdc++/17005 partial fix.
6062         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
6063         except when generating ANSI/C89 code.
6064
6065 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
6066
6067         * c-common.c (shorten_compare): Use force_fit_type directly.
6068
6069 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
6070             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
6071             Dave Korn  <dk@artimi.com>
6072
6073         * doc/install.texi (Building): Avoid duplicate reference to GNU
6074         make requirement.
6075         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
6076
6077 2004-08-14  Richard Henderson  <rth@redhat.com>
6078
6079         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
6080         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
6081
6082 2004-08-13  Richard Henderson  <rth@redhat.com>
6083
6084         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
6085         for constant_call_address_operand.
6086         (call_value_pop_1, call_value_1): Likewise.
6087         (sibcall_value_1, call_value_1_rex64): Likewise.
6088
6089 2004-08-13  James E Wilson  <wilson@specifixinc.com>
6090
6091         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
6092         Correct mode from SFmode to DFmode.
6093
6094 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
6095
6096         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
6097         __cstring_object and __image_info sections with the no_dead_strip
6098         attribute.
6099
6100 2004-08-13  Roger Sayle  <roger@eyesopen.com>
6101             David Billinghurst  <David.Billinghurst@riotinto.com>
6102
6103         PR libgfortran/15930
6104         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
6105         * fixinc/fixincl.x: Regenerate.
6106         * fixinc/tests/base/internal/math_core.h: New file.
6107
6108 2004-08-13  Richard Henderson  <rth@redhat.com>
6109
6110         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
6111         (dbxout_function_end): Remove ifdefs for it.
6112         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
6113
6114 2004-08-13  Richard Henderson  <rth@redhat.com>
6115
6116         * Makefile.in (insn-preds.o): Depend on TREE_H.
6117         * genpreds.c (write_insn_preds_c): Include tree.h.
6118         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
6119         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
6120         const48_operand, and_operand, or_operand, mode_width_operand,
6121         mode_mask_operand, mul8_operand, const0_operand,
6122         hard_fp_register_operand, hard_int_register_operand,
6123         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
6124         samegp_function_operand, direct_call_operand, small_symbolic_operand,
6125         global_symbolic_operand, call_operand, symbolic_operand,
6126         dtp16_symbolic_operand, dtp32_symbolic_operand,
6127         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
6128         gottp_symbolic_operand, alpha_comparison_operator,
6129         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
6130         signed_comparison_operator, alpha_fp_comparison_operator,
6131         divmod_operator, fix_operator, aligned_memory_operand,
6132         unaligned_memory_operand, reg_or_unaligned_mem_operand,
6133         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
6134         reg_no_subreg_operand, addition_operation): Move to predicates.md.
6135         (reg_or_const_int_operand): Remove.  Replace all users with
6136         reg_or_cint_operand.
6137         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
6138         (resolve_reload_operand): Split out of aligned_memory_operand.
6139         * config/alpha/alpha-protos.h: Update for exports.
6140         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
6141         * config/alpha/alpha.md: Include predicates.md.
6142         * config/alpha/predicates.md: New file.
6143
6144 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
6145
6146         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
6147         fields with a pointer to the instruction definition.
6148         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
6149         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
6150         (write_attr_case, write_const_num_delay_slots): Update accordingly.
6151         (write_attr_case, write_const_num_delay_slots): Write the name of
6152         an insn next to its case statement.
6153         * genoutput.c (data): Add a filename field.
6154         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
6155         (output_insn_data): Print the location of each insn definition.
6156         * genrecog.c (write_action): Print the name of an insn above
6157         the statement that returns its code.
6158
6159 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
6160
6161         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
6162         * config/libgloss.h: Likewise.
6163         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
6164         * c4x/c4x-modes.def: Likewise.
6165         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
6166         (c4x_rptb_nop_p): Likewise.
6167         (c4x_rptb_valid_p): Likewise.
6168         (c4x_rptb_insert): Likewise.
6169         (c4x_address_conflict): Likewise.
6170         * config/c4x/c4x.md: Likewise.
6171         * config/frv/frv.md: Likewise.
6172         * config/i386/athlon.md: Likewise.
6173         * config/i386/i386.md: Likewise.
6174         * config/i386/predicates.md: Likewise.
6175         * config/ia64/ia64.c: Likewise.
6176         * config/ia64/itanium1.md: Likewise.
6177         * config/ia64/itanium2.md: Likewise.
6178         * config/iq2000/iq2000.md: Likewise.
6179         * config/mcore/mcore.c: Likewise.
6180         * config/mips/mips.c: Likewise.
6181         * config/mips/r3900.h: Likewise.
6182         * config/mips/sb1.md: Likewise.
6183         * config/pa/milli64.S: Likewise.
6184         * config/pa/pa.c: Likewise.
6185         * config/pa/pa.h: Likewise.
6186         * config/rs6000/8540.md: Likewise.
6187
6188 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
6189
6190         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
6191
6192 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
6193
6194         * sh.md (cbranch define_delay) Use cond_delay_slot for
6195         non-anulled condition too.
6196
6197 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
6198
6199         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
6200         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
6201         any_parallel_operand, lmw_operation, stmw_operation,
6202         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
6203         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
6204         any_parallel_operand.
6205         (return_and_restore_fpregs_{si,di}): Same.
6206
6207 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
6208
6209         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
6210         if pred->singleton != PARALLEL, issue a warning and pretend it was.
6211         Also issue a warning for any predicate we don't know about.
6212
6213 2004-08-12  Richard Henderson  <rth@redhat.com>
6214
6215         * config/i386/i386.c (internal_label_prefix): Export.
6216         (internal_label_prefix_len, struct ix86_address,
6217         ix86_decompose_address, maybe_get_pool_constant,
6218         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
6219         memory_address_length): Export.
6220         (any_fp_register_operand, fp_register_operand,
6221         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
6222         x86_64_general_operand, x86_64_szext_general_operand,
6223         x86_64_nonmemory_operand, x86_64_movabs_operand,
6224         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
6225         x86_64_zext_immediate_operand, const_int_1_31_operand,
6226         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
6227         tls_symbolic_operand, global_dynamic_symbolic_operand,
6228         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
6229         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
6230         constant_call_address_operand, const0_operand, const1_operand,
6231         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
6232         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
6233         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
6234         general_no_elim_operand, nonmemory_no_elim_operand,
6235         index_register_operand, q_regs_operand, flags_reg_operand,
6236         non_q_regs_operand, zero_extended_scalar_load_operand,
6237         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
6238         ix86_comparison_operator, ix86_carry_flag_operator,
6239         fcmov_comparison_operator, promotable_binary_operator,
6240         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
6241         mult_operator, div_operator, arith_or_logical_operator,
6242         memory_displacement_operand, cmpsi_operand, long_memory_operand,
6243         aligned_operand): Move to predicates.md as define_predicates.
6244         (tls_symbolic_operand_1): Remove.
6245         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
6246         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
6247         (legitimize_address): Merge tls_symbolic_operand contents.
6248         (ix86_expand_move): Likewise.
6249         * config/i386/i386-protos.h: Update for exports.
6250         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
6251         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
6252         * config/i386/i386.md: Include predicates.md.
6253         * config/i386/predicates.md: New file.
6254
6255 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
6256
6257         PR c++/16924
6258         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
6259         SYMBOL_REF_DECL.
6260         (i386_pe_mark_dllimport): Likewise.
6261         (i386_pe_encode_section_info): Likewise, when overriding
6262         dllimport attribute.
6263
6264 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
6265
6266         * configure.ac: When testing for flex, nm, ar, and bison, check
6267         that they will actually be built.
6268         * configure: Regenerate.
6269
6270 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
6271
6272         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
6273         (MOVE_MAX_PIECES): Define.
6274
6275 2004-08-12  Devang patel  <dpatel@apple.com>
6276
6277         * dbxout.c (dbxout_begin_prologue): New function.
6278         (dbx_debug_hooks): Use new begin prologue hook.
6279         (dbxout_function_end): Emit N_ENSYM.
6280         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
6281
6282 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
6283
6284         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
6285         argument is float*.
6286
6287         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
6288         for vec_dss.
6289
6290         * doc/extend.texi (AltiVec builtins): Fix description for recent
6291         changes.  Update operation list to match current support.
6292
6293 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6294
6295         * config/s390/s390.c (struct s390_frame_layout): New struct as element
6296         of struct machine_function.
6297         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
6298         changed all uses.
6299         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
6300         changed all uses.
6301         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
6302         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
6303         (s390_frame_area, s390_register_info): New functions.
6304         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
6305         for base register.
6306         (s390_return_addr_rtx, s390_return_address_offset)
6307         (s390_va_start, s390_gimplify_va_arg)
6308         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
6309         layouts.
6310         (s390_frame_info): Functionality partly moved to s390_register_info.
6311         Made adaptions for new stack layout.
6312         (save_gprs, restore_gprs): Changed meaning of second parameter and
6313         adapted all callers.
6314
6315         * config/s390/s390.h (s390_backchain_string): New global variable.
6316         (MASK_BACKCHAIN): Removed definition.
6317         (TARGET_BACKCHAIN): Changed check.
6318         (TARGET_KERNEL_BACKCHAIN): New macro.
6319         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
6320         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
6321         "kernel-backchain".
6322         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
6323
6324         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
6325         as condition.  Adjusted for new stack layout.
6326
6327         * doc/invoke.texi: Added documentation for new option
6328         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
6329         "-mno-backchain".
6330
6331 2004-08-12  Paul Brook  <paul@codesourcery.com>
6332
6333         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
6334         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
6335
6336 2004-08-12  David Daney  <ddaney@avtrex.com>
6337
6338         * java/gcj.texi:  Add subsection on signal usage.
6339
6340 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
6341
6342         * expr.c (move_by_pieces): Set alignment for move to minimum of
6343         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
6344         alignment, but not less than the original alignment.
6345         (move_by_pieces_ninsns): Same.
6346         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
6347         (store_by_pieces_1): Same.
6348
6349 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
6350
6351         PR tree-optimization/16867
6352         * tree.c (is_global_var): New function.
6353         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
6354         Call is_global_var.
6355         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
6356         Update all users.
6357         (is_global_var): Declare.
6358         * tree-dfa.c (dump_variable): Display global and addressable
6359         attributes.
6360         (add_referenced_var): Clarify documentation when marking
6361         variables call-clobbered.
6362         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
6363         instead of needs_to_live_in_memory.
6364         (mark_call_clobbered): If the variable is a tag, mark it
6365         DECL_EXTERNAL.
6366         * tree-gimple.c (is_gimple_reg): Don't check for
6367         TREE_ADDRESSABLE.
6368         (is_gimple_non_addressable): Likewise.
6369         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
6370         needs to be marked call-clobbered.
6371         (setup_pointers_and_addressables): Call is_global_var instead
6372         of needs_to_live_in_memory.
6373         * tree-ssa-dce.c (need_to_preserve_store): Remove.
6374         Update all users with is_global_var.
6375         (mark_stmt_if_obviously_necessary): Fix processing of aliased
6376         stores.  Don't check the virtual definitions.  Rather, check
6377         whether the store is going into global memory.
6378         (find_obviously_necessary_stmts): Get the symbol from the PHI
6379         result.
6380         * tree-ssa-operands.c (get_call_expr_operands): Do not add
6381         clobbering may-defs if the call does not have side effects.
6382
6383 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
6384
6385         PR c++/16276
6386         * output.h (default_function_rodata_section,
6387         default_no_function_rodata_section): New prototypes.
6388         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
6389         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
6390         (TARGET_ASM_OUT): Add it.
6391         * varasm.c (default_function_rodata_section,
6392         default_no_function_rodata_section): New functions.
6393         * final.c (final_scan_insn): Call
6394         targetm.asm_out.function_rodata_section instead of
6395         readonly_data_section.
6396         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
6397         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6398         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6399         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6400         Likewise.
6401         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6402         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6403         Likewise.
6404         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6405         Likewise.
6406         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6407         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6408         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
6409
6410 2004-08-12  Paul Brook  <paul@codesourcery.com>
6411
6412         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
6413         frame info.
6414         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
6415         DWARF2_UNWIND_INFO.
6416
6417 2004-08-12  Ben Elliston  <bje@au.ibm.com>
6418
6419         PR target/16286
6420         * config/rs6000/altivec.h: Change vector to __vector throughout.
6421         (Except for the `vector' macro itself).
6422
6423 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
6424
6425         * genpreds.c: Add capability to generate predicate bodies as
6426         well as function prototypes.  Write function prototypes for
6427         the generic predicates too.
6428         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
6429         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
6430         (write_match_code, write_predicate_expr, write_one_predicate_function)
6431         (parse_option): New functions.
6432         (output_predicate_decls): Delete.
6433         (main): Read the machine description, process DEFINE_PREDICATE or
6434         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
6435         as appropriate.
6436
6437         * genrecog.c (struct decision_test): Replace index with
6438         struct pred_data pointer.
6439         (next_index): Remove, unused.
6440         (pred_table, preds, special_mode_pred_table): Delete.
6441         (compute_predicate_codes, process_define_predicate): New functions.
6442         (validate_pattern, add_to_sequence, write_switch): Update for
6443         new data structures.
6444         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6445         Check both error_count and have_error.
6446
6447         * gensupport.c (in_fname, first_predicate): New globals.
6448         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
6449         (predicate_table, last_predicate, old_pred_table)
6450         (old_special_pred_table): New statics.
6451         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
6452         (add_predicate, init_predicate_table): New functions.
6453         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6454         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
6455         it or max_include_len.  Call init_predicate_table.
6456         (read_rtx): Run the predicate queue after the attribute queue
6457         but before all the others.
6458         * gensupport.h (in_fname, struct pred_data, first_predicate)
6459         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
6460         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
6461         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
6462         * dummy-conditions.c: Don't include bconfig.h, system.h,
6463         coretypes.h, tm.h, or system.h.  Do include stddef.h.
6464         Duplicate declaration of struct c_test from gensupport.h.
6465
6466         * Makefile.in (OBJS-common): Add insn-preds.o.
6467         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
6468         (insn-preds.c, insn-preds.o): New rules.
6469         (s-preds): Also generate insn-preds.c.
6470         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
6471         Update dependencies.
6472         (print-rtl.o, print-rtl1.o): Correct dependencies.
6473
6474         * recog.h: Delete prototypes of predicate functions.
6475
6476         * doc/md.texi (Predicates): New section with complete
6477         documentation of operand/operator predicates.  Remove some
6478         incomplete documentation of predicates from other places.
6479         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
6480         PREDICATE_CODES; indicate that both are deprecated in favor
6481         of define_predicate/define_special_predicate.
6482
6483         * config/ia64/ia64.c: All predicate function definitions moved
6484         to ia64.md, except
6485         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
6486         (ia64_expand_load_address, ia64_expand_move):
6487         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
6488
6489         * config/ia64/ia64.md: All predicates now defined here.
6490         (symbolic_operand): Is now a special predicate.
6491
6492         * config/ia64/ia64.h: Declare ia64_section_threshold.
6493         (PREDICATE_CODES): Delete.
6494
6495 2004-08-12  Richard Henderson  <rth@redhat.com>
6496
6497         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
6498         * c-semantics.c (add_stmt): Set it.
6499         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
6500         before instantiating a variable sized type.
6501
6502 2004-08-12  Richard Henderson  <rth@redhat.com>
6503
6504         * stor-layout.c (round_up, round_down): Move ...
6505         * fold-const.c (round_up, round_down): ... here.  Use
6506         multiple_of_p to avoid any arithmetic at all.
6507
6508 2004-08-12  Richard Henderson  <rth@redhat.com>
6509
6510         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
6511         (gimplify_init_ctor_preeval_1): New.
6512         (gimplify_init_ctor_preeval): New.
6513         (gimplify_init_ctor_eval): New.
6514         (gimplify_init_constructor): Use them.  Always gimplify the LHS
6515         object first.
6516
6517 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
6518
6519         (This patch is part of merge of objc-improvements-branch
6520         into mainline.)
6521
6522         * doc/frontends.texi: Mention Objective-C++ in addition to
6523         Objective-C.
6524         * doc/install.texi: Add 'obj-c++' to list of configurable
6525         languages.
6526         * doc/invoke.texi: Rename Objective-C option headings to
6527         indicate they also apply to Objective-C++.  List file
6528         extensions for Objective-C++ sources.  Mention that
6529         ObjC and ObjC++ compilations may also use C and C++ options,
6530         respectively.  Point users to doc/standards.texi for
6531         further info on ObjC and ObjC++.
6532         * doc/sourcebuild.texi: Mention the objcp/ directory and
6533         the Objective-C++ sources it contains.
6534         * doc/standards.texi: Update link to Apple ObjC site;
6535         add link to gcc readings.html WWW doc.
6536
6537 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
6538
6539         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
6540         and 2004-07-14 changes.
6541
6542 2004-08-12  Paul Brook  <paul@codesourcery.com>
6543
6544         * doc/invoke.texi: Fix typo.
6545
6546 2004-08-11 Devang Patel  <dpatel@apple.com>
6547
6548         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
6549         and -no_dead_strip_inits_and_terms.
6550         (LINK_SPEC): Same.
6551         * doc/invoke.texi (Darwin Options): Document -dead_strip and
6552         -no_dead_strip_inits_and_terms.
6553
6554 2004-08-11  Paul Brook  <paul@codesourcery.com>
6555
6556         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
6557         (arm_load_pic_register): ... to this.
6558         * config/arm/arm.c (arm_finalize_pic): Rename ...
6559         (arm_load_pic_register): ... to this.  Always output insns at the
6560         current location.  Load via low reg in thumb mode.
6561         (arm_expand_prologue): Call arm_load_pic_register.
6562         (thumb_expand_prologue): Ditto.
6563         * config/arm/arm.h (FINALIZE_PIC): Remove.
6564         * config/arm/arm.md (builtin_setjmp_receiver): Call
6565         arm_load_pic_register.
6566
6567 2004-08-11  Paul Brook  <paul@codesourcery.com>
6568
6569         * arm.c (thumb_force_lr_save): Add prototype.
6570         (thumb_compute_save_reg_mask): New function.
6571         (thumb_find_work_register): New function.
6572         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
6573         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
6574         Don't clobber r3 when removing pretend args.
6575         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
6576         (thumb_output_function_prologue): Use new functions.
6577         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
6578         * arm.h (THUMB_REG_PUSHED_P): Remove.
6579
6580 2004-08-11  James E Wilson  <wilson@specifixinc.com>
6581
6582         PR rtl-optimization/16490
6583         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
6584         global_live_at_end for new basic block if already set for other blocks.
6585
6586 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
6587
6588         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
6589
6590         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
6591         (mfcr rlwinm rlwinm patterns): Set length to 12.
6592
6593 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
6594
6595         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
6596         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
6597         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
6598         (start_ssa_stmt_operands): Delete.
6599         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
6600         struct stmt_operands_d.
6601         (build_ssa_operands): New extern entry point.
6602         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
6603         building code, replace with create_ssa_artficial_load_stmt().
6604         * tree-ssa-operands.c (struct voperands_d): Delete.
6605         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
6606         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
6607         (free_uses, free_defs, free_vuses, free_v_may_defs,
6608         free_v_must_defs): Remove dealloc parameter.
6609         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
6610         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
6611         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
6612         vector comparisons, ssa_name reuse, and allocations here.
6613         (verify_start_operands): Delete.
6614         (finalize_ssa_stmt_operands): Set new operands by calling finalize
6615         routines.
6616         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
6617         (append_def, append_usei): Simplify to simple accumulation.
6618         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
6619         duplicates and simple accumulation.
6620         (free_ssa_operands): Free vectors in a stmt_operand structure.
6621         (build_ssa_operands): New. Create a new stmt_operand structure from
6622         a stmt and an old set of stmt_operands.
6623         (get_stmt_operands): Simplify and call build_ssa_operands.
6624         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
6625         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
6626         add_call_read_ops): Don't pass prev_vops around anymore.
6627         (note_addressable): Return if no stmt annotation.
6628         (copy_virtual_operands): Access v_may_def operands through a struct.
6629         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
6630         hash tables without treating the stmt as a real stmt.
6631         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
6632         v_may_def def and use through a struct instead of 2 array elements.
6633         (struct v_may_def_optype_d): Use v_may_def_operand_type.
6634         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
6635
6636 2004-08-11  Nick Clifton  <nickc@redhat.com>
6637
6638         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
6639         this funciton's behaviour.  Return true when the current function
6640         has a section attribute and -mlong-calls is in effect.
6641         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
6642         short-call marker when -mlong-calls is in effect and the function
6643         has a section attribute.
6644
6645 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
6646
6647         * stmt.c (expand_return): If asked to return the RESULT_DECL,
6648         just call expand_value_return on result_rtl.
6649
6650 2004-08-10  Richard Henderson  <rth@redhat.com>
6651
6652         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
6653         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
6654         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
6655         (add_location_or_const_value_attribute): ... not here.  Use
6656         loc_descriptor_from_tree if possible.
6657         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
6658         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
6659         values specially.
6660         (loc_descriptor_from_tree): New.  Update callers.
6661         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
6662         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
6663         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
6664         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
6665         and BUILT_IN_STACK_RESTORE.
6666         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
6667         * stmt.c (expand_stack_alloc): Remove.
6668         * tree-mudflap.c (mx_register_decls): Don't look for
6669         BUILT_IN_STACK_ALLOC.
6670         * tree-nested.c (convert_local_reference): Likewise.
6671         * tree.h (DECL_VALUE_EXPR): New.
6672
6673 2004-08-10  Richard Henderson  <rth@redhat.com>
6674
6675         * stor-layout.c (round_up): Check for 0/1 before dividing.
6676         (round_down): Likewise.
6677
6678         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
6679
6680 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
6681
6682         * config.gcc (arm*-*-eabi*): New target.
6683         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
6684         (TARGET_LIB_INT_CMP_BIASED): Likewise.
6685         * expmed.c (expand_divmod): Try a two-valued divmod function as a
6686         last resort.
6687         * gthr.h: Remove bogus tokens at end of #pragma.
6688         * optabs.c (expand_twoval_binop_libfunc): New function.
6689         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
6690         (prepare_float_lib_cmp): Try reversing the condition.
6691         (debug_optab_libfuncs): New function.
6692         * optabs.h (expand_twoval_binop_libfunc): Declare.
6693         * config/arm/arm.c (arm_init_libfuncs): New function.
6694         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
6695         (TARGET_INIT_LIBFUNCS): Define it.
6696         * config/arm/arm.h (TARGET_BPABI): New macro.
6697         * config/arm/arm-protos.h
6698         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
6699         * config/arm/bpabi.S: New file.
6700         * config/arm/bpabi.c: Likewise.
6701         * config/arm/bpabi.h: Likewise.
6702         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
6703         (__aeabi_drsub): Likewise.
6704         (__aeabi_dsub): Likewise.
6705         (__aeabi_dadd): Likewise.
6706         (__aeabi_ui2d): Likewise.
6707         (__aeabi_i2d): Likewise.
6708         (__aeabi_f2d): Likewise.
6709         (__aeabi_dmul): Likewise.
6710         (__aeabi_ddiv): Likewise.
6711         (__aeabi_cdrcmple): Likewise.
6712         (__aeabi_cdcmpeq): Likewise.
6713         (__aeabi_cdcmple): Likewise.
6714         (__aeabi_dcmpeq): Likewise.
6715         (__aeabi_dcmplt): Likewise.
6716         (__aeabi_dcmple): Likewise.
6717         (__aeabi_dcmpge): Likewise.
6718         (__aeabi_dcmpgt): Likewise.
6719         (__aeabi_dcmpun): Likewise.
6720         (__aeabi_d2iz): Likewise.
6721         (__aeabi_d2uiz): Likewise.
6722         (__aeabi_d2f): Likewise.
6723         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
6724         (__aeabi_frsub): Likewise.
6725         (__aeabi_fsub): Likewise.
6726         (__aeabi_fadd): Likewise.
6727         (__aeabi_ui2f): Likewise.
6728         (__aeabi_i2f): Likewise.
6729         (__aeabi_fmul): Likewise.
6730         (__aeabi_fdiv): Likewise.
6731         (__aeabi_cfrcmple): Likewise.
6732         (__aeabi_cfcmpeq): Likewise.
6733         (__aeabi_cfcmple): Likewise.
6734         (__aeabi_fcmpeq): Likewise.
6735         (__aeabi_fcmplt): Likewise.
6736         (__aeabi_fcmple): Likewise.
6737         (__aeabi_fcmpge): Likewise.
6738         (__aeabi_fcmpgt): Likewise.
6739         (__aeabi_fcmpun): Likewise.
6740         (__aeabi_f2iz): Likewise.
6741         (__aeabi_f2uiz): Likewise.
6742         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
6743         (__aeabi_uidivmod): New function or alias.
6744         (__aeabi_idivmod): Likewise.
6745         (__aeabi_idiv0): Likewise.
6746         (__aeabi_ldiv0): Likewise.
6747         (__aeabi_llsr): Likewise.
6748         (__aeabi_lasr): Likewise.
6749         (__aeabi_llsl): Likewise.
6750         (bpabi.S): Include it.
6751         * config/arm/libgcc-bpabi.ver: New file.
6752         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
6753         (LINK_SPEC): Remove.
6754         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
6755         __aeabi_ulcmp.
6756         * config/arm/t-bpabi: New file.
6757         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
6758         (TARGET_LIB_INT_CMP_BIASED): Likewise.
6759
6760 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
6761
6762         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
6763         * config/rs6000/rs6000.md (clrmemsi): New pattern.
6764         * config/rs6000/rs6000.c (expand_block_clear): New function.
6765         (expand_block_move): Convert alignment to bits.  Use SImode and
6766         HImode for unaligned addresses if not STRICT_ALIGNMENT.
6767
6768 2004-08-10  Caroline Tice  <ctice@apple.com>
6769
6770         * varasm.c (unlikely_section_label): New global variable.
6771         (unlikely_text_section_name): New global variable.
6772         (text_section):  Remove alignment statement.
6773         (unlikely_text_section): Remove alignment statement; use
6774         unlikely_section_label rather than hard-coded string.
6775         (assemble_start_function): Initialize unlikely_section_label and
6776         unlikely_text_section_name;  make sure cold section is properly
6777         aligned at start of function; output unlikely_section_label if
6778         appropriate.
6779
6780 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
6781
6782         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
6783         * config/s390/s390.c (s390_canonicalize_comparison): New function.
6784         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
6785         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
6786         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
6787         ("*tmqi_mem"): Remove SUBREG from pattern.
6788         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
6789         ("*andsi3_cconly"): Likewise.
6790
6791 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
6792
6793         PR target/16909
6794         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
6795
6796 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
6797
6798         * doc/sourcebuild.texi (compat testing): Document available test
6799         framework commands.  Use the preferred spelling of DejaGnu.
6800
6801 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
6802
6803         * lambda.h: Add matrix type, and prototypes for remainder of
6804         matrix and vector functions.
6805         (lambda_vector_mult_const): New function.
6806         (lambda_vector_negate): Ditto.
6807         (lambda_vector_add): Ditto.
6808         (lambda_vector_add_mc): Ditto.
6809         (lambda_vector_copy): Ditto.
6810         (lambda_vector_zerop): Ditto.
6811         (lambda_vector_equal): Ditto.
6812         (lambda_vector_min_nz): Ditto.
6813         (lambda_vector_first_nz): Ditto.
6814         (lambda_vector_matrix_mult): Ditto.
6815         * lambda-mat.c: New file.
6816         * Makefile.in (lambda-mat.o): New.
6817
6818 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
6819
6820         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
6821         after linking stmt into the program.
6822         (bsi_remove): Don't call modify_stmt.
6823         * tree-complex.c (update_complex_assignment,
6824         expand_complex_comparison): Call modify_stmt after changing the stmt.
6825         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
6826         removing the stmt.
6827         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
6828         the stmt, and only if needed.
6829         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
6830         expression.
6831         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
6832         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
6833         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6834         (eliminate_redundant_computations): Don't pass an annotation. Call
6835         modify_stmt rather than setting the annotation directly.
6836         (record_equivalences_from_stmt): Remove unused local 'j'.
6837         (cprop_operand): Take a stmt rather than an annotation as a parameter.
6838         Call modify_stmt.
6839         (cprop_into_stmt): Pass stmt rather than annotation.
6840         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6841         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
6842         modify_stmt.
6843         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
6844
6845 2004-08-10  Jason Merrill  <jason@redhat.com>
6846
6847         PR middle-end/16948
6848         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
6849         the RESULT_DECL.
6850
6851 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
6852
6853         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
6854         hash function.
6855
6856 2004-08-10  Roger Sayle  <roger@eyesopen.com>
6857
6858         * config/mips/mips.md: New reciprocal square root patterns that
6859         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
6860
6861 2004-08-10  Paul Brook  <paul@codesourcery.com>
6862
6863         * config/arm/arm-protos.h (arm_set_return_address,
6864         thumb_set_return_address): Add prototypes.
6865         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
6866         * config/arm/arm.c (arm_compute_func_type,
6867         use_return_insn, arm_compute_save_reg0_reg12_mask,
6868         arm_compute_save_reg_mask, arm_output_function_prologue,
6869         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
6870         current_function_calls_eh_return.
6871         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
6872         old eh code.
6873         (arm_set_return_address, thumb_set_return_address): New functions.
6874         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
6875         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
6876         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
6877         (epilogue): Use the stackadj register.
6878         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
6879
6880 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
6881
6882         PR target/3144
6883         * expr.c (move_by_pieces_ninsns): Add max_size argument.
6884         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
6885         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
6886         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
6887         but using MOVE_RATIO.
6888         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
6889         (can_store_by_pieces): Change max_size type to unsigned int.
6890         (store_by_pieces_1): Likewise.  Pass max_size to
6891         move_by_pieces_ninsns.
6892         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
6893         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
6894         to move_by_pieces_ninsns.
6895         (STORE_BY_PIECES_P): Define.
6896         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
6897         to move_by_pieces_ninsns.
6898         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
6899
6900         * config/i386/i386.h (CLEAR_RATIO): Define.
6901
6902 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
6903
6904         * expr.c (expand_expr_real_1): Add back code that was not dead.
6905
6906 2004-08-09  Andrew Pinski  <apinski@apple.com>
6907
6908         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
6909         which is found to be compatible before returning the aliasing set.
6910
6911 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
6912
6913         * ggc-zone.c (struct alloc_zone): Add statistics counters.
6914         (always_collect): New flag.
6915         (ggc_alloc_zone_1): Update statistics support.  Don't include
6916         overhead in allocated counter.
6917         (sweep_pages): Update allocated counter for large pages.  Don'y
6918         include overhead.
6919         (ggc_collect_1): Always collect.
6920         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
6921         whether to collect.
6922         (SCALE, LABEL): New macros.
6923         (ggc_print_statistics): Add statistics support.
6924
6925 2004-08-09  Roger Sayle  <roger@eyesopen.com>
6926
6927         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
6928         (init_expmed): Fix potential overrun problem with "all.reg".
6929         (expand_sdiv2_pow2): Add an alternate implementation for signed
6930         division, if the target provides a suitable conditional move insn.
6931
6932 2004-08-09  Paul Brook  <paul@codesourcery.com>
6933         Richard Henderson  <rth@redhat.com>
6934
6935         * unwind-dw2.c (uw_install_context_1): Update target saved stack
6936         pointer.
6937
6938 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
6939
6940         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
6941         Check DATA limit only if there's no AS limit.  Ignore insanely
6942         low DATA limits.
6943         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
6944         but take care that the AS limit isn't overrun.
6945         * doc/invoke.texi: Update documentation of min-heapsize parameter.
6946
6947 2004-08-09  Jeff Law  <law@redhat.com>
6948
6949         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
6950         (tree-ssa-threadupdate.o): Add dependencies.
6951         * tree-ssa-threadupdate.c: New file.
6952         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
6953         (rewrite_vars_out_of_ssa): Remove prototype.
6954         (cleanup_tree_cfg): Returns a bool.
6955         * tree.h (thread_through_all_blocks): Prototype.
6956         * tree-outof-ssa.c  (SSANORM_*): Move into here.
6957         (remove_ssa_form): Now static.
6958         (rewrite_vars_out_of_ssa): Kill.
6959         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
6960         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
6961         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
6962         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
6963         anything was changed.
6964         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
6965         from the PHI's annotation rather than the edge associated with
6966         the new argument.
6967         * tree-ssa-dom.c (redirection_edges): Kill.
6968         (redirect_edges_and_update_ssa_graph): Kill.
6969         (tree_ssa_dominator_optimize): Do not reset forwardable flag
6970         for blocks anymore.  Do not initialize redirection_edges.
6971         Call thread_through_all_blocks.  Simplify code for cleanup
6972         of the CFG and iterating.  No longer call cleanup_tree_cfg
6973         outside the iteration loop.
6974         (thread_across_edge): No longer mess with forwardable blocks.
6975
6976 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
6977
6978         * explow.c (memory_address): Use memory_address_p.
6979         * recog.c (general_operand): Likewise.
6980         * regrename.c: No need to define REG_OK_STRICT.
6981
6982 2004-08-09  Steven Bosscher  <stevenb@suse.de>
6983
6984         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
6985         New timers.
6986         * gcse.c: Include timevar.h.
6987         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
6988         and global_copy_prop_count.
6989         (local_const_prop_count, local_copy_prop_count): New static globals.
6990         (gcse_main): Set the right timevar for each pass.
6991         (cprop_jump): Increment global_const_prop_count when a constant is
6992         propagated.  Add "GLOBAL" to dump output.
6993         (cprop_insn): Increment global_const_prop_count when a constant is
6994         propagated, or global_copy_prop_count when a copy is propagated.
6995         (do_local_cprop): Likewise for local_const_prop_count and
6996         local_copy_prop_count.
6997         (one_cprop_pass): Initialize const/cprop counters to zero.
6998         Print out results of local and global const/cprop separately.
6999         (bypass_block): Break over-length line.
7000         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
7001         for bb-reorder.o and tracer.o.
7002
7003 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7004
7005         * Makefile.in (GTFILES): Remove stmt.c
7006         (stmt.o): Do not depend on gt-stmt.h.
7007         * emit-rtl.c (emit_line_note): Do not call
7008         set_file_and_line_for_stmt.
7009         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
7010         do everything.
7011         * function.c (free_after_parsing): Do not free STMT field.
7012         (allocate_struct_function): Do not call init_stmt_for_function.
7013         (assign_stack_temp_for_type): Do not accept values of keep
7014         other than 0 or 1.
7015         (init_temp_slots): Do not initialize removed variables.
7016         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
7017         and X_VAR_TEMP_SLOT_LEVEL fields.
7018         * rtl.h (set_file_and_line_for_stmt): Remove.
7019         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
7020         struct stmt_status, cond_stack, case_stack, nesting_stack,
7021         nesting_depth, emit_locus, set_file_and_line_for_stmt,
7022         same_case_target_p, init_stmt_for_function, emit_nop,
7023         expand_start_cond, expand_start_elseif, expand_start_else,
7024         expand_elseif, expand_end_cond): Remove.
7025         (preserve_subexpressions_p): Remove references to CFUN->STMT.
7026         (expand_start_case, expand_end_case_type): Remove, merge into...
7027         (expand_case): ... this one, including other bits from
7028         expand_expr_real_1.  Inline same_case_target_p.  Turn members
7029         of CASE_STACK into local variables.
7030         (emit_case_bit_tests): Inline same_case_target_p.
7031         (add_case_node): Add HEAD argument, return new head of the list,
7032         do not handle default label here.
7033         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
7034         expand_start_elseif, current_nesting_level, expand_start_case,
7035         expand_end_case_type, expand_end_case, add_case_node,
7036         init_stmt_for_function, expand_elseif): Remove prototypes.
7037         (expand_case): Add prototype.
7038
7039 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7040
7041         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
7042
7043 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7044
7045         * expr.c (var_rtx): Remove.
7046         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
7047         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
7048         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
7049         Abort.
7050         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
7051         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
7052         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
7053
7054 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
7055         Ayal Zaks <zaks@il.ibm.com>
7056
7057         * common.opt (freschedule-modulo-scheduled-loops): New flag.
7058         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
7059         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
7060         when -freschedule-modulo-scheduled-loops flag is not specified.
7061         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
7062         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
7063         More accurate placing of insn in row of partial schedule.
7064         (ps_insn_find_column): New function.
7065         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
7066         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
7067         (schedule_region): Use sched_is_disabled_for_current_region_p.
7068         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
7069
7070 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7071
7072         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
7073         change.
7074
7075 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7076
7077         * config/i386/i386.c (ix86_expand_clrmem): Properly call
7078         gen_strset for 64bit target.
7079
7080 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
7081
7082         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
7083
7084 2004-08-07  Jason Merrill  <jason@redhat.com>
7085
7086         Make return in memory explicit.
7087         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
7088         (assign_parm_find_data_types): Remove code for old front end
7089         invisible reference handling.
7090         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
7091         (expand_function_end): Likewise.
7092         * gimplify.c (gimplify_return_expr): Handle a dereferenced
7093         RESULT_DECL.
7094         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
7095         (declare_return_variable): Handle DECL_BY_REFERENCE.
7096         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
7097         (cp_genericize_r): Use convert_from_reference.
7098         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
7099         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
7100
7101         * c-common.c (c_warn_unused_result): Check TREE_USED before
7102         warning about a CALL_EXPR with an unused value.
7103
7104 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
7105
7106         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
7107         to the compiler.  Use -fshort-wchar by default.
7108
7109 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
7110
7111         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
7112         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
7113         threshhold.
7114         * doc/invoke.texi (param): Document min-crossjump-insns.
7115
7116 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
7117
7118         PR c/13282
7119         * c.opt (Wmissing-field-initializers): New option.
7120         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
7121         * c-typeck.c (pop_init_level): Guard the missing field warning with
7122         warn_missing_field_initializers rather than extra_warnings.
7123         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
7124         some of the explanation from...
7125         (-Wextra): ...here.  Say that the missing field warning can be
7126         seperately controlled by -Wmissing-field-initializers.
7127
7128 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
7129
7130         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
7131         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
7132         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
7133         * tree.def (ENTRY_VALUE_EXPR): Remove.
7134
7135 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
7136
7137         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
7138         the places where it is actually needed.  Don't use repz; stosb
7139         for -Os with sufficiently small constant sizes.
7140         For sufficiently small repz; stos{l,q} repeat counts use a sequence
7141         of stos{l,q} instructions instead.
7142
7143 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7144
7145         PR tree-optimization/16807
7146         * loop-iv.c (dump_iv_info): Dump invariants correctly.
7147         (iv_subreg, iv_extend): Express value of invariant purely in
7148         base field.
7149
7150 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
7151
7152         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
7153         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
7154
7155 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
7156
7157         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
7158         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
7159         pre_dec_operand.
7160         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
7161         pattern until reload is finished to allow better code generation
7162         and split them completely into separate instrunctions.
7163         (*andsi3_split): New pattern.
7164
7165 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
7166
7167         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
7168         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
7169         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7170         * tree.h (handle_dll_attribute): Declare.  Test
7171         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7172         * c-common.h (c_determine_visibility): Declare.
7173         * c-common.c (c_determine_visibility): New function.
7174         * c-decl.c (finish_decl): Use it.
7175         (finish_function): Likewise.
7176         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
7177         zero, by default.  Use #if, not #ifdef, to test it.
7178         * config/arm/arm.c (arm_attribute_table): Use
7179         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
7180         #if.
7181         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
7182         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7183         to 1.
7184         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
7185         * config/i386/i386.c (ix86_attribute_table): Use
7186         handle_dll_attribute for dllimport/dllexport.  Test
7187         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7188         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
7189         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7190         it to 1.
7191         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
7192         with #if.
7193         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7194         it to 1.
7195         * doc/extend.texi (dllexport): Clarify and correct documentation.
7196         (dllimport): Likewise.
7197         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
7198         handle_dll_attribute.
7199
7200 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7201
7202         * tree-ssa-loop-manip.c: New file.
7203         * Makefile.in (tree-ssa-loop-manip.o): Add.
7204         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
7205         Declare.
7206         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
7207         form.
7208         (tree_ssa_loop_done): Verify loop closed ssa form.
7209         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
7210
7211 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7212
7213         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
7214         pa_asm_output_aligned_local): New functions.
7215         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
7216         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
7217         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
7218         pa_asm_output_aligned_common.
7219         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7220         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
7221         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
7222         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7223         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
7224         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
7225         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7226         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
7227         common data.
7228
7229 2004-08-05  Andrew Pinski  <apinski@apple.com>
7230
7231         * objc/objc-act.c (build_objc_string_object): Mark the address
7232         expression as constant.
7233
7234 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
7235
7236         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
7237         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
7238         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
7239
7240 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7241
7242         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
7243         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
7244         out, and associated obsolete comments.
7245
7246 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
7247
7248         * tree.h (force_fit_type): Return a tree, take three flags.
7249         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
7250         TREE_CONSTANT_OVERFLOW here.
7251         (int_const_binop, const_binop): Adjust.
7252         (size_int_type): Do sign extension here.
7253         (fold_convert_const, optimize_bit_field_compare,
7254         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
7255         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
7256         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
7257
7258 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7259
7260         PR tree-optimization/16864
7261         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
7262         for ssa names without default_def.
7263
7264 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
7265
7266         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
7267         frame pointer, restore eax with an ebp-relative address.
7268
7269 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
7270
7271         PR 14516
7272         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
7273         * c-common.h (make_rtl_for_local_static): Delete.
7274         * c-decl.c (shadow_tag_warned): Clean up comment.
7275         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
7276         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
7277         * c-semantics.c (make_rtl_for_local_static): Delete.
7278         * expr.c (init_block_move_fn): Use set_user_assembler_name.
7279         (init_block_clear_fn): Likewise.
7280         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
7281         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
7282         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
7283         * tree.h (make_decl_rtl): Remove second parameter.
7284         (set_user_assembler_name): New.
7285         * varasm.c (set_user_assembler_name): New.
7286         (make_decl_rtl): Remove second parameter.  Update callers in many
7287         files.
7288
7289 2004-08-05  Adam Nemet  <anemet@lnxw.com>
7290
7291         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
7292         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
7293         to LynxOS 4.0.
7294         * gthr-lynx.h: New file.
7295         * config/lynx-ng.h: Remove file.
7296         * config/lynx.h: Update to LynxOS 4.0.
7297         * config/t-lynx: New file.
7298         * config/i386/lynx-ng.h: Remove file.
7299         * config/i386/lynx.h: Update to LynxOS 4.0.
7300         * config/rs6000/lynxbase.h: Remove file.
7301         * config/rs6000/lynx.h: Update to LynxOS 4.0.
7302         * config/rs6000/t-lynx: New file.
7303         * doc/install.texi (Options specification): Remove reference to
7304         LynxOS from systems where --with-gnu-as makes a difference.
7305
7306 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7307
7308         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
7309         __UINTMAX_TYPE__.
7310         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
7311         __INTMAX_MAX__.
7312         (c_cpp_builtins): Call it.
7313         * doc/cpp.texi: Update.
7314
7315 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
7316
7317         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
7318         cost.
7319
7320 2004-08-04  Jan Hubicka  <jh@suse.cz>
7321
7322         * basic-block.h (profile_staus): New global variable.
7323         * cfg.c (profile_status): Declare.
7324         (check_bb_profile): Break out from ....; use profile_status
7325         (dump_flow_info): ... here.
7326         * cfgbuild.c (find_basic_blocks): Set profile_status.
7327         * cfgexpand.c (tree_expand_cfg): Likewise.
7328         * predict.c (estimate_probability): Likewise.
7329         * profile.c (branch_prob): Likewise.
7330         * tree-cfg.c (build_tree_cfg): Likewise.
7331         (dump_function_to_file): Use check_bb_profile.
7332         * tree-pretty-print (dump_bb_header): Likewise.
7333         * tree-profile.c (do_tree_profiling): Cleanup.
7334
7335 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
7336
7337         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
7338         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
7339         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
7340         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
7341         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
7342         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
7343         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
7344         (ggc-none.o, errors.o): Move rule to generators section;
7345         correct dependencies.
7346         (min-insn-modes.o): Move rule to generators section; remove
7347         unnecessary explicit command; correct dependencies.
7348         (print-rtl.o, print-rtl1.o): Correct dependencies.
7349         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
7350         (mostlyclean): Update.
7351
7352         * errors.c: Include bconfig.h not config.h.  Correct comment.
7353         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
7354         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
7355         * print-rtl.c: Don't include tm_p.h.
7356
7357         * rtl.h: Move forward-decl of struct function down where it's
7358         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
7359         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
7360
7361 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7362             Jeff Law  <law@redhat.com>
7363
7364         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
7365         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
7366         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
7367         manipulate the duplicated ssa names.
7368         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
7369         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
7370         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
7371         New functions.
7372         (release_ssa_name): Do not release ssa names that may have multiple
7373         definitions.
7374         * tree.h (release_ssa_name_force, mark_for_rewrite,
7375         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
7376         marked_ssa_names): Declare.
7377         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
7378         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
7379         Update call to rewrite_ssa_into_ssa.
7380
7381 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
7382
7383         * defaults.h (TARGET_DECLSPEC): New macro.
7384         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
7385         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
7386         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
7387         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
7388         __declspec support.
7389         (TARGET_DECLSPEC): Define.
7390         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
7391         __declspec support.
7392         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
7393         __declspec support.
7394         (TARGET_DECLSPEC): Define.
7395         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
7396         __declspec support.
7397         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
7398         support.
7399         * doc/tm.texi (TARGET_DECLSPEC): Document.
7400
7401         * doc/extend.texi: Fix typo in comment.
7402
7403 2004-08-04  Paul Brook  <paul@codesourcery.com>
7404
7405         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7406         (TARGET_CXX): Use it.
7407         * target.h (struct gcc_target): Add cdtor_returns_this.
7408         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
7409         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7410         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
7411
7412 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
7413
7414         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
7415         low/high pair. Do range checking directly.
7416         (interpret_integer): Adjust.
7417
7418 2004-08-04  Nick Clifton  <nickc@redhat.com>
7419
7420         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
7421         GCC ABI.
7422         * doc/invoke.texi: Document this new switch and also the -mrenesas
7423         switch.
7424
7425 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
7426
7427         * cfglayout.c (insn_locators_initialize): Update the current
7428         location before initializing a location.
7429
7430 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7431
7432         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
7433         (dbxout_function_end): Return after emitting the "Lscope" symbol
7434         under the same conditions that this function formerly wasn't called.
7435         Add explanatory comments.
7436
7437         PR 14860
7438         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
7439         on the new decl.
7440
7441         PR 13956
7442         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
7443         functions, broken out of dbxout_block.
7444         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
7445         stabs too, if it contains symbols.  Use the begin_label and
7446         the Lscope label (emitted by dbxout_function_end) for the
7447         range of this block.
7448
7449 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
7450
7451         * doc/install.texi: Update autoconf version requirements.
7452
7453 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7454
7455         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
7456         * recog.c (general_operand, immediate_operand, nonmemory_operand)
7457         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
7458         * regclass.c (record_reg_classes): Likewise.
7459         * reload.c (find_reloads): Likewise.
7460         * reload1.c (reload): Likewise.
7461
7462 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7463
7464         * gensupport.c (init_md_reader_args_cb): Renamed from
7465         init_md_reader_args.  Add third option, callback function for
7466         parsing program-specific options.  Add diagnosis of incorrect
7467         number of input files.
7468         (init_md_reader): Fold into init_md_reader_args_cb.
7469         (init_md_reader_args): Now a thin wrapper around
7470         init_md_reader_args_cb.
7471         * gensupport.h: Update prototypes.
7472
7473         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
7474         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
7475         * genrecog.c: No need to diagnose lack of an input file;
7476         init_md_reader_args will handle it.
7477         * genconditions.c: Likewise, and use init_md_reader_args.
7478         * genconstants.c: Likewise, and no need to call read_md_rtx.
7479
7480 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
7481
7482         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
7483         declarations.
7484
7485 2004-08-03  Mike Stump  <mrs@apple.com>
7486
7487         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
7488         for frameworks.
7489         * doc/invoke.texi (Darwin Options): Update to reflect above.
7490
7491 2004-08-03  Roger Sayle  <roger@eyesopen.com>
7492
7493         PR middle-end/16790
7494         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
7495         truncations, not just global truncations.
7496
7497 2004-08-03  Andrew Pinski  <apinski@apple.com>
7498
7499         PR bootstrap/16865
7500         * loop-iv.c (simplify_using_assignment): Initialize lhs.
7501
7502 2004-08-03  Paul Brook  <paul@codesourcery.com>
7503
7504         * gcc/doc/install.texi: Document MPFR requirement.
7505
7506 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
7507
7508         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
7509         and mmap() explicitly instead of relying on preset autoconf cache
7510         variables.
7511         * configure: Regenerate.
7512
7513 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
7514
7515         PR target/16570
7516         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
7517         to tmake_file.
7518         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
7519         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
7520         to tmake_file.
7521
7522         * config/i386/t-gmm_malloc: New file.
7523         * config/i386/t-pmm_malloc: Likewise.
7524
7525         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
7526
7527 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
7528             Tanguy Fautrà <tfautre@pandora.be>
7529
7530         * config/i386/pmm_malloc.h: New file.
7531
7532 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
7533
7534         * config/i386/gmm_malloc.h: New file.
7535
7536 2004-08-03  Dale Johannesen  <dalej@apple.com>
7537
7538         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
7539         * c-common.c: Include opts.h.
7540         (c_common_get_alias_set): Fix check for a single input file.
7541         * toplev.c: Remove current_file_decl.
7542         * tree.h: Ditto.
7543
7544 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
7545
7546         * config.gcc (arm*-*-symbianelf*): New target.
7547         * config/arm/symbian.h: New file.
7548
7549         * gthr-gnat.c: Add visibility #pragmas.
7550         * gthr-gnat.h : Likewise.
7551         * gthr.h: Likewise.
7552         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
7553         (__ffsDI2): Likewise.
7554         (__clzSI2): Likewise.
7555         (__ctzSI2): Likewise.
7556         (__ctzDI2): Likewise.
7557         (__popcountSI2): Likewise.
7558         (__popcountDI2): Likewise.
7559         (__paritySI2): Likewise.
7560         (__parityDI2): Likewise.
7561         * libgcc2.h: Add visibility #pragmas.
7562         (__clzDI2): Add prototype.
7563         (__clzSI2): Likewise.
7564         (__ctzSI2): Likewise.
7565         (__ffsDI2): Likewise.
7566         (__ffsSI2): Likewise.
7567         (__ctzDI2): Likewise.
7568         (__popcountSI2): Likewise.
7569         (__popcountDI2): Likewise.
7570         (__paritySI2): Likewise.
7571         (__parityDI2): Likewise.
7572         * unwind-dw2-fde.h: Add visibility #pragmas.
7573         * unwind.h: Likewise.
7574
7575 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
7576             Dale Johannesen  <dalej@apple.com>
7577             Roger Sayle  <roger@eyesopen.com>
7578
7579         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
7580         constants more accurately.  Adjust costs for FMA instructions.
7581         Add cases for most logical and float operations.  Recurse into
7582         most operands.
7583
7584 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
7585
7586         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
7587
7588 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
7589
7590         * ra-build.c (conflicts_between_webs): For webs that cross a call add
7591         conflicts to regs_invalidated_by_call.
7592
7593 2004-08-03  Paul Brook  <paul@codesourcery.com>
7594
7595         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
7596
7597 2004-08-03  Jan Hubicka  <jh@suse.cz>
7598
7599         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
7600         ARRAY_REF argument.
7601
7602 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
7603
7604         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
7605         arm968es, arm10e, arm1020e, arm1022e.
7606         * invoke.texi: Update list of ARM cores.
7607         * arm-tune.md: Regenerate.
7608
7609 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
7610
7611         * arm/gentune.sh: New file.
7612         * arm/t-arm: New file.
7613         * arm/arm-tune.md: New file (autogenerated).
7614         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
7615         * arm.md (attribute tune): Delete.  Include arm-tune.md.
7616
7617 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
7618
7619         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
7620         penultimate parameter.  All callers adjusted.
7621         (struct prefix_list): Remove used_flag_ptr.
7622         (find_a_file): Do not set *pl->used_flag_ptr.
7623         (warn_B, warn_std_ptr): Remove.
7624
7625 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
7626             Mostafa Hagog <mustafa@il.ibm.com>
7627
7628         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
7629
7630 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
7631
7632         * dwarf2out.c (output_call_frame_info): Don't change data format
7633         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
7634         label.  Use 'true' not '1'.
7635         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
7636         required.
7637
7638 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7639
7640         * gdbinit.in: Reflect previous changes to rtunion_def.
7641
7642 2004-08-02  Roger Sayle  <roger@eyesopen.com>
7643
7644         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
7645         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
7646
7647 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7648
7649         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
7650         vec_p_reserve.
7651         * langhooks.h (lang_hooks::builtin_function): Rename parameter
7652         from "class" to "bt_class".
7653
7654 2004-08-02  Paul Brook  <paul@codesourcery.com>
7655
7656         PR rtl-optimization/15068
7657         * flow.c (init_propagate_block_info): Check condition is reversible.
7658
7659 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7660
7661         * gengtype.h (options::info): Change type to const char *.
7662         (enum gc_used_enum): Move out of struct type scope.
7663         * gengtype.c (create_option): Convert initializer for option::info to
7664         appropiate type.
7665         (adjust_field_type, walk_type, write_func_for_structure,
7666         write_root, write_roots): Remove pointless cast.
7667
7668 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
7669
7670         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
7671
7672 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7673
7674         * rtl.h (union rtunion_def): Have all members  start with the
7675         prefix "rt_".
7676         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
7677         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
7678         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
7679         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
7680         access.
7681         * gengtype.c (adjust_field_rtx_def): Likewise.
7682         * rtlanal.c (loc_mentioned_in_p): Likewise.
7683
7684 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
7685
7686         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
7687         Replace uses of mips/elf64.h with mips/elf.h
7688         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
7689         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
7690         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
7691         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
7692         (HANDLE_SYSV_PRAGMA): Delete.
7693         (ASM_OUTPUT_DEF): Fix formatting.
7694         * config/mips/elf64.h: Delete.
7695
7696 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
7697
7698         * config/ia64/ia64.c (got_symbolic_operand): Do require a
7699         symbol+offset operand to have its offset be zero mod 0x3fff
7700         when GOT entries are in use.  Clarify logic in SYMBOL_REF
7701         case.  Clarify comments.
7702         (ia64_expand_load_address): Split a symbol+offset load when
7703         the offset is nonzero mod 0x3fff, not 0x1fff.
7704
7705 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
7706
7707         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
7708         if trying to *store* to a non-offsettable address.
7709         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
7710         a nonoffsettable address.
7711         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
7712         Clean up.
7713         (movti_string): Don't move GPRs to a nonoffsettable address.
7714         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
7715
7716 2004-08-02  Ben Elliston  <bje@au.ibm.com>
7717
7718         PR target/16155
7719         * config/rs6000/altivec.h: Replace typeof with __typeof__.
7720
7721 2004-08-01  Richard Henderson  <rth@redhat.com>
7722
7723         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
7724         variable sized types.
7725
7726 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7727
7728         * doc/invoke.texi: In the MIPS options section, remove the passage
7729         saying that -mexplicit-relocs is usually disabled for -mabicalls
7730         -fno-unit-at-a-time.
7731         * config/mips/mips.c (override_options): Remove the code that enforced
7732         this rule.
7733
7734 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7735
7736         * config/mips/mips.md (cprestore): Provide two alternatives, one for
7737         an in-range offset and one for an out-of-range offset.  Wrap the latter
7738         in .set macro/.set nomacro if it's inside a .set nomacro block.
7739
7740 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7741
7742         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
7743         (mips_restore_gp): Declare.
7744         * config/mips/mips.c (mips_add_offset): Add a scratch register
7745         argument.  Reimplement in rtl only, reusing MIPS16 logic from
7746         mips_output_mi_thunk.
7747         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
7748         to mips_add_offset.
7749         (mips_gp_save_slot): Delete.
7750         (mips_restore_gp): New function.
7751         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
7752         * config/mips/mips.md (exception_receiver): Turn into a
7753         define_insn_and_split.  Use mips_restore_gp to do the split.
7754         (call_internal, call_value_internal, call_value_multiple_internal): Use
7755         mips_restore_gp to restore $gp.
7756
7757 2004-07-31  Andrew Pinski  <apinski@apple.com>
7758
7759         PR other/16842
7760         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
7761
7762 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
7763
7764         * c-decl.c (diagnose_mismatched_decls): Give error for external
7765         redeclaration of identifier declared with no linkage, not just
7766         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
7767         error for redeclaration with no linkage.
7768
7769 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
7770             Fariborz Jahanian <fjahanian@apple.com>
7771
7772         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
7773         non-offsettable addresses even for DImode.
7774         (rs6000_split_multireg_move): Cope with non-offsettable addresses
7775         being moved into multiple GPRs.
7776
7777         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
7778         to 64.
7779         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
7780         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
7781         to 128.
7782         * config/rs6000/darwin-ldouble.c (isless): New macro.
7783         (inf): New macro.
7784         (nonfinite): New macro.
7785         (FPKINF): Delete.
7786         (_xlqadd): Completely rewrite.
7787         (_xlqmul): Correct overflow handling.
7788         (_xlqdiv): Correct overflow handling.
7789         * config/rs6000/darwin-ldouble-format: New file.
7790
7791 2004-07-30  Roger Sayle  <roger@eyesopen.com>
7792             Richard Henderson  <rth@redhat.com>
7793
7794         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
7795         9 into the equivalent lea instruction.
7796
7797 2004-07-30  Richard Henderson  <rth@redhat.com>
7798
7799         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
7800         with DECL_INITIAL if fb_lvalue.
7801         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
7802         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
7803         with <Cxxx>.
7804         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
7805
7806 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
7807
7808         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
7809         pointer escapes through a function call, assume that the
7810         callee will dereference it.
7811         (add_pointed_to_var): Assume that VALUE is always an
7812         ADDR_EXPR.
7813         (collect_points_to_info_r): Only call add_pointed_to_var if
7814         the value is an ADDR_EXPR.
7815
7816 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
7817
7818         * tree-ssa-alias.c (create_alias_map_for): Do not get the
7819         alias set of the inner type of ARRAY_TYPEs.
7820
7821 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7822
7823         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
7824         setting a non-register to UNDEFINED right before the call to
7825         set_lattice_value.
7826
7827 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7828
7829         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
7830
7831 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7832
7833         * tree-ssa.c (verify_flow_sensitive_alias_info): When
7834         comparing points-to sets of different pointers, make sure the
7835         second pointer is actually referenced in the code.
7836
7837 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
7838
7839         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
7840         (got_symbolic_operand): Remove unreachable code.
7841         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
7842         setjmp_operand; add entry for tls_symbolic_operand.
7843         * config/ia64/ia64-protos.h: Remove all prototypes of
7844         predicate functions.
7845
7846 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
7847
7848         * c-common.h (lang_post_pch_load): New variable.
7849         * c-pch.c (lang_post_pch_load): Define it.
7850         (c_common_read_pch): Use it.
7851         * cgraphunit.c (record_call_1): Give the front end a chance to
7852         record additional needed entities when a variable is marked as
7853         needed.
7854         * tlink.c (recompile_files): Robustify.
7855         (scan_linker_output): If a symbol is assigned to a file,
7856         but after recompilation is not present there, issue an error
7857         message.
7858
7859 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7860
7861         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
7862         Take orig_loop argument and pass it to set_level.
7863         (schedule_sm): Pass the correct orig_loop to force_move_till.
7864
7865 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7866
7867         * cfgloop.c (update_latch_info): Update dominator of the new block.
7868         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
7869         info.
7870         * dominance.c (verify_dominators): Check that the dominance tree is
7871         connected.
7872         (recount_dominator): Ignore unreachable blocks.
7873         (iterate_fix_dominators): Cleanup old dominance information before
7874         recomputing it.
7875
7876 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7877
7878         * tree-ssa-operands.c (get_expr_operands): Revert changes
7879         to ADDR_EXPR processing introduced by:
7880             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7881             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
7882
7883 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
7884
7885         * doc/implement-c.texi: Add C90 subclause references.  Point to
7886         preprocessor documentation instead of duplicating it.  Add points
7887         only present in C90.  Fill in documentation for all points.
7888
7889 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7890
7891         * pa.c (output_movb): Correct typo.
7892
7893 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
7894
7895         * ra.h (single_reg_in_regclass): Declare.
7896         * ra.c (single_reg_in_regclass): Define.
7897         (first_hard_reg): New.
7898         (init_ra): Initialize single_reg_in_regclass.
7899         * ra-colorize.c (ok_class): New.
7900         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
7901
7902 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
7903
7904         * gcov-io.h: Allow zero tag as EOF indicator.
7905         (gcov_is_eof): Remove.
7906         (gcov_truncate): Remove.
7907         * gcov-io.c (gcov_seek): Always SEEK_SET.
7908         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
7909         EOF tag.
7910         * coverage.c (read_counts_file): Don't use gcov_is_eof.
7911         * gcov-dump.c (dump_file): Likewise.
7912         * gcov.c (read_graph_file, read_count_file): Likewise.
7913
7914         * c-decl.c (complete_array_type): Don't gratuitously copy
7915         maxindex.  Check it always has a type.
7916
7917 2004-07-29  Steven Bosscher  <stevenb@suse.de>
7918
7919         * rtl.c (currently_expanding_to_rtl): New.
7920         * rtl.h (currently_expanding_to_rtl): Export it.
7921         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
7922
7923         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
7924         inliner hack.
7925         * config/sh/sh.c: Replace rtx_equal_function_value_matters
7926         with currently_expanding_to_rtl.
7927         * config/sh/sh.md: Likewise.
7928         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
7929
7930 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
7931
7932         Introduce sh2a support.
7933         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
7934         * config.gcc: Build multilibs for sh2a and sh2a-single by
7935         default.
7936         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
7937         default.  Split their tests out of the corresponding SH4
7938         multilibs.
7939         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
7940         multilibs for SH2a.
7941         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
7942         * config.gcc: Handle sh2a multilibs and cpu selection.
7943         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
7944         * config/sh/t-mlib-sh2a: New.
7945         * config/sh/t-mlib-sh2a-nofpu: New.
7946         * config/sh/t-mlib-sh2a-single: New.
7947         * config/sh/t-mlib-sh2a-single-only: New.
7948         2004-07-09  Nick Clifton  <nickc@redhat.com>
7949         Issue 43400
7950         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
7951         -ml and -m2a are used together.
7952         2004-03-23  DJ Delorie  <dj@redhat.com>
7953         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
7954         when we have a double-sized FPU.
7955         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
7956         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
7957         is set.
7958         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
7959         -msh2a-single and -msh2a-single-only
7960         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
7961         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
7962         is set.
7963         2004-02-20  DJ Delorie  <dj@delorie.com>
7964         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
7965         2004-02-20  Fred Fish <fnf@redhat.com>,
7966         Corinna Vinschen <vinschen@redhat.com>
7967         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
7968         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
7969         2004-02-18  DJ Delorie  <dj@redhat.com>
7970         * config/sh/sh.c (broken_move): Add support for movi20.
7971         * config/sh/sh.h: Likewise.
7972         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
7973         * config/sh/sh.md (udivsi3_sh2a): New.
7974         (udivsi3): Call it.
7975         (divsi3_sh2a): New.
7976         (divsi3): Call it.
7977         (mul_r): New.
7978         (ashlsi3_sh2a): New.
7979         (ashrsi3_sh2a): New.
7980         (lshrsi3_sh2a): New.
7981         (movsi_i): Disable for sh2a.
7982         (movsi_ie): Add movi20.
7983         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
7984         sh2a, for -m2a-nofpu mode.
7985         2004-02-13  DJ Delorie  <dj@redhat.com>
7986         * config/sh/lib1funcs.asm: Handle double vs single better.
7987         * config/sh/sh.h: Likewise.
7988         2004-02-09  DJ Delorie  <dj@redhat.com>
7989         * config/sh/crt1.asm: Add support for sh2a.
7990         * config/sh/elf.h: Likewise.
7991         * config/sh/lib1funcs.asm: Likewise.
7992         * config/sh/sh.c: Likewise.
7993         * config/sh/sh.md: Likewise.
7994         * config/sh/sh.h: Likewise.
7995         * config/sh/t-sh: Likewise.
7996
7997 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
7998
7999         * config/frv/frv.md (movqi_internal, movhi_internal,
8000         movsi_internal): Add backup alternatives for memory inputs.
8001
8002 2004-07-28  Matt Austern  <austern@apple.com>
8003
8004         * config/darwin.c (darwin_one_byte_bool): New global variable.
8005         * config/darwin.h (darwin_one_byte_bool): Declare.
8006         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
8007         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
8008         value of darwin_one_byte_bool.
8009         * doc/invoke.texi: Document -mone-byte-bool flag.
8010
8011 2004-07-28  Eric Christopher  <echristo@redhat.com>
8012
8013         * c-common.c (c_common_unsafe_for_reeval): Delete.
8014         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
8015         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
8016         * calls.c (fix_unsafe_tree): Delete.
8017         (expand_call): Delete code which used above.
8018         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
8019         * expr.c (expand_expr_real_1): Ditto.
8020         * fold-const.c (non_lvalue): Ditto.
8021         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8022         (lhd_unsafe_for_reeval): Ditto.
8023         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
8024         * langhooks.h (unsafe_for_reeval): Ditto.
8025         (unsave_expr_now): Adjust comment.
8026         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
8027         (estimate_num_insns_1): Ditto.
8028         * tree-pretty-print.c (dump_generic_node): Ditto.
8029         * tree.c (expr_align): Ditto.
8030         (unsave_expr): Delete.
8031         (unsafe_for_reeval): Ditto.
8032         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
8033         * tree.def (UNSAVE_EXPR): Delete.
8034         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8035
8036 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
8037
8038         * tree.h (enum tls_model): Move ...
8039         * coretypes.h: ... here.
8040
8041 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
8042
8043         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
8044
8045 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8046
8047         * cse.c (validate_canon_reg): New function, split out from...
8048         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
8049
8050 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8051
8052         * tree-ssa-alias.c (maybe_create_global_var): Don't just
8053         return if .GLOBAL_VAR has been created.
8054
8055 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8056
8057         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
8058         every variable that may have aliases, not just tags.
8059
8060 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
8061
8062         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
8063         move_from_CR_eq_bit.
8064         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
8065
8066
8067         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
8068         e500_flip_eq_bit.
8069
8070         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
8071         output_e500_flip_eq_bit.
8072
8073         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
8074         output_e500_flip_eq_bit.
8075         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
8076         output_e500_flip_eq_bit.
8077         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
8078         (print_operand): case D.  Get to EQ bit.
8079
8080 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8081
8082         * gcov.c (function_summary): Add missing \n.
8083
8084 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8085
8086         Introduce sh4a support.
8087         * config.gcc: Handle sh4a multilibs and cpu selection.
8088         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
8089         * config/sh/t-mlib-sh4a: New.
8090         * config/sh/t-mlib-sh4al: New.
8091         * config/sh/t-mlib-sh4a-nofpu: New.
8092         * config/sh/t-mlib-sh4a-single: New.
8093         * config/sh/t-mlib-sh4a-single-only: New.
8094         2004-02-20  DJ Delorie  <dj@redhat.com>
8095         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
8096         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
8097         2003-08-22  Eric Christopher  <echristo@redhat.com>
8098         * config/sh/sh4a.md: Update for chip errata.
8099         2003-08-07  Eric Christopher  <echristo@redhat.com>
8100         * config/sh/sh4a.md: New file. sh4a processor description.
8101         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
8102         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
8103         of -m4a-nofpu.
8104         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
8105         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
8106         * doc/invoke.texi (SH Options): Document -m4al.
8107         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
8108         * config/sh/sh.c (expand_block_move): Remove commented-out code
8109         checked in by mistake.
8110         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
8111         single elements from SFmode vectors.
8112         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
8113         register.
8114         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
8115         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
8116         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
8117         sh_fsca_int2sf): Remove variable declarations.
8118         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
8119         sh_fsca_int2sf): New functions.
8120         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
8121         sh_fsca_int2sf_rtx): New static variables.
8122         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
8123         sh_fsca_int2sf): Declare.
8124         * config/sh/sh.md: Adjust.
8125         * doc/invoke.texi (SH Options): Document new options.
8126         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
8127         compatibility from SH4 code.
8128         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
8129         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
8130         early.
8131         (memory_movsrc_operand): Renamed to...
8132         (unaligned_load_operand): ... this.  Simplified.
8133         * config/sh/sh.h (PREDICATE_CODES): Adjust.
8134         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
8135         input operand to SImode, and adjust the others.  Introduce
8136         post-increment by peephole.
8137         * config/sh/sh.c (expand_block_move): Give the target address the
8138         same mode as the temp reg.
8139         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
8140         copying.
8141         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
8142         Introduce support for SH4a.
8143         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
8144         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
8145         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
8146         sh_fsca_int2sf): New.
8147         (sh_init_builtins): Initialize them.
8148         (print_operand): Support `d'.
8149         (expand_block_move): Use movua if src is misaligned.
8150         (memory_movsrc_operand): New.
8151         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
8152         and one of the SH4 macros.
8153         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
8154         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
8155         SELECT_SH4A_SINGLE): New.
8156         (TARGET_NONE): Add SH4A_BIT.
8157         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
8158         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
8159         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
8160         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
8161         (enum processor_type): Added PROCESSOR_SH4A.
8162         (PREDICATE_CODES): Add memory_movsrc_operand.
8163         * config/sh/sh.md: Removed unused variables.
8164         (attr cpu): Add sh4a.
8165         (attr type): Add movua, fsrra and fsca.
8166         (prefetch): New, for SH4.
8167         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
8168         (toggle_sz): Set type to fp.
8169         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
8170         (movua, extv, extzv): New.
8171         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
8172         and 4a-single-only.
8173
8174 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8175
8176         * tree-optimize.c (init_tree_optimization_passes): Schedule
8177         pass_may_alias right after the program is renamed into SSA.
8178         * tree-pass.h (PROP_alias): Define.
8179         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
8180         * tree-sra.c (pass_sra): Likewise.
8181         * tree-ssa-ccp.c (pass_ccp): Likewise.
8182         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
8183         * tree-ssa-dce.c (pass_dce): Likewise.
8184         * tree-ssa-dom.c (pass_dominator): Likewise.
8185         * tree-ssa-dse.c (pass_dse): Likewise.
8186         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
8187         * tree-ssa-loop-ch.c (pass_ch): Likewise.
8188         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
8189         * tree-ssa-pre.c (pass_pre): Likewise.
8190         * tree-tailcall.c (pass_tail_recursion): Likewise.
8191         * tree-ssa.c (pass_redundant_phi): Likewise.
8192         * tree-ssa-alias.c (aliases_computed_p): Remove.
8193         Update all users.
8194         (init_alias_info): Do not mark all type tags for renaming
8195         unconditionally.
8196         Clear may_aliases from every symbol.
8197         (setup_pointers_and_addressables): If a pointer has not been
8198         dereferenced and it had a type tag, clear it and mark the old
8199         tag for renaming.
8200
8201 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8202
8203         PR tree-optimization/16705
8204         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
8205         .GLOBAL_VAR.
8206
8207 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8208
8209         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
8210         check.
8211
8212         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
8213         don't make another one.
8214
8215         PR optimization/15077
8216         * function.h (struct function): Add field saved_static_chain_decl.
8217         Fix comment for static_chain_decl.
8218         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
8219         * tree-inline.h (save_body): Add new arg.
8220         * tree-optimize.c (tree_rest_of_compilation): Handle saving
8221         static_chain_decl.
8222
8223 2004-07-27  Richard Henderson  <rth@redhat.com>
8224
8225         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
8226         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
8227         is_gimple_addressable.
8228         * tree-gimple.c (is_gimple_addressable): Rename from
8229         is_gimple_addr_expr_arg; accept INDIRECT_REF.
8230         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
8231         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
8232         rename to is_gimple_addressable.
8233
8234 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
8235
8236         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
8237
8238 2004-07-27  Richard Henderson  <rth@redhat.com>
8239
8240         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
8241         before rounding.
8242
8243 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
8244
8245         * libgcc2.c: Change all conditionals testing
8246         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
8247         * libgcc2.h: Likewise.
8248         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
8249         TYPE_PRECISION of float80_type to 80.
8250         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
8251         of fpreg_type and float80_type to 80.
8252         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
8253         * config/m68k/netbsd-elf.h:
8254         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
8255         to evaluate to 80 whenever they would formerly have evaluated to 96.
8256         * config/i386/sco5.h: Remove unnecessary redefinition of
8257         LONG_DOUBLE_TYPE_SIZE.
8258         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
8259         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
8260         XFmode, with a bitsize of 80.  Update commentary.
8261         * config/ia64/ia64-modes.def: Likewise.
8262         * config/m68k/m68k-modes.def: Likewise.
8263
8264 2004-07-27  Steven Bosscher  <stevenb@suse.de>
8265
8266         * cfgexpand.c (tree_expand_cfg): Fix comment.
8267
8268         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
8269         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
8270         Remove.
8271         (prepare_function_start): Don't set rtx_equal_function_value_matters.
8272         * integrate.c (copy_rtx_and_substitute): Don't test for it.
8273         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
8274         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
8275         here again.  Update leading comment.
8276         * rtl.c (rtx_equal_function_value_matters): Remove.
8277         (rtx_equal_p): Don't test for it.
8278         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
8279         Likewise.
8280
8281         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
8282         * rtl.c (note_insn_name): Likewise.
8283         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
8284         * final.c (final_scan_insn): Likewise.
8285
8286         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
8287         * passes.c (rest_of_handle_eh): Do it here.
8288
8289         * stmt.c (struct nesting): Remove struct nesting block member.
8290         (struct stmt_status): Remove x_block_start_count field.
8291         (current_block_start_count): Remove.
8292
8293 2004-07-27  Brian Booth  <bbooth@redhat.com>
8294
8295         * tree-optimize.c (register_one_dump_file): Update condition that uses
8296         static_pass_number.
8297         (dup_pass_1): Replace with...
8298         (next_pass_1): This.
8299         (NEXT_PASS): Call next_pass_1.
8300         (DUP_PASS): Remove.
8301         (init_tree_optimization_passes): Remove uses of DUP_PASS.
8302         (execute_one_pass): Update condition that uses
8303         static_pass_number.
8304         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
8305         integer.
8306
8307 2004-07-27  Nick Clifton  <nickc@redhat.com>
8308
8309         * config/m32r/m32r.c: Include integrate.h in order to get the
8310         prototype for get_hard_reg_initial_val().
8311
8312         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
8313         and tidy up indentation.
8314         (final_presence_set): Use absence_set instead, so that if there is
8315         nothing in the "o" pipe the "s" pipe can be scheduled.
8316
8317 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
8318
8319         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
8320         don't have PT_VARS nor PT_MALLOC set.
8321         Clear name tag from pointers that have not been dereferenced.
8322         (set_pt_anything, set_pt_malloc): Forward declare.
8323         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
8324         not type compatibility when determining if a pointer can be
8325         copy propagated.
8326
8327 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
8328
8329         * expr.h (canonicalize_condition, get_condition): Add an int argument.
8330         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
8331         it to check whether the condition is still valid at the jump insn.
8332         * ifcvt.c (noce_get_condition): Likewise.
8333         (noce_get_alt_condition): Update call to canonicalize_condition.
8334         * loop-iv.c (simplify_using_initial_values): Update call to
8335         get_condition.  Remove FIXME.
8336         (check_simple_exit): Update call to get_condition.
8337         * loop-unswitch.c (may_unswitch_on): Likewise.
8338         * loop.c (check_dbra_loop): Likewise.
8339         (canonicalize_condition, get_condition): Add an argument to say whether
8340         the condition must still be valid at INSN.
8341         (get_condition_for_loop): Update call to get_condition.  Require that
8342         the condition be valid at INSN.
8343         * predict.c (estimate_probability): Update call to get_condition.
8344         Remove unused earliest parameter.
8345         (expected_value_to_br_prob): Update call to canonicalize_condition.
8346
8347 2004-07-26  Eric Christopher  <echristo@redhat.com>
8348
8349         * tree-dfa.c (add_referenced_var): Register initializers of global
8350         variables.
8351
8352 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
8353
8354         * config/i386/i386.c (function_arg): Always treat 8-
8355         and 16-byte wide vectors the same, even if MMX/SSE
8356         are disabled.
8357         (contains_128bit_aligned_vector_p): Add comment.
8358
8359 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
8360
8361         * ra.h (enum node_type): Rename to:
8362         (enum ra_node_type).
8363         * ra-colorize.c: Likewise.
8364
8365 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
8366
8367         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
8368         after simplifying the jump.
8369
8370 2004-06-26  Richard Henderson  <rth@redhat.com>
8371
8372         * calls.c (combine_pending_stack_adjustment_and_call): Make
8373         preferred_unit_stack_boundary argument unsigned.  Make
8374         unadjusted_alignment unsigned.
8375         (expand_call): Make preferred_stack_boundary and
8376         preferred_unit_stack_boundary variables unsigned.
8377         * function.c (assign_stack_local_1): Make alignment unsigned.
8378         * function.h (struct function): Make stack_alignment_needed,
8379         preferred_stack_boundary unsigned.
8380         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
8381         (ix86_compute_frame_layout): Make stack_alignment_needed,
8382         preferred_alignment variables unsigned.
8383         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
8384
8385 2004-07-26  Tom Tromey  <tromey@redhat.com>
8386
8387         * tree.h: Fix typo in comment.
8388
8389 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
8390
8391         PR bootstrap/12804
8392         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
8393         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
8394         (ggc_free): Remove incorrect freeing.
8395         (sweep_pages): Advance PP for large pages.  Fix indentation.
8396
8397 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
8398
8399         PR rtl-optimization/16643
8400         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
8401         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
8402         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
8403         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
8404         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
8405         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8406         * rtl.h (tracer): Add a flags parameter.
8407         * tracer.c (tracer): Pass it to cfg_layout_initialise.
8408         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
8409         (rest_of_handle_reorder_blocks): Update calls to tracer and
8410         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
8411         (rest_of_handle_tracer): Pass 0 to tracer.
8412         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
8413
8414 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
8415
8416         PR target/16239
8417         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
8418         f->f.
8419
8420 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
8421
8422         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
8423         (BINFO_BASE_ACCESS): Adjust.
8424         (BINFO_BASE_ACCESS_APPEND): New.
8425         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
8426         * dbxout.c (dbxout_type): Adjust binfo access accessing.
8427         * dwarf2out.c (gen_member_die): Likewise.
8428         * tree-dump.c (deque_and_dump): Likewise.
8429
8430 2004-07-26  Falk Hueffner  <falk@debian.org>
8431
8432         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
8433         costs.
8434
8435 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8436
8437         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
8438         value off of the stack if TARGET_USE_FFREEP.
8439
8440 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8441
8442         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
8443         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
8444         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
8445         check on invocation of XRESIZEVEC ().
8446
8447 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8448
8449         * c-common.c (disable_builtin_function): Rename variable n to
8450         new_disabled_builtin.
8451         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
8452         Rename local variable old to old_decl.
8453         * gensupport.c (shift_output_template): Rename parameter old to src.
8454         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
8455         old_rtx and newx to new_rtx.
8456
8457 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8458
8459         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
8460         of c-pragma.h.
8461         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
8462         enum cpp_ttype.
8463         * c-lex.c: Likewise.
8464
8465 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8466
8467         * fold-const.c (constant_boolean_node): Make extern.
8468         (make_range): Wrap long lines.
8469         (fold_cond_expr_with_comparison): Remove unnecessary call to
8470         pedantic_non_lvalue.  Add missing calls to fold_convert.
8471         (fold_truthop): Add missing calls to fold_convert.
8472         (fold): Likewise.
8473         * tree.h (constant_boolean_node): Add prototype here.
8474         * builtins.c (expand_builtin_strncmp): Add missing calls to
8475         fold_convert.
8476         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
8477         Call fold_convert and constant_boolean_node to correct types.
8478         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
8479         missing call to fold_convert to correct types.
8480
8481 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
8482             Brian Ryner  <bryner@brianryner.com>
8483
8484         PR c++/9283
8485         PR c++/15000
8486         * c-common.c (c_common_attribute_table): Allow
8487         handle_visibility_attribute to be called for types.
8488         (handle_visibility_attribute) When given a type, set the visibility
8489         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
8490         so that we can check later whether the attribute was present. Added
8491         warning if attribute applied to non class type.
8492         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
8493         decls and checking that they are consistent.
8494         * common.opt: Added -fvisibility.
8495         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
8496         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
8497         * flags.h, tree.h: Added assorted support defines for overall patch
8498         * opts.c: Added parsing support for -fvisibility.
8499         * tree.c (build_decl): Set visibility for all decls to be whatever
8500         is in force at that time.
8501         * varasm.c (default_binds_local_p_1): Reworked logic determining
8502         when to make a symbol locally bound.
8503         * doc/invoke.texi: Added documentation for -fvisibility and
8504         -fvisibility-inlines-hidden.
8505
8506 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8507
8508         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
8509         * c-common.c: Add missing casts from void * to other types.
8510         * c-decl.c: Likewise.
8511         * c-format.c: Likewise.
8512         * c-lex.c: Likewise.
8513         * c-pragma.c: Likewise.
8514         * c-typeck.c: Likewise.
8515         * defaults.h: Likewise.
8516         * genconstants.c: Likewise.
8517         * gengtype-lex.l: Likewise.
8518         * genmodes.c: Likewise.
8519         * read-rtl.c: Likewise.
8520         * rtl.c: Likewise.
8521
8522 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8523
8524         * bitmap.c: Use type-safe memory allocation macros from libiberty.
8525         * c-common.c: Likewise.
8526         * c-decl.c: Likewise.
8527         * c-lang.c: Likewise.
8528         * c-lex.c: Likewise.
8529         * c-opts.c: Likewise.
8530         * c-parse.in: Likewise.
8531         * c-typeck.c: Likewise.
8532         * genconditions.c: Likewise.
8533         * gengtype-lex.l: Likewise.
8534         * gengtype-yacc.y: Likewise.
8535         * gengtype.c: Likewise.
8536         * genmodes.c: Likewise.
8537         * gensupport.c: Likewise.
8538         * read-rtl.c: Likewise.
8539         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
8540         htab_find_slot().
8541
8542 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8543
8544         * c-decl.c (groktypename, groktypename_in_param_context): Rename
8545         variable typename to type_name.
8546         * c-lex.c (interpret_float): Likewise.
8547
8548 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8549
8550         * convert.c (convert_to_real, convert_to_integer,
8551         convert_to_complex): Replace calls to build with calls to buildN.
8552         * coverage.c (tree_coverage_counter_ref): Likewise.
8553         * dojump.c (do_jump): Likewise.
8554         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
8555         * emit-rtl.c (component_ref_for_mem_expr,
8556         set_mem_attributes_minus_bitpos): Likewise.
8557         * explow.c (update_nonlocal_goto_save_area): Likewise.
8558         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
8559         expand_mult_add): Likewise.
8560         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
8561         store_constructor, get_inner_reference, expand_expr_real_1,
8562         try_casesi, try_tablejump): Likewise.
8563         * function.c (expand_function_start): Likewise.
8564         * stmt.c (emit_case_bit_tests, expand_end_case_type,
8565         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
8566         * stor-layout.c (place_union_field, layout_type): Likewise.
8567         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
8568         * varasm.c (copy_constant): Likewise.
8569
8570 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8571
8572         * c-common.c: Rename all identifiers named `new'.
8573         * c-decl.c: Likewise.
8574         * gensupport.c: Likewise.
8575         * simplify-rtx.c: Likewise.
8576         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
8577         with XNEW().
8578         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
8579         with XNEWVEC().
8580
8581 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
8582
8583         PR c/15360
8584         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
8585         declarations until after calling pushdecl.
8586         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
8587         "extern" and not on whether the declaration is initialized.
8588
8589 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
8590
8591         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
8592         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
8593         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
8594         "cpplib.h", "c-pragma.h", "c-common.h".
8595         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
8596         (solaris_register_pragmas): New functions.
8597         * config/sol2-protos.h: New file.
8598         * config/sol2.c: New file.
8599         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
8600         (REGISTER_TARGET_PRAGMAS): New macros.
8601         (solaris_pending_aligns, solaris_pending_inits)
8602         (solaris_pending_finis): New variables.
8603         * config/t-sol2 (sol2-c.o): Update dependencies.
8604         (sol2.o): New rule.
8605         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
8606         SUBTARGET_INSERT_ATTRIBUTES.
8607         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
8608         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
8609         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
8610         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
8611         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
8612         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
8613         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
8614         * config/sparc/sparc.c (sparc_attribute_table): New.
8615         (TARGET_INSERT_ATTRIBUTES): Define in terms of
8616         SUBTARGET_INSERT_ATTRIBUTES.
8617         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
8618         is defined.
8619         * doc/extend.texi (Solaris Pragmas): New section.
8620
8621 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8622
8623         * c-common.c: Rename all identifiers named `class' to `cl'.
8624         * c-common.h: Likewise.
8625         * c-parse.in: Likewise.
8626         * c-typeck.c: Likewise.
8627         * genmodes.c: Likewise.
8628         * real.c: Likewise.
8629         * real.h: Likewise.
8630         * recog.c: Likewise.
8631         * recog.h: Likewise.
8632         * regrename.c: Likewise.
8633         * tree.h: Likewise.
8634         * c-common.c (builtin_function_2): Change type of 5th parameter from
8635         int to enum built_in_function. Change type of 8th parameter from int
8636         to bool.
8637         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
8638         with GGC_CNEW().
8639         * c-typeck.c (convert_arguments): Change type of formal_prec from
8640         int to unsigned int.
8641         * genmodes.c (blank_mode): Make a few negative constants unsigned.
8642         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
8643         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
8644         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
8645         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
8646         iterator to for_all_modes () instead of an enum because enums can't
8647         be incremented in C++.
8648
8649
8650 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
8651
8652         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
8653         hard registers.
8654
8655 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8656
8657         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
8658         Handle ARRAY_RANGE_REF like ARRAY_REF.
8659
8660 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
8661
8662         * c-typeck.c (digest_init): Don't allow arrays of signed or
8663         unsigned variants of wchar_t to be initialized by wide string
8664         constants.  Do allow arrays of enumerated types compatible with
8665         wchar_t to be initialized by wide string constants.  Refine tests
8666         distinguishing wide and narrow strings and arrays.  Give specific
8667         error for arrays of other integer types initialized by string
8668         constants.
8669         (output_init_element, process_init_element): Check for
8670         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
8671         initializing with string constants.
8672
8673 2004-07-25  Richard Henderson  <rth@redhat.com>
8674
8675         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
8676         on the RESULT_DECL.
8677         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8678         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
8679         DECL_IGNORED_P to new decl.
8680
8681 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
8682
8683         * config/ia64/ia64.c (general_xfmode_operand)
8684         (destination_xfmode_operand): Delete.
8685         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
8686         * config/ia64/ia64.md (*movxf_internal): Use general_operand
8687         and destination_operand.
8688
8689 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
8690
8691         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
8692         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
8693
8694 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
8695             Zack Weinberg  <zack@codesourcery.com
8696
8697         PR 16684
8698         * c-decl.c (diagnose_mismatched_decls): Don't issue a
8699         redundant-declaration warning the first time a builtin is
8700         declared explicitly.
8701
8702 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8703
8704         * tree.h (staticp): Change return type to bool.
8705
8706 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8707
8708         * c-common.c (c_staticp): Last episode of the staticp saga.
8709
8710 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8711
8712         * c-common.h (c_staticp): Change return type from int to bool.
8713         * tree.c (staticp): Likewise.
8714         * langhooks.h (staticp): Likewise.
8715
8716 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8717
8718         * langhooks-def.h (lhd_staticp): Change return type from int to
8719         bool in prototype to match definition.
8720
8721 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8722
8723         * system.h (bool, true, false): Don't redefine as preprocessor macros
8724         in C++.
8725
8726 2004-07-24  Roger Sayle  <roger@eyesopen.com>
8727
8728         * expmed.c (init_expmed): A signed modulus by a power of two is
8729         considered cheap if its less than or equal to four instructions.
8730
8731 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8732
8733         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
8734         GGC_CNEWVAR): New macros.
8735
8736 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8737
8738         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
8739         lists.
8740         * c-decl.c: Likewise.
8741         * c-format.c: Likewise.
8742         * c-lex.c: Likewise.
8743         * c-opts.c: Likewise.
8744         * c-pragma.c: Likewise.
8745         * c-typeck.c: Likewise.
8746         * gencheck.c: Likewise.
8747         * genconditions.c: Likewise.
8748         * genconfig.c: Likewise.
8749         * genflags.c: Likewise.
8750         * gengtype.c: Likewise.
8751         * gensupport.c: Likewise.
8752         * ggc-none.c: Likewise.
8753         * langhooks.c: Likewise.
8754         * statistics.h: Likewise.
8755         * stub-objc.c: Likewise.
8756         * java/decl.c: Likewise.
8757
8758 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
8759
8760         * config/m68k/m68k.c (output_scc_di): Fix coding style.
8761         (symbolic_operand): Fix prototype.
8762         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
8763         * config/m68k/m68k.md: Add constants for registers a0 and sp and
8764         use them, change from the "{...}" syntax to the simpler {...}
8765         syntax.
8766         (*cfv4_extendqisi2): Fix destination predicate.
8767         * config/m68k/m68k-protos.h: Remove various declarations also
8768         generated via PREDICATE_CODES.
8769
8770 2004-07-23  Mike Stump  <mrs@apple.com>
8771
8772         * c-typeck.c (convert_for_assignment): Tightened up pointer
8773         converstions that differ in signedness.
8774
8775 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
8776
8777         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
8778
8779 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8780
8781         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
8782         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
8783
8784         * gimplify.c (gimplify_compound_lval): Check for no handled
8785         operations, rather than checking for explicit list of nodes.
8786         (is_gimple_addr_expr_arg_or_indirect): New function.
8787         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
8788         redundant setting of TREE_INVARIANT.
8789         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
8790         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
8791
8792 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
8793
8794         PR tree-optimization/16688
8795         PR tree-optimization/16689
8796         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
8797         unnecessary initialization of 'tag'.
8798         (get_tmt_for): Check that the new type tag has the same alias
8799         set as the pointed-to type.
8800         (group_aliases): Only regular variables need to be removed
8801         from the alias set of a name tag.
8802         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
8803         propagation if the two types are not compatible.
8804         (merge_alias_info): Rename from replace_ssa_names_ann.
8805         Add more checking.
8806         (replace_exp_1): If both arguments are SSA_NAMEs, check that
8807         the propagation can be done.
8808         Only call merge_alias_info on pointers.
8809         (propagate_value): Likewise.
8810         * tree-ssa-copyrename.c: Include langhooks.h.
8811         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
8812         to do the merging.
8813         Do not coalesce variables with incompatible types.
8814         (rename_ssa_copies): Call replace_ssa_name_symbol.
8815         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
8816         the same type as the underlying _DECL.
8817         * tree-ssanames.c (replace_ssa_name_symbol): New function.
8818         * tree.h (replace_ssa_name_symbol): Declare.
8819
8820 2004-07-23  Richard Henderson  <rth@redhat.com>
8821
8822         PR c++/16277
8823         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
8824         unshare it properly.
8825         (gimplify_modify_expr_rhs): Push assignment from a conditional into
8826         the conditional for all non-register types.
8827
8828 2004-07-23  Richard Henderson  <rth@redhat.com>
8829
8830         * expr.c (expand_expr_real_1): Don't handle non-local variables.
8831         * expr.h (fix_lexical_addr): Remove.
8832         * function.c (NEED_SEPARATE_AP): Remove.
8833         (fix_lexical_addr): Remove.
8834         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
8835         not null decl_function_context.
8836         (create_alias_vars): Likewise.
8837         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
8838         (simple_goto_p): Likewise.
8839         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
8840         * tree-ssa-ccp.c (get_default_value): Likewise.
8841         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
8842         * tree.c (needs_to_live_in_memory): Likewise.
8843         * tree-flow-inline.h (may_be_aliased): Move...
8844         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
8845         when TREE_STATIC variables may be addressable.
8846
8847 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
8848
8849         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
8850
8851 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
8852
8853         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
8854         bitmap contents if GENERATOR_FILE is defined.
8855         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
8856         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
8857
8858 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
8859
8860         * c-decl.c (start_function): Form composite type of function types
8861         rather than copying type from previous prototype declaration.
8862
8863 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
8864
8865         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
8866         the const qualifier for the second argument in the C++ functions.
8867
8868         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
8869         specific pointer types.
8870
8871         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
8872         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
8873         for vector bool and/or vector pixel, add C++ and C missing support.
8874         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
8875         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
8876         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
8877         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
8878         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
8879         missing C++ and C support for vector bool and/or vector pixel.
8880         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
8881         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
8882         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
8883         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
8884         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
8885         C++ and C types used for vector bool and/or vector pixel.
8886         (vec_st, vec_stl): Add C++ support for vector pixel.
8887         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
8888         (vec_all_ne): Add C++ support for vector pixel.
8889
8890         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
8891         (vec_vmulesb): Add missing C++ function.
8892         (vec_perm): Fix type of third argument in C++ function.
8893         (vec_vsum4shs): Fix C++ function name.
8894         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
8895         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
8896         argument passed to the error handler in C macro.
8897         (vec_nmsub): Remove extra parens around argument names in C macro.
8898         (vec_packpx): Add missing parens in C macro.
8899
8900 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
8901
8902         * machmode.def: Remove vector modes.
8903         * config/alpha/alpha-modes.def: Add supported vector modes.
8904         * config/arm/arm-modes.def: Likewise.
8905         * config/frv/frv-modes.def: Likewise.
8906         * config/i386/i386-modes.def: Likewise.
8907         * config/rs6000/rs6000-modes.def: Likewise.
8908         * config/sh/sh-modes.def: Likewise.
8909
8910 2004-07-23  Matthias Klose  <doko@debian.org>
8911
8912         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
8913         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
8914         * config.h: Regenerate.
8915         * configure: Likewise.
8916
8917 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
8918
8919         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
8920         generated SYMBOL_REFs for labels.
8921         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
8922         Change prototype.
8923         (machopic_stub_name): Remove.
8924         (machopic_indirection_name): New function.
8925         (machopic_mcount_stub_name): Likewise.
8926         (machopic_classify_name): Remove.
8927         (machopic_function_base_sym): New function.
8928         (machpoic_classify_symbol): Likewise.
8929         (machopic_classify_ident): Remove.
8930         (machopic_define_ident): Likewise.
8931         (machopic_define_name): Likewise.
8932         (machopic_name_defined_p): Likewise.
8933         (machopic_ident_defined_p): Likewise.
8934         (darwin_strip_name_encoding): Likewise.
8935         (machopic_define_symbol): New function.
8936         * config/darwin.c (hashtab.h): Include.
8937         (machopic_defined_list): Remove.
8938         (machopic_classify_ident): Likewise.
8939         (machopic_classify_name): Likewise.
8940         (machopic_ident_defined_p): Likewise.
8941         (machopic_define_ident): Likewise.
8942         (machopic_define_name): Likewise.
8943         (machopic_symbol_defined_p): New function.
8944         (machopic_classify_symbol): Likewise.
8945         (machopic_data_defined_p): Use machopic_classify_symbol.
8946         (machopic_define_symbol): New function.
8947         (machopic_function_base_sym): New function.
8948         (machopic_non_lazy_pointers): Remove.
8949         (machopic_non_lazy_ptr_name): Likewise.
8950         (machopic_stubs): Likewise.
8951         (machopic_stub_name): Likewise.
8952         (NON_LAZY_POINTER_SUFFIX): New macro.
8953         (STUB_SUFFIX): Likewise.
8954         (machopic_indirection): New structure.
8955         (machopic_indirections): New variable.
8956         (machopic_indirection_hash): New function.
8957         (machopic_indirection_eq): Likewise.
8958         (machopic_indirection_name): Likewise.
8959         (machopic_mcount_stub_name): New function.
8960         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
8961         hash table.
8962         (machopic_indirect_data_reference): Rework to use new functions.
8963         (machopic_indirect_call_target): Likewise.
8964         (machopic_legitimize_pic_address): Likewise.
8965         (machopic_output_indirection): New function.
8966         (machopic_finish): Use it.
8967         (machopic_operand_p): Rework to use new functions.
8968         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
8969         (darwin_strip_name_encoding): Remove.
8970         (update_non_lazy_ptrs): Remove.
8971         (update_stubs): Likewise.
8972         (darwin_non_lazy_pcrel): Use new functions.
8973         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
8974         (ASM_OUTPUT_LABELREF): Likewise.
8975         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8976         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
8977         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
8978         (TARGET_STRIP_NAME_ENCODING): Do not use
8979         darwin_strip_name_encoding.
8980         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
8981         darwin_strip_name_encoding.
8982         * config/i386/darwin.h (FUNCTION_PROFILER): Use
8983         machopic_mcount_stub_name.
8984         * config/i386/i386.c (x86_output_mi_thunk): Use
8985         machopic_indirection_name, not machopic_stub_name.
8986         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
8987         machopic_function_base_sym.
8988         (print_operand): Use machopic_classify_symbol.
8989         (rs6000_emit_prologue): Use machopic_function_base_sym.
8990         (output_profile_hook): Do not use machopic_stub_name.
8991         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
8992
8993 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
8994
8995         PR c/7284
8996         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
8997         as multiplication.
8998
8999 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9000
9001         * doc/implement-c.texi: New file.
9002         * doc/extend.texi (C Implementation): Move to there.
9003         * doc/gcc.texi: Include implement-c.texi.
9004         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
9005
9006 2004-07-22  Jason Merrill  <jason@redhat.com>
9007
9008         * integrate.c (copy_decl_for_inlining): Remove invisible reference
9009         handling.
9010         * tree-inline.c (setup_one_parameter): Likewise.
9011
9012 2004-07-22  Brian Booth  <bbooth@redhat.com>
9013
9014         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
9015         (substitute_and_fold): Propigate into VUSE operands when possible.
9016         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
9017         (cp_lattice_meet): Handle merging of latticevalues when
9018         UNKNOWN_VAL is present.
9019         (visit_stmt): Visit assignments with V_MUST_DEFs.
9020         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
9021         (ccp_fold): Deal with RHS' that are constant and virtual.
9022         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
9023         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
9024         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
9025         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
9026         computing immediate uses.
9027         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
9028         transition.
9029         (replace_vuse_in): New function.
9030         (likely_value): Add check of vuse operands.
9031         (get_default_value): Set the default value of virtually defined
9032         variables to UKNOWN_VAL instead of VARYING.
9033
9034 2004-07-22  Richard Henderson  <rth@redhat.com>
9035
9036         * expr.c (emit_push_insn): Don't use set_mem_attributes.
9037
9038 2004-07-22  Richard Henderson  <rth@redhat.com>
9039
9040         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
9041         variables due to conditional compilation.
9042
9043 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9044
9045         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
9046         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
9047         Release SSA names that have been re-renamed.
9048         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
9049         variable.
9050         * tree-ssa-alias.c (init_alias_info): If aliases have been
9051         computed before, clear existing alias information.
9052         (create_name_tags): Do no fixup PT_ANYTHING pointers.
9053         If the new name tag for a pointer is different than the one it
9054         had before, mark the old tag for renaming.
9055         (replace_may_alias): New function.
9056         (group_aliases): Call it.
9057         (setup_pointers_and_addressables): Always call get_tmt_for.
9058         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
9059         once.
9060         (set_pt_anything): New local function.
9061         (set_pt_malloc): New local function.
9062         (merge_pointed_to_info): Don't merge pointed-to variables from
9063         the original pointer if the destination is pointing to an
9064         unknown location.
9065         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
9066         (add_pointed_to_var): Do not add a variable to the points-to
9067         set if the pointer is already pointing to anywhere.
9068         (collect_points_to_info_r): If the defining statement is a PHI
9069         node, only merge pointed-to information if the argument has
9070         already been visited.
9071         (get_tmt_for): Only create a new tag if the pointer didn't
9072         have one already.
9073         (dump_alias_info): Emit more information.
9074         (dump_points_to_info_for): Likewise.
9075         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
9076         try to get the annotation of an SSA_NAME.
9077         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
9078         alias sets when checking is enabled.
9079         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
9080         (eliminate): Mark basic blocks that will need
9081         EH information cleaned up.
9082         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
9083         predecessor.
9084         Initialize need_eh_cleanup.
9085         (fini_pre): Call tree_purge_all_dead_eh_edges and
9086         cleanup_tree_cfg if needed.
9087         Free need_eh_cleanup.
9088         * tree-ssa.c (verify_ssa_name): New function.
9089         (verify_def): Call it.
9090         Re-arrange to avoid printing too many error messages.
9091         (verify_use): Likewise.
9092         (verify_phi_args): Likewise.
9093         (verify_flow_insensitive_alias_info): New function.
9094         (verify_flow_sensitive_alias_info): New function.
9095         (verify_alias_info): New function.
9096         (verify_ssa): Call verify_alias_info.
9097         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
9098         program.
9099         Re-arrange to avoid printing too many error messages.
9100         * tree-ssanames.c (make_ssa_name): Clear
9101         SSA_NAME_IN_FREE_LIST.
9102         (release_ssa_name): Never release a default definition.
9103         (release_defs): New function.
9104         * tree.h: Declare it.
9105         * tree-ssa-dce.c (remove_dead_stmt): Call it.
9106
9107 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9108
9109         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
9110         If true, do a depth-first search.  Do a breadht-first search,
9111         otherwise.
9112         (walk_use_def_chains): Add new argument IS_DFS.
9113         Update all users.
9114         * tree-flow.h (walk_use_def_chains): Update prototype.
9115
9116 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
9117
9118         * config/cris/cris.md: Tweak formatting.
9119         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
9120         (mover2side, moverside, movemside, movei, op3, andu): Replace
9121         live define_peephole:s with define_peephole2 near-equivalents.
9122         Delete the rest.
9123         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
9124         word-size modes.
9125         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
9126         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
9127         "*mov_sidesi_mem" respectively.
9128
9129 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
9130
9131         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
9132         (gimplify_build1): Move from tree-complex.c do_unop.
9133         (gimplify_build2): Move from tree-complex.c do_binop.
9134         (gimplify_build3): New.
9135         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
9136         Adjust throughout to call the functions above.
9137         * tree-flow.h: Declare the functions above.
9138         * tree-nested.c (gimplify_val): Rename to...
9139         (tsi_gimplify_val): ... this.
9140
9141         * Makefile.in (tree_complex.o): Update dependencies.
9142         (stor-layout.o): Depend on regs.h.
9143         * c-common.c (handle_vector_size_attribute): Update for
9144         vector types without corresponding vector modes.
9145         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
9146         a corresponding vector mode is not available.
9147         * print-tree.c (print_node): Print nunits for vector types
9148         * regclass.c (have_regs_of_mode): New.
9149         (init_reg_sets_1): Initialize it and use it instead
9150         of allocatable_regs_of_mode.
9151         * regs.h (have_regs_of_mode): Declare it.
9152         * stor-layout.c (layout_type): Pick a mode for vector types.
9153         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
9154         build_replicated_const, do_unop, do_binop, do_plus_minus,
9155         do_negate, expand_vector_piecewise, expand_vector_parallel,
9156         expand_vector_addition, expand_vector_operations_1,
9157         expand_vector_operations, tree_lower_operations,
9158         pass_lower_vector_ssa, pass_pre_expand): New.
9159         (expand_complex_operations, pass_lower_complex): Remove.
9160         * tree-optimize.c (init_tree_optimization_passes): Adjust
9161         pass ordering for changes in tree-complex.c.
9162         * tree-pass.h: Declare new passes.
9163         * tree.c (finish_vector_type): Remove.
9164         (make_vector_type): New.
9165         (build_vector_type_for_mode, build_vector_type): Rewritten.
9166         * tree.def (VECTOR_TYPE): Document where the number of
9167         subparts is stored.
9168         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
9169         (make_vector): Remove declaration.
9170
9171 2004-07-21  Richard Henderson  <rth@redhat.com>
9172
9173         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
9174         TREE_THIS_VOLATILE, may_aliases, or optimization level.
9175         (remove_useless_vars): Dump debugging info.
9176         (expand_used_vars): Move ...
9177         * cfgexpand.c (expand_used_vars): ... here.  Make static.
9178         * tree-flow-inline.h (set_is_used): New.
9179         (set_default_def): Use get_var_ann.
9180         * tree-flow.h: Update decls.
9181         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
9182         (create_ssa_var_map): Use it.
9183         * tree-ssa.c (set_is_used): Remove.
9184
9185 2004-07-22  Ben Elliston  <bje@au.ibm.com>
9186
9187         * gdbinit.in: Set a breakpoint on internal_error.
9188
9189 2004-07-21  Richard Henderson  <rth@redhat.com>
9190
9191         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
9192         to create a new basic block.
9193
9194 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9195
9196         PR c/15052
9197         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
9198         return type on function definitions.  Move other warnings for
9199         qualified return type to -Wreturn-type.  Do not condition any such
9200         warnings on -pedantic.  Update comments.
9201         (start_function): Only copy function type from previous prototype
9202         declaration if return types are compatible.
9203         * c-typeck.c (function_types_compatible_p): Don't condition
9204         warning for incompatibility of volatile qualifiers on the return
9205         type on -pedantic.  Update comment.
9206         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
9207
9208 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9209
9210         * c-typeck.c (set_init_index): Require designator to be of integer
9211         type.
9212
9213 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9214
9215         PR c/11250
9216         * c-parse.in (init): Change to exprtype.
9217         (primary): Set original_code for STRING to STRING_CST.
9218         Call maybe_warn_string_init for compound literals.
9219         (initdcl, notype_initdcl): Call maybe_warn_string_init.
9220         (initval): Update.
9221         * c-tree.h (maybe_warn_string_init): New.
9222         (pop_init_level, process_init_element): Use struct c_expr.
9223         (struct c_expr): Update comment.
9224         * c-typeck.c (maybe_warn_string_init): New function.
9225         (digest_init): Call it.  Additional parameter strict_string.  All
9226         callers changed.
9227         (output_init_element): Likewise.
9228         (struct constructor_stack): Use struct c_expr for
9229         replacement_value.
9230         (really_start_incremental_init, push_init_level): Update.
9231         (pop_init_level): Update.  Return struct c_expr.
9232         (process_init_level): Update.  Take struct c_expr argument.
9233
9234 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
9235
9236         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
9237         commit.
9238
9239 2004-07-21  Eric Christopher  <echristo@redhat.com>
9240
9241         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
9242         removal.
9243         * c-decl.c (pop_scope): Ditto.
9244         * calls.c (expand_call): Remove call to current_nesting_level,
9245         update comment accordingly. Remove calls to expand_start_target_temps
9246         and expand_end_target_temps.
9247         * cfgexpand.c (construct_init_block): Remove call to
9248         expand_start_bindings_and_block.
9249         (construct_exit_block): Remove call to expand_end_bindings.
9250         * expr.c (safe_from_p): Remove BIND_EXPR handling.
9251         (expand_expr_real_1): Ditto. Fix formatting.
9252         (expand_vars): Delete.
9253         * stmt.c (POPSTACK): Remove block_stack.
9254         (stmt_status): Remove x_block_stack.
9255         (block_stack): Delete.
9256         (expand_start_bindings_and_block): Ditto.
9257         (expand_start_target_temps): Ditto.
9258         (expand_end_target_temps): Ditto.
9259         (current_nesting_level): Ditto.
9260         (warn_about_unused_variables): Ditto.
9261         (expand_end_bindings): Ditto.
9262         * tree.h: Remove declarations for above.
9263
9264 2004-07-21  Steven Bosscher  <stevenb@suse.de>
9265
9266         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
9267         * rtl.c (note_insn_name): Likewise.
9268         * print-rtl.c (print_rtx): Don't print it.
9269         * cfgrtl.h (can_delete_note_p): Don't handle it.
9270         (rtl_delete_block): Likewise.
9271         * passes.c (rest_of_handle_guess_branch_prob): Remove.
9272         (rest_of_compilation): Don't call it.
9273         * predict.c (process_note_predictions, process_note_prediction,
9274         note_prediction_to_br_prob): Remove.
9275         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
9276         * stmt.c (return_prediction): Remove.
9277         (expand_value_return): Don't call it.  Don't add prediction
9278         notes for return statements.
9279
9280 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
9281
9282         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
9283         once.
9284
9285 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
9286
9287         * c-common.c (vector_types_convertible_p): Use vector types'
9288         TYPE_SIZE and TREE_TYPE instead of their mode.
9289         * convert.c (convert_to_integer): Likewise.
9290         (convert_to_vector): Likewise.
9291         * fold-const.c (fold_convert): Likewise.
9292         * varasm.c (output_constant): Likewise.
9293         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
9294         Allow a VECTOR_TYPE initializer to be made of several vectors.
9295         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
9296         of cleared and need_to_clear, and use fold_convert.
9297         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
9298         integer vectors.
9299
9300 2004-07-20  Richard Henderson  <rth@redhat.com>
9301
9302         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
9303         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
9304
9305 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
9306
9307         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
9308         enormous cost if not TARGET_HARD_MUL.
9309
9310 2004-07-20  Andrew Pinski  <apinski@apple.com>
9311
9312         PR target/16557
9313         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
9314         (ASM_SPEC): here.
9315
9316 2004-07-21  Paul brook  <paul@codesourcery.com>
9317
9318         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
9319
9320 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9321
9322         * fold-const.c (operand_equal_p): Temporarily support NULL args.
9323         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
9324         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
9325
9326 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
9327
9328         * rtl.h (plus_constant): Delete.
9329         (plus_constant_wide): Rename to plus_constant.
9330         (plus_constant_for_output_wide): Delete vestigial prototype.
9331         (GEN_INT): Remove unnecessary cast.
9332         * tree.h (build_int_2, size_int_type): Delete.
9333         (build_int_2_wide): Rename to build_int_2.
9334         (size_int_wide): Rename to size_int_kind.
9335         (size_int_type_wide): Rename to size_int_type.
9336         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
9337         Remove unnecessary cast.
9338         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
9339         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
9340         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
9341         (size_int_type_wide): Rename size_int_type.
9342         (int_const_binop): Use size_int_type.
9343         * c-lex.c (interpret_integer): Use build_int_2.
9344         * final.c (split_double): Remove unnecessary casts.
9345         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
9346
9347 2004-07-20  Richard Henderson  <rth@redhat.com>
9348
9349         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
9350         (gimplify_compound_lval): Use is_gimple_tmp_reg.
9351         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
9352         (is_gimple_tmp_reg): New.
9353         * tree-gimple.h (is_gimple_tmp_reg): Declare.
9354
9355 2004-07-20  Richard Henderson  <rth@redhat.com>
9356
9357         * tree-pretty-print.c (dump_generic_node): Dump
9358         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
9359
9360 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
9361
9362         * tree-mudflap.c (mf_set_options_fndecl): New tree.
9363         (mudflap_init): Set it.
9364         (mudflap_register_call): Remove __mf_init call.
9365         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
9366         to pass "-ignore-reads" option to libmudflap if needed.
9367
9368 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
9369
9370         PR c++/14607
9371         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
9372         (MAKE_DECL_ONE_ONLY): Undefine.
9373         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
9374         readonly_data, one_only_data_section, forget_section): New prototypes.
9375         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
9376         functions.
9377         (pa_select_section): Add one-only (COMDAT) support.
9378         * pa.h (struct machine_function): Define.
9379         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
9380         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
9381         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
9382         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
9383         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
9384         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
9385         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
9386         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
9387         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
9388         for EXTRA_SECTION_FUNCTIONS.
9389         * doc/install.texi: Update binutils requirements.
9390
9391 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9392
9393         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
9394         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
9395         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
9396         size_t.
9397         (struct VEC): Use unsigned for num and alloc.
9398         * vec.c (struct vec_prefix): Likewise.
9399         (vec_o_reserve): Adjust.
9400
9401         * dbxout.c (dbxout_type): Fix printf format.
9402
9403         * tree.h (binfo_member): Remove.
9404         * tree.c (binfo_member): Remove.
9405
9406 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9407
9408         * tree.h: Include vec.h
9409         (DEF_VEC_P(tree)): New type.
9410         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
9411         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
9412         (BINFO_LANG_SLOT): Remove.
9413         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
9414         (struct tree_binfo): Turn base_binfos into a trailing
9415         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
9416         (binfo_lang_slots): Remove.
9417         * tree.c (binfo_lang_slots): Remove.
9418         (make_tree_binfo_stat): Take a base binfo count, not a
9419         lang slot count.  Adjust.
9420         * Makefile.in (TREE_H): Add vec.h
9421         * alias.c (record_component_aliases): Adjust BINFO access.
9422         * dbxout.c (dbxout_type): Likewise.
9423         * dwarf2out.c (gen_member_die): Likewise.
9424         * sdbout.c (sdbout_one_type): Likewise.
9425         * tree-dump.c (deque_and_dump): Likewise.
9426         * config/i386/i386.c (classify_argument,
9427         contains_128bit_aligned_vector_p): Likewise.
9428         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
9429         * doc/c-tree.texi (Classes): Update BINFO documentation.
9430
9431 2004-07-20  Steven Bosscher  <stevenb@suse.de>
9432
9433         * c-common.h (check_case_value): Remove prototype.
9434         (c_add_case_label): Adjust prototype.
9435         * c-common.c (check_case_value): Make static.
9436         (check_case_bounds): New function.
9437         (c_add_case_label): Use it.  Take new argument orig_type.
9438         * c-typeck.c (struct c_switch): New orig_type field.
9439         (c_start_case): Set it.
9440         (do_case): Pass it to c_add_case_label.
9441         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
9442         cases from here.  Add the labels in reverse order.
9443         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
9444         (add_case_node): Return nothing, don't check for duplicate cases.
9445         Insert new case nodes in a list, not in an AVL tree.
9446         (expand_end_case_type): Don't turn a case tree into a case list.
9447         (case_tree2list): Remove.
9448         * tree.h (add_case_node): Adjust prototype.
9449
9450 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
9451
9452         * genattr.c (struct range, struct function_unit,
9453         write_units, extend_range, init_range): Remove them.
9454         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
9455         Output "#define INSN_SCHEDULING" here.
9456         * genattrtab.c (struct range, struct function_unit_op,
9457         struct function_unit, struct dimension, enum operator,
9458         operate_exp, expand_units, simplify_knowing,
9459         encode_units_mask, simplify_by_exploding,
9460         find_and_mark_used_attributes, unmark_used_attributes,
9461         add_values_to_cover, increment_current_value,
9462         test_for_current_value, simplify_with_current_value,
9463         simplify_with_current_value_aux, gen_unit,
9464         write_unit_name, write_function_unit_info,
9465         write_complex_function, write_toplevel_expr,
9466         find_single_value, extend_range): Remove.
9467         (write_attr_get): Do not handle common_av->value
9468         being an FFS.
9469         (struct attr_desc): Remove func_units_p and blockage_p.
9470         (write_attr_valueq): Do not handle them.
9471         (find_attr): Do not clear them.
9472         (make_internal_attr): Do not initialize them.
9473         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
9474         * sched-vis.c (init_target_units, insn_print_units,
9475         init_block_visualization, print_block_visualization,
9476         visualize_scheduled_insns, visualize_no_unit,
9477         visualize_stall_cycles, visualize_alloc,
9478         visualize_free, target_units, get_visual_tbl_length,
9479         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
9480         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
9481         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
9482         * haifa-sched.c (blockage_range, clear_units,
9483         schedule_unit, actual_hazard, potential_hazard,
9484         insn_unit, unit_last_insn, unit_tick,
9485         actual_hazard_this_instance, potential_hazard,
9486         schedule_unit, max_insn_queue_index_value): Remove.
9487         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
9488         max_insn_queue_index.
9489         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
9490         * doc/md.texi (Processor pipeline description): Remove
9491         references to old pipeline descriptions.
9492         (Automaton pipeline description): Merge with the above.
9493         (Old pipeline description, Comparison of the two descriptions):
9494         Remove.
9495
9496         * bt-load.c (migrate_btr_def): Remove references to
9497         use_pipeline_interface.
9498         * haifa-sched.c (insn_cost, schedule_insn,
9499         schedule_block, advance_one_cycle, sched_init,
9500         queue_to_ready, sched_finish): Likewise.
9501         * modulo-sched.c (sms_schedule, advance_one_cycle,
9502         ps_has_conflicts): Likewise.
9503         * sched-rgn.c (init_ready): Likewise.
9504         (debug_dependencies): Likewise, and remove an "if (1)".
9505         * target.h (use_dfa_pipeline_interface): Remove.
9506         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9507         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9508         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9509         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9510         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9511         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9512         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9513         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9514         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9515         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9516         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9517         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9518         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9519         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9520         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9521         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9522         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9523         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9524         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9525
9526 2004-07-19  Roger Sayle  <roger@eyesopen.com>
9527
9528         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
9529
9530 2004-07-19  Jeff Law  <law@redhat.com>
9531
9532         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
9533         (get_eq_expr_value): Use it.  Simplify slightly.
9534
9535 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
9536
9537         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
9538         (umulsidi3_32bit_r4000): Likewise.
9539
9540 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
9541
9542         * vec.h: Propagate location information properly.
9543         (VEC_T_iterate): Add result pointer parameter.
9544         (VEC_T_space): New.
9545         (VEC_T_reserve): Use it.
9546
9547 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
9548
9549         * Makefile.in (c-format.o): Depend on c-format.h.
9550         * c-format.h: New file.
9551         (struct format_char_info): Add CHAIN member.
9552         * c-format.c: Move some types and constants to c-format.h.
9553         (format_type_error): Set to -1.
9554         (struct function_format_info): Use an int for format_type.
9555         (decode_format_type): Return an int.  Return format_type_error
9556         on error.
9557         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
9558         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
9559         (scan_char_table, time_char_table, monetary_char_table): Initialize
9560         CHAIN to NULL.
9561         (n_format_types): New variable.
9562         (check_format_info_main): Handle CHAIN in format_char_info.
9563         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
9564         TARGET_N_FORMAT_TYPES.
9565         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
9566         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
9567         * config/sol2-c.c: New file.
9568         * config/t-sol2: New file.
9569         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
9570         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
9571         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
9572
9573         * doc/extend.texi (Target Format Checks): New section.
9574         (Function Attributes): Mention it.
9575         * doc/invoke.texi: Mention target format checks.
9576         * doc/sourcebuild.texi: Mention target format checks.
9577         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
9578         TARGET_FORMAT_TYPES.
9579
9580 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9581
9582         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
9583         added.
9584         * config/s390/s390.c (regclass_map initializer): Register 35 added to
9585         ADDR_REGS.
9586         (load_multiple_operation, store_multiple_operation): Removed
9587         pointless sanity check.
9588         (s390_decompose_address): Added check for return_address_pointer_rtx.
9589         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
9590         (s390_return_address_offset): New function.
9591         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
9592         (FRAME_REGNO_P): Added check for register 35.
9593         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
9594         REG_ALLOC_ORDER): Appended entry for register 35.
9595         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
9596         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
9597         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
9598         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
9599         is eliminable using stack pointer or hard frame pointer.
9600         (REGISTER_NAMES): Added name for register 35.
9601         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
9602         pointless sanity check.
9603
9604 2004-07-19  Roger Sayle  <roger@eyesopen.com>
9605
9606         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
9607         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
9608         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
9609         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
9610         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
9611         (fold_relational_const): Tidy up handling of floating point
9612         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
9613         transformation; fold_relational_const assumes constant operands.
9614
9615 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
9616
9617         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
9618         directory.
9619
9620 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
9621
9622         * c-tree.h (struct c_expr): Define.
9623         (C_SET_EXP_ORIGINAL_CODE): Remove.
9624         (parser_build_binary_op, build_compound_expr): Update prototypes.
9625         * c-parse.in (%union): Add exprtype.
9626         (FUNC_NAME): Mark as ttype.
9627         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
9628         exprtype.
9629         (expr): Update.  Define directly in terms of expr_no_commas
9630         instead of using nonnull_exprlist.
9631         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
9632         offsetof_member_designator, typespec_nonreserved_nonattr, init,
9633         initval, designator, component_declarator,
9634         component_notype_declarator, enumerator, array_declarator,
9635         condition, exexpr, switch_statement, stmt_nocomp, stmt,
9636         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
9637         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
9638         where appropriate.
9639         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
9640         * c-common.c (c_common_truthvalue_conversion): Don't check
9641         C_EXP_ORIGINAL_CODE.
9642         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
9643         Don't use C_EXP_ORIGINAL_CODE.
9644         (default_conversion, default_function_array_conversion): Don't use
9645         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
9646         (internal_build_compound_expr): Merge into build_compound_expr.
9647         (build_compound_expr): Take two operands instead of a TREE_LIST.
9648         * objc/objc-act.c (get_super_receiver): Update calls to
9649         build_compound_expr.
9650
9651 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
9652
9653         * config/sh/sh.c (sh_use_dfa_interface): Remove.
9654         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
9655         hook_int_void_1.
9656         * config/sh/sh.md: Extract pipeline descriptions
9657         into separate files.
9658         * config/sh/sh1.md: New file, extracted from sh.md.
9659         * config/sh/sh4.md: New file, extracted from sh.md.
9660         * config/sh/shmedia.md: New file, extracted from sh.md
9661         and rewritten using new-style pipeline description.
9662
9663 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
9664
9665         * config/pa/pa.md: Delete the two remaining define_peephole
9666         patterns.
9667
9668 2004-07-18  Steven Bosscher  <stevenb@suse.de>
9669             Joseph S. Myers  <jsm@polyomino.org.uk>
9670
9671         * c-common.c (c_common_truthvalue_conversion): Don't warn if
9672         TREE_NO_WARNING is set.
9673
9674 2004-07-18  Roger Sayle  <roger@eyesopen.com>
9675
9676         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
9677         simplify_builtin_strncmp): Delete.
9678         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
9679         Change argument to accept an arglist instead of an "exp".  Assume
9680         that the return type is always integer_type_node.  Copy missing
9681         transformations from their now obsolete simplify_builtin_*
9682         equivalents.
9683         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
9684         fold_builtin_strcmp and fold_builtin_strncmp.
9685         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
9686         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
9687         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
9688
9689 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
9690
9691         * Makefile.in (tree-alias-common.o): Update dependencies.
9692
9693 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
9694
9695         * cfgloop.c (flow_loop_nested_p): Fix comment.
9696
9697 2004-07-17  Jason Merrill  <jason@redhat.com>
9698
9699         PR c++/16115
9700         * stor-layout.c (relayout_decl): New fn.
9701         * tree.h: Declare it.
9702         (DECL_BY_REFERENCE): New macro.
9703
9704 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
9705
9706         * libgcc2.c (__enable_execute_stack): New symbol.
9707         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
9708         and declare __enable_execute_stack.
9709         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
9710         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
9711         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9712         ENABLE_EXECUTE_STACK.
9713         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
9714         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9715         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9716         ENABLE_EXECUTE_STACK.
9717         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9718         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
9719         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9720         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9721         ENABLE_EXECUTE_STACK.
9722         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9723         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9724         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9725         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9726         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
9727         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9728         (sparc64_initialize_trampoline): Likewise.
9729         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
9730
9731 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
9732
9733         * langhooks.h (builtin_function): New langhook.
9734         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
9735         (LANG_HOOKS_INITIALIZER): Update.
9736         * tree.h (builtin_function): Remove.
9737         * doc/tm.texi: Update.
9738         * c-tree.h (builtin_function): Declare.
9739         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
9740         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
9741         config/ia64/ia64.c, config/iq2000/iq2000.c,
9742         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
9743         config/stormy16/stormy16.c: All callers of builtin_function
9744         changed.
9745
9746 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
9747
9748         PR target/16556
9749         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
9750         Remove white space after the backslash.
9751
9752 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
9753
9754         PR rtl-optimization/16294
9755         * resource.c (return_insn_p): New predicate.
9756         (mark_target_live_regs): Use it.  Special-case return insns.
9757         (init_resource_info): Use it.  Don't scan the epilogue past
9758         a return.
9759
9760 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9761
9762         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
9763         destroy dominance information.
9764         * passes.c (rest_of_handle_loop2):  Free dominance information.
9765         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
9766         jump threading.
9767         (thread_jumps): Update dominance information and remove unreachable
9768         blocks.
9769         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
9770         information and remove the unreachable block.
9771
9772 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
9773
9774         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
9775
9776 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
9777
9778         * doc/sourcebuild.texi: Remove libf2c entry.
9779
9780 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
9781
9782         * config/i386/i386.md (movv16qi_internal): Fix typo.
9783
9784 2004-07-17  Steven Bosscher  <stevenb@suse.de>
9785
9786         * final.c (final_scan_insn): Fix broken commit from previous
9787         patch.
9788
9789 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
9790
9791         * c-typeck.c (parser_build_binary_op): Condition warnings for
9792         X<=Y<=Z on -Wparentheses instead of -Wextra.
9793         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
9794         supported for C only.
9795
9796 2004-07-17  Steven Bosscher  <stevenb@suse.de>
9797
9798         * cfgcleanup.c (try_simplify_condjump): Don't remove line
9799         notes to avoid unreachable code warnings.
9800         * toplev.c (backend_init): Don't emit line notes for
9801         unreachable code warnings.
9802
9803         * combine.c (distribute_notes): Don't distribute a
9804         REG_VTABLE_REF note.
9805         * final.c (final_scan_insn): Don't handle it.
9806         * rtl.c (reg_note_name): Remove it.
9807         * rtl.h (enum reg_node): Dito.
9808
9809         * emit-rtl.c (force_line_numbers, restore_line_number_status):
9810         Remove.
9811         * rtl.h (force_line_numbers, restore_line_number_status):
9812         Remove prototypes.
9813
9814         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
9815         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
9816         (using_eh_for_cleanups): Also moved here.
9817
9818         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
9819         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
9820         to expand_start_case and add_case_node.
9821         * stmt.c (struct nesting): Cleanup unused fields condition_code,
9822         last_unconditional_cleanup, nominal_type, printname, and
9823         line_number_status.
9824         (struct fixup_goto): Remove.
9825         (struct stmt_status): Remove x_goto_fixup_chain field.
9826         (goto_fixup_chain): Remove.
9827         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
9828         pushcase, pushcase_range): Remove.
9829         (expand_start_bindings_and_block): Don't set unused fields in
9830         the nesting stack.
9831         (expand_start_case, add_case_node): Cleanup unused formal arguments.
9832         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
9833         instead of emit_jump_if_reachable.
9834         (emit_case_nodes): Likewise.
9835         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
9836         static.
9837         (update_eh_label): Work around left-over exception handing regions.
9838         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
9839         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
9840         (pass_cleanup_cfg_post_optimizing): New pass.
9841         (init_tree_optimization_passes): Run the new pass after all
9842         optimizations.
9843         * tree.h (pushcase, pushcase_range): Remove prototypes.
9844         (expand_start_case, add_case_node): Update prototypes.
9845
9846 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
9847
9848         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
9849
9850 2004-07-16  Richard Henderson  <rth@redhat.com>
9851
9852         * builtins.c (std_expand_builtin_va_arg): Remove.
9853         (expand_builtin_va_arg): Remove.
9854         * expr.h: Don't declare them.
9855         * gimplify.c (mark_decls_volatile_r): Remove.
9856         (copy_if_shared_r): Don't call it.
9857         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
9858         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
9859         * gimple-low.c (lower_stmt): Likewise.
9860         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
9861         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
9862         * tree-ssa-operands.c (get_expr_operands): Likewise.
9863         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
9864         EXPAND_BUILTIN_VA_ARG.
9865         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
9866         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
9867         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
9868         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
9869
9870 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
9871
9872         * tree-ssa-pre.c (insert_aux): Break out if we hit
9873         a critical edge.
9874
9875 2004-07-16  Richard Henderson  <rth@redhat.com>
9876
9877         * basic-block.h (remove_fake_exit_edges): Declare.
9878         * cfganal.c (remove_fake_predecessors): Rename from
9879         remove_fake_successors; iterate over predecessors.
9880         (remove_fake_exit_edges): New.
9881         * cfgcleanup.c (try_optimize_cfg): Use it.
9882         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
9883         * predict.c (estimate_probability): Likewise.
9884         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
9885         * tree-cfg.c (make_edges): Likewise.
9886         * tree-ssa-pre.c (fini_pre): Likewise.
9887         * profile.c (instrument_edges): Don't remove_fake_edges.
9888         (branch_prob): Do it earlier here.
9889
9890 2004-07-16  Richard Henderson  <rth@redhat.com>
9891
9892         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
9893         switchification wrt CONSTRUCTOR.  Document the reason.
9894
9895 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
9896
9897         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
9898         that prevented descriptive __mf_check source location strings.
9899
9900 2004-07-16  Richard Henderson  <rth@redhat.com>
9901
9902         * tree-def (WITH_SIZE_EXPR): New.
9903         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
9904         * expr.c (expand_expr_real_1): Likewise.
9905         * gimplify.c (maybe_with_size_expr): New.
9906         (gimplify_arg, gimplify_modify_expr): Use it.
9907         (gimplify_modify_expr_to_memcpy): Take size parameter.
9908         (gimplify_modify_expr_to_memset): Likewise.
9909         (gimplify_expr): Handle WITH_SIZE_EXPR.
9910         * tree-alias-common.c (find_func_aliases): Likewise.
9911         * tree-eh.c (tree_could_trap_p): Likewise.
9912         (tree_could_throw_p): Likewise.
9913         * tree-gimple.c (is_gimple_lvalue): Likewise.
9914         (get_call_expr_in): Likewise.
9915         * tree-inline.c (estimate_num_insns_1): Likewise.
9916         (expand_calls_inline): Likewise.
9917         * tree-nested.c (convert_call_expr): Likewise.
9918         * tree-pretty-print.c (dump_generic_node): Likewise.
9919         * tree-sra.c (sra_walk_expr): Likewise.
9920         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
9921         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
9922         * tree-ssa-operands.c (get_expr_operands): Likewise.
9923         * tree-tailcall.c (find_tail_calls): Likewise.
9924
9925         * calls.c (expand_call): Reset old_stack_allocated after
9926         calling emit_stack_restore.
9927
9928 2004-07-16  Richard Henderson  <rth@redhat.com>
9929
9930         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
9931         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
9932         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
9933         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
9934         copy_res_decl_for_inlining.
9935
9936         * tree-inline.c (declare_return_variable): New modify_dest argument.
9937         Use it as the return value, when possible or manditory.  Handle
9938         TREE_ADDRESSABLE types.
9939         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
9940         replacement of CALL_EXPR.
9941
9942 2004-07-16  Richard Henderson  <rth@redhat.com>
9943
9944         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
9945         * gimple-low.c (expand_var_p): Don't check it.
9946         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
9947         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
9948         * tree-ssa-operands.c (add_stmt_operand): Likewise.
9949         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
9950         (find_referenced_vars): Don't call them.
9951         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
9952
9953 2004-07-16  Richard Henderson  <rth@redhat.com>
9954
9955         * function.c (pass_by_reference): True for all variable sized types.
9956
9957 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
9958
9959         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
9960         * tree-pretty-print.c: Include tree-chrec.h.
9961         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
9962         and POLYNOMIAL_CHREC nodes.
9963
9964 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
9965
9966         * builtins.c (expand_builtin_stpcpy): Do not create temporary
9967         reg with VOIDmode.
9968
9969 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
9970
9971         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
9972
9973 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
9974
9975         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
9976         to BASE_REGNUM.
9977         * config/s390/s390.c: Likewise.
9978         * config/s390/s390.h: Likewise.
9979
9980 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
9981
9982         * config/mips/mips.md (addsi3, adddi3): Remove special handling
9983         of $sp adds.  Remove REGNO checks from mips16 patterns.
9984
9985 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
9986
9987         * config/mips/mips.md: Delete outdated comment.
9988
9989 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
9990
9991         * config/mips/mips.c (get_float_compare_codes): Delete.
9992         (mips_emit_compare): New function, mostly extracted from
9993         get_float_compare_codes and gen_conditional_branch.
9994         (gen_conditional_branch, gen_conditional_move): Use it.
9995
9996 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
9997
9998         * genautomata.c (add_vect): Speedup by using integers as
9999         bit-vectors for walking through the comb_vect and finding
10000         a match.
10001
10002 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10003
10004         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
10005         operand is an uns_arith_operand; use subtraction otherwise.
10006         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
10007         not just arith_operands.
10008
10009 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10010
10011         * config/mips/mips-protos.h (gen_int_relational): Delete.
10012         (mips_emit_scc): Declare.
10013         * config/mips/mips.c (internal_test): Delete.
10014         (sle_operand, sleu_operand): New functions.
10015         (map_test_to_internal_test, gen_int_relational): Delete.
10016         (mips_emit_binary, mips_relational_operand_ok_p)
10017         (mips_emit_int_relational, mips_zero_if_equal)
10018         (mips_emit_scc): New functions.
10019         (gen_conditional_branch): Rework to use mips_emit_int_relational.
10020         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
10021         sleu_operand.
10022         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
10023         (sltu, sleu): Use mips_emit_scc.
10024         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
10025         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
10026         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
10027
10028 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10029
10030         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
10031
10032 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10033
10034         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
10035         (*sne_[sd]i): Likewise sne_[sd]i_zero.
10036         (*sgt_[sd]i): ...and sgt_[sd]i.
10037         (*slt_[sd]i): ...and slt_[sd]i.
10038         (*sgtu_[sd]i): ...and sgtu_[sd]i.
10039         (*sltu_[sd]i): ...and sltu_[sd]i.
10040         (*sleu_[sd]i): ...and sleu_[sd]i_const.
10041         Name previously unnamed mips16 patterns.  Formatting fixes.
10042
10043 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10044
10045         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
10046         (branch_type): Delete.
10047         (gen_conditional_branch, gen_conditional_move)
10048         (mips_gen_conditional_trap): Update after name change.  Get the
10049         comparison mode from cmp_operands[0].
10050         * config/mips/mips.h (cmp_type, branch_type): Delete.
10051         (cmp_operands): Renamed from branch_cmp.
10052         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
10053         name change.  Don't set branch_type.
10054         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
10055         mode class of cmp_operands[0] rather than branch_type.  Update after
10056         name change.
10057
10058 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10059
10060         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
10061         of 0...255 to 0 when inside a SET.
10062
10063 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10064
10065         * config/mips/mips.md: Remove mips16 define_peepholes.
10066
10067 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
10068
10069         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
10070         (fini_pre): Remove fake edges.
10071
10072 2004-07-15  Richard Henderson  <rth@redhat.com>
10073
10074         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
10075         (get_indirect_ref_operands, get_call_expr_operands): ... these.
10076
10077 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
10078
10079         * vec.h (VEC_address): New function.
10080
10081 2004-07-14  Jason Merrill  <jason@redhat.com>
10082
10083         PR middle-end/15885
10084         * gimplify.c (gimplify_arg): New fn, split out from...
10085         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
10086
10087 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10088
10089         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
10090         generate code which is generated by pushqi1 now
10091         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
10092
10093 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10094
10095         * combine.c (simplify_set): match the mode of the constant 0 with
10096         the tested operand to match the compare behaviour and the
10097         simplify_relational_operation() expectation.
10098
10099 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10100
10101         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
10102         ("bordered"): Same.
10103
10104 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10105
10106         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
10107         unconditionally.
10108         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
10109
10110 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10111
10112         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
10113         calls in mips16 code.
10114
10115 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10116
10117         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
10118         the destination of the li as well as for the neg.
10119
10120 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
10121
10122         g++/15861
10123         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
10124         * cgraph.h: Update declaration.
10125         * c-decl.c (build_cdtor): Update call with default priority.
10126         * coverage.c (create_coverage): Ditto.
10127         * tree-mudflap.c (mf_init_fndecl): New tree.
10128         (mudflap_init): Set it.
10129         (mudflap_register_call): Arrange to call __mf_init before the first
10130         __mf_register call.
10131         (mudflap_finish_file): Mark the mudflap static initializer as extra
10132         high priority, to beat all C++ static constructors.
10133
10134 2004-07-15  Jeff Law  <law@redhat.com>
10135
10136         * loop.c (check_insn_for_givs): Restore check for code labels that was
10137         accidentally deleted by a recent checkin.
10138
10139 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
10140
10141         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
10142         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
10143
10144 2004-07-14  Richard Henderson  <rth@redhat.com>
10145
10146         * print-tree.c (print_node): Fix casts last change.
10147
10148 2004-07-15  Paul Brook  <paul@codesourcery.com>
10149
10150         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
10151         to TARGET_UNWIND_INFO.
10152         * except.c (output_function_exception_table): Ditto.
10153         * except.h: Ditto.
10154         * opts.c (decode_options): Ditto.
10155         * passes.c (rest_of_handle_final): Ditto.
10156         * final.c (final_start_function): Ditto.
10157         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
10158         target hook.
10159         * targhooks.h (default_unwind_emit): Declare.
10160         * targhooks.c (default_unwind_emit): New function.
10161         * target-def.h: Define and use TARGET_UNWIND_EMIT.
10162         * target.h (struct gcc_target): Add unwind_emit.
10163         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
10164         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
10165         Remove IA64_UNWIND_EMIT.
10166         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
10167
10168 2004-07-14  Richard Henderson  <rth@redhat.com>
10169
10170         * print-tree.c (print_node): Handle SSA_NAME.
10171
10172 2004-07-14  James E Wilson  <wilson@specifixinc.com>
10173
10174         PR target/16325
10175         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
10176         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
10177
10178 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
10179
10180         * expr.c (expand_assignment): Reenable bitfield += optimizations.
10181         Use alias set 0 for memory, do proper mode calculations and adjust
10182         address for memories.
10183
10184 2004-07-14  Per Bothner  <per@bothner.com>
10185
10186         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
10187         structure with extra column field.
10188         * tree.c (expand_location):  Also fill in column field.
10189         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
10190         gets confused by the two conditionally-compiled definitions.
10191
10192 2004-07-14  Eric Christopher  <echristo@redhat.com>
10193
10194         * calls.c (expand_call): Fix typo in comment.
10195
10196 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
10197
10198         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
10199         comparision of TFmode.
10200
10201 2004-07-14  Richard Henderson  <rth@redhat.com>
10202
10203         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
10204         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
10205         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
10206         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10207         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
10208         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
10209         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
10210         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
10211         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
10212
10213 2004-07-14  Mike Stump  <mrs@apple.com>
10214
10215         * config/darwin.h (WINT_TYPE): Define to be int to match
10216         system header files.
10217
10218 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
10219
10220         * config/xtensa/xtensa.c (function_arg_advance): Check for args
10221         that must be passed in the stack.
10222         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
10223         arguments if the size is not a constant.
10224
10225 2004-07-14  Per Bothner  <per@bothner.com>
10226
10227         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
10228         instead of EXPR_LOCUS in a boolean context, which is always true
10229         if --enable-mapped-location.
10230         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
10231
10232 2004-07-14  Richard Henderson  <rth@redhat.com>
10233
10234         * dominance.c (struct dom_info): Add fake_exit_edge.
10235         (init_dom_info): Allocate it.
10236         (free_dom_info): Free it.
10237         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
10238         in two passes.
10239         (calc_idoms): Honor fake_exit_edge.
10240
10241 2004-07-13  Jason Merrill  <jason@redhat.com>
10242
10243         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
10244         (rhs_test_for): New fn.
10245         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
10246         * tree-gimple.h: Declare them.
10247         * gimplify.c (gimplify_modify_expr): Use the new fns.
10248
10249 2004-07-14  Richard Henderson  <rth@redhat.com>
10250
10251         * config/arm/arm-protos.h (arm_va_arg): Remove.
10252         * config/arm/arm.c (arm_va_arg): Remove.
10253         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
10254         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
10255
10256 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10257
10258         * pa.c (fix_range): New function to mark a range(s) of registers as
10259         fixed registers.
10260         (override_options): Call fix_range if the -mfixed-range option string
10261         is not empty.
10262         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
10263         * doc/invoke.texi (-mfixed-range): Document new option.
10264
10265 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
10266
10267         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
10268         for TARGET_64BIT.
10269         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
10270
10271 2004-07-14  Roger Sayle  <roger@eyesopen.com>
10272
10273         * expmed.c (expand_sdiv_pow2): New function to expand signed division
10274         by a positive power of two, split out from expand_divmod.  Provide
10275         an alternate implementation when shifts are expensive.  Lower the
10276         threshold for using a branchless implementation to BRANCH_COST >= 2.
10277         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
10278
10279 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10280
10281         * tree-dfa.c (make_rename_temp): *Really* work just
10282         like create_tmp_var if called while outside SSA form.
10283
10284 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
10285
10286         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
10287         for division by zero.
10288         ("umodsi3"): Likewise.
10289
10290 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
10291
10292         * config/mips/mips.c (mips_output_move): When generating mips16 code,
10293         force loads of negative constants to be split.
10294         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
10295         Generalize SImode li/neg splitter to cope with other modes.
10296
10297 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10298
10299         * expmed.c: Remove more references to QUEUED in the comments.
10300         * expr.c: Likewise.
10301
10302 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
10303
10304         Revert:
10305         2004-07-13  Richard Henderson  <rth@redhat.com>
10306         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
10307         correctly.
10308
10309 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10310
10311         * tree-dfa.c (make_rename_temp): Work just like
10312         create_tmp_var if called while outside SSA form.
10313
10314 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10315
10316         * expr.c (enqueue_insn, finish_expr_for_function,
10317         protect_from_queue, queued_subexp_p, mark_queue,
10318         emit_insns_enqueued_after_mark, emit_queue,
10319         expand_increment): Remove.
10320         (store_constructor): Expand increment as an assignment.
10321         (expand_expr_real_1 <case PREINCREMENT_EXPR,
10322         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
10323         case POSTDECREMENT_EXPR>): Abort.
10324         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
10325         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
10326         protect_from_queue, emit_queue, queued_subexp_p): Remove.
10327         * function.h (pending_chain, x_pending_chain): Remove.
10328         * rtl.def (QUEUED): Remove.
10329
10330         * emit-rtl.c (copy_insn_1, copy_most_rtx,
10331         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
10332         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
10333         encode_units_mask): Likewise.
10334         * local-alloc.c (equiv_init_varies_p): Likewise.
10335         * rtl.c (copy_rtx): Likewise.
10336         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
10337         * simplify-rtx.c (simplify_gen_subreg): Likewise.
10338         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
10339
10340         * builtins.c (expand_builtin, expand_builtin_apply,
10341         expand_builtin_mathfn, expand_builtin_mathfn_2,
10342         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
10343         Remove calls to emit_queue and protect_from_queue.
10344         * calls.c (expand_call, precompute_arguments,
10345         precompute_register_parameters, rtx_for_function_call,
10346         store_one_arg): Likewise.
10347         * dojump.c (do_compare_and_jump, do_jump): Likewise.
10348         * explow.c (memory_address): Likewise.
10349         * expmed.c (clear_by_pieces_1, clear_storage,
10350         clear_storage_via_libcall, emit_group_load,
10351         emit_group_store, emit_store_flag,
10352         expand_expr_real_1, store_by_pieces,
10353         store_constructor, store_expr, try_casesi,
10354         try_tablejump): Likewise.
10355         * function.c (expand_pending_sizes): Likewise.
10356         * optabs.c (emit_cmp_and_jump_insns,
10357         emit_conditional_add, emit_conditional_move,
10358         expand_fix, expand_float, prepare_cmp_insn): Likewise.
10359         * stmt.c (emit_case_bit_tests,
10360         expand_asm_expr, expand_computed_goto,
10361         expand_decl_init, expand_end_case_type,
10362         expand_end_stmt_expr, expand_expr_stmt_value,
10363         expand_return, expand_start_case,
10364         optimize_tail_recursion): Likewise.
10365         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
10366         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
10367
10368 2004-07-14  Ben Elliston  <bje@au.ibm.com>
10369
10370         * vec.h: Comment fix.
10371
10372 2004-07-13  Richard Henderson  <rth@redhat.com>
10373
10374         * target.h (struct gcc_target): Add calls.pass_by_reference.
10375         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
10376         * function.c (pass_by_reference): Use the hook.
10377         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
10378         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
10379         (hook_pass_by_reference_must_pass_in_stack): New.
10380         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
10381         (alpha_pass_by_reference): New.
10382         (TARGET_PASS_BY_REFERENCE): New.
10383         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10384         * config/arc/arc.c (arc_pass_by_reference): New.
10385         (TARGET_PASS_BY_REFERENCE): New.
10386         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10387         (FUNCTION_ARG_CALLEE_COPIES): True.
10388         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
10389         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
10390         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
10391         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10392         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10393         * config/cris/cris.c (cris_pass_by_reference): New.
10394         (TARGET_PASS_BY_REFERENCE): New.
10395         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
10396         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
10397         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10398         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
10399         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10400         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
10401         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
10402         (frv_function_arg_pass_by_reference): Remove.
10403         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10404         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
10405         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
10406         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
10407         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10408         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
10409         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
10410         (ia64_pass_by_reference): Rename from
10411         ia64_function_arg_pass_by_reference.
10412         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10413         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10414         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
10415         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
10416         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
10417         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10418         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10419         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
10420         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
10421         (m32r_pass_by_reference): Adjust prototype.  Make static.
10422         Handle mode sizes correctly.
10423         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10424         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
10425         (m68hc11_function_arg_pass_by_reference): Remove.
10426         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10427         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10428         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
10429         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10430         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
10431         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
10432         (mips_va_arg): Use pass_by_reference.
10433         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
10434         Handle mode sizes correctly.
10435         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10436         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10437         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
10438         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
10439         (mmix_pass_by_reference): Rename from
10440         mmix_function_arg_pass_by_reference.
10441         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10442         (FUNCTION_ARG_CALLEE_COPIES): True.
10443         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
10444         (mn10300_pass_by_reference): New.
10445         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10446         (FUNCTION_ARG_CALLEE_COPIES): True.
10447         * config/pa/pa.c (pa_pass_by_reference): New.
10448         (TARGET_PASS_BY_REFERENCE): New.
10449         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10450         (FUNCTION_ARG_CALLEE_COPIES): True.
10451         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
10452         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
10453         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
10454         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10455         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
10456         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
10457         (s390_pass_by_reference): Rename from
10458         s390_function_arg_pass_by_reference.
10459         (s390_function_arg_advance): Don't query pass-by-ref.
10460         (s390_function_arg): Likewise.
10461         (s390_gimplify_va_arg): Use pass_by_reference.
10462         (s390_call_saved_register_used): Likewise.
10463         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10464         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
10465         (shcompact_byref, sh_pass_by_reference): New.
10466         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10467         (SHCOMPACT_BYREF): Remove.
10468         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
10469         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
10470         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
10471         (sparc_gimplify_va_arg): Use pass_by_reference.
10472         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10473         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10474         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
10475         (v850_pass_by_reference): New.
10476         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10477         (FUNCTION_ARG_CALLEE_COPIES): True.
10478         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
10479         FUNCTION_ARG_PASS_BY_REFERENCE docs.
10480
10481 2004-07-14  Richard Henderson  <rth@redhat.com>
10482             Richard Sandiford  <rsandifo@redhat.com>
10483
10484         * config/mips/mips-protos.h (mips_va_arg): Delete.
10485         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
10486         * config/mips/mips.c: Include tree-gimple.h.
10487         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
10488         (mips_arg_info): Remove special handling of must_pass_in_stck args.
10489         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
10490         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
10491
10492 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
10493
10494         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
10495         arguments for COND_EXPR in big-endian adjustment code.
10496
10497 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10498
10499         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
10500         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
10501         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
10502         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
10503
10504 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
10505
10506         PR tree-optimization/16443
10507         * tree-ssa-alias.c: Add more description for
10508         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
10509         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
10510         clobbering of call-clobbered and addressable variables.  If
10511         there are any before aliases have been computed, add them.
10512
10513 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
10514
10515         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
10516         verification.
10517
10518 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
10519
10520         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
10521         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
10522         to the same type.
10523
10524 2004-07-13  Per Bothner  <per@bothner.com>
10525
10526         * collect2.c (main):  Handle --no-demangle and --demangle flags.
10527
10528 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
10529
10530         * Makefile.in (OBJS-common): Add tree-data-ref.o.
10531         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
10532         (tree-data-ref.o): New rule.
10533         * lambda.h: New file.
10534         * tree-data-ref.c: New file.
10535         * tree-data-ref.h: New file.
10536         * tree.c (int_cst_value, tree_fold_gcd): New functions.
10537         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
10538
10539 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10540
10541         PR target/13926
10542         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
10543         * config/sparc/sparc.c (output_ubranch): New function.
10544         * config/sparc/sparc.md (jump pattern): Use it.
10545
10546 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10547
10548         PR target/16494
10549         * config/sparc/sparc.c (output_cbranch): Properly guard
10550         the code handling far branches with TARGET_V9.
10551         * config/sparc/sparc.md (length attribute): Document the
10552         side-effect of having a length greater or equal to 3.
10553
10554 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10555             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
10556
10557         PR target/15186
10558         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
10559         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
10560
10561 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10562             Martin Sebor  <sebor@roguewave.com>
10563
10564         PR target/12602
10565         * doc/invoke.texi (SPARC options): Document -threads
10566         and -pthreads on Solaris.
10567
10568 2004-07-13  Richard Henderson  <rth@redhat.com>
10569
10570         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
10571         by reference.
10572         (ind_gimplify_va_arg_expr): Remove.
10573         * tree.h (ind_gimplify_va_arg_expr): Remove.
10574         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
10575         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
10576         argsp to be null.
10577
10578         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
10579         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
10580         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
10581         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
10582         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
10583
10584 2004-07-13  Richard Henderson  <rth@redhat.com>
10585
10586         * function.c (pass_by_reference): New.
10587         (assign_parm_find_data_types): Use it.
10588         * calls.c (initialize_argument_information): Likewise.
10589         (emit_library_call_value_1): Likewise.
10590         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10591         * function.h (pass_by_reference): Declare.
10592
10593 2004-07-13  Richard Henderson  <rth@redhat.com>
10594
10595         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
10596         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
10597         * expr.h (MUST_PASS_IN_STACK): Remove.
10598         * system.h (MUST_PASS_IN_STACK): Poison.
10599         * tree.h (must_pass_in_stack_var_size): Declare.
10600         (must_pass_in_stack_var_size_or_pad): Declare.
10601         * calls.c (must_pass_in_stack_var_size): New.
10602         (must_pass_in_stack_var_size_or_pad): Rename from
10603         default_must_pass_in_stack.
10604         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
10605         (TARGET_MUST_PASS_IN_STACK): New.
10606         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
10607         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
10608         (TARGET_MUST_PASS_IN_STACK): New.
10609         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
10610         * config/frv/frv.c (frv_must_pass_in_stack): New.
10611         (TARGET_MUST_PASS_IN_STACK): New.
10612         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
10613         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
10614         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
10615         (ix86_must_pass_in_stack): Make static.
10616         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
10617         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
10618         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
10619         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
10620         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
10621         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
10622         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
10623         (mcore_must_pass_on_stack): Remove.
10624         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
10625         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
10626         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
10627         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
10628         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
10629         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
10630         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
10631         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
10632         (TARGET_MUST_PASS_IN_STACK): New.
10633         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
10634         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
10635         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
10636         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
10637         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
10638         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
10639         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
10640         MUST_PASS_IN_STACK.
10641
10642         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
10643         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
10644         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
10645         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
10646         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
10647         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
10648         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
10649         config/xtensa/xtensa.c: Use target hook.
10650
10651 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
10652
10653         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
10654         * configure: Rebuilt.
10655
10656 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
10657
10658         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
10659         * config/mips/mips.h (mips_reg_names): Don't declare.
10660         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
10661         (TARGET_NAME_REGS): Delete.
10662         (TARGET_SWITCHES): Remove -mrnames.
10663         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
10664         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
10665         in REGISTER_NAMES.
10666         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
10667         (override_options): Remove handling of TARGET_NAME_REGS.
10668
10669 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
10670
10671         * config/mips/mips.h (TARGET_*): Boolify.
10672
10673 2004-07-12  Nick Clifton  <nickc@redhat.com>
10674
10675         * config.gcc: Add sh-*-symbianelf target.
10676         * config/sh/sh.c: Add new target macros:
10677         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
10678         TARGET_CXX_IMPORT_EXPORT_CLASS.
10679         (sh_file_start): Create a definition of the .directive section.
10680         (sh_attribute): Add dllimport and dllexport attributes.
10681         * config/sh/symbian-pre.h: New file.
10682         * config/sh/symbian-post.h: New file.
10683         * config/sh/symbian.c: New file. Contains Symbian specific
10684         functions.
10685         * config/sh/sh-protos.h: Add prototypes for new functions
10686         provided by symbian.c.
10687         * config/sh/t-symbian: New file.
10688         * doc/extend.texi: Document support for dllimport and dllexport
10689         attributes by the sh-symbianelf target.
10690
10691 2004-07-12  James E Wilson  <wilson@specifixinc.com>
10692
10693         * Makefile.in (AR): Use @AR@ not ar.
10694         (NM): New.
10695         (AR_FOR_TARGET): Use $(AR) not ar for native.
10696         (NM_FOR_TARGET): Use $(NM) not nm for native.
10697         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
10698         * configure: Regenerate.
10699
10700 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
10701
10702         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
10703         special case.
10704         (ashldi3_sp64): Likewise.
10705
10706 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10707
10708         PR target/16477
10709         * pa.c (function_arg): Update comment.
10710         * pa.h (BLOCK_REG_PADDING): Define.
10711
10712 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10713
10714         PR tree-optimization/16461
10715         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
10716         arguments of phi nodes.
10717
10718 2004-07-12  Devang Patel  <dpatel@apple.com>
10719
10720         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
10721
10722 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
10723
10724         * function.c (expand_function_start): Ensure r_save is in Pmode.
10725         * calls.c (prepare_call_address): Ensure static_chain_value is
10726         in Pmode.
10727         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
10728         r_save_area are in Pmode.
10729         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
10730         fnaddr, and static_chain are in Pmode.
10731
10732 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
10733
10734         PR target/16445
10735         * config/ia64/ia64.c (bundling): Don't count ignored insns.
10736
10737 2004-07-12  Richard Henderson  <rth@redhat.com>
10738
10739         * target.h (struct gcc_target): Move gimplify_va_arg_expr
10740         next to build_builtin_va_list.
10741         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
10742         * builtins.c (gimplify_va_arg_expr): Likewise.
10743         * gimplify.c (copy_if_shared_r): Likewise.
10744
10745 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
10746
10747         * passes.c (rest_of_decl_compilation): Don't defer call of
10748         assemble_variable if its DECL_RTL is already set.
10749
10750 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
10751
10752         * cfgloop.h (struct loop): Add nb_iterations field.
10753         (current_loops): Declare.
10754         * tree-chrec.c (chrec_not_analyzed_yet,
10755         chrec_dont_know, chrec_known, count_ev_in_wider_type,
10756         chrec_contains_symbols_defined_in_loop): Remove the temporary
10757         hooks.
10758         * tree-flow-inline.h (loop_containing_stmt): New function.
10759         * tree-scalar-evolution.c: Add implementation.
10760         * tree-scalar-evolution.h: Add declarations.
10761
10762 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
10763
10764         PR rtl-optimization/15921
10765         * Makefile.in (global.o): Add recog.h.
10766
10767         * global.c (recog.h): Add the include-clause.
10768         (bb_info): New member earlyclobber.
10769         (allocate_bb_info, free_bb_info): Initialize/finish the new
10770         member.
10771         (earlyclobber_regclass, earlyclobber_regclass_length): The new
10772         global variables.
10773         (check_earlyclobber, regclass_intersect,
10774         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
10775         New functions.
10776         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
10777         (make_accurate_live_analysis): Modify pavin.
10778
10779 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
10780
10781         * tree-cfg.c (find_taken_edge): Statically compute the truth
10782         value of a predicate comparing an SSA_NAME to itself.
10783
10784 2004-07-12  Roger Sayle  <roger@eyesopen.com>
10785
10786         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
10787         rs6000 doesn't have shift-and-add or shift-and-sub instructions
10788         by returning the cost of a multiplication plus an addition.
10789
10790 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
10791
10792         PR tree-optimization/14107
10793         * gimplify.c (gimplify_return_expr): Accept a
10794         RETURN_EXPR with an error argument.
10795         * tree-optimize.c (init_tree_optimization_passes):
10796         Run pass_warn_function_return at -O0.
10797
10798 2004-07-12  Roger Sayle  <roger@eyesopen.com>
10799
10800         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
10801         index entry.
10802
10803 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
10804
10805         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
10806         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10807         * config/mips/3000.md: Add copyright notice.  Remove automota and
10808         function units; use generic ones instead.  Only define reservations
10809         for things that are different from generic.md.  Extend each clause
10810         to include r3900.
10811         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
10812         * config/mips/mips.md: Include them. Remove define_function_units.
10813         (alu, imuldiv): New automata and units.
10814
10815 2004-07-12  Ben Elliston  <bje@au.ibm.com>
10816
10817         * doc/invoke.texi (Optimize Options): Document -frename-registers
10818         not being enabled by default at -O3.
10819
10820 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10821
10822         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
10823         floating point additions, to keep real immediate constant positive.
10824         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
10825         into X + C, and leave positive real constants as X - C.
10826
10827 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10828
10829         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
10830
10831 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10832
10833         PR tree-optimization/15654
10834         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
10835
10836 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10837
10838         * builtins.c (fold_builtin_fputs): Don't bother converting the
10839         return type to integer_type_node, as we've already checked that
10840         the result will be ignored.
10841
10842         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
10843         that signed addition, subtraction, multiplication, division,
10844         remainder, negation and absolute value may potentially trap.
10845
10846         * fold-const.c (fold_ignored_result): New function to strip
10847         non-side-effecting tree nodes from an expression whose result
10848         is ignored.
10849         (fold_convert): Call fold_ignored_result when casting a value
10850         to VOID_TYPE.
10851         (omit_one_operand):  Call fold_ignored_result on the "omitted"
10852         operand when building a COMPOUND_EXPR.
10853         (pedantic_omit_one_operand): Likewise.
10854         * tree.h (fold_ignored_result): Prototype here.
10855         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
10856         when we're going to ignore the result.
10857
10858 2004-07-11  Richard Henderson  <rth@redhat.com>
10859
10860         PR tree-opt/16383
10861         * tree-ssa-ccp.c (fold_stmt_r): Split out...
10862         * tree.c (fields_compatible_p, find_compatible_field): ... new.
10863         * tree.h (fields_compatible_p, find_compatible_field): Declare.
10864         * tree-sra.c (sra_hash_tree): Hash fields by offset.
10865         (sra_elt_eq): Use fields_compatible_p.
10866         (generate_one_element_ref): Use find_compatible_field.
10867
10868 2004-07-11  Richard Henderson  <rth@redhat.com>
10869
10870         PR tree-opt/16422
10871         * tree-sra.c (generate_one_element_init): New.
10872         (generate_element_init): Use it.
10873         (scalarize_init): Push/pop gimplify context around it.
10874         (find_new_referenced_vars_1, find_new_referenced_vars): New.
10875         * gimplify.c (gimplify_expr): Allow SSA_NAME.
10876
10877 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10878
10879         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
10880         combine.c's combine_insn_cost.
10881         * rtl.h (insn_rtx_cost): Prototype here.
10882         * combine.c (combine_insn_cost): Delete function.
10883         (combine_validate_cost): Update callers of combine_insn_cost to
10884         call insn_rtx_cost instead.
10885         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
10886         requesting the rtx_cost of call and/or jump instructions.
10887
10888         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
10889         rtx_cost directly.  Don't request/use the cost of call or jump
10890         instructions.  Return -1 if the cost of any instruction can't be
10891         determined (or the BB contains a function call).
10892         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
10893         -1 (i.e. can't determine the cost of any instruction or the basic
10894         block contains a subroutine call).
10895         (find_if_case_2): Likewise.
10896
10897 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10898
10899         * rs6000.c (struct processor_costs): Change semantics of fields to
10900         include the COST_N_INSNS scaling, and update all initializers.
10901         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
10902         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
10903         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
10904         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
10905
10906 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10907
10908         * LANGUAGES: Remove obsolete information.
10909
10910 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
10911
10912         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
10913         SIGBUS signal frames, the PSW address points *to* the faulting
10914         instruction, not after it.
10915
10916 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
10917
10918         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
10919         added to TLS symbol addresses.
10920
10921 2004-07-11  Richard Henderson  <rth@redhat.com>
10922
10923         * expmed.c (init_expmed): Use stack-local structures for
10924         temporary rtl.  Don't recognize shifts.
10925
10926 2004-07-11  Richard Henderson  <rth@redhat.com>
10927
10928         * expr.c (store_expr): Don't fiddle subreg promotion for types
10929         with precision smaller than the mode.
10930
10931 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10932
10933         * tree.h (all_types_permanent): Remove.
10934
10935 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10936
10937         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
10938         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
10939         * langhooks.c (lhd_clear_binding_stack): Remove.
10940         * langhooks-def.h (lhd_clear_binding_stack,
10941         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
10942         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
10943         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
10944         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
10945         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
10946         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
10947         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
10948         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
10949         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
10950         * tree.h (poplevel): Don't declare.
10951         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
10952         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
10953         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
10954         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
10955         Remove.
10956
10957 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10958
10959         PR tree-optimization/16437
10960         * c-common.c (shorten_compare): Don't mark result of conversion to
10961         narrower signed type as overflowing.
10962         * fold-const.c (decode_field_reference): Determine whether
10963         signedness comes from outer type using precision rather than size.
10964
10965 2004-07-11  Phil Edwards  <phil@codesourcery.com>
10966
10967         * configure.ac:  Alphabetize --enable-checking list, add
10968         missing valgrind entry.
10969         * configure:  Regenerate.
10970
10971 2004-07-11  Phil Edwards  <phil@codesourcery.com>
10972
10973         * doc/install.texi (Testing):  Fix syntax in "make check" example.
10974
10975 2004-07-10  James E Wilson  <wilson@specifixinc.com>
10976
10977         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
10978
10979 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10980
10981         PR rtl-optimization/16001
10982         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
10983         niter_expr.
10984
10985 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
10986
10987         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
10988
10989 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
10990             James Morrison  <phython@gcc.gnu.org>
10991
10992         * doc/contrib.texi (Contributors): Add gfortran contributors and
10993         fix a couple of typos.
10994
10995 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10996
10997         PR rtl-optimization/15387
10998         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
10999         to incoming args space correctly.
11000
11001 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11002
11003         * pa.c (output_indirect_call): Only use %r2 as the link register in
11004         indirect calls with the long PA 2.0 pc-relative branch.
11005
11006 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
11007
11008         * config/i386/i386.c (override_options): Pick a 64-bit CPU
11009         for the default tuning if TARGET_64BIT.
11010
11011 2004-07-10  Richard Henderson  <rth@redhat.com>
11012
11013         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
11014         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
11015
11016 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
11017
11018         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
11019         * expmed.c (store_bit_field, extract_bit_field): Remove last
11020         argument.
11021         * builtins.c (expand_builtin_signbit): Adjust callers.
11022         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
11023         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
11024         * ifcvt.c (noce_emit_move_insn): Likewise.
11025         * stmt.c (expand_return): Likewise.
11026         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
11027         store_field, expand_expr_real_1): Likewise.
11028
11029 2004-07-10  Richard Henderson  <rth@redhat.com>
11030
11031         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
11032
11033 2004-07-09  Mike Stump  <mrs@apple.com>
11034
11035         * config/darwin.c (no_dead_strip): Add.
11036         (HAVE_DEAD_STRIP): Add.
11037         (darwin_emit_unwind_label): Ensure that we don't dead code strip
11038         the .eh label.
11039
11040 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11041
11042         * tree-ssa-loop-im.c: New file.
11043         * Makefile.in (tree-ssa-loop-im.o): Add.
11044         * cfgloop.c (superloop_at_depth): New function.
11045         * cfgloop.h (superloop_at_depth): Declare.
11046         * common.opt (ftree-lim): New flag.
11047         * expr.c (array_ref_up_bound): New function.
11048         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
11049         * timevar.def (TV_LIM): New timevar.
11050         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
11051         computing immediate uses of a phi node.
11052         * tree-flow.h (struct tree_ann_common_d): Add aux field.
11053         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
11054         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
11055         * tree-pass.h (pass_lim): Declare.
11056         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
11057         functions.
11058         (pass_lim): New pass structure.
11059         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
11060         * tree.c (in_array_bounds_p): New function.
11061         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
11062         (in_array_bounds_p, array_ref_up_bound): Declare.
11063         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
11064         * doc/passes.texi (tree-ssa-loop-im.c): Document.
11065
11066 2004-07-09  Richard Henderson  <rth@redhat.com>
11067
11068         * builtins.c (expand_builtin_stpcpy): Don't modify len.
11069
11070         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
11071         with prejudice.
11072
11073 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
11074
11075         * flags.h: Delete redundant prototypes that are being generated
11076         in options.h from common.opt.
11077         * common.opt: Add in the expository comments formerly in flags.h.
11078
11079 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11080
11081         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
11082         available for use only when TARGET_MMX/_SSE is set, and check for
11083         variable argument function if any register count is non-zero.
11084         (function_arg): Correctly suppress repeated warnings for passing SSE
11085         vectors are arguments without SSE enabled.
11086         (ix86_function_arg_boundary): Without SSE enabled, the use of what
11087         would be SSE register modes does no longer influence the alignment.
11088
11089 2004-07-09  Richard Henderson  <rth@redhat.com>
11090
11091         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
11092         Always align upward to arg boundary.  Use size_in_bytes/round_up.
11093         Maintain type-correctness of constants.
11094         * stor-layout.c (round_up, round_down): Special-case powers of 2.
11095
11096 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
11097
11098         * config/sparc/sparc.c (*_costs): Scale instruction costs
11099         by COSTS_N_INSNS.
11100         (sparc_rtx_costs): Adjust as appropriate.
11101
11102 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11103
11104         * config/i386/mm3dnow.h: New.
11105         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
11106
11107 2004-07-09  Richard Henderson  <rth@redhat.com>
11108
11109         * simplify-rtx.c (simplify_const_relational_operation): Only
11110         look at bounds of scalar integers.
11111
11112 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11113
11114         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
11115
11116 2004-07-09  Andrew Pinski  <apinski@apple.com>
11117
11118         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
11119         always referenced.
11120         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
11121         UOBJC_METACLASS_decl.
11122
11123 2004-07-09  James E Wilson  <wilson@specifixinc.com>
11124
11125         PR target/16364
11126         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
11127         do return a parallel if hfa_mode == XFmode and mode == TImode.
11128
11129 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11130
11131         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
11132         permissible for unary plus.
11133
11134 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11135
11136         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
11137         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
11138         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
11139         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
11140         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
11141         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
11142         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
11143         (BUILTIN_xxxIMAX): New.
11144         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
11145         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
11146         BUILT_IN_PARITYIMAX.
11147
11148 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
11149
11150         * config/sparc/sparc.h (processor_costs): Define.
11151         (sparc_costs): Declare.
11152         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
11153         hypersparc_costs, sparclet_costs, ultrasparc_costs,
11154         ultrasparc3_costs): New.
11155         (sparc_override_options): Set sparc_costs as appropriate.
11156         (sparc_rtx_costs): Use sparc_costs instead of messy
11157         conditionals.
11158
11159 2004-07-09  Steven Bosscher  <stevenb@suse.de>
11160
11161         * doc/md.texi (Processor pipeline description): Mention that
11162         the old pipeline description is deprecated.
11163
11164         * config/rs6000/7450.md (automaton ppc7450): Split up, move
11165         mciu_7450 function unit to...
11166         (automaton ppc7450mciu): ...new automaton.
11167
11168         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
11169         (schedule_block): Don't consider inserting bubbles.
11170         (sched_init): Don't initialize DFA bubbles.
11171         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
11172         TARGET_SCHED_DFA_BUBBLE): Remove.
11173         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
11174         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
11175         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
11176
11177         * stmt.c (conditional_context): Remove prototype.
11178         * tree.h (conditional_context): Remove.
11179         * tree-cfg.c (pre_insert_on_edge): Remove.
11180
11181         * c-common.h (c_expand_asm_operands): Remove prototype.
11182         * c-typeck.c (c_expand_asm_operands): Remove.
11183
11184 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11185
11186         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
11187         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
11188         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
11189         and V8QI are class SSE. All sufficiently small remaining vector modes
11190         must be passed in one or two integer registers.
11191         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
11192         returned in memory.
11193         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
11194         __builtin_ia32_pmuludq128 have non-uniform argument and return types
11195         and must thus be handled explicitly.
11196         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
11197         MMX and XMM regs.
11198         (movv8qi_internal, movv4hi_internal, movv2si_internal,
11199         movv2sf_internal): Permit moving between MMX and XMM registers (since
11200         MMX areguments and return values are passed in XMM registers).
11201         (sse2_umulsidi3): Correct type and mode.
11202
11203 2004-07-09  Richard Henderson  <rth@redhat.com>
11204
11205         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
11206
11207 2004-07-09  Eric Christopher  <echristo@redhat.com>
11208
11209         * config/rs6000/40x.md: Split into two automatons.
11210
11211 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
11212             Andrew Pinski  <apinski@apple.com>
11213
11214         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
11215         on when we have more than one input file.
11216         (c_common_parse_file): Restore loop over all input files.
11217         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
11218
11219         * c-decl.c (set_type_context): New function.
11220         (pop_scope): Use it to set context of types.  When we
11221         encounter a TYPE_DECL, set the context of the attached type too.
11222         (pop_file_scope): Don't call cpp_undef_all here.
11223         (diagnose_mismatched_decls): Do not complain about a second
11224         definition of an 'extern inline' function if it's not in the
11225         same translation unit.  Do not complain about inline
11226         declaration after use if the use was in a different
11227         translation unit.
11228         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
11229         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
11230         the external scope.
11231         (pushdecl_top_level): Likewise.
11232         (grokdeclarator): Clarify what is going on with setting
11233         DECL_EXTERNAL on function types, a little.
11234         (c_write_global_declarations): Don't do anything if
11235         -fsyntax-only or errors have been encountered.
11236
11237 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
11238
11239         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
11240
11241 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11242
11243         PR target/16459
11244         * pa.c (output_indirect_call): Use %r2 as the link register when
11245         calling $$dyncall with a pc-relative branch.
11246
11247 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
11248
11249         * doc/install.texi (Binaries): Mention OpenPKG.
11250
11251 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
11252
11253         Fix PR tree-optimization/15555
11254         * tree-dfa.c (dump_variable): If the variable is a pointer
11255         SSA_NAME, also dump its points-to information.
11256         * tree-flow.h (struct ptr_info_def): Add field
11257         is_dereferenced.
11258         (dump_points_to_info_for): Declare.
11259         (debug_points_to_info_for): Declare.
11260         * tree-optimize.c (init_tree_optimization_passes): Add a
11261         second alias analysis pass after DOM2.
11262         Move pass_del_pta to a later spot.
11263         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
11264         create a name tags when we find a dereferenced pointer.  Just
11265         mark the pointer dereferenced.
11266         (collect_points_to_info_for): Move code to clear points-to
11267         information to create_name_tags.
11268         (create_name_tags): New function.
11269         (compute_flow_sensitive_aliasing): Call it.
11270         (setup_pointers_and_addressables): Mark type tags for renaming
11271         here instead of ...
11272         (create_memory_tag): ... here.
11273         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
11274         (dump_points_to_info_for): Declare extern.
11275         (debug_points_to_info_for): New function.
11276
11277 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
11278
11279         * config/arc/arc.md: Switch to DFA-based scheduler description.
11280         * config/arc/arc.c: Switch to DFA-based scheduler description.
11281
11282 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11283
11284         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
11285         pointer.
11286
11287 2004-07-09  Richard Henderson  <rth@redhat.com>
11288
11289         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
11290         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11291         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
11292         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
11293
11294         * config/v850/v850-protos.h (v850_va_arg): Remove.
11295         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11296         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
11297         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
11298         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
11299         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
11300
11301 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11302
11303         PR target/12133
11304         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
11305         and DImode to use +/-4k offset.
11306
11307 2004-07-09  Richard Henderson  <rth@redhat.com>
11308
11309         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
11310         Remove.
11311         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11312         (xstormy16_gimplify_va_arg_expr): Rewrite from
11313         xstormy16_expand_builtin_va_arg.
11314         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
11315
11316         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
11317         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
11318
11319         * config/sh/sh-protos.h (sh_va_arg): Remove.
11320         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11321         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
11322         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
11323
11324         * config/pa/pa-protos.h (hppa_va_arg): Remove.
11325         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11326         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
11327         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
11328
11329         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
11330         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11331         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
11332         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
11333
11334 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
11335
11336         * config/sparc/sparc.md (return): Rewrite length formula.
11337         * config/sparc/sparc.c (output_return): Pass 1 as 5th
11338         argument to final_scan_insn when in a delay slot.
11339         (output_sibcall): Likewise.
11340
11341 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11342
11343         * arm.c (arm_cpp_interwork): New variable.
11344         (arm_override_options): Set it if TARGET_INTERWORK was on the command
11345         line.
11346         * arm.h (arm_cpp_interwork): Declare it.
11347         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
11348         __THUMB_INTERWORK__ in the preprocessor.
11349
11350 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
11351
11352         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
11353
11354 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
11355
11356         PR target/16416
11357         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
11358         Override default settings to account for -m32 and -m64.
11359
11360 2004-07-08  Randolph Chung  <tausq@debian.org>
11361
11362         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
11363
11364 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
11365
11366         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
11367         before comparing it as such.
11368
11369 2004-07-08  Richard Henderson  <rth@redhat.com>
11370
11371         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
11372         temporary.  Use bit arithmetic to align.
11373
11374 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
11375
11376         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
11377         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
11378         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
11379         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
11380         add_labels_and_missing_jumps, find_jump_block,
11381         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
11382         Likewise.
11383         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
11384         link_btr_uses, move_btr_def): Likewise.
11385         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
11386         expand_builtin_expect_jump): Likewise.
11387         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
11388         * calls.c (expand_call, emit_library_call_value_1): Likewise.
11389         * cfganal.c (forwarder_block_p): Likewise.
11390         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
11391         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
11392         find_bb_boundaries): Likewise.
11393         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11394         merge_blocks_move_predecessor_nojumps,
11395         merge_blocks_move_successor_nojumps, insns_match_p,
11396         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11397         try_optimize_cfg): Likewise.
11398         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
11399         * cfglayout.c (skip_insns_after_block, label_for_bb,
11400         record_effective_endpoints, insn_locators_initialize,
11401         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
11402         * cfgmainloop.c (create_loop_notes): Likewise.
11403         * cfgrtl.c (delete_insn, delete_insn_chain,
11404         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
11405         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
11406         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
11407         redirect_branch_edge, force_nonfallthru_and_redirect,
11408         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
11409         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
11410         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
11411         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
11412         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
11413         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
11414         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
11415         * combine.c (combine_instructions, can_combine_p, try_combine,
11416         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
11417         distribute_notes, distribute_links, insn_cuid): Likewise.
11418         * cse.c (fold_rtx, cse_insn, cse_around_loop,
11419         invalidate_skipped_block, cse_set_around_loop,
11420         cse_end_of_basic_block, cse_main, cse_basic_block,
11421         cse_condition_code_reg): Likewise.
11422         * cselib.c (cselib_process_insn): Likewise.
11423         * ddg.c (create_ddg): Likewise.
11424         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
11425         Likewise.
11426         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
11427         gen_label_die, dwarf2out_var_location): Likewise.
11428         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
11429         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
11430         last_call_insn, active_insn_p, next_label, prev_label,
11431         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
11432         add_insn_before, remove_insn, add_function_usage_to,
11433         reorder_insns, find_line_note, remove_unnecessary_notes,
11434         emit_insn_after_1, classify_insn): Likewise.
11435         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
11436         connect_post_landing_pads, sjlj_mark_call_sites,
11437         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
11438         can_throw_internal, can_throw_external, set_nothrow_function_flags,
11439         convert_to_eh_region_ranges): Likewise.
11440         * explow.c (optimize_save_area_alloca): Likewise.
11441         * expr.c (expand_expr_real): Likewise.
11442         * final.c (insn_current_reference_address, compute_alignments,
11443         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
11444         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
11445         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
11446         propagate_block_delete_insn, propagate_one_insn,
11447         init_propagate_block_info, propagate_block, libcall_dead_p,
11448         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
11449         Likewise.
11450         * function.c (instantiate_virtual_regs, reorder_blocks_1,
11451         expand_function_start, expand_function_end, contains,
11452         thread_prologue_and_epilogue_insns,
11453         reposition_prologue_and_epilogue_notes): Likewise.
11454         * gcse.c (constprop_register, bypass_conditional_jumps,
11455         insert_insn_end_bb, gcse_after_reload): Likewise.
11456         * genemit.c (gen_expand, gen_split): Likewise.
11457         * genpeep.c (gen_peephole, main): Likewise.
11458         * global.c (build_insn_chain): Likewise.
11459         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
11460         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
11461         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
11462         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
11463         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
11464         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
11465         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
11466         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
11467         dead_or_predicable): Likewise.
11468         * integrate.c (try_constants): Likewise.
11469         * jump.c (rebuild_jump_labels, cleanup_barriers,
11470         purge_line_number_notes, init_label_info, mark_all_labels,
11471         squeeze_notes, get_label_before, get_label_after,
11472         reversed_comparison_code_parts, simplejump_p, pc_set,
11473         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
11474         delete_barrier, delete_prior_computation, delete_computation,
11475         delete_related_insns, delete_for_peephole, redirect_jump):
11476         Likewise.
11477         * lcm.c (optimize_mode_switching): Likewise.
11478         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
11479         Likewise.
11480         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
11481         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
11482         * loop-iv.c (simplify_using_assignment): Likewise.
11483         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
11484         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
11485         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
11486         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
11487         check_insn_for_givs, check_final_value, update_giv_derive,
11488         basic_induction_var, product_cheap_p, check_dbra_loop,
11489         loop_insn_first_p, last_use_this_basic_block,
11490         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
11491         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
11492         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
11493         sms_schedule_by_order): Likewise.
11494         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
11495         * postreload.c (reload_cse_simplify_operands, reload_combine,
11496         reload_cse_move2add): Likewise.
11497         * predict.c (can_predict_insn_p, estimate_probability,
11498         expected_value_to_br_prob, process_note_predictions): Likewise.
11499         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
11500         * profile.c (branch_prob): Likewise.
11501         * ra-build.c (live_out_1, livethrough_conflicts_bb,
11502         detect_webs_set_in_cond_jump): Likewise.
11503         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
11504         ra_print_rtl_with_bb): Likewise.
11505         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
11506         * recog.c (next_insn_tests_no_inequality, find_single_use,
11507         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
11508         * reg-stack.c (next_flags_user, record_label_references,
11509         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
11510         compensate_edge, convert_regs_1): Likewise.
11511         * regclass.c (scan_one_insn): Likewise.
11512         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11513         regmove_optimize, fixup_match_1, single_set_for_csa,
11514         combine_stack_adjustments_for_block): Likewise.
11515         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
11516         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
11517         find_equiv_reg): Likewise.
11518         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
11519         reload_as_needed, emit_input_reload_insns, do_output_reload,
11520         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
11521         Likewise.
11522         * reorg.c (find_end_label, emit_delay_sequence,
11523         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
11524         get_jump_flags, rare_destination, mostly_true_jump,
11525         try_merge_delay_insns, redundant_insn, own_thread_p,
11526         fill_simple_delay_slots, fill_slots_from_thread,
11527         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
11528         dbr_schedule): Likewise.
11529         * resource.c (find_basic_block, next_insn_no_annul,
11530         find_dead_or_set_registers, mark_target_live_regs): Likewise.
11531         * rtl.h (RTX_PREV): Likewise.
11532         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
11533         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
11534         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
11535         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
11536         tablejump_p, computed_jump_p, insns_safe_to_move_p,
11537         find_first_parameter_load, can_hoist_insn_p): Likewise.
11538         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
11539         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
11540         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
11541         schedule_ebbs): Likewise.
11542         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
11543         is_conditionally_protected, can_schedule_ready_p,
11544         add_branch_dependences, debug_dependencies): Likewise.
11545         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
11546         Likewise.
11547         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
11548         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
11549         set_dominates_use, ujump_to_loop_cont): Likewise.
11550         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
11551         * varasm.c (output_constant_pool_1): Likewise.
11552
11553 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11554
11555         * tree-scalar-evolution.c: New file.
11556         * tree-scalar-evolution.h: New file.
11557         * tree-ssa-loop-niter.c: New file.
11558         * Makefile.in (SCEV_H): New.
11559         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
11560         * cfgloop.h (struct loop): Add bounds field.
11561         * tree-flow.h (struct tree_niter_desc): New type.
11562         (number_of_iterations_cond, number_of_iterations_exit,
11563         loop_niter_by_eval, find_loop_niter_by_eval,
11564         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
11565         free_numbers_of_iterations_estimates): Declare.
11566         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
11567         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
11568         * doc/invoke.texi (max-iterations-to-track): Document.
11569
11570 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
11571
11572         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
11573         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
11574         (MODE_AFTER): Add cast appropriately.
11575         * config/sh/sh.md (movdi splitter): Likewise.
11576         (casesi_worker_2): Add const qualifier appropriately.
11577         (eh_return): Remove unused variable.
11578         (insv): Initialize v;
11579
11580 2004-07-08  Richard Henderson  <rth@redhat.com>
11581
11582         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
11583         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11584         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
11585         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
11586         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
11587
11588         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
11589         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11590         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
11591         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
11592
11593         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
11594         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11595         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
11596         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
11597
11598         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
11599         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11600         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
11601         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
11602
11603         * config/i860/i860-protos.h (i860_va_arg): Remove.
11604         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11605         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
11606         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
11607
11608 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
11609
11610         * system.h: Prototype getpagesize if missing.
11611         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
11612         * configure: Regenerate.
11613         * config.in: Regenerate.
11614
11615 2004-07-08  Richard Henderson  <rth@redhat.com>
11616
11617         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
11618         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11619         (fr30_gimplify_va_arg_expr): New.
11620         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
11621         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
11622
11623 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
11624
11625         PR target/16414
11626         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
11627         of asm_noperands result.
11628
11629 2004-07-08  Richard Henderson  <rth@redhat.com>
11630
11631         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
11632         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11633         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
11634         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
11635
11636 2004-07-08  Richard Henderson  <rth@redhat.com>
11637
11638         * builtins.c (ind_gimplify_va_arg_expr): New.
11639         * tree.h (ind_gimplify_va_arg_expr): Declare.
11640         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
11641
11642 2004-07-08  Jan Beulich  <jbeulich@novell.com>
11643
11644         * expmed.c (extract_bit_field): Correct condition to use vec_extract
11645         patterns also on vector elements other than the first one.
11646         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
11647         break statements.
11648
11649 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
11650
11651         * config/rs6000/darwin-ldouble.c: Correct reference
11652         to the Linnainmaa paper.
11653
11654 2004-07-08  Richard Henderson  <rth@redhat.com>
11655
11656         * config/arc/arc-protos.h (arc_va_arg): Remove.
11657         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11658         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
11659         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
11660
11661         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
11662         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11663         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
11664         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
11665
11666 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11667
11668         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
11669
11670 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
11671
11672         * c-decl.c (static_ctors, static_dtors): Make static.
11673         (pop_file_scope): Call c_common_write_pch and
11674         cgraph_finalize_compilation_unit here.
11675         (build_cdtor): Moved here from c-objc-common.c; simplify.
11676         (c_write_global_declarations_1): Clarify comment.
11677         (c_write_global_declarations): Close the external scope before
11678         doing anything else.  Call build_cdtor, cgraph_optimize, and
11679         mudflap_finish_file here.
11680         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
11681         Clarify comment.
11682         * c-objc-common.c: No need to include cgraph.h.
11683         (build_cdtor): Moved to c-decl.c.
11684         (c_objc_common_finish_file): Delete.
11685         * c-tree.h: Update to match.
11686         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
11687         (generate_static_references): Set TREE_USED before calling finish_decl.
11688         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
11689         on the static_instances_decl.
11690
11691 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
11692
11693         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
11694         decls when there is only one input translation unit.
11695         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
11696         change of 2004-07-05; do not treat declarations with
11697         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
11698         * opts.c (cur_in_fname): Delete.
11699         * opts.h: Likewise.
11700         * tree.c: Revert changes of 2004-07-05; no special treatment
11701         for TRANSLATION_UNIT_DECLs.
11702         * Makefile.in (tree.o): Update dependencies.
11703
11704 2004-07-08  Roger Sayle  <roger@eyesopen.com>
11705
11706         * builtins.c (fold_builtin_strcpy): Merge functionality from
11707         simplify_builtin_strcpy.  Add additional len argument.  No longer
11708         static.  Remove function prototype.
11709         (fold_builtin_strncpy): Likewise integrate functionality from
11710         simplify_builtin_strncpy.  Add additional slen argument.  No
11711         longer static.  Remove function prototype.
11712         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
11713         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
11714         types of "ignore" and "unlocked" parameters to bool.
11715         (fold_builtin_1):  Add additional ignore argument.  Call renamed
11716         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
11717         builtins.  Update arguments to fold_builtin_strncpy and
11718         fold_builtin_strcpy.  Add function prototype.
11719         (fold_builtin): Add additional Boolean ignore argument to pass
11720         to fold_builtin_1.
11721         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
11722         and fold_builtin_strncpy instead of simplify_builtin_fputs,
11723         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
11724
11725         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
11726         simplify_builtin_strncpy): Delete function prototypes.
11727         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
11728         fold_builtin_strncpy): Add function prototypes here.
11729         (fold_builtin): Update function prototype with new "bool ignore".
11730
11731         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
11732         (ccp_fold_builtin):  Update call to fold_builtin.  Call
11733         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
11734         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
11735         simplify_builtin_strncpy respectively.
11736         * fold-const.c (fold): Update call to fold_builtin.
11737
11738 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
11739
11740         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
11741         to strcpy.
11742
11743         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
11744         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
11745         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
11746         * calls.c: Remove ifdefs of macros above.
11747         * functions.c: Likewise.
11748         * expr.c: Likewise.
11749
11750 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11751
11752         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
11753         (arch attribute): Delete.
11754         (current_function_calls_alloca attribute): Rename into calls_alloca.
11755         (calls_eh_return): New attribute.
11756         (leaf_function): Likewise.
11757         (length attribute): Fix formula for sibcalls.
11758         (return insn): Correctly compute the 'length' attribute.
11759         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
11760
11761 2004-07-08  Richard Henderson  <rth@redhat.com>
11762
11763         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
11764         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
11765         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
11766         * tree-eh.c (lower_eh_constructs_1): Likewise.
11767         * tree-sra.c (sra_walk_modify_expr): Likewise.
11768         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11769         (eliminate_unnecessary_stmts): Likewise.
11770         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
11771         * tree-tailcall.c (optimize_tail_call): Likewise.
11772         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
11773
11774 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11775             Jakub Jelinek  <jakub@redhat.com>
11776
11777         * config/i386/i386.c (override_options): Enable
11778         SSE prefetches with -mtune, as long as we are
11779         compiling for i686 or higher.  All i686 processors
11780         accept SSE prefetches as NOPS, some i586's don't.
11781
11782 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11783
11784         PR target/10567
11785         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
11786
11787 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
11788
11789         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
11790         the handling of clobbering ASM_EXPRs.
11791
11792 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11793
11794         PR target/16430
11795         * config/sparc/sparc.c (function_value): In 64-bit mode,
11796         return the aggregates larger than 16 bytes like unions.
11797
11798 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11799
11800         PR target/16199
11801         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
11802         'temp' is zero, generate new pseudos as needed and emit the
11803         sequence of insns in single-assignment form.  Resync comments
11804         with code.
11805         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
11806         function before reload.
11807
11808 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
11809
11810         * vec.c (vec_assert_fail): Remove duplicate 'function'.
11811
11812         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
11813
11814         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
11815         Allocation is signed.
11816         (VEC_reserve): Return flag, allocation is signed.
11817
11818 2004-07-08  Richard Henderson  <rth@redhat.com>
11819
11820         * tree-ssa-ccp.c (fold_stmt): Get type directly from
11821         OBJ_TYPE_REF_OBJECT.
11822
11823 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11824             Neil Booth  <neil@daikokuya.co.uk>
11825
11826         PR c/2511
11827         PR c/3325
11828         * c-decl.c (finish_struct): Ensure bit-fields are given the
11829         correct type.
11830         * c-common.c (c_common_signed_or_unsigned_type): For C, require
11831         the precision to match as well as the mode.
11832         * expr.c (reduce_to_bit_field_precision): New function.
11833         (expand_expr_real_1): Reduce expressions of bit-field type to
11834         proper precision.
11835         * langhooks.h (reduce_bit_field_operations): New hook.
11836         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
11837         Define.
11838         * c-lang.c, objc/objc-lang.c
11839         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
11840         * objc/objc-act.c (check_ivars): Convert types to bit-field types
11841         before checking.
11842         * tree.c (build_nonstandard_integer_type): New function.
11843         * tree.h (build_nonstandard_integer_type): New prototype.
11844         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
11845         conversions between integer and boolean types as useless.
11846
11847 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11848
11849         * c-common.c (c_common_nodes_and_builtins): Do not
11850         create __builtin_ptrdiff_t and __builtin_size_t.
11851
11852 2004-07-08  Andrew Pinski  <apinski@apple.com>
11853
11854         * Makefile.in (libbackend.o): Add -combine to the gcc
11855         command line.
11856
11857 2004-07-08  Nick Clifton  <nickc@redhat.com>
11858
11859         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
11860         Set to -Os.
11861
11862 2004-07-08  Richard Henderson  <rth@redhat.com>
11863
11864         * except.c (expand_eh_region_start, expand_eh_region_end,
11865         expand_eh_handler, expand_eh_region_end_cleanup,
11866         expand_start_all_catch, expand_start_catch, expand_end_catch,
11867         expand_end_all_catch, expand_eh_region_end_allowed,
11868         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
11869         expand_eh_region_end_fixup): Remove.
11870         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
11871         cleanups, outer_cleanups, label_chain, exception_region.
11872         (struct goto_fixup): Remove stack_level, cleanup_list_list.
11873         (struct label_chain): Remove.
11874         (struct stmt_status): Remove x_stack_block_stack.
11875         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
11876         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
11877         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
11878         end_cleanup_deferral, last_cleanup_this_contour,
11879         containing_blocks_have_cleanups_or_stack_level,
11880         any_pending_cleanups): Remove.
11881         (expand_null_return_1): Take no arguments.
11882         (expand_label, expand_naked_return, expand_return,
11883         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
11884         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
11885         expand_end_case_type): Don't use any of them.
11886         * calls.c (expand_call): Likewise.
11887         * dojump.c (do_jump): Likewise.
11888         * function.c (expand_function_end): Likewise.
11889         * expr.c (store_expr, expand_expr_real_1): Likewise.
11890         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
11891         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
11892         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
11893         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
11894         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
11895         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
11896         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
11897         for WITH_CLEANUP_EXPR.
11898         (gimple_push_cleanup): Likewise.
11899         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
11900         * print-tree.c (print_node): Likewise.
11901         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
11902         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
11903         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
11904         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
11905         (GOTO_SUBROUTINE_EXPR): Remove.
11906         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
11907         (DECL_TOO_LATE): Remove.
11908         * except.h, tree.h: Update decls.
11909
11910 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11911
11912         * explow.c (optimize_save_area_alloca): Do not accept parameters.
11913         * passes.c (rest_of_handle_final): Handle symout.
11914         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
11915         Push timevar here.
11916         (rest_of_handle_sched): Break out SMS.  Remove ifs for
11917         flag_schedule_insns and flag_modulo_sched.
11918         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
11919         collect at the end.
11920         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
11921         (rest_of_handle_partition_blocks, rest_of_handle_sms,
11922         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
11923         rest_of_handle_mode_switching, rest_of_handle_jump,
11924         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
11925         rest_of_handle_jump2, rest_of_handle_postreload,
11926         rest_of_handle_flow2, rest_of_clean_state,
11927         rest_of_handle_shorten_branches,
11928         rest_of_handle_prologue_epilogue,
11929         rest_of_handle_branch_target_load_optimize): New.
11930         (rest_of_compilation): Call the above.  Remove ggc_collect
11931         calls moved to rest_of_handle_*.
11932         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
11933
11934         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
11935         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
11936         * except.h (set_nothrow_function_flags): Update comment.
11937         * function.c (current_function_nothrow): Remove.
11938         * output.h (current_function_nothrow): Remove.
11939         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
11940         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
11941
11942 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11943
11944         PR bootstrap/16326
11945         * reorg.c: Revert 2004-06-30 change.
11946         (find_end_label): If HAVE_epilogue and !HAVE_return,
11947         return 0 instead of creating a label at the end of the insn chain.
11948         (optimize_skip): Account for the failure mode of find_end_label.
11949         (fill_simple_delay_slots): Likewise.
11950         (fill_slots_from_thread): Likewise.
11951         (relax_delay_slots): Likewise.
11952
11953 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
11954
11955         * tree-flow.h (addressable_vars): Declare.
11956         * tree-ssa-alias.c (addressable_vars): Define.
11957         (setup_pointers_and_addressables): Add addressable variables
11958         to addressable_vars.
11959         * tree-ssa-operands.c (get_stmt_operands): Move
11960         handling of ASM_EXPRs ...
11961         (get_asm_expr_operands): ... here.
11962         When the ASM_EXPR clobbers memory, also clobber addressable
11963         variables.
11964         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
11965         (delete_tree_ssa): Reset addressable_vars.
11966
11967 2004-07-07  Jan Beulich  <jbeulich@novell.com>
11968             Richard Henderson  <rth@redhat.com>
11969
11970         * varasm.c (assemble_variable): Use assemble_zeros for
11971         zero-initialized variables.
11972         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
11973         for SECCAT_BSS and SECCAT_TBSS.
11974
11975 2004-07-07  Jan Beulich  <jbeulich@novell.com>
11976
11977         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
11978
11979         * expmed.c (emit_store_flag): Also special-case double-word
11980         (in-)equality comparison against -1.
11981
11982         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
11983         passing arguments the containers for which are registers.
11984
11985         * calls.c (emit_library_call_value_1): Use mode of function parameter
11986         rather than that of argument since constants have none.
11987
11988 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
11989
11990         Introduce H8SX support.
11991         * expr.c (expand_strcpy): Renamed and moved to...
11992         * builtins.c (expand_movstr): ... here.  Tweak.
11993         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
11994         computed or has side effects.
11995         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
11996         unused, or if mempcpy fails.  Adjust the return value in the
11997         latter case.  Use movstr if everything else fails.
11998         * doc/md.texi (movstr): Document.
11999         (movmemM, clrmemM): Fix explanation of memory block operands.
12000         * config/h8300/h8300.md (stpcpy): Renamed to...
12001         (movstr): ... this.  Adjust.
12002         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12003         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
12004         movmem* and clrstr* to clrmem*.
12005         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
12006         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
12007         GENERAL_REGS, always.
12008         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
12009         getting the stack pointer as addr.
12010         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
12011         from general_operand_dst.
12012         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
12013         variant of...
12014         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
12015         instead of requiring it to match only before reload.
12016         (stpcpy_internal_normal): New, normal-mode variant of...
12017         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
12018         `D' instead of requiring it to match only before reload.
12019         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
12020         mode argument.
12021         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
12022         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
12023         h8300_get_index.
12024         * config/h8300/h8300.md (attr type): Add call.
12025         (attr can_delay): If type is call, set it no.
12026         (call, call_value): Set type to call.
12027         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
12028         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
12029         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
12030         * tree.c (get_narrower): Don't narrow integral types into
12031         non-integral types.
12032         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
12033         frame_size *before* the first use.
12034         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
12035         on input.
12036         (peephole2): Don't widen instructions that push SP.  Move
12037         decrement of SP to the end of all stm-generating peepholes.
12038         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12039         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
12040         and OR to set it to all ones.
12041         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12042         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
12043         (call, call_value): Set can_delay to "no".
12044         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
12045         * config/h8300/h8300.md (extzv): Make subreg check more robust.
12046         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12047         * config/h8300/h8300.md (*brabit): Remove.
12048         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
12049         zero_extract.  Use bit_memory_operand as the predicate for
12050         operand 1 and 'WU' as the constraint.  Check the difference
12051         between the base length and the final one when deciding which
12052         type of branch to use.
12053         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12054         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
12055         Use convert_move to extend the result for TARGET_H8300SX.  Check
12056         for QImode memory references.  Optimize the case where the
12057         destination is a paradoxical subreg.
12058         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12059         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
12060         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
12061         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12062         * config/h8300/h8300.md: Include mova.md
12063         (length_table): Add mova and mova_zero.
12064         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
12065         after all constant addresses for '%R', '%X', '%T' and '%S'.
12066         (h8300_mova_length): New function.
12067         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
12068         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
12069         dependencies for s-config, etc.
12070         * config/h8300/gemova.sh: New file.
12071         * config/h8300/mova.md: Generated.
12072         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
12073         * config/h8300/h8300.c (h8300_bitfield_length): New.
12074         (nibble_operand): Adjust.
12075         (h8300_binary_length): Handle conditional binary op.
12076         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
12077         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
12078         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
12079         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
12080         constraints.  WU is introduced as a variant of U that requires a
12081         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
12082         * config/h8300/h8300.md (attr type): Added bitbranch.
12083         (attr length_table): Added bitfield and bitbranch.
12084         (attr length): Compute bitbranch length.
12085         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
12086         least-significant bit of a byte.
12087         (brabit, brabc, brabs): New.
12088         (insv, extzv): Emit bfst and bfld on H8300SX.
12089         (bfld, bfst, seq, sne): New.
12090         (bstzhireg, cmpstz, bstz, bistz): New.
12091         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
12092         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
12093         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
12094         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
12095         (h8sx_unary_memory_operator): New function.
12096         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
12097         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
12098         * config/h8300/h8300.md: Add peepholes to combine reloads and
12099         arithmetic insns.
12100         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12101         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
12102         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
12103         (and?i, ior?i, xor?i): Likewise.
12104         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12105         * config/h8300/h8300.c: Move enums and prototypes to head of file.
12106         Various whitespace fixes.
12107         (h8300_constant_length): New function, split out from...
12108         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
12109         (h8300_classify_operand): Use IN_RANGE.
12110         (h8300_classify_operand): Use h8300_constant_length.
12111         (h8300_short_move_mem_p): Tighten size check.
12112         (h8sx_mergeable_memrefs_p): Tighten equality check.
12113         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
12114         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
12115         for -msx.
12116         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
12117         * config/h8300/crtn.asm: Likewise.
12118         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
12119         if __H8300SX__ is defined.
12120         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
12121         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
12122         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
12123         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
12124         addresses as mode-dependent.
12125         * config/h8300/h8300.c (print_operand_address): Update call to
12126         h8300_get_index.
12127         (h8300_get_index): Take a mode argument.  Rework to fix an
12128         earlier misunderstanding.
12129         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
12130         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
12131         into a register if TARGET_H8300SX.
12132         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
12133         TARGET_H8300SX.  Also disable related define_splits.
12134         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
12135         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
12136         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
12137         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
12138         * config/h8300/h8300.h (OK_FOR_Z): New macro.
12139         (EXTRA_CONSTRAINT_STR): Check it.
12140         * config/h8300/h8300.c (h8300_classify_operand): Accept null
12141         class arguments.
12142         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
12143         * config/h8300/h8300.md (length_table): Add mov_imm4.
12144         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
12145         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
12146         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
12147         be a label.
12148         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
12149         * config/h8300/h8300.c (h8300_reorg): New function.
12150         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12151         * config/h8300/h8300.md (length): Subtract the length of the
12152         delay slot from (pc) when checking the range of forward branches.
12153         (delay_slot, can_delay): New attributes.
12154         (define_delay): Add bra/s handling.
12155         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
12156         (jump): Add delayed-branch handling.
12157         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
12158         * expr.c (expand_strcpy): New function.
12159         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
12160         (expand_builtin_stpcpy): Likewise.
12161         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
12162         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
12163         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
12164         handling to improve register allocation for -fno-omit-frame-pointer.
12165         (h8sx_split_movmd): Delete, moving er6 handling into...
12166         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
12167         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
12168         (movmd): Add calls to copy_rtx.
12169         (movmd_internal): In the second alternative, allow the initial and
12170         final destination registers to be different .  Update the splitter
12171         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
12172         instead of h8sx_split_movmd.
12173         (stpcpy, movsd): New expanders.
12174         (movsd_internal): New define_insn.
12175         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
12176         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
12177         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
12178         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
12179         and DESTINATION_REGS.
12180         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12181         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
12182         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
12183         (h8300_move_ratio): Declare.
12184         (MOVE_RATIO): Use it.
12185         * config/h8300/h8300.c (h8300_move_ratio): New variable.
12186         (h8300_init_once): Initialize it.
12187         (h8300_reg_class_from_letter): New function.
12188         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
12189         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
12190         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
12191         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
12192         (movstrsi, movmd): New expanders.
12193         (movmd_internal): New insn.
12194         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
12195         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
12196         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
12197         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
12198         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
12199         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12200         * config/h8300/h8300.c (nibble_operand): Fix warning.
12201         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
12202         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
12203         (movsf_h8300h): Disable for TARGET_H8300SX.
12204         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12205         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
12206         h8300_stm_parallel and h8300_return_parallel.
12207         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
12208         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
12209         h8300_stm_parallel, h8300_return_parallel): New functions.
12210         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
12211         if TARGET_H8300SX.  Use h8300_push_pop.
12212         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
12213         and final pop when generating h8sx code.  Always emit some form
12214         of return insn.
12215         * config/h8300/h8300.md: Don't enforce register alignment in
12216         stm peepholes if TARGET_H8300SX.
12217         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
12218         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
12219         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
12220         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12221         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
12222         (MULTILIB_DIRNAMES): Add a directory for it.
12223         (MULTILIB_MATCHES): Delete.
12224         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
12225         * final.c (walk_alter_subreg): Handle addresses with subregs
12226         inside a ZERO_EXTEND or AND.
12227         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
12228         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
12229         if TARGET_H8300SX.
12230         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
12231         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
12232         @(dd,Rn.w) and @(dd,ERn.L).
12233         (h8300_displacement_size): Take the whole address as argument.
12234         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
12235         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
12236         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
12237         (h8sx_mergeable_memrefs_p): Declare.
12238         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
12239         (HAVE_PRE_INCREMENT): Likewise.
12240         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
12241         addresses for TARGET_H8300SX,
12242         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
12243         and POST_DEC.
12244         (movb_length_table, movl_length_table): New tables.
12245         (movw_length_table): Define to movb_length_table.
12246         (h8300_displacement_size): New, split out from...
12247         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
12248         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
12249         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
12250         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
12251         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
12252         (compute_plussi_length, compute_plussi_cc): Update accordingly.
12253         (h8sx_unary_shift_operator): Get the mode from the operator.
12254         (binary_shift_operator): Likewise.
12255         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
12256         a memory reference, check whether the reference is offsettable.
12257         (length_table): Add movb, movw and movl.
12258         (movqi): Add new h8sx pattern.  Don't force one operand to be a
12259         register when generating h8sx code.
12260         (movhi, movsi, movsf): Likewise.
12261         (movstrictqi): Use the length_table attribute.
12262         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
12263         (addqi3): Split into a define_expand and define_insn.  Don't accept
12264         memory operands in the expander.  Use h8300_operands_match_p to
12265         check for matching operands in the define_insn.
12266         (subqi3, negqi2, one_cmplqi2): Likewise.
12267         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
12268         in any patterns that are unused in h8sx code.  In the h8sx patterns,
12269         use h8300_operands_match_p to check whether operands match.
12270         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
12271         one_cmpl[hs]i3): Likewise.
12272         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
12273         in the expander.
12274         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
12275         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
12276         (h8300_insn_length_from_table): Add a second parameter.
12277         (output_h8sx_shift): Declare.
12278         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
12279         (EXTRA_CONSTRAINT): Replace with...
12280         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
12281         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
12282         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
12283         and h8sx_binary_shift_operator.
12284         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
12285         for TARGET_H8300SX.
12286         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
12287         (bit_memory_operand, fix_bit_operand): Likewise.
12288         (h8300_length_table_for_insn): Remove.
12289         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
12290         instructions.
12291         (h8300_short_immediate_length, h8300_binary_length): New functions.
12292         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
12293         (output_plussi): Use sub to add negative constants.
12294         (compute_plussi_length): Adjust accordingly.
12295         (h8sx_single_shift_type): New enum.
12296         (h8sx_single_shift, h8sx_unary_shift_operator,
12297         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
12298         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
12299         single h8sx instruction.  Return false in this case.
12300         * config/h8300/h8300.md (length_table): Add short_immediate.
12301         (length): Pass the operand array to h8300_insn_length_from_table.
12302         (adjust_length): Assume "no" for insns with a length_table attribute.
12303         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
12304         (*addhi3_h8300hs): Don't use for h8sx.
12305         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
12306         and sub.w #xx:3.
12307         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
12308         1's predicate to nonimmediate_operand.  Only skip default expansion
12309         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
12310         for single h8sx shift instructions.
12311         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
12312         * config/h8300/h8300.c (nibble_operand): Split out of...
12313         (reg_or_nibble_operand): ... this.
12314         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
12315         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
12316         umulhisi3): Introduce expand, and introduce separate insns for
12317         sign- or zero-extended REG and already-extended CONST_INT.
12318         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
12319         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
12320         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
12321         (subhi3): Likewise.  Don't accept immediates for operand 1.
12322         Remove the early clobber from second alternative of the h8300s pattern.
12323         (subsi3): Generalize for h8sx.  Force operand 2 into a register
12324         on plain h8300 targets.
12325         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
12326         (subsi3_h8300h): Generalize for h8sx.
12327         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
12328         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
12329         * config/h8300/h8300.c (reg_or_nibble_operand): New.
12330         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
12331         (TARGET_H8300SXMUL): New.
12332         (CONST_OK_FOR_P): New.
12333         (CONST_OK_FOR_LETTER_P): Adjust.
12334         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
12335         umulhisi3): Accept 4-bit immediate on H8SX.
12336         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
12337         (udivsi3, divhi3, udivsi3, divsi3): New.
12338         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
12339         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
12340         * config/h8300/h8300.h (OK_FOR_Q): New macro.
12341         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
12342         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
12343         Add ADDRESSOF to the bit_operand entry.
12344         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
12345         (h8300_src_operand): Likewise.
12346         (bit_operand): Check nonimmediate_operand rather than general_operand.
12347         Accept any nonimmediate_operand in h8sx code.
12348         (h8300_and_costs): Initialize operands[1].
12349         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
12350         (h8300_operand_class): New enum.
12351         (h8300_length_table): New typedef.
12352         (addb_length_table, addw_length_table, addl_length_table,
12353         logicl_length_table): New tables.
12354         (logicb_length_table, logicw_length_table): New macros.
12355         (h8300_classify_operand, h8300_length_from_table,
12356         h8300_length_table_for_insn, h8300_unary_length,
12357         h8300_insn_length_from_table): New functions.
12358         (output_plussi): Only use adds and subs for register destinations.
12359         Disable redundant clause.
12360         (compute_plussi_cc): Likewise.
12361         (compute_plussi_length): Likewise.  Use h8300_length_from_table
12362         to work out the length of an insn.
12363         (output_logical_op): Only use narrower immediate instructions
12364         if the destination is a register.
12365         (compute_logical_op_cc): Likewise.
12366         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
12367         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
12368         * config/h8300/h8300.md (length_table): New attribute.
12369         (length): When an instruction has a length_table attribute, use
12370         h8300_insn_length_from_table to calculate its default length.
12371         (cmpqi): Use h8300_dst_operand for the first operand and
12372         h8300_src_operand for the second.
12373         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
12374         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
12375         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
12376         iorsi3, xorhi3, xorsi3): Likewise.
12377         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
12378         so that it allows any combination of operands for TARGET_H8300SX.
12379         (iorqi3, xorqi3): Likewise.
12380         (cmpqi): Use the length_table attribute.
12381         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
12382         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
12383         (cmpqi): Add 'Q' constraint.
12384         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
12385         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
12386         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
12387         * config/h8300/h8300.h (MASK_H8300SX): New macro.
12388         (TARGET_H8300S): True for both -ms and -msx.
12389         (TARGET_H8300SX): New macro.
12390         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
12391         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
12392         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
12393         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
12394         [Temporary change.]
12395         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
12396         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
12397         16-bit pointers and 32-bit ints.
12398         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
12399         CONST_DOUBLE with mode no wider than SImode.
12400         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
12401         output operand.
12402         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
12403         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
12404         or SUBREG thereof.
12405         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
12406         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
12407         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
12408
12409 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
12410
12411         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
12412
12413 2004-07-07  Per Bothner  <per@bothner.com>
12414
12415         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
12416
12417 2004-07-07  Mike Stump  <mrs@apple.com>
12418
12419         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
12420         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
12421         (machopic_finish): Likewise.
12422
12423 2004-07-07  Richard Henderson  <rth@redhat.com>
12424
12425         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
12426         through any value-preserving cast.
12427
12428 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12429
12430         * function.c (assign_parm_find_data_types): Call
12431         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
12432
12433 2004-07-07  Steven Bosscher  <stevenb@suse.de>
12434
12435         * tree-cfg.c (group_case_labels): Remove case labels that have
12436         the same target as the default case.
12437
12438 2004-07-07  Steven Bosscher  <stevenb@suse.de>
12439
12440         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
12441         regardless of DECL_LANG_SPECIFIC being present or not.
12442         * tree.h (DECL_NUM_STMTS): Purge.
12443
12444 2004-07-07  Andrew Pinski  <apinski@apple.com>
12445
12446         * configure: Regenerate with the right autoconf.
12447
12448 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
12449
12450         * ifcvt.c (total_bb_rtx_cost): New function.
12451         (find_if_case_1): Compare rtx_cost of basic block to cost of
12452         BRANCH_COST insns.
12453         (find_if_case_2): Same.
12454
12455 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
12456
12457         PR target/10567
12458         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
12459         (output_return): Likewise.
12460         (output_sibcall): Abort if !flag_delayed_branch.
12461         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
12462         (emit_and_preserve): New function.
12463         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
12464         indirect jump to the thunked-to function if !flag_delayed_branch.
12465         * config/sparc/sparc.md (delayed_branch): New attribute.
12466         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
12467         attribute to compute the length of the insn.
12468         (goto_handler_and_restore): Likewise.
12469
12470 2004-07-07  Andrew Pinski  <apinski@apple.com>
12471
12472         PR tree-optimization/15777
12473         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
12474
12475         * expr.c (expand_expr_real_1): Fix formating.
12476         BUFFER_REF and IN_EXPR are dead.
12477         * fold-const.c (non_lvalue): BUFFER_REF is dead.
12478         * tree-inline.c (estimate_num_insns_1): Likewise.
12479         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
12480         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
12481         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
12482
12483 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
12484
12485         * collect2.c (dump_file): Don't call cplus_demangle if
12486         HAVE_LD_DEMANGLE is defined.
12487         (main): Pass "--demangle" to ld if no_demangle is not 0 and
12488         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
12489         if HAVE_LD_DEMANGLE is defined.
12490
12491         * configure.ac (--with-demangler-in-ld): Added
12492         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
12493         --with-demangler-in-ld is used.
12494         * config.in: Regenerated.
12495         * configure: Likewise.
12496
12497 2004-07-07  Roger Sayle  <roger@eyesopen.com>
12498
12499         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
12500         for simple floating point operations "fp", double precision
12501         multiplication "dmul", and single and double precision division
12502         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
12503         (ppc630_cost): New table split from ppc620_cost, to distinguish
12504         differences in floating point latencies.
12505         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
12506         (rs6000_rtx_costs): Add support for single and double precision
12507         floating point addition, subtraction, multiplication, division,
12508         fused-multiply-add, fused-multiply-sub, negation, absolute value
12509         and negative absolute value.  Tweak MEM case to use prefered idiom.
12510
12511 2004-07-07  Richard Henderson  <rth@redhat.com>
12512
12513         * tree-flow-inline.h (may_propagate_copy): Move...
12514         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
12515         attempt to copy between types requiring conversion.
12516         * tree-flow.h (may_propagate_copy): Update decl.
12517         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
12518
12519 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
12520
12521         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
12522         from -mtune= option.
12523
12524 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12525
12526         * builtins.c: Rename movstr*, except for movstrict*, to
12527         movmem* and clrstr* to clrmem*.
12528         * expr.c: Likewise.
12529         * expr.h: Likewise.
12530         * genopinit.c: Likewise.
12531         * integrate.c: Likewise.
12532         * local-alloc.c: Likewise.
12533         * optabs.c: Likewise.
12534         * optabs.h: Likewise.
12535         * config/alpha/alpha.h: Likewise.
12536         * config/alpha/alpha.md: Likewise.
12537         * config/arm/arm-protos.h: Likewise.
12538         * config/arm/arm.c: Likewise.
12539         * config/arm/arm.md: Likewise.
12540         * config/avr/avr.md: Likewise.
12541         * config/c4x/c4x.c: Likewise.
12542         * config/c4x/c4x.md: Likewise.
12543         * config/frv/frv.md: Likewise.
12544         * config/i386/i386-protos.h: Likewise.
12545         * config/i386/i386.c: Likewise.
12546         * config/i386/i386.h: Likewise.
12547         * config/i386/i386.md: Likewise.
12548         * config/i860/i860.c: Likewise.
12549         * config/i860/i860.md: Likewise.
12550         * config/ip2k/ip2k.md: Likewise.
12551         * config/ip2k/libgcc.S: Likewise.
12552         * config/ip2k/t-ip2k: Likewise.
12553         * config/m32r/m32r.c: Likewise.
12554         * config/m32r/m32r.md: Likewise.
12555         * config/mcore/mcore.md: Likewise.
12556         * config/mips/mips.c: Likewise.
12557         * config/mips/mips.md: Likewise.
12558         * config/ns32k/ns32k.c: Likewise.
12559         * config/ns32k/ns32k.h: Likewise.
12560         * config/ns32k/ns32k.md: Likewise.
12561         * config/pa/pa.c: Likewise.
12562         * config/pa/pa.md: Likewise.
12563         * config/pdp11/pdp11.h: Likewise.
12564         * config/pdp11/pdp11.md: Likewise.
12565         * config/rs6000/rs6000.c: Likewise.
12566         * config/rs6000/rs6000.md: Likewise.
12567         * config/s390/s390-protos.h: Likewise.
12568         * config/s390/s390.c: Likewise.
12569         * config/s390/s390.md: Likewise.
12570         * config/sh/lib1funcs.asm: Likewise.
12571         * config/sh/sh.c: Likewise.
12572         * config/sh/sh.md: Likewise.
12573         * config/sh/t-sh: Likewise.
12574         * config/sparc/sparc.h: Likewise.
12575         * config/vax/vax.md: Likewise.
12576         * config/xtensa/xtensa.c: Likewise.
12577         * config/xtensa/xtensa.md: Likewise.
12578         * doc/invoke.texi: Likewise.
12579         * doc/md.texi: Likewise.
12580         * doc/rtl.texi: Likewise.
12581
12582 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
12583
12584         PR target/16407
12585         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
12586         * config/mips/mips.c (mips_declare_common_object): New function,
12587         mostly split out from...
12588         (mips_output_aligned_decl_common): ...here.
12589         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
12590         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
12591         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
12592         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
12593
12594 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12595
12596         PR c/16392
12597         * function.c (assign_parms): Fix typo from previous change.
12598
12599 2004-07-07  Jason Merrill  <jason@redhat.com>
12600
12601         PR c++/15815
12602         * doc/extend.texi (C++ Interface): Correct information and
12603         discourage use.
12604
12605 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
12606
12607         PR target/16130
12608         PR target/16142
12609         PR target/16143
12610         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
12611         insn.
12612
12613 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12614
12615         PR target/1679.
12616         * config/m32r/m32r.c (m32r_function_symbol): New function:
12617         Generate a symbol name RTX with the correct m32r specific flags
12618         set.
12619         (block_move_call): Use new function to generate correct symbol.
12620         * config/m32r/m32r-protos.h: Add prototype for new funcion.
12621         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
12622         function.
12623
12624 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12625
12626         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
12627         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
12628         TYPE_BINFO_BASETYPE): Remove.
12629         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
12630         to ...
12631         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
12632         here.
12633         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
12634         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
12635         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
12636         (struct tree_binfo): Rename base_types to base_binfos.
12637         * alias.c (record_component_aliases): Adjust BINFO macros.
12638         * dbxout.c (dbxout_type): Likewise.
12639         * dwarf2out.c (gen_member_die): Likewise.
12640         * sdbout.c (sdbout_one_type): Likewise.
12641         * tree-dump.c (deque_and_dump): Likewise.
12642         * config/i386/i386.c (classify_argument,
12643         contains_128bit_aligned_vector_p): Likewise.
12644
12645 2004-07-07  Nick Clifton  <nickc@redhat.com>
12646
12647         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
12648         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
12649
12650 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12651
12652         * vec.h: Fix the example use.
12653
12654 2004-07-06  Richard Henderson  <rth@redhat.com>
12655
12656         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
12657         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
12658         * tree-inline.c (copy_body_r, setup_one_parameter,
12659         initialize_inlined_parameters, expand_call_inline,
12660         declare_inline_vars): Don't check it.
12661         (expand_calls_inline): Remove old version, rename new version
12662         from gimple_expand_calls_inline.
12663         * tree-optimize.c (execute_gimple): Remove.
12664         (pass_gimple): Don't run anything.
12665
12666 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
12667
12668         * doc/sourcebuild.texi: Use semicolons instead of commas in
12669         section title.
12670
12671 2004-07-06  Richard Henderson  <rth@redhat.com>
12672
12673         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
12674         (sra_walk_modify_expr, scan_init): Likewise.
12675         (generate_element_zero): Check visited before scanning children.
12676         (generate_element_init): Set visited on error.
12677         (scalarize_init): Handle generate_element_init failure similar
12678         to use_block_copy.
12679
12680 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
12681
12682         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
12683         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
12684
12685 2004-07-06  Richard Henderson  <rth@redhat.com>
12686
12687         * config/i386/i386.c (legitimize_pic_address): Make static.
12688         (legitimize_address): Handle CONST with TLS operand.
12689         (ix86_expand_move): Don't call legitimize_pic_address directly.
12690         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
12691
12692 2004-07-06  Roger Sayle  <roger@eyesopen.com>
12693
12694         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
12695         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
12696         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
12697         is currently executed unconditionally, i.e. not in "else_bb".
12698
12699 2004-07-06  Steven Bosscher  <stevenb@suse.de>
12700
12701         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
12702         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12703         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
12704         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12705         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
12706         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12707         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
12708         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12709         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
12710         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12711         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
12712         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12713         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
12714         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12715         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
12716         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12717
12718 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
12719
12720         * dojump.c (do_jump): REFERENCE_EXPR is dead.
12721         * expr.c (expand_expr_real_1): Ditto.
12722         * tree-inline.c (estimate_num_insns_1): Ditto.
12723         * tree-pretty-print.c (dump_generic_node): Ditto.
12724         (op_symbol): Ditto.
12725         * tree.def: Ditto.
12726
12727 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
12728
12729         * tree-ssa-pre.c (reference_node_pool): New pool.
12730         (find_or_generate_expression): Class 'r' is okay too.
12731         (create_value_expr_from): Ditto.
12732         (add_to_sets): LHS should not include vuses.
12733         (eliminate): Ditto.
12734         (compute_avail): Reverse ordering of tests.
12735         Valuize INDIRECT_REF as well.
12736
12737 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
12738
12739         PR rtl-optimization/16380
12740         * loop.c (check_dbra_loop): Sink comparison instructions if they
12741         do something other than set cc0.
12742
12743 2004-07-06  James E Wilson  <wilson@specifixinc.com>
12744
12745         * doc/interface.texi (longjmp and automatic variables): Delete
12746         paragraph recommending taking the address of a variable.
12747
12748 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12749
12750         * vec.h (VEC_embedded_alloc): Remove.
12751         (VEC_embedded_size, VEC_embedded_init): New.
12752         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
12753         MEM_STAT_INFO.
12754         (VEC_truncate): New.
12755         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
12756         (vec_embedded_alloc): Remove.
12757         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
12758         (vec_embedded_alloc): Remove.
12759
12760 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
12761
12762         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
12763         (gt-langhooks.h): Remove.
12764
12765 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
12766
12767         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
12768
12769 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12770
12771         * config/sparc/sparc.c (get_pc_symbol): Rename into
12772         add_pc_to_pic_symbol.
12773         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
12774         (load_pic_register): Account for previous changes.
12775         Use reg_names.  Don't create the label twice.
12776         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
12777         UNSPEC_LOAD_PCREL_SYM.
12778         (get_pc): Rename into load_pcrel_sym.  Add predicate to
12779         operands.  Remove condition.
12780
12781 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12782
12783         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
12784         RECORD, UNION & QUAL_UNION is actually a binfo.
12785
12786         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
12787         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
12788         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
12789         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
12790         * dwarf2out.c (add_data_member_location_attribute): Likewise.
12791         (gen_inheritance_die): Likewise.
12792         * tree-dump.c (deque_and_dump): Likewise.
12793         * doc/c-tree.texi (Binfos): Add under reconstruction note.
12794
12795 2004-07-06  Steven Bosscher  <stevenb@suse.de>
12796
12797         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
12798         Define.
12799         * config/mcore/mcore.md: Model memory latency with a simple DFA
12800         pipeline description instead of a define_function_unit.
12801
12802 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12803
12804         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
12805         * langhooks.h (var_mod_type_p): Likewise.
12806         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
12807         * expr.c (count_type_elements): Properly handle return from
12808         array_type_nelts and properly test for overflow.
12809         * gimplify.c (gimplify_init_constructor): Properly handle return
12810         from array_type_nelts.
12811         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
12812         * integrate.c (copy_decl_for_inlining): Correct comments.
12813         * tree-inline.c (remap_decl): Update comments, remove dead code,
12814         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
12815         (remap_type): Only remap if variably modified by vars in function
12816         being inlined.
12817         (copy_body_r): Use compatible_type langhooks to see when can fold.
12818         (setup_one_parameter): Don't remap type.
12819         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
12820         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
12821         compute TREE_INVARIANT for decl case.
12822         (find_var_from_fn): New function.
12823         (variably_modified_type_p): Add arg and call new function.
12824         * tree.h (variably_modified_type_p): Add extra arg.
12825
12826 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12827
12828         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
12829         (goto_handler_and_restore_v9): Delete disabled insn.
12830         (goto_handler_and_restore_v9_sp64): Likewise.
12831
12832 2004-07-05  Roger Sayle  <roger@eyesopen.com>
12833
12834         * calls.c (load_register_parameters): Call expand_shift instead
12835         of expand_binop with ashl_optab (or other shift optab) directly.
12836         * expr.c (emit_group_load, emit_group_store): Likewise.
12837         * function.c (assign_parm_setup_block): Likewise.
12838         * stmt.c (shift_return_value): Likewise.
12839
12840 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
12841
12842         * expr.c (expand_assignment): Disable the bitfield += optimizations.
12843
12844 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12845
12846         * doc/sourcebuild.texi: Revert previous patch.
12847
12848 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12849
12850         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
12851         TARGET_MEM_FUNCTIONS.
12852         * system.h: Poison TARGET_MEM_FUNCTIONS.
12853         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
12854         bcmp_libfunc, bzero_libfunc): Remove.
12855         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
12856         bzero_libfunc.
12857         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
12858         * doc/standards.texi: Don't mention calling BSD string functions.
12859         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
12860         * config/vax/t-memfuncs: New.
12861         * config/memcmp.c, config/memcpy.c, config/memmove.c,
12862         config/memset.c: New.
12863         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
12864         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
12865         vax/t-memfuncs.
12866         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
12867         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
12868         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
12869         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
12870         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
12871         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
12872         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
12873         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
12874         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12875         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
12876
12877 2004-07-05  Richard Henderson  <rth@redhat.com>
12878
12879         * function.c (assign_parm_setup_reg): Properly rename variables in
12880         FUNCTION_ARG_CALLEE_COPIES section.
12881
12882 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
12883
12884         * tree-mudflap.c: Include cgraph.h.
12885         (mf_init_extern_trees): Rename to mudflap_init.  Export.
12886         Rewrite to create synthetic declarations instead of looking
12887         up declarations from mf-runtime.h.
12888         (mf_make_builtin, mf_make_cache_struct_type): New functions.
12889         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
12890         Correct commentary.
12891         (execute_mudflap_function_decls, mudflap_register_call):
12892         Don't call mf_init_extern_trees.
12893         (mudflap_finish_file): Use cgraph_build_static_cdtor.
12894
12895         * tree-mudflap.h: Update prototypes.
12896         * c-mudflap.c: Delete file.
12897         * c-common.c: Include tree-mudflap.h.
12898         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
12899         * Makefile.in: Remove all references to c-mudflap.o.
12900         Update dependencies.
12901
12902 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12903
12904         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
12905         displacements with the spatial-locality cache-control completer.
12906
12907 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
12908
12909         * langhooks.c: Don't include gt-langhooks.h.
12910         (var_labelno): Delete.
12911         (lhd_set_decl_assembler_name): Do not append a distinguishing
12912         number to file-scope internal-linkage declarations for the first
12913         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
12914         the declaration itself (if at block scope), or its containing
12915         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
12916         number.
12917
12918         * opts.c (cur_in_fname): New global.
12919         * opts.h: Declare it.
12920         * tree.c: Include opts.h.
12921         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
12922         DECL_UID equal to cur_in_fname.
12923         (copy_node_stat): Do not change DECL_UID when copying a
12924         TRANSLATION_UNIT_DECL.
12925         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
12926         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
12927
12928         * c-decl.c (c_static_assembler_name): Delete.
12929         * c-tree.h (c_static_assembler_name): Delete prototype.
12930         * c-lang.c, objc/objc-lang.c: Don't override
12931         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
12932
12933         * Makefile.in (tree.o): Update dependencies.
12934         (GTFILES): Remove langhooks.c.
12935
12936 2004-07-05  Roger Sayle  <roger@eyesopen.com>
12937
12938         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
12939         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
12940         Normalize "X % C" as "X % -C" for signed modulus and negative C.
12941         Optimize "X % -Y" as "X % Y" for signed modulus.
12942         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
12943         into "((unsigned) X % Y) == 0".
12944
12945 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12946
12947         * sourcebuild.texi (Config Fragments): Use @comma{} in
12948         cross-reference to section title.
12949
12950 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12951
12952         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
12953         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
12954         (gimplify_target_expr, gimplify_expr): Likewise.
12955         (copy_if_shared_r): No longer need special case for BIND_EXPR.
12956         (unshare_body, unvisit_body): Only look at nested if BODY_P is
12957         whole function.
12958         (gimplify_compound_lval): See if we can strip any useless conversion.
12959         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
12960         from RHS, not LHS.
12961         (gimplify_modify_expr_to_memset): Likewise.
12962         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
12963         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
12964         (declare_inline_vars): Likewise.
12965         (walk_type_fields): New function.
12966         (walk_tree): Use it.
12967         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
12968
12969         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
12970         (sra_walk_modify_expr): Allow init function to fail.
12971         (scan_init): Now returns bool.
12972         (generate_element_init): If can't understand INIT, return false.
12973         (scalarize_init): Return false if generate_element_init does.
12974
12975         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
12976         print bounds.
12977
12978         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
12979         bounds if bounds aren't constant.
12980
12981         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
12982
12983         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
12984         to type hooks; remove bogus PARAMS.
12985
12986 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12987
12988         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
12989         * dwarf2out.c (add_data_member_location_attribute): Check for
12990         TREE_BINFO.
12991         * tree.c (tree_node_kinds): Add "binfos".
12992         (binfo_lang_slots): New.
12993         (make_node_stat): Add TREE_BINFO.
12994         (make_tree_binfo_stat): New.
12995         (tree_node_structure): Add TREE_BINFO.
12996         * tree.def (TREE_BINFO): New.
12997         * tree.h (REC_OR_UNION_CHECK): Rename to ...
12998         (RECORD_OR_UNION_CHECK): ... here.
12999         (NOT_RECORD_OR_UNION_CHECK): New.
13000         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
13001         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
13002         RECORD_OR_UNION_CHECK.
13003         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
13004         (TYPE_LANG_SLOT_1): New.
13005         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
13006         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
13007         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
13008         (BINFO_ELTS): Remove.
13009         (BINFO_LANG_SLOT): New.
13010         (struct tree_binfo): New.
13011         (binfo_lang_slots): Declare.
13012         (enum tree_node_structure_enum): Add TS_BINFO.
13013         (union tree_node): Add binfo.
13014         (make_tree_binfo_stat): Declare.
13015         (make_tree_binfo): New.
13016         (enum tree_node_kind): Add binfo_kind.
13017
13018         * objc/objc-act.c (start_class, objc_declare_protocols,
13019         start_protocols): Use TYPE_LANG_SLOT_1.
13020         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
13021         to ...
13022         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
13023         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
13024         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
13025         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
13026
13027 2004-07-05  Steven Bosscher  <stevenb@suse.de>
13028
13029         * rtl.h (struct rtx_def): Remove the integrated flag.
13030         Use the return_val flag for MEM_SCALAR_P.
13031         Reshuffle and update flags in CLEAR_RTX_FLAGS.
13032
13033 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
13034
13035         PR target/16357
13036         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
13037         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
13038         move_by_pieces.
13039
13040 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
13041
13042         * var-tracking.c: Fix some comments.
13043         (frame_stack_adjust): New.
13044         (vt_stack_adjustments): Init stack_adjust of entry block to
13045         minus stack adjustment of function prologue.
13046         (adjust_stack_reference): Do not adjust if adjustment == 0.
13047         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
13048         (emit_notes_in_bb): Likewise.
13049         (vt_add_function_parameters): Do not adjust locations of
13050         function arguments.
13051         (vt_initialize): Compute the stack adjustment of function
13052         prologue and offset the initial "location" of frame_base_decl
13053         from the stack pointer after prologue.
13054
13055 2004-07-04  Richard Henderson  <rth@redhat.com>
13056
13057         * function.c (struct assign_parm_data_all): New.
13058         (struct assign_parm_data_one): New.
13059         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
13060         assign_parm_find_data_types, assign_parms_setup_varargs,
13061         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
13062         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
13063         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
13064         assign_parm_setup_block, assign_parm_setup_reg,
13065         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
13066         (assign_parms): ... here.
13067
13068 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
13069
13070         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
13071         now are bitmap_set_t's.
13072         (bitmap_insert_into_set): No point in inserting the value if
13073         it's invariant.
13074         (bitmap_set_contains): New function.
13075         (bitmap_set_replace_value): Add comment on why we do it
13076         this way.
13077         (set_contains): Removed.
13078         (bitmap_set_subtract_from_value_set): New name of
13079         set_subtract now that it's arguments are two different
13080         types of sets.
13081         Update callers.
13082         (bitmap_find_leader): Change algorithm used.
13083         (find_or_generate_expression): Update use of functions for new
13084         bitmap sets.
13085         (create_expression_by_pieces): Ditto.
13086         (insert_aux): Ditto.
13087         (insert): Ditto.
13088         (add_to_sets): Ditto.
13089         (init_pre): Ditto.
13090         (execute_pre): Ditto.
13091         (compute_avail): Ditto.
13092         Also ignore virtual phis.
13093
13094 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13095
13096         * combine.c (simplify_comparison): Fix comment typo.
13097
13098 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13099
13100         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
13101         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
13102         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
13103         (output_restore): Change parameter from 'insn' to 'pat'.
13104         (output_return): Adjust call to output_restore.
13105         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
13106         Adjust call to output_restore.
13107
13108 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
13109
13110         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
13111         and assert system is bsd.
13112
13113 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13114
13115         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
13116         (TARGET_SWITCHES): Remove -mdebugc.
13117         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
13118         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
13119         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
13120         (sle_[sd]i_reg): Delete.
13121
13122 2004-07-04  Steven Bosscher  <stevenb@suse.de>
13123
13124         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
13125         Define.
13126         * config/iq2000/iq2000.md: Translate old pipeline description to an
13127         equivalent new one.
13128
13129 2004-07-04  Roger Sayle  <roger@eyesopen.com>
13130
13131         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
13132         Ensure the replacement rhs is valid gimple before performing
13133         the substitution.  Return false if these sanity checks fail.
13134         (fold_stmt): Only set changed to true, if set_rhs returns true.
13135         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
13136         succeeds.
13137
13138 2004-07-04  Richard Henderson  <rth@redhat.com>
13139
13140         PR c/16348
13141         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
13142
13143 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
13144
13145         * configure.ac (ranlib_flags): New variable.
13146         * Makefile.in (RANLIB_FLAGS): New variable.
13147         (libbackend.a): Use it.
13148         * configure: Regenerated.
13149
13150 2004-07-04  Roger Sayle  <roger@eyesopen.com>
13151
13152         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
13153         a "sign mask" instead of using ashr_optab directly.
13154
13155 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
13156
13157         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
13158         * doc/cppopts.texi: Clarify processing of command-line defines.
13159
13160 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
13161
13162         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
13163
13164 2004-07-04  Richard Henderson  <rth@redhat.com>
13165
13166         * rtl.def (ADDRESSOF): Remove.
13167         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
13168         (find_base_term, memrefs_conflict_p): Likewise.
13169         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
13170         (fold_rtx, cse_insn, set_live_p): Likewise.
13171         * dwarf2out.c (mem_loc_descriptor): Likewise.
13172         (add_location_or_const_value_attribute): Likewise.
13173         * emit-rtl.c (copy_insn_1): Likewise.
13174         * explow.c (memory_address): Likewise.
13175         * expmed.c (store_split_bit_field): Likewise.
13176         * expr.c (expand_expr_real_1): Likewise.
13177         * function.c (instantiate_decl
13178         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
13179         * genrecog.c (preds, validate_pattern): Likewise.
13180         * integrate.c (copy_rtx_and_substitute): Likewise.
13181         * recog.c (general_operand, register_operand): Likewise.
13182         (memory_address_p): Likwise.
13183         * reload1.c (eliminate_regs, elimination_effects): Likewise.
13184         * rtl.c (copy_rtx): Likewise.
13185         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
13186         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
13187         * rtlhooks.c (gen_lowpart_general): Likewise.
13188         * stmt.c (expand_asm_operands): Likewise.
13189         * web.c (entry_register, replace_ref, web_main): Likewise.
13190         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
13191         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
13192         * config/arm/arm.c (thumb_rtx_costs): Likewise.
13193         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
13194         * config/frv/frv.c (move_destination_operand, move_source_operand,
13195         condexec_dest_operand, condexec_source_operand,
13196         condexec_memory_operand): Likewise.
13197         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
13198         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
13199         (destination_xfmode_operand): Likewise.
13200         * config/mips/mips.h (PREDICATE_CODES): Likewise.
13201         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
13202         * config/s390/s390.c (general_s_operand): Likewise.
13203         * config/s390/s390.md (mov*): Likewise.
13204         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
13205
13206         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
13207         * expr.c (expand_expr_real_1): Likewise.
13208         * stmt.c (expand_decl): Likewise.
13209         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
13210
13211         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
13212         postponed_insns, put_var_into_stack, put_reg_into_stack,
13213         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
13214         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
13215         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
13216         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
13217         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
13218         purge_bitfield_addressof_replacements, purge_addressof_replacements,
13219         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
13220         struct insns_for_mem_walk_info, insns_for_mem_walk,
13221         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
13222         setjmp_protect_args): Remove.
13223         (push_function_context_to): Don't handle var_refs_queue.
13224         (pop_function_context_from, free_after_compilation): Likewise.
13225         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
13226         (assign_parms, allocate_struct_function): Likewise.
13227         (use_register_for_decl): New.
13228         (expand_function_end): Don't setjmp_protect.
13229         * function.h (struct emit_status): Update commentary.
13230         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
13231         (max_parm_reg, parm_reg_stack_loc): Remove.
13232         * passes.c (DFI_addressof): Remove.
13233         (dump_file_info): Remove addressof.
13234         (rest_of_handle_addressof): Remove.
13235         (rest_of_compilation): Don't call it.
13236         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
13237         * stmt.c (expand_decl): Use use_register_for_decl.
13238         * tree.h: Update decls.
13239         * web.c (mark_addressof): Remove.
13240         * doc/invoke.texi (-dF): Remove.
13241
13242 2004-07-03  Richard Henderson  <rth@redhat.com>
13243
13244         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
13245         instead of gen_mem_addressof.
13246         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
13247         TImode output register.
13248
13249 2004-07-03  Richard Henderson  <rth@redhat.com>
13250
13251         PR tree-optimization/16341
13252         * tree-sra.c (sra_walk_function): Increment to next stmt before
13253         processing the current stmt.
13254         (sra_insert_after): Always use BSI_SAME_STMT.
13255
13256 2004-07-03  Richard Henderson  <rth@redhat.com>
13257
13258         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
13259         fp plus with minus.
13260
13261 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13262
13263         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
13264         with tree_int_cst_equal.
13265
13266 2004-07-03  Andreas Schwab  <schwab@suse.de>
13267
13268         * config/ia64/ia64.md: Define new attribute "empty".
13269         (prologue_use, nop_x, insn_group_barrier): Set it.
13270
13271         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
13272         skip over "empty" insns.
13273
13274 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13275
13276         * tree-inline.c (initialize_inlined_parameters): Pass proper function
13277         context to gimplify_body.
13278         (walk_tree): Don't walk into types twice.
13279         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
13280
13281         * tree-sra.c (generate_element_init): Remove any useless conversions.
13282
13283         * gimplify.c (gimplify_conversion): Remove stripping useless
13284         conversions from here.
13285         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
13286         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
13287         Unshare before substituting PLACEHOLDER_EXPR.
13288         (gimplify_modify_expr_to_memset): Likewise.
13289         Pass address of TO to memset, not TO itself.
13290         (gimplify_init_constructor): Make copy of OBJECT so we have it each
13291         time we make an expression (to match a PLACEHOLDER_EXPR).
13292
13293         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
13294         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
13295         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
13296         * tree-ssa-dom.c (local_fold): Likewise.
13297
13298         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
13299         * langhooks.h (strct lang_hooks): New field type_max_size.
13300         * function.c (assign_temp): Call it.
13301
13302 2004-07-03  Steven Bosscher  <stevenb@suse.de>
13303
13304         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
13305         * config/sh/sh.md: Convert the SH1 pipeline description to
13306         a DFA model.
13307
13308 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
13309
13310         * c-decl.c (struct c_binding): Remove contour field; add
13311         depth, invisible, nested fields.
13312         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
13313         (B_IN_EXTERNAL_SCOPE): New convenience macros.
13314         (bind): Add invisible and nested arguments. Initialize
13315         new fields of struct c_binding; adjust loop scanning for
13316         insertion point.
13317         (free_binding_and_advance): Clear structure with memset.
13318         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
13319         in file scope, even if it's in external scope too.
13320         (pushdecl): Adjust to match.  Create invisible file-scope
13321         declarations for block-scope forward declarations of static functions.
13322         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
13323         (undeclared_variable, lookup_label, declare_label, define_label)
13324         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
13325         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
13326         (store_parm_decls_oldstyle): Adjust to match.
13327         (diagnose_mismatched_decls): Correct handling of linkage clashes.
13328         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
13329
13330         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
13331         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
13332
13333 2004-07-02  Richard Henderson  <rth@redhat.com>
13334
13335         * c-decl.c (grokdeclarator): Don't frob current_function_decl
13336         around variable_size.
13337         (set_decl_nonlocal): Remove.
13338         (store_parm_decls): Add stmts for pending sizes.
13339         * calls.c (calls_function, calls_function_1): Remove.
13340         (precompute_arguments): Don't call it.
13341         * cfgexpand.c (set_save_expr_context): Remove.
13342         (tree_expand_cfg): Don't call it.
13343         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
13344         (dwarf2out_finish): Likewise.
13345         * expr.c (emit_block_move): Adjust addresses to BLKmode.
13346         (store_constructor): Don't pre-evaluate SAVE_EXPR.
13347         (safe_from_p): Don't queue SAVE_EXPRs.
13348         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
13349         or build plain VAR_DECLs.
13350         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
13351         (fold): Likewise.
13352         (fold_checksum_tree): Don't special-case SAVE_EXPR.
13353         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
13354         (put_var_into_stack): Don't handle SAVE_EXPR.
13355         (gen_mem_addressof): Likewise.
13356         * function.h (struct function): Remove x_save_expr_regs.
13357         (save_expr_regs): Remove.
13358         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
13359         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
13360         * stor-layout.c (variable_size): Don't set it.
13361         (force_type_save_exprs, force_type_save_exprs_1): Remove.
13362         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
13363         all callers.  Don't set SAVE_EXPR_CONTEXT.
13364         * tree-inline.h (remap_save_expr): Update decl.
13365         * tree.c (save_expr): Update build size.
13366         (first_rtl_op): Don't handle SAVE_EXPR.
13367         (unsave_expr_1, contains_placeholder_p): Likewise.
13368         (decl_function_context): Likewise.
13369         * tree.def (SAVE_EXPR): Remove args 1 and 2.
13370         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
13371         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
13372
13373 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13374
13375         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
13376         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
13377         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
13378         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
13379         some first-person references and patronizing comments.  Based on
13380         printed manual.
13381         * doc/invoke.texi: Don't reference fortran@gnu.org.
13382         * doc/trouble.texi (Warning when a non-void function value is
13383         ignored): Rewrite.  From Russ Allbery and Chris Devers.
13384
13385 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
13386
13387         * tree-ssa-pre.c (bitmap_set_t): New.
13388         (bb_value_sets): avail_out is now a bitmap_set_t.
13389         (bitmap_find_leader): New function.
13390         (bitmap_value_insert_into_set): Ditto.
13391         (bitmap_set_copy): Ditto.
13392         (bitmap_value_replace_in_set): Ditto.
13393         (bitmap_set_contains_value): Ditto.
13394         (bitmap_set_new): Ditto.
13395         (bitmap_set_pool): New pool.
13396         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
13397         (insert_aux): Ditto.
13398         (add_to_sets): Ditto.
13399         (compute_avail): Ditto
13400         (eliminate): Ditto.
13401         (init_pre): Ditto.
13402         (fini_pre): Ditto.
13403         (execute_pre): Ditto.
13404
13405 2004-07-02  Roger Sayle  <roger@eyesopen.com>
13406
13407         * config/rs6000/rs6000.c (struct processor_costs): New structure
13408         used to hold instruction latencies/sizes for processor types.
13409         (rs6000_cost): New global variable pointing to current CPU's costs.
13410         (rs6000_override_options): Initialize rs6000_cost to point to the
13411         appropriate cost table based upon rs6000_cpu and optimize_size.
13412         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
13413         timings inline.
13414
13415 2004-07-02  Richard Henderson  <rth@redhat.com>
13416
13417         * expmed.c (make_tree): Don't use SET_DECL_RTL.
13418
13419 2004-07-02  Steven Bosscher  <stevenb@suse.de>
13420
13421         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
13422
13423 2004-07-01  Richard Henderson  <rth@redhat.com>
13424
13425         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
13426         (alpha_gp_save_rtx): Use assign_stack_local instead of
13427         gen_mem_addressof.
13428
13429 2004-07-01  Richard Henderson  <rth@redhat.com>
13430
13431         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
13432         (alpha_rtx_cost_data): Update to match.
13433         (alpha_rtx_cost_size): New.
13434         (alpha_rtx_costs): Honor optimize_size.
13435
13436 2004-07-01  Richard Henderson  <rth@redhat.com>
13437
13438         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
13439         * cfgexpand.c (tree_expand_cfg): Do it here.
13440         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
13441         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
13442         * config/mips/mips.c (mips_output_mi_thunk): And here.
13443         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
13444         * config/sh/sh.c (sh_output_mi_thunk): And here.
13445         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
13446
13447 2004-07-01  Richard Henderson  <rth@redhat.com>
13448
13449         * tree.def (RTL_EXPR): Remove.
13450         * c-typeck.c (lvalue_p): Don't handle it.
13451         * expr.c (safe_from_p): Likewise.
13452         (expand_expr_real_1): Likewise.
13453         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
13454         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
13455         * gengtype.c (adjust_field_tree_exp): Likewise.
13456         * stmt.c (warn_if_unused_value): Likewise.
13457         * tree-gimple.c (recalculate_side_effects): Likewise.
13458         * tree-pretty-print.c (dump_generic_node): Likewise.
13459         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
13460         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
13461         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
13462
13463         * stmt.c (struct stmt_status): Remove x_last_expr_type,
13464         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
13465         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
13466         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
13467         all the bits that tracked last_expr.
13468         (expand_end_bindings): Don't track last_expr.
13469         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
13470         (clear_last_expr): Remove.
13471         (expand_asm): Don't call it.
13472         (expand_asm_operands, expand_end_cond): Likewise.
13473         (expand_naked_return, expand_null_return_1): Likewise.
13474         * c-typeck.c (c_begin_compound_stmt): Likewise.
13475         * cfgexpand.c (expand_block): Use expand_expr_stmt.
13476         * expr.c (expand_expr_real_1): Likewise.
13477         * tree.h: Update prototypes.
13478
13479         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
13480         (struct emit_status): Remove sequence_rtl_expr.
13481         (struct function): Remove x_rtl_expr_chain.
13482         (seq_rtl_expr, rtl_expr_chain): Remove.
13483         * function.c (struct temp_slot): Remove rtl_expr.
13484         (assign_stack_temp_for_type): Don't set it.
13485         (free_temp_slots, pop_temp_slots): Don't check it.
13486         (free_after_compilation): Don't clear x_rtl_expr_chain.
13487         (fixup_var_refs): Don't search it.
13488         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
13489         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
13490         or seq_rtl_expr.
13491         (push_topmost_sequence): Likewise.
13492         (end_sequence, init_emit): Likewise.
13493         (start_sequence_for_rtl_expr): Remove.
13494         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
13495         * rtl.h (preserve_rtl_expr_result): Remove.
13496
13497 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
13498
13499         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
13500         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
13501         typos.
13502
13503 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
13504
13505         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
13506         (STANDARD_STARTFILE_PREFIX_2): Define.
13507         (standard_startfile_prefix_1): Initialize to
13508         STANDARD_STARTFILE_PREFIX_1.
13509         (standard_startfile_prefix_2): Initialize to
13510         STANDARD_STARTFILE_PREFIX_2.
13511         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
13512         (STANDARD_STARTFILE_PREFIX_1): Define.
13513         (STANDARD_STARTFILE_PREFIX_2): Define.
13514         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
13515         (STANDARD_STARTFILE_PREFIX_2): Document.
13516
13517 2004-07-01  Richard Henderson  <rth@redhat.com>
13518
13519         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
13520         in order to disable scalarization.  Instead set a flag and wait
13521         for a candidate decl.
13522
13523 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
13524
13525         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
13526         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
13527         Use terminology "testsuite" and "enumerated".
13528
13529 2004-07-01  Richard Henderson  <rth@redhat.com>
13530
13531         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
13532         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
13533         (initial_return_save): Likewise.
13534         (flush_queued_reg_saves): Remap register numbers.
13535         (dwarf2out_return_reg): Likewise.
13536
13537 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13538
13539         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
13540
13541         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
13542         access functions for lower bound and element size and only output
13543         if lower bound nonzero or element size not same as that of type.
13544         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
13545
13546 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13547
13548         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
13549
13550 2004-07-01  Per Bothner  <per@bothner.com>
13551
13552         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
13553
13554 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
13555
13556         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
13557         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
13558         first operand.  Don't optimize if the bitfield is volatile.
13559
13560 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13561
13562         * c-pretty-print.c (pp_c_postfix_expression): Handle
13563         floating-point comparison operators.
13564         (pp_c_expression): Pass floating-point comparison
13565         operators to pp_c_postfix_expression.
13566
13567 2004-07-01  Roger Sayle  <roger@eyesopen.com>
13568
13569         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
13570         rtx_cost instead of "had_mult" to determine whether the transformed
13571         expression is cheaper than the original.
13572
13573 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
13574
13575         * alias.c (get_alias_set, canon_rtx, get_addr,
13576         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
13577         Use MEM_P.
13578         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
13579         expand_builtin): Likewise.
13580         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
13581         Likewise.
13582         * combine.c (can_combine_p, combinable_i3pat, try_combine,
13583         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
13584         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
13585         record_dead_and_set_regs_1, get_last_value_validate,
13586         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
13587         * cse.c (check_dependence, canon_hash, equiv_constant,
13588         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
13589         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
13590         count_reg_usage): Likewise.
13591         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
13592         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
13593         cselib_record_sets): Likewise.
13594         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
13595         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
13596         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
13597         * df.c (df_uses_record): Likewise.
13598         * dojump (do_jump): Likewise.
13599         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
13600         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
13601         decl_start_label): Likewise.
13602         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
13603         operand_subword, change_address_1, make_safe_from): Likewise.
13604         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
13605         stabilize, force_not_mem): Likewise.
13606         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
13607         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
13608         * expr.c (convert_move, convert_modes, emit_block_move,
13609         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
13610         emit_move_insn_1, expand_assignment, store_expr,
13611         store_constructor_field, store_constructor, store_field,
13612         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
13613         Likewise.
13614         * final.c (cleanup_subreg_operands, alter_subreg,
13615         get_mem_expr_from_op): Likewise.
13616         * flow.c (notice_stack_pointer_modification_1,
13617         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
13618         Likewise.
13619         * function.c (mark_temp_addr_taken, preserve_temp_slots,
13620         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
13621         optimize_bit_field, flush_addressof, purge_addressof_1,
13622         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
13623         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
13624         keep_stack_depressed): Likewise.
13625         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
13626         noce_process_if_block, find_memory): Likewise.
13627         * integrate.c (subst_constants, allocate_initial_values): Likewise.
13628         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
13629         update_equiv_regs): Likewise.
13630         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
13631         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
13632         * optabs.c (expand_abs, emit_unop_insn): Likewise.
13633         * passes.c (rest_of_handle_final): Likewise.
13634         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13635         move2add_note_store): Likewise.
13636         * ra-build.c (detect_remat_webs): Likewise.
13637         * ra-debug.c (dump_static_insn_cost): Likewise.
13638         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
13639         * recog.c (validate_change, apply_change_group, cancel_changes,
13640         validate_replace_rtx_1, general_operand, register_operand,
13641         nonmemory_operand, push_operand, pop_operand, memory_operand,
13642         indirect_operand, asm_operand_ok, offsettable_memref_p,
13643         offsettable_nonstrict_memref_p, constrain_operands,
13644         store_data_bypass_p): Likewise.
13645         * reg-stack.c (subst_stack_regs_pat): Likewise.
13646         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
13647         copy_cost, reg_scan_mark_refs): Likewise.
13648         * regmove.c (optimize_reg_copy_3, stack_memref_p,
13649         combine_stack_adjustments_for_block): Likewise.
13650         * regrename.c (copyprop_hardreg_forward_1): Likewise.
13651         * reload.c (can_reload_into, push_reload, decompose, immune_p,
13652         find_reloads, find_reloads_address, find_reloads_address_1,
13653         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
13654         find_equiv_reg): Likewise.
13655         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
13656         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
13657         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
13658         delete_address_reloads): Likewise.
13659         * resource.c (mark_referenced_resources): Likewise.
13660         * rtlanal.c (get_jump_table_offset, count_occurrences,
13661         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
13662         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
13663         num_sign_bit_copies1): Likewise.
13664         * rtlhooks.c (gen_lowpart_general): Likewise.
13665         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13666         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
13667         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
13668         sdbout_global_decl): Likewise.
13669         * simplify-rtx.c (simplify_subreg): Likewise.
13670         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
13671         expand_anon_union_decl, expand_end_case_type): Likewise.
13672         * unroll.c (calculate_giv_inc): Likewise.
13673         * var-tracking.c (stack_adjust_offset_pre_post,
13674         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
13675         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
13676         vt_add_function_parameters): Likewise.
13677         * varasm.c (make_var_volatile, notice_global_symbol,
13678         assemble_external, decode_addr_const, mark_weak,
13679         default_encode_section_info): Likewise.
13680
13681 2004-07-01  Steven Bosscher  <stevenb@suse.de>
13682
13683         * stmt.c (check_seenlabel): Remove.
13684         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
13685
13686 2004-07-01  Richard Henderson  <rth@redhat.com>
13687
13688         * function.h (struct function): Remove x_function_call_count.
13689         (function_call_count): Remove.
13690         * calls.c (expand_call): Don't set it.
13691         * integrate.c (copy_rtx_and_substitute): Likewise.
13692
13693         * function.h (struct function): Remove x_cleanup_label.
13694         (cleanup_label): Remove.
13695         * stmt.c (expand_value_return): Don't use it.
13696         * function.c (free_after_compilation): Don't set it.
13697         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
13698         * cfgexpand.c (tree_expand_cfg): Update call.
13699         * tree.h (expand_function_start): Update decl.
13700
13701 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
13702
13703         PR c/1027
13704         * c-lang.c (c_initialize_diagnostics): Move from here ...
13705         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
13706         (c_tree_printer): Use pretty-printer to format %T.
13707         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
13708         before '*' if not C++.
13709         (pp_c_direct_abstract_declarator): Don't try to print array upper
13710         bound for flexible array members.
13711         * c-tree.h: Include "diagnostic.h".
13712         (c_initialize_diagnostics): Declare.
13713         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
13714         * c-format.c (format_type_warning): New function.  Improve
13715         diagnostics for incorrect format argument types.
13716         (check_format_types): Use it.  Add two parameters.  Use the
13717         TYPE_MAIN_VARIANT of wanted_type.
13718         (check_format_info_main): Pass new parameters to
13719         check_format_types.
13720         (struct format_wanted_type): Update comment.
13721
13722 2004-07-01  Nick Clifton  <nickc@redhat.com>
13723
13724         * target.h (struct gcc_target): Add new field to struct cxx:
13725         import_export_class.
13726         * target-def.h (TARGET_CXX): Initialise the new field.
13727         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
13728         the new field.
13729         * doc/tm.texi: Document the new target hook.
13730
13731 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13732
13733         * builtins.c (fold_builtin_classify): Fix typo.
13734
13735 2004-07-01  Richard Henderson  <rth@redhat.com>
13736
13737         * function.c (identify_blocks, identify_blocks_1): Remove.
13738         * function.h (identify_blocks): Remove.
13739         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
13740
13741 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13742
13743         * builtins.c (fold_builtin_classify): New.
13744         (fold_builtin_unordered_cmp): Fix commentary.
13745         (fold_builtin): Use it.
13746         * builtins.def: Define builtins for isnan,
13747         isnanf, isnanl, finite, finitef, finitel,
13748         isinf, isinff, isinfl.
13749
13750 2004-07-01  Richard Henderson  <rth@redhat.com>
13751
13752         * function.h (struct function): Remove dont_emit_block_notes.
13753         * gimple-low.c (lower_function_body): Don't set it.
13754         * cfgexpand.c (expand_block): Don't check it.
13755         * cfglayout.c (insn_locators_initialize): Likewise.
13756         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
13757         * passes.c (rest_of_compilation): Likewise.
13758         * stmt.c (expand_start_bindings_and_block): Likewise.
13759         (expand_end_bindings): Likewise.
13760
13761 2004-07-01  Richard Henderson  <rth@redhat.com>
13762
13763         * cgraph.h (cgraph_build_static_cdtor): Declare.
13764         * cgraphunit.c (cgraph_build_static_cdtor): New.
13765         * c-objc-common.c (build_cdtor): Use it.
13766         * coverage.c (create_coverage): Likewise.
13767         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
13768         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
13769
13770 See ChangeLog.11 for earlier changes.