OSDN Git Service

72505d641adc37281437e34e5e6d14ba885af81b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-13  Zack Weinberg  <zack@codesourcery.com>
2
3         * config.in: Regenerate after removal of libbanshee.
4
5 2004-09-13  Andrew MacLeod  <amacleod@redhat.com>
6
7         PR tree-optimization/17400
8         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9         coalesce partitions when one occurs in an abnormal PHI.
10                                                               
11 2004-09-13  Andrew Pinski  <apinski@apple.com>
12
13         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's
14         name to _new_size.
15
16 2004-09-13  Richard Henderson  <rth@redhat.com>
17
18         PR inline-asm/6806
19         * cselib.c (cselib_invalidate_rtx): Export.  Remove unused args.
20         (cselib_invalidate_rtx_note_stores): New.
21         (cselib_record_sets, cselib_process_insn): Update to match.
22         * cselib.h (cselib_invalidate_rtx): Declare.
23         * postreload.c (reload_cse_simplify): Invalidate asm clobbers.
24
25 2004-09-13  Richard Henderson  <rth@redhat.com>
26
27         PR tree-opt/10528
28         * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR,
29         after copying its argument.
30
31 2004-09-13  Joseph S. Myers  <jsm@polyomino.org.uk>
32
33         * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c,
34         c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting
35         in diagnostics.  Use %' for English apostrophes.
36         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define.
37         (pedwarn_c90, pedwarn_c99): Use it.
38         * c-decl.c (lookup_label): Quote label name in diagnostic.
39         * c-parse.in (yyprint): Use ' instead of ` for left quote.
40         * c-typeck.c (warn_for_assignment): Likewise.
41
42 2004-09-13  Jan Hubicka  <jh@suse.cz>
43
44         * i386.c (x86_schedule): New global variable.
45         (override_options): Disable scheduling when not supported.
46         * i386.h (x86_schedule): Declare.
47         (TARGET_SCHEDULE): New macro.
48
49 2004-09-12  Richard Henderson  <rth@redhat.com>
50
51         PR c++/16254
52         * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove.
53         * tree.c, tree.h (has_cleanups): Remove.
54
55 2004-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
56
57         * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname
58         arguments of the phi nodes correctly.
59
60 2004-09-12  Jan Hubicka  <jh@suse.cz>
61
62         * ggc-common.c (cmp_statistics): Fix sorting.
63
64 2004-09-12  David Edelsohn  <edelsohn@gnu.org>
65
66         PR target/16795
67         * expmed.c (expand_divmod): If cheap power of 2 divide is
68         available, use it for negative constant as well.
69
70 2004-09-12  Andrew Pinski  <apinski@apple.com>
71
72         * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a
73         size of 0.
74
75         * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove.
76
77 2004-09-12  Richard Henderson  <rth@redhat.com>
78
79         * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one
80         or minus one.
81         (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for
82         post-reload, and scratch NULL.
83         * config/i386/i386.md (testqi_1): Use FLAGS_REG name.
84         (x86_shift_adj_2): Use ix86_expand_clear.
85         (ashldi3): Remove CMOVE expansion difference.
86         (ashldi3_1): Remove.
87         (*ashldi3_1): Rename from *ashldi3_2.  Use reg_or_pm1_operand and
88         add constraints for immediates.  New peephole for split-with-temp.
89         Run splitter after peep2 pass.
90         (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly.
91         (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly.
92         (setcc_2): Rename with *.
93         * config/i386/predicates.md (reg_or_pm1_operand): New.
94         (ashldi_input_operand): New.
95
96 2004-09-12  Richard Henderson  <rth@redhat.com
97
98         * print-rtl.c (print_decl_name): New.
99         (print_mem_expr): Use it.
100
101 2004-09-12  Richard Henderson  <rth@redhat.com
102
103         PR 17186, part deux
104         * except.c (sjlj_emit_function_exit): Fix logic locating
105         sjlj_exit_after in final block.
106
107 2004-09-12  Toon Moene  <toon@moene.indiv.nluug.nl>
108
109         * common.opt: Remove flags -fmove-all-movables and
110         -freduce-all-givs.
111         * loop-invariant.c (find_invariants_to_move):
112         Remove all uses of flag_move_all_movables.
113         * loop.c (move_movables): Remove all uses of
114         flag_move_all_movables.
115         (strength_reduce): Remove all uses of
116         flag_reduce_all_givs.
117         * doc/invoke.texi: Remove documentation of flags
118         -fremove-all-movables and -freduce-all-givs.
119
120 2004-09-11  Roger Sayle  <roger@eyesopen.com>
121
122         PR middle-end/17411
123         * tree-sra.c (generate_element_zero): Revert recent build_int_cst
124         change. elt->type may be a floating point type, so use fold_convert.
125
126 2004-09-11  Geoffrey Keating  <geoffk@apple.com>
127
128         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark
129         the thing referenced as used, not the stub itself.
130
131 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
132
133         * c-tree.h (enum c_storage_class): New.
134         (struct c_declspecs): Add storage_class, inline_p and thread_p.
135         * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty
136         declarations and "auto" or "register" in file scope empty
137         declarations.  Give more specific warnings for other cases of
138         storage class specifiers in empty declarations.
139         (grokdeclarator): Update for new structures.  Don't check for
140         multiple storage classes.  Diagnose file-scope "register" if
141         pedantic.
142         (build_null_declspecs): Update.
143         (declspecs_add_scspec): Update.  Diagnose multiple storage class
144         specifiers and invalid uses of "__thread".
145
146 2004-09-11  Zack Weinberg  <zack@codesourcery.com>
147
148         * tree.c (tree_code_size): New function, bulk of code from tree_size.
149         (tree_size, make_node): Use it.
150         * tree-ssa-pre.c (init_pre): Use it.
151         * tree.h: Prototype it.
152
153 2004-09-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
154
155         * tree-cfg.c (set_bb_for_stmt): Use PHI_BB.
156         * tree-dfa.c (compute_immediate_uses, add_immediate_use,
157         redirect_immediate_use): Use PHI_DF.
158         * tree-flow-inline.h (stmt_ann): Abort on phi nodes.
159         (bb_for_stmt): Use PHI_BB.
160         (get_immediate_uses): Use PHI_DF.
161         * tree-ssa-dse.c (max_stmt_uid): New variable.
162         (get_stmt_uid): New function.
163         (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi
164         node annotations.
165         * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations.
166         (max_uid): Renamed to max_stmt_uid.
167         (get_stmt_uid): New function.
168         (maybe_queue_var, single_reachable_address, determine_lsm): Do not use
169         phi node annotations.
170         * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations.
171         * tree.h (PHI_BB, PHI_DF): New accessor functions.
172         (struct tree_phi_node): Add bb and df fields.
173
174 2004-09-11  Richard Henderson  <rth@redhat.com>
175
176         PR middle-end/17416
177         * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug
178         in conflict loop.
179
180 2004-09-11  Jan Hubicka  <jh@suse.cz>
181
182         * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment.
183         (EMIT_MODE_SET): UNINITIALIZED mode needs no set.
184         * i386.md (i387_cw): Add 'uninitialized' mode.
185
186         * profile.c (BB_TO_GCOV_INDEX): move more to the front.
187         (output_location): Break out from ....
188         (branch_prob): ... here; handle gcov output on trees.
189         * toplev.c (process_options): No longer be sorry about coverage for
190         trees.
191
192 2004-09-11  Steven Bosscher  <stevenb@suse.de>
193
194         PR c++/17412
195         * fold-const.c (fold): Do not try to fold the operand of a
196         CLEANUP_POINT_EXPR if that operand does itself not have any
197         operands.
198
199         PR middle-end/17417
200         * langhooks.c (lhd_decl_printable_name): Make sure that this
201         function is called with is a decl node that has an identifier.
202         * tree-pretty-print.c (dump_function_name): New function to
203         wrap PRINT_FUNCTION_NAME and dump_decl_name.
204         (print_call_name): Use it.
205
206 2004-09-11  Mohan Embar  <gnustuff@thisiscool.com>
207
208         * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE,
209         "config.h" if not.
210
211 2004-09-11  Jakub Jelinek  <jakub@redhat.com>
212
213         * tree-ssa-alias.c (collect_points_to_info_r): Handle
214         pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing
215         to OFFSET.
216
217 2004-09-11  Richard Henderson  <rth@redhat.com>
218
219         * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr.
220         (expand_expr_addr_expr): New function.  Take ADDR_EXPR instead of the
221         operand of the ADDR_EXPR.
222         (expand_expr_real_1): Update to match.
223
224 2004-09-11  David Edelsohn  <edelsohn@gnu.org>
225
226         PR target/17277
227         * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to
228         choose 64-bit version.
229
230 2004-09-11  Richard Henderson  <rth@redhat.com>
231
232         PR c/17396
233         * c-typeck.c (build_unary_op): Add legacy offsetof hack.
234
235 2004-09-11  Kazu Hirata  <kazu@cs.umass.edu>
236
237         * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi,
238         doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi:
239         Insert @: after i.e. or e.g.
240
241 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
242
243         * tree-pretty-print.c (dump_decl_name): Print unnamed decls as
244         D.xxx rather than <Dxxx>.
245
246 2004-09-10  Adam Nemet  <anemet@lnxw.com>
247
248         * configure.ac (AC_MSG_CHECKING(what linker to use)):
249         in_tree_ld_is_elf should be true for LynxOS.
250         * configure: Regenerate.
251
252 2004-09-10  Adam Nemet  <anemet@lnxw.com>
253
254         * Makefile.in (all.cross): Add srcextra.
255
256 2004-09-10  Roger Sayle  <roger@eyesopen.com>
257
258         PR middle-end/17024
259         * fold-const.c (fold_cond_expr_with_comparison): Handle unordered
260         floating point comparison operators.  Change aborts to gcc_asserts.
261
262 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
263
264         * final.c (output_asm_insn): Correct problem with -fverbose-asm.
265
266 2004-09-10  James E Wilson  <wilson@specifixinc.com>
267
268         * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference.
269         (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment.
270
271         * convert.c (convert_to_vector): Replace recursive call with
272         error_mark_node.
273
274         * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0.
275         Add integer argument named constant.  Use const_tiny_rtx instead of
276         CONST0_RTX.
277         (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX
278         and CONST1_RTX.
279         (init_emit_once): Fix users of gen_const_vector.  Set CONST1_RTX for
280         vector types.
281         * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead
282         of gen_rtx_raw_CONST_VECTOR.
283
284 2004-09-10  Eric Christopher  <echristo@redhat.com>
285
286         PR c/16046
287         * c-parse.in (attribute): Add NULL_TREE for error case
288         for error recovery.
289
290 2004-09-10  Zack Weinberg  <zack@codesourcery.com>
291
292         * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h.
293         (extract_interface_info): Delete prototype.
294         * c-decl.c (extract_interface_info): Delete stub.
295         * c-lex.c (get_fileinfo): Initialize file_info_tree here, if
296         it's not already been done ...
297         (init_c_lex): ... not here.
298         (fe_file_change): Don't call extract_interface_info.
299
300 2004-09-11  Joseph S. Myers  <jsm@polyomino.org.uk>
301
302         * c-tree.h (struct c_declspecs): Remove typedef_decl.  Add
303         typedef_p and typedef_signed_p.
304         * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl.
305         (grokdeclarator): Don't use typedef_decl for warn_deprecated_use.
306         Check typedef_p and typedef_signed_p, not typedef_decl.
307         (grokfield): Check typedef_p, not typedef_decl.
308         (build_null_declspecs): Initialize typedef_p and typedef_signed_p,
309         not typedef_decl.
310         (declspecs_add_type): Set typedef_p and typedef_signed_p, not
311         typedef_decl.
312
313 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
314
315         * doc/tm.texi, doc/tree-ssa.texi: Fix typos.
316
317 2004-09-10  Geoffrey Keating  <geoffk@apple.com>
318
319         * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless
320         temporary variables.
321
322         * dbxout.c (dbxout_block): Update for
323         current_function_func_begin_label a string.
324         * dwarf2out.c (dwarf2out_begin_prologue): Likewise.
325         * except.c (dw2_output_call_site_table): Likewise.
326         * toplev.c (current_function_func_begin_label): Likewise.
327         * tree.h (current_function_func_begin_label): Likewise.
328         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise.
329
330         * final.c (output_asm_insn): Use strtoul instead of atoi, save a
331         loop.
332
333         * config/darwin.c: Include target.h.
334         (struct machopic_indirection): Make ptr_name a string.
335         (machopic_indirection_hash): Update for ptr_name a string.
336         (machopic_indirection_eq): Likewise.
337         (machopic_indirection_name): Likewise.
338         (machopic_output_indirection): Likewise.
339         (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a
340         string.  Don't expect stub names to be in the identifier hash table.
341         Do call strip_name_encoding before looking up entry in ID hash table.
342         * config/t-darwin (darwin.o): Add target.h to dependencies.
343
344         * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead
345         of fprintf for register names.
346
347         * output.h (unlikely_section_label): Delete declaration.
348         (unlikely_text_section_name): Likewise.
349         * varasm.c (unlikely_section_label_printed): Make static.
350         (unlikely_section_label): Likewise.
351         (unlikely_text_section_name): Likewise.
352         (assemble_start_function): Use reconcat.
353
354         * rtl.def (REG): Add comment to describe third field.
355
356 2004-09-10  Andrew Pinski  <apinski@apple.com>
357
358         * config/darwin.c (machopic_mcount_stub_name): Call
359         machopic_indirection_name instead of making the string
360         ourselves.
361
362 2004-09-10  Diego Novillo  <dnovillo@redhat.com>
363
364         Revert
365
366         2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
367
368             * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
369             memory tag is call clobbered, so are its aliases.
370             (group_aliases): When two memory tags being grouped, if one is
371             call clobbered, so are the other and its aliases.
372             (add_may_alias): Remove call-clobbering stuff.
373             (replace_may_alias): Likewise.
374             (merge_pointed_to_info): Merge pt_global_mem
375
376 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
377
378         * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,
379         genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c,
380         passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c,
381         tree-scalar-evolution.c, tree-ssa-copyrename.c,
382         tree-ssa-live.c, tree-ssa-live.h: Fix comment typos.
383
384 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
385
386         * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants.
387         (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG
388         pair.  Remove match_dup from inputs.  Remove masaccs handling.
389         (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair.
390         (masaccs, mdasaccs): Turn into define_insns.
391
392 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
393
394         * tree-tailcall.c (process_assignment): Only do accumulator transforms
395         for floating-point types if flag_unsafe_math_optimizations.
396
397 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
398
399         * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c,
400         config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h,
401         config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md,
402         config/h8300/h8300.md, config/i386/gmm_malloc.h,
403         config/ia64/ia64.md, config/ip2k/libgcc.S,
404         config/mips/mips-ps-3d.md, config/mips/mips.c,
405         config/rs6000/rs6000.c, config/s390/s390.c,
406         config/sh/symbian.c: Fix comment typos.
407
408 2004-09-10  Andreas Krebbel  <krebbel1@de.ibm.com>
409
410         * config/s390/s390.c (s390_emit_prologue): Added missing
411         "{}" brackets.
412
413 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
414
415         * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix
416         typos.  Follow spelling conventions.
417
418 2004-09-10  Joseph S. Myers  <jsm@polyomino.org.uk>
419
420         * toplev.c (warn_deprecated_use): Correct logic for saying "type"
421         in diagnostic.  Don't dereference NULL TYPE_NAME.
422
423 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
424
425         * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,
426         tree-data-ref.c, tree-flow.h, tree-ssa-operands.c,
427         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
428         value-prof.c: Fix comment typos.  Follow spelling conventions.
429
430 2004-09-10  Jan Hubicka  <jh@suse.cz>
431
432         * tree-ssa-dce.c (remove_dead_stmt): Update profile.
433         * tree-split_edge.c (tree_split_edge): Likewise.
434         (thread_jumps): Likewise.
435
436 2004-09-10  Kazu Hirata  <kazu@cs.umass.edu>
437
438         * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment
439         typos.
440
441 2004-09-10  Paolo Bonzini  <bonzini@gnu.org>
442
443         * cgraph.h (cgraph_dump_file): Do not declare.
444         * cgraphunit.c (cgraph_dump_file): Declare as static.
445         (init_cgraph): New.
446         * toplev.c (cgraph_dump_file): Do not declare.
447         (compile_file): Call init_cgraph.
448         * tree-dump.c (dump_files): Add IPA dump file, remove
449         XML dump of call graph.
450         (get_dump_file_name): Support IPA dump file naming scheme.
451         * tree.h (enum tree_dump_index): Add IPA dump file, remove
452         XML dump of call graph.
453         * doc/invoke.texi (Debugging Options): Document the new options.
454
455 2004-09-10  Richard Sandiford  <rsandifo@redhat.com>
456
457         * doc/extend.texi: Document the FR-V built-in functions.
458
459 2004-09-09  James E Wilson  <wilson@specifixinc.com>
460
461         * doc/sourcebuild.texi: Delete libbanshee reference.
462
463 2004-09-10  Kelley Cook  <kcook@gcc.gnu.org>
464
465         * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command.
466
467 2004-09-09  James E Wilson  <wilson@specifixinc.com>
468
469         * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE
470         before calling vector_types_convertible_p.
471         (digest_init): Check that inside_init has VECTOR_TYPE before calling
472         vector_types_convertible_p.  Don't give another error if
473         convert_for_assignment returns error_mark_node.
474
475 2004-09-09  Roger Sayle  <roger@eyesopen.com>
476
477         PR middle-end/17055
478         * fold-const.c (build_zero_vector): New function to construct a
479         vector (either floating point or integer) of zeros.
480         (fold_convert): Internally, enable conversions of integer zero
481         to arbitrary vector types, using the new build_zero_vector.
482
483 2004-09-09  Roger Sayle  <roger@eyesopen.com>
484
485         * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to
486         expand a left shift by an immediate constant as either an ashl or
487         a sequence of additions.
488         (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function
489         instead of calling gen_ashlsi3 with a constant directly.
490
491 2004-09-09  Roger Sayle  <roger@eyesopen.com>
492
493         * config/i386/i386.c (ix86_split_long_move): When optimizing for
494         size, and the low and high parts of a DImode constant are equal,
495         copy one register to another instead of loading the same immediate
496         value twice.
497
498 2004-09-09  Richard Henderson  <rth@redhat.com>
499
500         PR middle-end/17367
501         * function.c (assign_parm_setup_block): Only put PARALLELs into
502         a register if use_register_for_decl.
503
504 2004-09-09  Eric Christopher  <echristo@redhat.com>
505
506         * ra-colorize.c (reset_lists): Move variable declaration inside
507         ENABLE_CHECKING to avoid unused variable warnings when
508         not --enable-checking.
509         (check_colors): Ditto.
510
511 2004-09-09  Mike Stump  <mrs@apple.com>
512
513         * version.c (version_string): Bump to 4.0.0.
514         * doc/include/gcc-common.texi (version-GCC): Likewise.
515
516 2004-09-10  Jakub Jelinek  <jakub@redhat.com>
517
518         * doc/extend.texi (nothrow attribute): The attribute is not
519         implemented in 3.2 and earlier.
520
521 2004-09-09  Steve Ellcey  <sje@cup.hp.com>
522
523         * genrecog.c (compute_predicate_codes): Use op0_codes
524         instead of codes.
525
526 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
527
528         * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET
529         implementation changes.
530
531 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
532
533         * combine.c (try_combine): When swapping i2 and i3, newi2pat may be
534         a PARALLEL instead of a SET due to added clobbers.
535
536 2004-09-09  Ulrich Weigand  <uweigand@de.ibm.com>
537
538         * reload.c (find_reloads_address): Pass correct operand to
539         maybe_memory_address_p.
540
541 2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
542
543         * Makefile.in: Remove libbanshee, tree-alias-*.
544         Remove tree-alias-common.h dependencies.
545         * common.opt: Remove -ftree-points-to.
546         * configure.ac: Remove libbanshee.
547         * flags.h: Remove pta_type, flag_tree_points_to.
548         * gengtype.c (open_base_files): Remove tree-alias-type.h.
549         * opts.c (OPT_ftree_points_to): Remove.
550         * toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
551         * tree-dfa.c: Remove tree-alias-common.h
552         * tree-into-ssa.c: Ditto.
553         * tree-outof-ssa.c: Ditto.
554         * tree-ssa-copyrename.c: Ditto.
555         * tree-ssa-live.c: Ditto.
556         * tree-optimize.c: Ditto.
557         * tree-ssa.c: Ditto.
558         Remove pass_build_pta, pass_del_pta.
559         * tree-pass.h: Ditto.
560         * tree-ssa-alias.c: Remove tree-alias-common.h.
561         (struct alias_stats_d): Remove pta_queries, pta_resolved.
562         (pass_may_alias): Remove PROP_pta requirement.
563         (may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
564         (get_tmt_for): Ditto.
565         (dump_alias_stats): Ditto.
566         * doc/passes.texi: Remove blurb about points-to analysis.
567         * fortran/Make-lang.in: Remove tree-alias-*.o.
568
569 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
570
571         * genattrtab.c (write_insn_cases): New function, split out from
572         write_attr_case.  Correctly handle define_peepholes when printing
573         the instruction name.
574         (write_attr_case, write_const_num_delay_slots): Use write_insn_cases.
575
576 2004-09-09  Hans-Peter Nilsson  <hp@axis.com>
577
578         PR target/17377
579         * config/cris/cris-protos.h (cris_return_address_on_stack): Declare.
580         * config/cris/cris.c (cris_return_address_on_stack): New function.
581         * config/cris/cris.md ("return"): For location of return address,
582         also check cris_return_address_on_stack.
583
584 2004-09-09  Diego Novillo  <dnovillo@redhat.com>
585
586         * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in
587         calling phi_ssa_name_p.
588
589 2004-09-09  Richard Henderson  <rth@redhat.com>
590
591         PR c/17322
592         * c-typeck.c (valid_compound_expr_initializer): Use only
593         initializer_constant_valid_p, and not TREE_CONSTANT.
594         (digest_init): Likewise.
595         (output_init_element): Likewise.
596
597 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
598
599         * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1,
600         live_out_1, prune_hardregs_for_mode, init_one_web_common,
601         reinit_one_web, add_subweb, add_subweb_2, init_web_parts,
602         record_conflict, compare_and_free_webs, init_webs_defs_uses,
603         parts_to_webs_1, parts_to_webs, reset_conflicts,
604         check_conflict_numbers, remember_web_was_spilled, handle_asm_insn,
605         ra_build_free): Use gcc_assert and gcc_unreachable instead of abort.
606         * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end,
607         put_move, remove_move, combine, select_spill, colorize_one_web,
608         try_recolor_web, insert_coalesced_conflicts, check_colors,
609         break_precolored_alias, restore_conflicts_from_coalesce,
610         sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise.
611         * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads,
612         reloads_to_loads, rewrite_program2, emit_colors): Likewise.
613         * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra,
614         check_df): Likewise.
615         * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc,
616         real_arithmetic, real_compare, real_exponent, real_ldexp,
617         real_identical, real_to_integer, real_to_integer2, real_to_decimal,
618         real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo,
619         real_digit, real_nan, real_maxval, round_for_format, real_convert,
620         real_to_target, real_from_target, real_hash, encode_ieee_single,
621         encode_ieee_double, encode_ieee_extended, encode_ieee_quad,
622         encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single,
623         encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise.
624         * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok,
625         extract_insn, peep2_next_insn, peep2_reg_dead_p,
626         peep2_find_free_register, peephole2_optimize, store_data_bypass_p,
627         if_test_bypass_p): Likewise.
628         * reg-stack.c (record_label_references, get_asm_operand_n_inputs,
629         stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn,
630         emit_swap_insn, swap_to_top, move_for_stack_reg,
631         subst_stack_regs_pat, subst_asm_stack_regs, change_stack,
632         compensate_edge, convert_regs_1): Likewise.
633         * regclass.c (init_reg_sets, init_reg_sets_1,
634         memory_move_secondary_cost): Likewise.
635         * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx):
636         Likewise.
637         * reload.c (push_secondary_reload, find_valid_class, push_reload,
638         operands_match_p, decompose, immune_p, find_reloads,
639         find_reloads_toplev, find_reloads_address_1, subst_reloads,
640         copy_replacements, refers_to_regno_for_reload_p,
641         reg_overlap_mentioned_for_reload_p): Likewise.
642         * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload,
643         count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn,
644         verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use,
645         reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict,
646         choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns,
647         do_output_reload, fixup_abnormal_edges): Likewise.
648         * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags,
649         fill_slots_from_thread, relax_delay_slots): Likewise.
650         * resource.c (mark_referenced_resources, mark_set_resources):
651         Likewise.
652         * rtl.c (copy_rtx, rtx_equal_p): Likewise.
653         * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p,
654         dead_or_set_p, find_reg_fusage, remove_note, replace_rtx,
655         subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p,
656         find_first_parameter_load, can_hoist_insn_p, hoist_update_store,
657         hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise.
658         * rtlhooks.c (gen_lowpart_general): Likewise.
659         * sbitmap.c (sbitmap_difference): Likewise.
660         * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2,
661         sched_analyze, add_forward_dependence): Likewise.
662         * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise.
663         * sched-rgn.c (debug_regions, compute_trg_info, schedule_region,
664         schedule_insns): Likewise.
665         * sched-vis.c (print_pattern): Likewise.
666         * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise.
667         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
668         simplify_const_relational_operation, simplify_ternary_operation,
669         simplify_immed_subreg, simplify_subreg, simplify_gen_subreg):
670         Likewise.
671         * sreal.c (copy, sreal_sub, sreal_div): Likewise.
672         * stmt.c (force_label_rtx, expand_goto, expand_asm_operands,
673         resolve_operand_name_1, expand_return, expand_decl,
674         expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise.
675         * stor-layout.c (put_pending_size, smallest_mode_for_size,
676         int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type,
677         set_sizetype, get_mode_bounds): Likewise.
678
679 2004-09-09  Zack Weinberg  <zack@codesourcery.com>
680
681         * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default.
682         * config/arm/pecoff.h, config/i386/beos-elf.h
683         * config/i386/cygming.h, config/i386/i386-interix.h:
684         Define MULTIPLE_SYMBOL_SPACES to 1, not nothing.  Remove
685         comment cloned from manual.
686         * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES.
687
688 2004-09-09  Frank Ch. Eigler  <fche@redhat.com>
689
690         * builtins.c (build_va_arg_indirect_ref): New function.
691         (std_gimplify_va_arg_expr): Call it instead of mudflap check and
692         build_fold_indirect_ref.
693         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
694         * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto.
695         * tree.h: Declare new function.
696
697 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
698
699         * cgraphunit.c (cgraph_mark_functions_to_output): Renable node
700         dumping for development builds.
701         * emit-rtl.c (verify_rtx_sharing): Give verbose failure for
702         development builds only.
703         * genattrtab.c (write_eligible_delay): Fix typo in previous
704         commit.
705         * tree.c (iterative_hash_expr): Replace gcc_unreachable with
706         gcc_assert.
707
708 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
709
710         * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
711         cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
712         process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
713         hoist_code, extract_mentioned_regs_helper, compute_store_table,
714         insert_store): Use gcc_assert and gcc_unreachable.
715         * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
716         gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
717         ggc_record_overhead): Likewise.
718         * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
719         init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
720         ggc_pop_context, clear_marks, validate_free_objects,
721         ggc_pch_read): Likewise.
722         * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
723         ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
724         ggc_push_context, check_cookies, ggc_collect,
725         ggc_print_statistics): Likewise.
726         * gimple-low.c (lower_function_body, lower_stmt,
727         lower_bind_expr): Likewise.
728         * gimplify.c (gimple_tree_eq, push_gimplify_context,
729         pop_gimplify_context, gimple_pop_condition, create_tmp_var,
730         declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
731         mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
732         gimplify_case_label_expr, gimplify_exit_block_expr,
733         canonicalize_component_ref, gimplify_compound_lval,
734         gimplify_self_mod_expr, gimplify_call_expr,
735         gimplify_init_ctor_eval, gimplify_init_constructor,
736         gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
737         gimplify_expr, check_pointer_types_r,
738         force_gimple_operand): Likewise.
739         * global.c (global_alloc, build_insn_chain): Likewise.
740         * graph.c (clean_graph_dump_file,
741         finish_graph_dump_file): Likewise.
742         gcov-io.c (gcov_open): Use GCOV_CHECK.
743
744 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
745
746         * config/frv/frv.c (acc_operand, accg_operand): Use REGNO.
747
748 2004-09-09  Jan Hubicka  <jh@suse.cz>
749
750         middle-end/17128
751         * tree-inline.c (expand_call_inline): Make overactive sanity check
752         happy.
753
754 2004-09-09  Jan Hubicka  <jh@suse.cz>
755
756         * tree-ssa-loop-ivopts.c (peel_address): Fix abort on
757         VIEW_CONVERT_EXPR.
758
759 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
760
761         * Makefile.in (gengtype): Use $(BUILD_ERRORS).
762         (gengtype.o): Depend on errors.h.
763         * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
764         (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
765         attr_alt_subset_p, attr_alt_subset_of_compl_p,
766         attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
767         write_test_expr, write_attr_value, write_eligible_delay,
768         make_internal_attr, make_numeric_value): Likewise.
769         * genautomata.c (regexp_name, get_str_vect,
770         gen_presence_absence_set, automaton_decl_hash,
771         automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
772         decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
773         process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
774         test_unit_reserv, it_is_empty_reserv_sets,
775         reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
776         reserv_sets_and, output_cycle_reservs, get_free_state,
777         intersected_state_reservs_p, states_union, remove_arc,
778         copy_insn_regexp, transform_1, transform_2, transform_3,
779         regexp_transform_func, store_alt_unit_usage,
780         check_regexp_units_distribution, process_seq_for_forming_states,
781         process_alts_for_forming_states, make_automaton,
782         form_arcs_marked_by_insn, create_composed_state,
783         set_out_arc_insns_equiv_num, partition_equiv_class,
784         process_insn_equiv_class, set_insn_equiv_classes,
785         units_to_automata_heuristic_distr, form_regexp,
786         longest_path_length, output_dfa_max_issue_rate, add_vect,
787         out_state_arcs_num, add_vect_el, output_trans_table,
788         output_state_alts_table, output_dead_lock_vect,
789         output_max_insn_queue_index_def,
790         output_min_insn_conflict_delay_func,
791         output_internal_insn_latency_func, output_print_reservation_func,
792         output_cpu_unit_reservation_p, output_state_arcs,
793         make_insn_alts_attr, make_internal_dfa_insn_code_attr,
794         make_default_insn_latency_attr,
795         form_important_insn_automata_lists): Likewise.
796         * genemit.c (gen_exp, output_add_clobbers,
797         output_added_clobbers_hard_reg_p): Likewise.
798         * genextract.c (print_path, main): Likewise.
799         * genflags.c (gen_macro): Likewise.
800         * gengenrtl.c: Include errors.h
801         (type_from_format, accessor_from_format): Likewise.
802         * gengtype.c (get_file_basename, output_mangled_typename,
803         walk_type, write_types_process_field,
804         write_types_local_process_field): Likewise.
805         * genmodes.c (complete_mode): Likewise.
806         * genopinit.c (gen_insn): Likewise.
807         * genoutput.c (output_insn_data, check_constraint_len,
808         constraint_len): Likewise.
809         * genpreds.c (add_mode_tests):Likewise.
810         * gen-protos.c (add_hash): Likewise.
811         * genrecog.c (find_operand, find_matching_operand,
812         validate_pattern, add_to_sequence, maybe_both_true,
813         nodes_identical_1, merge_trees, write_switch, write_cond,
814         write_action, is_unconditional, make_insn_sequence,
815         debug_decision_2): Likewise.
816         * gensupport.c (is_predicable, collect_insn_data,
817         alter_predicate_for_insn, maybe_eval_c_test): Likewise.
818
819 2004-09-09  Jan Hubicka  <jh@suse.cz>
820
821         * basic-block.h (guess_outgoing_edge_probabilities): Declare.
822         * cfgbuild.c (compute_outgoing_frequencies): When probability is
823         missing, guess it.
824         (find_many_sub_basic_blocks): Do update profile only when it is
825         present.
826         * predict.c (set_even_probabilities): Break out from ...
827         (combine_predictions_for_insn): ... here; deal with
828         !can_predict_insn_p insns.
829         (combine_predictions_for_bb): Use set_even_probabilities.
830         (bb_estimate_probability_locally): Break out from ....
831         (estimate_probability): ... here.
832         (guess_outgoing_edge_probabilities): New entry point.
833
834 2004-09-09  Nathan Sidwell  <nathan@codesourcery.com>
835
836         * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1,
837         handle_braces, process_brace_body, main, used_arg,
838         set_multilib_dir, print_multilib_info): Use fatal, not abort.
839
840         * tree-nested.c (create_tmp_var_for): Correct missinverted assert.
841
842         * tree-outof-ssa.c (free_temp_expr_table): Add missed assert.
843         * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de
844         Morgan's theorem in last checkin.
845
846 2004-09-09  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
847             Nathan Sidwell  <nathan@codesourcery.com>
848
849         * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p):
850         Use gcc_assert, gcc_unreachable & internal_error instead of abort.
851         * timevar.c (timevar_push, timevar_pop, timevar_start,
852         timevar_stop): Likewise.
853         * toplev.c (default_pch_valid_p): Likewise.
854         * tracer.c (tail_duplicate): Likewise.
855         * tree-alias-common.c (get_alias_var_decl,
856         get_values_from_constructor, create_alias_var, delete_alias_vars,
857         empty_points_to_set, same_points_to_set, ptr_may_alias_var):
858         Likewise.
859         * tree.c (tree_size, make_node_stat, copy_node_stat,
860         build_int_cst_wide, integer_all_onesp, list_length, chainon,
861         tree_node_structure, type_contains_placeholder_p, substitute_in_expr,
862         substitute_placeholder_in_expr, tabilize_reference_1, build0_stat,
863         build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p,
864         lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr,
865         build_method_type_directly, decl_type_context, get_callee_fndecl,
866         get_set_constructor_bits, build_vector_type_for_mode, int_cst_value,
867         tree_fold_gcd): Likewise.
868         * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges,
869         make_cond_expr_edges, group_case_labels, tree_merge_blocks,
870         cleanup_control_expr_graph, find_taken_edge,
871         find_taken_edge_switch_expr, phi_alternatives_equal,
872         is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt,
873         stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate,
874         tree_split_edge, tree_verify_flow_info, thread_jumps,
875         tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise.
876         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
877         chrec_fold_multiply_poly_poly): Likewise.
878         * tree-complex.c (extract_component, expand_complex_division,
879         expand_complex_comparison, expand_complex_operations_1,
880         build_replicated_const, expand_vector_operations_1): Likewise.
881         * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector,
882         build_classic_dir_vector): Likewise.
883         * tree-dfa.c (compute_immediate_uses_for_phi,
884         compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann,
885         create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise.
886         * tree-dump.c (dequeue_and_dump): Likewise.
887         * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region,
888         record_in_finally_tree, replace_goto_queue_1,
889         maybe_record_in_goto_queue, verify_norecord_switch_expr,
890         do_return_redirection): Likewise.
891         * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr,
892         add_to_dst_predicate_list, find_phi_replacement_condition,
893         replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order):
894         Likewise.
895         * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r,
896         initialize_inlined_parameters, declare_return_variable,
897         estimate_num_insns_1, expand_call_inline, expand_calls_inline,
898         optimize_inline_calls, copy_tree_r): Likewise.
899         * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt,
900         ssa_rewrite_stmt, rewrite_into_ssa): Likewise.
901         * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after,
902         tsi_split_statement_list_after, tsi_split_statement_list_before):
903         Likewise.
904         * tree-mudflap.c (mf_varname_tree): Likewise.
905         * tree-nested.c (create_tmp_var_for, lookup_field_for_decl,
906         lookup_tramp_for_decl, convert_all_function_calls): Likewise.
907         * tree-optimize.c (tree_rest_of_compilation): Likewise.
908         * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi,
909         coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis,
910         free_temp_expr_table, add_dependance, finish_expr, rewrite_trees):
911         Likewise.
912         * tree-phinodes.c (resize_phi_node, add_phi_arg,
913         remove_all_phi_nodes_for): Likewise.
914         * tree-pretty-print.c (op_prio, print_call_name): Likewise.
915         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
916         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise.
917         * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree,
918         sra_elt_eq, sra_walk_expr, instantiate_missing_elements,
919         generate_one_element_ref, generate_element_copy,
920         generate_element_zero, scalarize_copy, scalarize_init,
921         scalarize_ldst): Likewise.
922         * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p,
923         add_may_alias, add_pointed_to_expr, add_pointed_to_var,
924         collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise.
925         * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise.
926         * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value,
927         set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment,
928         widen_bitfield, ccp_fold_builtin): Likewise.
929         * tree-ssa-copy.c (may_propagate_copy, merge_alias_info,
930         replace_exp_1, propagate_tree_value): Likewise.
931         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
932         * tree-ssa-dce.c (set_control_dependence_map_bit,
933         find_control_dependence, find_pdom, mark_operand_necessary,
934         mark_stmt_if_obviously_necessary,
935         mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise.
936         * tree-ssa-dom.c (dom_opt_initialize_block_local_data,
937         simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis,
938         eliminate_redundant_computations, avail_expr_eq): Likewise.
939         * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise.
940         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
941         duplicate_blocks): Likewise.
942         * tree-ssa-loop-im.c (for_each_index, set_level,
943         is_call_clobbered_ref): Likewise.
944         * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos,
945         stmt_after_increment, set_iv, contains_abnormal_ssa_name_p,
946         find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates,
947         peel_address, ptr_difference_cost, may_replace_final_value,
948         determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer,
949         rewrite_use, rewrite_uses): Likewise.
950         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
951         check_loop_closed_ssa_use): Likewise.
952         * tree-ssanames.c (make_ssa_name): Likewise.
953         * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses,
954         finalize_ssa_v_must_defs, finalize_ssa_stmt_operands,
955         get_stmt_operands, get_expr_operands, get_asm_expr_operands,
956         get_indirect_ref_operands, add_stmt_operand): Likewise.
957         * tree-ssa-pre.c (value_exists_in_set_bitmap,
958         value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set,
959         phi_translate, valid_in_set, compute_antic,
960         find_or_generate_expression, create_expression_by_pieces, insert_aux,
961         create_value_expr_from, eliminate): Likewise.
962         * tree-ssa-propagate.c (cfg_blocks_get): Likewise.
963         * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges):
964         Likewise.
965         * tree-tailcall.c (independent_of_stmt_p, adjust_return_value,
966         eliminate_tail_call): Likewise.
967         * tree-vectorizer.c (vect_create_index_for_array_ref,
968         vect_align_data_ref, vect_create_data_ref,
969         vect_create_destination_var, vect_get_vec_def_for_operand,
970         vect_finish_stmt_generation, vect_transform_stmt,
971         vect_transform_loop_bound, vect_transform_loop,
972         vect_analyze_operations): Likewise.
973         * tree-vn.c (vn_compute, set_value_handle, get_value_handle):
974         Likewise.
975         * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr,
976         get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start,
977         bsi_after_labels, bsi_last): Likewise.
978         * tree-ssa-live.c (var_union, change_partition_var,
979         create_ssa_var_map, calculate_live_on_entry, root_var_init,
980         type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce):
981         Likewise.
982         * tree-ssa-live.h (partition_is_global, live_entry_blocks,
983         tpa_find_tree): Likewise.
984         (register_ssa_partition_check): Declare.
985         (register_ssa_partition): use it.
986         * tree-ssa-live.c: Include errors.h.
987         (register_ssa_partition_check): New.
988         * tree-ssa-operands.c: Include errors.h.
989         * Makefile.in (tree-ssa-operands.o): Depend on errors.h.
990
991 2004-09-09  Richard Sandiford  <rsandifo@redhat.com>
992             Catherine Moore  <clm@redhat.com>
993
994         * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450)
995         (FRV_CPU_FR405): New processor enums.
996         (frv_issue_rate, frv_acc_group): Declare.
997         * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete.
998         (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete.
999         (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros.
1000         (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete.
1001         (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously
1002         handled by CPP_SPEC.
1003         (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros.
1004         (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros.
1005         (ACC_MASK): New macro.
1006         (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}.
1007         (TARGET_MEDIA_FR450): New macro.
1008         (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros.
1009         (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls.
1010         (LABEL_ALIGN_AFTER_BARRIER): Define.
1011         (ACC_LAST, ACCG_LAST): Add four new accumulator registers.
1012         (IACC_FIRST, IACC_LAST): New pair of SPRs.
1013         (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly.
1014         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
1015         (REGISTER_NAMES): Add entries for new registers.
1016         (REG_CLASS_CONTENTS): Update for new register ranges.
1017         (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand.
1018         (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete.
1019         (PACKING_FLAG_USED_P): Delete.
1020         (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI)
1021         (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL)
1022         (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS)
1023         (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS)
1024         (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS)
1025         (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l})
1026         (FRV_BUILTIN_SCAN): New members of frv_builtin_enum.
1027         (FRV_BUILTIN_FIRST_NONMEDIA): New macro.
1028         (CPU_UNITS_QUERY): Define to 1.
1029         * config/frv/frv.c: Include gt-frv.h
1030         (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros.
1031         (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros.
1032         (frv_insn_group): New enumeration.
1033         (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables.
1034         (frv_type_to_unit, frv_nops, frv_num_nops): New variables.
1035         (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK)
1036         (REGSTATE_CONDJUMP): Delete.  Shuffle other numbers to cover the
1037         gap left by REGSTATE_LIVE.
1038         (regstate_t): New typedef.
1039         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1040         (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}.
1041         (frv_override_options): Check for -mcpu={fr550,fr450,fr405}.
1042         Initialize frv_unit_codes[] and frv_type_to_unit[].
1043         (frv_conditional_register_usage): Remove redundant fixing of
1044         accumulator registers.
1045         (frv_insn_packing_flag): Update specification.
1046         (frv_function_prologue): Don't set frv_insn_packing_flag here.
1047         Zero out frv_nops[].
1048         (frv_expand_epilogue): Remove comments about the no-longer-present
1049         SIBCALL_P argument.
1050         (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than
1051         PACKING_FLAG_USED_P() when deciding whether to pack instructions.
1052         (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light
1053         of the new meaning of frv_insn_packing_flag.  Emit an mnop.p if
1054         packing is disabled and if INSN can only issue to M1.
1055         (call_operand): Check TARGET_LONG_CALLS.
1056         (acc_operand, even_acc_operand, quad_acc_operand)
1057         (accg_operand): Simplify.  Don't accept pseudo registers.
1058         (output_move_single): Handle SPR<-zero moves.
1059         (frv_issue_rate): Make non-static.  Handle FRV_CPU_{FR550,FR450,FR405}.
1060         (frv_registers_update, frv_registers_used_p): Delete.
1061         (frv_registers_set_p): Delete.
1062         (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions.
1063         (frv_issues_to_branch_unit_p): New function.
1064         (frv_packet): New structure.
1065         (frv_cond_flags, frv_regstate_conflict_p): New functions.
1066         (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions.
1067         (frv_registers_update_1, frv_registers_update): New functions.
1068         (frv_start_packet, frv_start_packet_block, frv_finish_packet)
1069         (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet)
1070         (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns)
1071         (frv_sort_insn_group, frv_reorder_packet): New functions.
1072         (frv_pack_insns): Use frv_reorder_packet.
1073         (frv_packet_address): New variable.
1074         (frv_fill_unused_units, frv_align_label, frv_reorg_packet)
1075         (frv_register_nop, frv_reorg): New functions.
1076         (bdesc_1arg): Add __SCUTSS.
1077         (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS,
1078         __SUBSS, __SLASS and __SCAN.
1079         (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI.
1080         (bdesc_int_void2arg, bdesc_prefetches): New arrays.
1081         (frv_init_builtins): Register the above builtins.
1082         (frv_int_to_acc): Use ACC_MASK to check for valid accumulator
1083         registers.  Turn the referenced accumulators into global registers.
1084         (frv_read_iacc_argument): New function.
1085         (frv_expand_int_void2arg, frv_expand_prefetches): New functions.
1086         (frv_split_iacc_move): New function.
1087         (frv_expand_builtin): Handle the new builtins.
1088         * config/frv/frv.md: Replace old schedulers with new order-independent
1089         ones.  Add schedulers for the FR405, FR450 and FR550.  Describe new
1090         packing algorithm.
1091         (cpu): Add fr550, fr450 and fr405.
1092         (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and
1093         mqshift.  Replace fmas with fsmadd and fmad with fdmadd.  Delete m7.
1094         (*muladd[sd]f4, *mulsub[sd]f4): Fix types.
1095         (*cmp[sd]f_cc_fp): Use new f[sd]cmp types.
1096         (fnop, mnop): New patterns.
1097         (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI):
1098         New constants.
1099         (mexpdhw, *cond_exec_mexpdhw): Fix destination operands.
1100         (mclracca8): Use ACC_MASK to determine the upper set of accumulator
1101         registers.
1102         (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns.
1103         (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS)
1104         (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS)
1105         (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll)
1106         (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS)
1107         (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants.
1108         (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss)
1109         (frv_prefetch0, frv_prefetch): New patterns.
1110         * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and
1111         -mcpu=simple.  Add -mcpu=fr550.
1112         (MULTILIB_DIRNAMES): Update accordingly.
1113         (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and
1114         -mcpu=fr450.
1115         * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405},
1116         -mlong-calls and -malign-labels options for FR-V.
1117
1118 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1119
1120         PR c/8420
1121         * c-tree.h (struct c_declspecs): New.
1122         (struct c_declarator, struct c_type_name, struct c_parm): Update
1123         element types.
1124         (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned,
1125         start_function, start_decl, build_c_parm,
1126         make_pointer_declarator): Update prototypes.
1127         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1128         declspecs_add_scspec, declspecs_add_attrs): New.
1129         (split_specs_attrs): Remove.
1130         * c-parse.in (%union): Add dsptype.
1131         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1132         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1133         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1134         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1135         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1136         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1137         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1138         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
1139         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
1140         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
1141         maybe_type_quals_attrs): Change to dsptype.
1142         (struct c_declspec_stack): New.
1143         (current_declspecs, declspec_stack): Change type.
1144         (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new
1145         structures.
1146         (extdefs): Likewise.
1147         (setspecs): Likewise.
1148         (fndef): Use current_declspecs for empty declspecs list.
1149         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
1150         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
1151         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
1152         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
1153         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
1154         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
1155         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
1156         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new
1157         structures and helper functions.  Update comments.
1158         (typespec_nonattr): Correct comment.
1159         (maybe_type_quals_attrs, typename): Update to new structures.
1160         * c-decl.c (grokdeclarator, build_array_declarator, grokfield,
1161         shadow_tag, shadow_tag_warned, start_function, start_decl,
1162         build_c_parm, make_pointer_declarator,
1163         set_array_declarator_inner, groktypename): Update to new
1164         structures.
1165         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1166         declspecs_add_scspec, declspecs_add_attrs): New.
1167         (split_specs_attrs): Remove.
1168         (shadow_tag_warned): Make warning for useless type names a
1169         pedwarn.  Give hard error for long, short, signed, unsigned or
1170         _Complex used with struct, union or enum in empty declaration.
1171         Make found_tag a bool.
1172         (grokdeclarator): Remove checks now done at parse time.
1173
1174 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1175
1176         * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
1177         c_declarator, struct c_type_name, struct c_parm): New.
1178         (build_array_declarator, set_array_declarator_inner,
1179         get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
1180         start_function, start_decl, build_c_parm, build_attrs_declarator,
1181         build_function_declarator, make_pointer_declarator, c_cast_expr,
1182         store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
1183         (build_id_declarator): New.
1184         * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
1185         structures.
1186         * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
1187         ARG_INFO_OTHERS): Remove.
1188         (build_id_declarator): New.
1189         (build_array_declarator, set_array_declarator_inner, groktypename,
1190         start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
1191         grokfield, start_function, store_parm_decls_newstyle,
1192         store_parm_decls_oldstyle, store_parm_decls,
1193         build_c_parm, build_attrs_declarator, build_function_declarator,
1194         make_pointer_declarator, grokdeclarator): Update to new
1195         structures.
1196         * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
1197         parmtype.
1198         (declarator, notype_declarator, after_type_declarator,
1199         parm_declarator, parm_declarator_starttypename,
1200         parm_declarator_nostarttypename, array_declarator, typename,
1201         absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
1202         absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
1203         parmlist_1, parmlist_2, parmlist_or_identifiers,
1204         parmlist_or_identifiers_1): Use these types.
1205         (primary, after_type_declarator, parm_declarator_starttypename,
1206         notype_declarator, component_decl, component_declarator,
1207         component_notype_declarator, typename, absdcl,
1208         absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
1209         parmlist_2, parmlist_or_identifiers_1): Update to new structures.
1210
1211 2004-09-09  Joseph S. Myers  <jsm@polyomino.org.uk>
1212
1213         * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof,
1214         in_typeof, record_maybe_used_decl, pop_maybe_used,
1215         c_expr_sizeof_expr, c_expr_sizeof_type): New.
1216         * c-decl.c (parser_obstack): New.
1217         (c_init_decl_processing): Initialize parser_obstack.
1218         (c_write_global_declarations_1): Check for used but undefined
1219         static functions.
1220         * c-parse.in (%union): Add otype.
1221         (save_obstack_position): New.
1222         (extdefs): Use it.
1223         (unary_expr): Update in_sizeof and in_alignof.  Use
1224         c_expr_sizeof_expr and c_expr_sizeof_type.
1225         (sizeof): Update in_sizeof.
1226         (alignof): Update in_alignof.
1227         (typeof): Update in_typeof.
1228         (typespec_nonreserved_nonattr): Call pop_maybe_used.
1229         * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct
1230         maybe_used_decl, maybe_used_decls, record_maybe_used_decl,
1231         pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New.
1232         (build_external_ref): Set C_DECL_USED or call
1233         record_maybe_used_decl if appropriate.
1234         * toplev.c (check_global_declarations): Check TREE_NO_WARNING.
1235
1236 2004-09-08  Eric Christopher  <echristo@redhat.com>
1237
1238         * builtins.c: Fix prototype for fold_builtin_atan.
1239
1240 2004-09-08  Eric Christopher  <echristo@redhat.com>
1241
1242         * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt,
1243         fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan,
1244         fold_builtin_atan): New functions. Migrate function bodies...
1245         (fold_builtin_1): ... from here.
1246
1247 2004-09-09  Alan Modra  <amodra@bigpond.net.au>
1248
1249         * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of
1250         save_size.
1251
1252 2004-09-08  David Edelsohn  <edelsohn@gnu.org>
1253
1254         * config/rs6000/power4.md (power4-lmul): du4 feeds iu1.
1255         * config/rs6000/power5.md (power5-lmul): Same.
1256
1257 2004-09-08  Richard Henderson  <rth@redhat.com>
1258
1259         PR rtl-opt/17186
1260         * function.c (expand_function_end): Have fall-off-the-end
1261         return path jump around return register setup.
1262
1263 2004-09-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1264
1265         * config/sparc/sparc.c (sparc_indent_opcode): New variable.
1266         (output_return): Do not test for the presence of the 'unimp' insn.
1267         Use 'current_function_uses_only_leaf_regs' and 'final_sequence'
1268         as predicates instead of custom ones.  Return raw strings when
1269         possible.
1270         (output_sibcall): Likewise.  Concatenate strings.
1271         (output_ubranch): Remove kludge for TurboSPARC.
1272         (output_cbranch): Remove 'noop' parameter.  Do not output 'nop'.
1273         (output_v9branch): Likewise.
1274         (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'.
1275         <#>: Set sparc_indent_opcode if the delay slot is filled.
1276         <(>: Likewise.
1277         <)>: New operand to emit the displacement from the saved PC on return.
1278         <@>: Remove.
1279         * config/sparc/sparc.h (sparc_indent_opcode): Declare it.
1280         (ASM_OUTPUT_OPCODE): New macro.
1281         (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'.
1282         * config/sparc/sparc.md (normal_branch, inverted_branch,
1283         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
1284         inverted_fpe_branch): Adjust call to output_cbranch.
1285         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust
1286         call to output_v9branch.
1287         * config/sparc/sparc-protos.h (output_cbranch): Adjust.
1288         (output_v9branch): Likewise.
1289
1290 2004-09-08  Devang Patel  <dpatel@apple.com>
1291
1292         * config/darwin.h  (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr,
1293         -segs_read_only_addr and -segs_read_write_addr.
1294         (WORD_SWITCH_TAKES_ARG): Same.
1295         (LINK_SPEC): Same.
1296         * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and
1297         -segs_read_write_addr.
1298
1299 2004-09-08  Richard Henderson  <rth@redhat.com>
1300
1301         * function.c (reference_callee_copied): New.
1302         (assign_parm_setup_reg): Use it.
1303         * calls.c (initialize_argument_information): Likewise.
1304         (emit_library_call_value_1): Likewise.
1305         * function.h (reference_callee_copied): Declare.
1306
1307         * target.h (struct gcc_target): Add callee_copies.
1308         * target-def.h (TARGET_CALLEE_COPIES): New.
1309         (TARGET_PASS_BY_REFERENCE): Update default.
1310         * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1311         * targhooks.c (hook_callee_copies_named): New.
1312         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from
1313         hook_pass_by_reference_false.
1314         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New.
1315         * targhooks.h: Update decls.
1316         * config/arc/arc.c (TARGET_CALLEE_COPIES): New.
1317         * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1318         * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove.
1319         * config/frv/frv.c (frv_function_arg_callee_copies): Remove.
1320         * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1321         * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New.
1322         * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1323         * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New.
1324         * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1325         * config/mips/mips.c (TARGET_CALLEE_COPIES): New.
1326         (mips_callee_copies): New.
1327         * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1328         * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New.
1329         * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1330         * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New.
1331         * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1332         * config/pa/pa.c (TARGET_CALLEE_COPIES): New.
1333         * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1334         * config/sh/sh.c (sh_callee_copies): New.
1335         (TARGET_CALLEE_COPIES): New.
1336         * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1337         * config/v850/v850.c (TARGET_CALLEE_COPIES): New.
1338         * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove.
1339         * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation
1340         for FUNCTION_ARG_CALLEE_COPIES.
1341         * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update.
1342
1343 2004-09-08  Devang Patel  <dpatel@apple.com>
1344
1345         * tree-if-conv.c (find_phi_replacement_condition): Return true
1346         edge block.
1347         (replace_phi_with_cond_modify_expr): Select conditional expr args
1348         based on true edge basic block.
1349
1350 2004-09-08  Jan Hubicka  <jh@suse.cz>
1351
1352         * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for
1353         variables being alias set.
1354
1355 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1356
1357         * final.c (shorten_branches, final, get_insn_template,
1358         output_alternate_entry_point, final_scan_insn, alter_subreg,
1359         alter_cond, output_operand, asm_fprintf, final_forward_branch_p,
1360         leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable.
1361         * fix-header.c (lookup_std_proto): Likewise.
1362         * flow.c (first_insn_after_basic_block_note, verify_wide_reg,
1363         verify_local_live_at_start, update_life_info, mark_reg,
1364         calculate_global_regs_live, allocate_reg_life_data,
1365         init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1,
1366         ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond,
1367         attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise.
1368         * fold-const.c (force_fit_type, div_and_round_double,
1369         may_negate_without_overflow_p, int_const_binop, const_binop,
1370         size_binop, size_diffop, fold_convert_const, fold_convert,
1371         invert_tree_comparison, swap_tree_comparison,
1372         comparison_to_compcode, compcode_to_comparison, invert_truthvalue,
1373         range_binop, make_range, fold_cond_expr_with_comparison,
1374         fold_div_compare, fold, fold_checksum_tree, fold_negate_const,
1375         fold_abs_const, fold_not_const, fold_relational_const, round_up,
1376         round_down): Likewise.
1377         * function.c (find_function_data, assign_stack_temp_for_type,
1378         instantiate_virtual_regs_lossage, aggregate_value_p,
1379         assign_parm_find_entry_rtl, assign_parm_setup_block,
1380         expand_function_start, expand_function_end, keep_stack_depressed,
1381         handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise.
1382
1383 2004-09-08  Daniel Berlin  <dberlin@dberlin.org>
1384
1385         * Makefile.in (tree-loop-linear.o): Added.
1386         (OBJS-common): Add tree-loop-linear.o
1387         * common.opt: New flag, ftree-loop-linear.
1388         * timevar.def: New timevar, TV_TREE_LOOP_LINEAR.
1389         * tree-flow.h: Add prototype for linear_transform_loops.
1390         * tree-optimize.c: Add linear transform after vectorization.
1391         * tree-pass.h: Add struct pass_linear_transform.
1392         * tree-ssa-loop.c: Add pass_linear_transform.
1393         * tree-loop-linear.c: New file.
1394         * lambda-code.c: gcc_assertify.
1395         (gcc_loop_to_lambda_loop): Handle all exit tests.
1396         Handle case where we have (invariant >= induction var).
1397         (find_induction_var_from_exit_cond): Ditto.
1398
1399 2004-09-08  Jie Zhang  <zhangjie@magima.com.cn>
1400
1401         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type
1402         memory tag is call clobbered, so are its aliases.
1403         (group_aliases): When two memory tags being grouped, if one is
1404         call clobbered, so are the other and its aliases.
1405         (add_may_alias): Remove call-clobbering stuff.
1406         (replace_may_alias): Likewise.
1407         (merge_pointed_to_info): Merge pt_global_mem
1408
1409 2004-09-08  Jan Hubicka  <jh@suse.cz>
1410
1411         * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node.
1412         * cgraphunit.c (verify_cgraph): Don't verify on syntax errors.
1413         (cgraph_expand_function): Remove stale cgraph edges of currently
1414         compiled function; fix non-unit-at-a-time code copying function
1415         node for later reuse.
1416
1417 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1418
1419         * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
1420         (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
1421         (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
1422         (vec_gc_free, vec_heap_free): New.
1423         * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
1424         (DEF_VEC_P): Add allocator argument. Adjust.
1425         (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
1426         (DEF_VEC_O): Add allocator argument. Adjust.
1427         (VEC(free)): New.
1428
1429         * tree.h (tree): Define a GC'd vector.
1430         * lamba-code.c (lambda_loop): Likewise.
1431         * value-prof.h (histogram_value): Likewise.
1432
1433 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1434
1435         * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable.
1436         (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno,
1437         gen_lowpart_common, gen_highpart, gen_highpart_mode,
1438         subreg_highpart_offset, operand_subword, operand_subword_force,
1439         mem_expr_equal_p, set_mem_attributes_minus_bitpos,
1440         set_mem_alias_set, change_address_1, verify_rtx_sharing,
1441         copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter,
1442         try_split, add_insn_after, add_insn_before, remove_insn,
1443         remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before,
1444         emit_call_insn_before, emit_insn_after, emit_jump_insn_after,
1445         emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn,
1446         set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1,
1447         gen_const_vector_0, emit_copy_of_insn_after): Likewise.
1448         * et-forest.c (set_prev, set_next, et_check_occ_sanity,
1449         record_path_before_1, check_path_after_1, check_path_after): Likewise.
1450         * except.c (gen_eh_region, resolve_one_fixup_region,
1451         remove_unreachable_regions, convert_from_eh_region_ranges_1,
1452         add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads,
1453         connect_post_landing_pads, sjlj_emit_function_exit,
1454         remove_exception_handler_label, remove_eh_handler,
1455         reachable_next_level, collect_one_action_chain,
1456         output_function_exception_table): Likewise.
1457         * explow.c (trunc_int_for_mode, copy_to_mode_reg,
1458         optimize_save_area_alloca, allocate_dynamic_stack_space,
1459         probe_stack_range, hard_function_value): Likewise.
1460         * expmed.c (mode_for_extraction, store_bit_field,
1461         store_fixed_bit_field, extract_bit_field, expand_shift,
1462         expand_mult_const, expand_mult, choose_multiplier,
1463         expand_mult_highpart, expand_divmod, emit_store_flag,
1464         do_cmp_and_jump): Likewise.
1465         * expr.c (convert_move, convert_modes, move_by_pieces,
1466         move_by_pieces_ninsns, move_by_pieces_1, emit_block_move,
1467         move_block_from_reg, gen_group_rtx, emit_group_load,
1468         emit_group_move, emit_group_store, use_reg, use_regs,
1469         can_store_by_pieces, store_by_pieces, store_by_pieces_1,
1470         emit_move_insn, emit_move_insn_1, emit_push_insn,
1471         expand_assignment, store_expr, count_type_elements,
1472         store_constructor, store_field, safe_from_p, expand_var,
1473         expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise.
1474
1475 2004-09-08  Nathan Sidwell  <nathan@codesourcery.com>
1476
1477         * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use
1478         gcc_assert and gcc_unreachable.
1479         * ddg.c (create_ddg_dependence, add_deps_for_def,
1480         add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise.
1481         * df.c (df_ref_unlink, df_ref_record, df_uses_record,
1482         df_reg_def_chain_create, df_reg_use_chain_create, df_analyze,
1483         df_insn_delete, df_refs_reg_replace, df_ref_reg_replace,
1484         df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p,
1485         df_bb_reg_live_end_p, df_bb_regs_lives_compare,
1486         df_bb_single_def_use_insn_find, dataflow_set_a_op_b,
1487         dataflow_set_copy, hybrid_search, diagnostic.c,
1488         diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise.
1489         * dojump.c (do_jump): Likewise.
1490         * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
1491         compute_dom_fast_query, calculate_dominance_info,
1492         free_dominance_info, get_immediate_dominator,
1493         set_immediate_dominator, get_dominated_by,
1494         redirect_immediate_dominators, nearest_common_dominator,
1495         dominated_by_p, verify_dominators, recount_dominator,
1496         iterate_fix_dominators, add_to_dominance_info,
1497         delete_from_dominance_info): Likewise.
1498         * dwarf2asm.c (size_of_encoded_value, eh_data_format_name,
1499         dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128,
1500         dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise.
1501         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save,
1502         initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust,
1503         flush_queued_reg_saves, dwarf2out_frame_debug_expr,
1504         dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi,
1505         output_call_frame_info, output_loc_operands, build_cfa_loc,
1506         decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string,
1507         AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external,
1508         AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die,
1509         splice_child_die, attr_checksum, same_dw_val_p,
1510         break_out_includes, build_abbrev_table, size_of_die, mark_dies,
1511         unmark_dies, value_format, output_loc_list, output_die,
1512         output_pubnames, output_aranges, base_type_die, is_base_type,
1513         modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor,
1514         mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1,
1515         field_byte_offset, add_data_member_location_attribute,
1516         add_const_value_attribute, rtl_for_decl_location,
1517         add_location_or_const_value_attribute, add_byte_size_attribute,
1518         add_bit_offset_attribute, add_bit_size_attribute,
1519         add_abstract_origin_attribute, pop_decl_scope, scope_die_for,
1520         decl_start_label, gen_formal_parameter_die,
1521         gen_type_die_for_member, gen_subprogram_die, gen_label_die,
1522         gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die,
1523         force_decl_die, force_type_die, gen_decl_die,
1524         dwarf2out_imported_module_or_decl, prune_unused_types_prune,
1525         dwarf2out_finish): Likewise.
1526
1527 2004-09-08  Andreas Tobler  <toa@pop.agri.ch>
1528
1529         * Makefile.in (builtins.o): Depend on tree-mudflap.h.
1530         * builtins.c: Include tree-mudflap.h.
1531
1532 2004-09-08  Uros Bizjak  <uros@kss-loka.si>
1533
1534         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
1535         force operand 0.0 into register in XFmode. Also do not force
1536         operand 0.0 into register if !TARGET_CMOVE.
1537         * config/i386/i386.md (*cmpfp_0): Delete. Remove comment.
1538         (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to
1539         implement ftst x87 instruction.
1540         (*fp_jcc_7): New insn pattern. Change corresponding split
1541         pattern to handle "general_operand" instead of
1542         "nonimmediate_operand".
1543
1544 2004-09-08  Ben Elliston  <bje@au.ibm.com>
1545
1546         * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG.
1547
1548 2004-09-07  Frank Ch. Eigler  <fche@redhat.com>
1549
1550         * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes
1551         generated from standard va_arg expansion.
1552         * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from
1553         marked nodes.
1554         (mf_varname_tree, mf_file_function_line_tree): Add some support
1555         for column numbers if compiled with USE_MAPPED_LOCATION.
1556
1557 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1558
1559         * c-decl.c (groktypename_in_parm_context): Remove function.
1560         * c-tree.h (groktypename_in_parm_context): Remove prototype.
1561
1562 2004-09-07  Ziemowit Laski  <zlaski@apple.com>
1563
1564         * Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
1565         * c-parse.in: Include c-common.h instead of objc-act.h.
1566         (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
1567         myparms, myparm): Remove %type declarations.
1568         (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
1569         objc_typename, objc_try_catch_stmt, optellipsis): Add %type
1570         declarations.
1571         (objc_inherit_code, objc_public_flag): Remove.
1572         (typespec_nonreserved_nonattr): Call
1573         objc_get_protocol_qualified_type() instead of get_static_reference()
1574         and get_protocol_reference().
1575         (stmt_nocomp): Call grokparm() on @catch parameter.
1576         (objcdef): Move semantic action to objc_finish_implementation().
1577         (classdef): Move semantic action to objc_start_class_interface(),
1578         objc_continue_interface(), objc_finish_interface(),
1579         objc_start_class_implementation(), objc_continue_implementation(),
1580         objc_start_category_interface() and
1581         objc_start_category_implementation().
1582         (protocoldef): Move semantic actions to objc_start_protocol() and
1583         objc_finish_interface().
1584         (ivar_decl_list): Remove nonterminal.
1585         (visibility_spec): Move semantic actions to objc_set_visibility().
1586         (ivar_decls): Remove assignment to $$.
1587         (ivar_decl): Rephrase in terms of component_decl; call
1588         objc_add_instance_variable().
1589         (ivars, ivar_declarator): Remove nonterminals.
1590         (opt_semi): New nonterminal.
1591         (methodtype): Remove semantic actions.
1592         (methoddef): Move semantic actions to objc_set_method_type(),
1593         objc_start_method_definition() and objc_finish_method_definition().
1594         (methodproto): Move semantic actions to objc_set_method_type() and
1595         objc_add_method_declaration().
1596         (methoddecl): Use objc_typename instead of typename; move semantic
1597         actions to objc_build_method_signature().
1598         (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
1599         (optparmlist): Express in terms of optparms and optellipsis.
1600         (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
1601         nonterminals.
1602         (keyworddecl): Use objc_typename instead of typename.
1603         (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
1604         and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
1605
1606 2004-09-08  Alan Modra  <amodra@bigpond.net.au>
1607
1608         * doc/tm.texi (MD_UNWIND_SUPPORT): Document.
1609         (MD_FALLBACK_FRAME_STATE_FOR): Update.
1610         * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined.
1611         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1612         (MD_FROB_UPDATE_CONTEXT): Remove default.
1613         (uw_update_context_1): Instead #ifdef invocation.
1614         * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined.
1615         (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation.
1616         * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef.
1617         (MD_UNWIND_SUPPORT): Undefine this instead.
1618         * config/i386/gnu.h: Likewise.
1619         * config/alpha/linux-unwind.h: New file, macro converted to
1620         function, extracted from..
1621         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this.
1622         (MD_UNWIND_SUPPORT): Define.
1623         * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise.
1624         * config/i386/linux-unwind.h, config/i386/linux.h,
1625         config/i386/linux64.h: Likewise.
1626         * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise.
1627         MD_HANDLE_UNWABI too.
1628         * config/mips/linux-unwind.h, config/mips/linux.h: Likewise.
1629         * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise.
1630         * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise.
1631         * config/s390/linux-unwind.h, config/s390/linux.h: Likewise.
1632         * config/sparc/linux-unwind.h, config/sparc/linux.h,
1633         config/sparc/linux64.h: Likewise.
1634         * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge
1635         SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state.
1636         * config/rs6000/linux-unwind.h, config/rs6000/linux.h,
1637         config/rs6000/linux64.h: Likewise.  Split out get_sigcontext
1638         function.  Use ARG_POINTER_REGNUM for 32-bit temp reg too.
1639
1640 2004-09-07  Jan Hubicka  <jh@suse.cz>
1641
1642         * cse.c (fold_rtx):  Avoid building of
1643         (CONST (MINUS (CONST_INT) (SYMBOL_REF)))
1644
1645         * tree-ssa-pre.c (grand_bitmap_obstack): New.
1646         (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack.
1647         (init_pre): Initialize obstack.
1648         (fini_pre): Free obstack.
1649
1650 2004-09-07  David Daney  <ddaney@avtrex.com>
1651
1652         * config.gcc: Added support for --with-divide=[breaks|traps] for
1653         mips targets.
1654         * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit.
1655         (TARGET_DIVIDE_TRAPS): New macro.
1656         (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks.
1657         (OPTION_DEFAULT_SPECS): Added --with-divide= support.
1658         * config/mips/mips.c (mips_idiv_insns): Generate proper count on
1659         GENERATE_DIVIDE_TRAPS.
1660         (mips_output_division): Emit conditional trap if
1661         GENERATE_DIVIDE_TRAPS is set.
1662         * doc/install.texi: Document --with-divide.
1663         * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks.
1664
1665 2004-09-07  Caroline Tice  <ctice@apple.com>
1666
1667         * cfgrtl.c (rtl_verify_flow_info_1):  Add new edge flag,
1668         EDGE_CROSSING, to flags test case.
1669
1670 2004-09-07  Jan Hubicka  <jh@suse.cz>
1671
1672         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<'
1673         class too.
1674
1675 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1676
1677         * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
1678         cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
1679         make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
1680         or gcc_unreachable.
1681         * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
1682         remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
1683         alloc_aux_for_edges, free_aux_for_edges): Likewise.
1684         * cfgcleanup.c (try_forward_edges,
1685         merge_blocks_move_predecessor_nojumps,
1686         merge_blocks_move_successor_nojumps): Likewise.
1687         * cfgexpand.c (expand_gimple_cond_expr,
1688         expand_gimple_tailcall): Likewise.
1689         * cfghooks.c (duplicate_block): Likewise.
1690         * cfglayout.c (record_effective_endpoints,
1691         insn_locators_initialize, change_scope, fixup_reorder_chain,
1692         verify_insn_chain, fixup_fallthru_exit_predecessor,
1693         duplicate_insn_chain, cfg_layout_finalize): Likewise.
1694         * cfgloopanal.c (check_irred): Likewise.
1695         * cfgloop.c (superloop_at_depth, flow_loops_free,
1696         flow_loop_entry_edges_find, flow_loops_find,
1697         flow_loop_outside_edge_p, get_loop_body,
1698         get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
1699         get_loop_exit_edges, num_loop_branches, cancel_loop,
1700         verify_loop_structure): Likewise.
1701         cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
1702         duplicate_loop_to_header_edge, create_preheader,
1703         create_loop_notes): Likewise.
1704         * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
1705         edirect_branch_edge, force_nonfallthru_and_redirect,
1706         rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1707         commit_edge_insertions, commit_edge_insertions_watch_calls,
1708         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
1709         cfg_layout_redirect_edge_and_branch_force,
1710         cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
1711         * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
1712         cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
1713         cgraph_varpool_node): Likewise.
1714         * cgraphunit.c (cgraph_finalize_function,
1715         cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
1716         cgraph_expand_function, cgraph_remove_unreachable_nodes,
1717         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1718         cgraph_mark_inline, cgraph_expand_all_functions,
1719         cgraph_build_static_cdtor): Likewise.
1720         * combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
1721         simplify_logical, distribute_notes, insn_cuid): Likewise.
1722         * conflict.c (conflict_graph_add, print_conflict): Likewise.
1723         * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
1724         coverage_checksum_string): Likewise.
1725         * cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
1726         hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
1727         cse_cc_succs, cse_condition_code_reg): Likewise.
1728         * cselib.c (entry_and_rtx_equal_p, remove_useless_values,
1729         rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
1730         new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
1731         cselib_record_set): Likewise.
1732
1733 2004-09-07  Jan Hubicka  <jh@suse.cz>
1734
1735         * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter.
1736
1737 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1738
1739         * builtins.c (fold_builtin_strchr): Use build_int_cst, not
1740         fold_convert.
1741         (fold_builtin_strpbrk): Likewise.
1742         * expr.c (array_ref_low_bound): Likewise.
1743         * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1,
1744         interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise.
1745         * tree-sra.c (generate_element_zero): Likewise.
1746         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1747         * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step,
1748         add_old_iv_candidates, add_iv_candidates): Likewise.
1749         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
1750
1751 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1752
1753         * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable.
1754         * c-common.c (c_type_hash, c_common_nodes_and_builtins,
1755         c_expand_expr, boolean_increment, nonnull_check_p,
1756         check_function_arguments_recurse, fold_offsetof_1): Likewise.
1757         * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros,
1758         builtin_define_type_max): Likewise.
1759         * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level,
1760         implicit_decl_warning, builtin_function, build_compound_literal,
1761         complete_array_type, grokdeclarator, get_parm_info,
1762         start_function, store_parm_decls_oldstyle,
1763         c_write_global_declarations): Likewise.
1764         * c-format.c (get_constant, decode_format_attr,
1765         maybe_read_dollar_number, get_flag_spec, check_format_arg,
1766         check_format_types, format_type_warning,
1767         find_char_info_specifier_index, init_dynamic_asm_fprintf_info,
1768         init_dynamic_diag_info, handle_format_attribute): Likewise.
1769         * c-gimplify.c (push_context, pop_context, finish_bc_block):
1770         * c-lex.c (c_lex_with_flags, lex_string): Likewise.
1771         * c-objc-common.c (c_tree_printer): Likewise.
1772         * c-pch.c (pch_init): Likewise.
1773         * c-pragma.c (maybe_apply_pragma_weak): Likewise.
1774         * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise.
1775         * c-typeck.c (c_incomplete_type_error, composite_type,
1776         common_pointer_type, common_type, same_translation_unit_p,
1777         tagged_types_tu_compatible_p, finish_init, pop_init_level,
1778         set_designator, set_nonincremental_init_from_string,
1779         process_init_element, c_finish_if_stmt): Likewise.
1780         * caller-save.c (init_caller_save, save_call_clobbered_regs,
1781         insert_restore, insert_save, insert_one_insn): Likewise.
1782         * calls.c (emit_call_1, compute_argument_block_size,
1783         precompute_arguments, expand_call, emit_library_call_value_1,
1784         store_one_arg): Likewise.
1785
1786 2004-09-07  Nathan Sidwell  <nathan@codesourcery.com>
1787
1788         * configure.ac (enable-checking): Add release option. Reorganize
1789         to avoid repetition.
1790         * configure: Rebuilt.
1791         * doc/install.texi (enable-checking): Amend documentation.
1792
1793 2004-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1794
1795         PR bootstrap/17313
1796         * Makefile.in (specs.ready): Depend on cc1$(exeext).
1797
1798 2004-09-06  James E Wilson  <wilson@specifixinc.com>
1799
1800         * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit,
1801         movdf_hardfloat_32bit): Split fG into two alternatives.
1802         (movv2sf_hardfloat_64bit): Split fYG into two alternatives.
1803
1804         * emit-rtl.c (try_split): Check INSN_P before may_trap_p call.
1805
1806 2004-09-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1807
1808         * final.c (output_in_slot): Delete.
1809         (final_scan_insn): Revert 2004-09-03 change.
1810         (output_asm_insn): Likewise.
1811         * config/sparc/sparc.c (output_return): Likewise.
1812         (output_sibcall): Likewise.
1813
1814 2004-09-06  Jan Hubicka  <jh@suse.cz>
1815
1816         * loop.c (loop_dump_aux): Do not print RTL when not available.
1817         * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use
1818         frontend specific type nodes.
1819         (produce_memory_decl_rtl): Break out from ...
1820         (prepare_decl_rtl): ... here.  Handle ADDR_EXPR correctly.
1821         (get_computation_at): Avoid random tree sharing.
1822         (tree_ssa_iv_optimize): Verify tree sharing; dump loops.
1823
1824 2004-09-06  Zack Weinberg  <zack@codesourcery.com>
1825
1826         * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove
1827         unnecessary commands.
1828
1829 2004-09-06  Mohan Embar  <gnustuff@thisiscool.com>
1830
1831         * Makefile.in (rtl.o): Remove -DGENERATOR_FILE.
1832         (bitmap.o): Likewise.
1833
1834 2004-09-06  Paolo Bonzini  <bonzini@gnu.org>
1835
1836         Unify the management of RTL and tree-level dump files.
1837
1838         * cfgexpand.c (tree_expand_cfg): Fix incorrect comment.
1839         Don't print function name to the dump file, the pass manager
1840         would do this for us. Add code from the top of
1841         rest_of_compilation, up to the initial RTL dump.
1842         * passes.c (rest_of_handle_jump): Call fixup_tail_calls and
1843         close the DFI_sibling dump file.
1844         (rest_of_compilation): Don't do that here.  Remove code up to the
1845         initial RTL dump.
1846         (init_optimization_passes): Remove.
1847         (pass_rest_of_compilation): Change pass name to NULL.
1848         * toplev.c (lang_dependent_init): Do not use an empty dump file prefix.
1849         Do not call init_optimization_passes.
1850         * toplev.h (init_optimization_passes): Remove.
1851
1852         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
1853         finish_graph_dump_file): Remove SUFFIX parameter.
1854         * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file,
1855         finish_graph_dump_file): Likewise.
1856
1857         * tree-pass.h (struct tree_opt_pass): Add `letter' field.
1858         * cfgexpand.c (pass_expand): Adjust.
1859         * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust.
1860         * passes.c (pass_rest_of_compilation): Adjust.
1861         * predict.c (pass_profile): Adjust.
1862         * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust.
1863         * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts,
1864         pass_split_crit_edges, pass_warn_function_return): Adjust.
1865         * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust.
1866         * tree-dfa.c (pass_referenced_vars): Adjust.
1867         * tree-eh.c (pass_lower_eh): Adjust.
1868         * tree-if-conv.c (pass_build_ssa): Adjust.
1869         * tree-into-ssa.c (pass_build_ssa): Adjust.
1870         * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1871         * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust.
1872         * tree-nrv.c (pass_nrv): Adjust.
1873         * tree-optimize.c (pass_gimple, pass_all_optimizations,
1874         pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
1875         pass_init_datastructures): Adjust.
1876         * tree-outof-ssa.c (pass_del_ssa): Adjust.
1877         * tree-profile.c (pass_tree_profile): Adjust.
1878         * tree-sra.c (pass_sra): Adjust.
1879         * tree-ssa-alias.c (pass_may_alias): Adjust.
1880         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust.
1881         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust.
1882         * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust.
1883         * tree-ssa-dom.c (pass_dominator): Adjust.
1884         * tree-ssa-dse.c (pass_dse): Adjust.
1885         * tree-ssa-forwprop.c (pass_forwprop): Adjust.
1886         * tree-ssa-if-conv.c (pass_if_conversion): Adjust.
1887         * tree-ssa-loop-ch.c (pass_ch): Adjust.
1888         * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim,
1889         pass_loop_done, pass_complete_unroll, pass_iv_canon,
1890         pass_iv_optimize, pass_vectorize): Adjust.
1891         * tree-ssa-phiopt.c (pass_phiopt): Adjust.
1892         * tree-ssa-pre.c (pass_pre, pass_fre): Adjust.
1893         * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized,
1894         pass_late_warn_uninnitialized): Adjust.
1895         * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust.
1896
1897         * Makefile.in (tree-dump.o): Add new dependencies.
1898         * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all.
1899         * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize):
1900         Likewise.
1901         * toplev.c (dump_file_name): New.
1902         * tree-dump.c (dump_enable_all): Add LETTER parameter.
1903         (struct dump_file_info): Add NUM and LETTER fields.
1904         (dump_files): Adjust and add RTL dump files.
1905         (dump_register): Add NUM and LETTER fields.
1906         (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New.
1907         (dump_begin): Use get_dump_file_name.
1908         (dump_switch_p_1): Adjust call to dump_enable_all.
1909         * tree-dump.h (dump_register): Adjust prototype.
1910         * tree-optimize.c (register_one_dump_file): Take dump file index.
1911         Support flags for RTL dumps.
1912         (register_dump_files): Fill in NUM field of struct dump_file_info.
1913         Track properties both when the gate is executed and when it is not.
1914         (execute_todo): Dump RTL.  Add PROPERTIES parameter.
1915         (execute_one_pass): Pass properties to execute_todo.  Handle VCG
1916         dumps of RTL.
1917         * tree-pass.h (dump_file_name): New.
1918         * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p):
1919         New.
1920
1921         * Makefile.in (passes.o): Add new dependencies.
1922         * passes.c (struct dump_file_info, enum dump_file_index,
1923         dump_file_tbl, init_optimization_passes): Remove.
1924         (open_dump_file, close_dump_file): Use tree-dumping infrastructure.
1925         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use
1926         dump_enabled_p.
1927         (finish_optimization_passes): Update finish_graph_dump_file loop.
1928         (enable_rtl_dump_file): Remove.
1929         * tree-dump.c (dump_files): Adjust and add RTL dump files.
1930         (enable_rtl_dump_file): Add here.
1931         * tree.h (enum tree_dump_index): Add RTL dump file indices.
1932         * doc/invoke.texi (Debugging options): Document new RTL debugging
1933         options.  Update.
1934
1935 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1936
1937         * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,
1938         gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c,
1939         stor-layout.c, target.h, tree-cfg.c, tree-chrec.c,
1940         tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
1941         tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c,
1942         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c,
1943         tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h,
1944         vec.h: Fix comment formatting.
1945
1946 2004-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1947
1948         * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h,
1949         et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h,
1950         hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c,
1951         tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c,
1952         tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1953         tree-ssa-loop-niter.c, tree-ssa-operands.c,
1954         tree-ssa-operands.h, tree-ssa-propagate.c,
1955         tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c,
1956         vec.c, vec.h: Fix comment typos.  Follow spelling conventions.
1957
1958 2004-09-05  Diego Novillo  <dnovillo@redhat.com>
1959
1960         * tree-if-conv.c (gate_tree_if_conversion): Enable only if the
1961         vectorizer is enabled.
1962
1963 2004-09-05  Andreas Jaeger  <aj@suse.de>
1964
1965         * tree-if-conv.c: Spell check comments and clean up whitespace.
1966
1967 2004-09-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1968
1969         * tree-ssa-loop-ivopts.c: New file.
1970         * Makefile.in (tree-ssa-loop-ivopts.c): Add.
1971         * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost,
1972         target_pres_cost, target_spill_cost): Declare.
1973         * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost,
1974         spill_cost): Renamed to ...
1975         (target_avail_regs, target_res_regs, target_small_cost,
1976         target_pres_cost, target_spill_cost): ... and exported.
1977         (init_set_costs, global_cost_for_size): Work with renamed variables.
1978         * common.opt (flag_ivopts): New flag.
1979         * expr.c (expand_expr_real_1): Handle SSA_NAME case.  Handle
1980         REF_ORIGINAL.
1981         * gimplify.c (struct gimplify_ctx): Add into_ssa field.
1982         (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support
1983         generating SSA form.
1984         (force_gimple_operand): New function.
1985         * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar.
1986         * tree-cfg.c (stmt_bsi): New function.
1987         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
1988         PARAM_IV_MAX_CONSIDERED_USES): New.
1989         * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge,
1990         bsi_insert_on_edge_immediate_loop. standard_iv_increment_position,
1991         ip_end_pos, ip_normal_pos, force_gimple_operand): Declare.
1992         * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names.
1993         * tree-nested.c (build_addr): Export.
1994         * tree-optimize.c (init_tree_optimization_passes): Add
1995         pass_iv_optimize.
1996         * tree-pass.h (pass_iv_optimize): Declare.
1997         * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and
1998         IMAGPART_EXPR.
1999         * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable
2000         as a phi node argument.
2001         (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop,
2002         ip_end_pos, ip_normal_pos, standard_iv_increment_position): New
2003         functions.
2004         * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export.
2005         * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts,
2006         pass_iv_optimize): New pass.
2007         * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL.
2008         * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL.
2009         * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions.
2010         * tree.h (REF_ORIGINAL): New macro.
2011         (build_int_cst_type, unsigned_type_for, zero_p,
2012         cst_and_fits_in_hwi, build_addr): Declare.
2013         * doc/invoke.texi (-fivopts): Document.
2014         (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
2015         PARAM_IV_MAX_CONSIDERED_USES): Document.
2016         * doc/passes.texi: Document induction variable optimizations pass.
2017
2018 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2019
2020         * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New.
2021         * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1.
2022         * c-common.c (c_common_attribute_table): Accept parameters to
2023         sentinel attribute.
2024         (check_function_sentinel, handle_sentinel_attribute): Likewise.
2025         * doc/extend.texi: Update accordingly.
2026
2027 2004-09-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2028
2029         * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST):
2030         New.
2031         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel'
2032         attribute.
2033         * c-common.c (handle_sentinel_attribute, check_function_sentinel):
2034         New functions.
2035         (c_common_attribute_table): Add `sentinel' attribute.
2036         (check_function_arguments): Handle `sentinel' attribute.
2037         * doc/extend.texi: Document `sentinel' attribute.
2038
2039 2004-09-04  H.J. Lu  <hongjiu.lu@intel.com>
2040
2041         * configure: Regenerated.
2042
2043 2004-09-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2044
2045         * gimplify.c (internal_get_tmp_var): Remove unused var CLASS.
2046
2047         * tree.c (save_expr): No longer TREE_READONLY.
2048
2049 2004-09-04  Jan Hubicka  <jh@suse.cz>
2050
2051         * passes.c (rest_of_clean_state):  Fix merge conflict made during
2052         commiting the patch.
2053
2054 2004-09-04  Jan Hubicka  <jh@suse.cz>
2055
2056         * passes.c (rest_of_clean_state):  Decompose the instruction stream.
2057
2058 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2059
2060         * doc/md.texi (shift patterns): New anchor.  Add reference to
2061         TARGET_SHIFT_TRUNCATION_MASK.
2062         * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document.
2063         * target.h (shift_truncation_mask): New target hook.
2064         * targhook.h (default_shift_truncation_mask): Declare.
2065         * targhook.c (default_shift_truncation_mask): Define.
2066         * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define.
2067         (TARGET_INITIALIZER): Include it.
2068         * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT
2069         and LSHIFTRT cases.  Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise
2070         reject all out-of-range values.  Fix sign-extension code for modes
2071         whose width is smaller than HOST_BITS_PER_WIDE_INT.
2072         * optabs.c (simplify_expand_binop, force_expand_binop): New functions.
2073         (expand_superword_shift, expand_subword_shift): Likewise.
2074         (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise.
2075         (expand_binop): Use them to implement double-word shifts.
2076         * config/arm/arm.c (arm_shift_truncation_mask): New function.
2077         (TARGET_SHIFT_TRUNCATION_MASK): Define.
2078
2079 2004-09-04  Jan Hubicka  <jh@suse.cz>
2080
2081         * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object.
2082         (mix): New macro copied from hashtab.c
2083         (iterative_hash_hashval_t, iterative_hash_pointer,
2084         iterative_hash_host_wide_int): New functions based on hashtab.c
2085         implementation.
2086
2087 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2088
2089         * config/mips/mips.md (mask): New mode attribute.
2090         (zero_extendsidi2): Add memory alternative.
2091         (*zero_extendsidi2_mem): Delete.
2092         (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.  Use
2093         memory_operand in the TARGET_MIPS16 check.
2094         (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns.
2095         Redefine using :GPR and :SHORT.
2096         (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check.
2097
2098 2004-09-04  Uros Bizjak  <uros@kss-loka.si>
2099
2100         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L}
2101         using rint_optab.
2102         (expand_builtin): Expand BUILT_IN_RINT{,F,L} using
2103         expand_builtin_mathfn.
2104         * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use
2105         btrunc?f patterns for btrunc_optab. Implement rint_optab using
2106         rint?f patterns.
2107         * optabs.c (init_optabs): Initialize rint_optab.
2108         * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc.
2109         Add new OTI_rint.
2110         (btrunc_optab): Rename macro from trunc_optab.
2111         (rint_optab): Define corresponding macro.
2112
2113         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR,
2114         UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM.
2115
2116         * config/i386/i386-protos.h (emit_i387_cw_initialization):
2117         Change prototype. Add new int parameter.
2118         * config/i386/i386.c (emit_i387_cw_initialization):
2119         Handle new rounding modes.
2120
2121         * config/i386/i386.h (enum fp_cw_mode): Delete.
2122         (MODE_NEEDED): Handle new rounding modes.
2123         (EMIT_MODE_SET): Change condition to handle new rounding modes.
2124
2125         * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL,
2126         UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to
2127         represent different rounding modes of frndint insn.
2128         (type): Add frndint type.
2129         (i387, length, memory): Handle this type.
2130         (i387_cw): New attribute definition.
2131         (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory,
2132         *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory,
2133         *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory):
2134         Add "i387_cw" attribute defined to "trunc".
2135         (x86_fnstcw_1): Remove comment.
2136         (*frndintxf2): Rename insn definition to frndintxf2. Move
2137         insn definition near rint?f2 expanders.
2138         (rintdf2, rintsf2, rintxf2): New expanders to implement rint,
2139         rintf and rintl built-ins as inline x87 intrinsics.
2140         (frndintxf2_floor): New pattern to implement floor rounding
2141         mode with frndint x87 instruction.
2142         (floordf2, floorsf2, floorxf2): New expanders to implement floor,
2143         floorf and floorl built-ins as inline x87 intrinsics.
2144         (frndintxf2_ceil): New pattern to implement ceil rounding
2145         mode with frndint x87 instruction.
2146         (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil,
2147         ceilf and ceill built-ins as inline x87 intrinsics.
2148         (frndintxf2_trunc): New pattern to implement trunc rounding
2149         mode with frndint x87 instruction.
2150         (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc,
2151         truncf and truncl built-ins as inline x87 intrinsics.
2152         (frndintxf2_mask_pm): New pattern to implement rounding
2153         mode with exceptions with frndint x87 instruction.
2154         (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to
2155         implement nearbyint, nearbyintf and nearbyintl built-ins as
2156         inline x87 intrinsics.
2157
2158 2004-09-04  Richard Sandiford  <rsandifo@redhat.com>
2159
2160         * config/mips/mips.md (SHORT): New mode macro.
2161         (size): New mode attribute.
2162         (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT.
2163         (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous
2164         *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns.  Use only if
2165         !ISA_HAS_SEB_SEH.
2166         (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous
2167         *extend[qh]isi2_hw patterns and extending them to di.
2168         (extendqihi2): Implement as define_insn_and_split that produces
2169         extendqisi2 after reload.
2170
2171 2004-09-03  Devang Patel  <dpatel@apple.com>
2172
2173         * Makefile.in (OBJS-common): Add tree-if-conv.o
2174         (tree-if-conv.o): New rule.
2175         * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag.
2176         (get_loop_body_in_bfs_order): New.
2177         * cfgloop.h (get_loop_body_in_bfs_order): New.
2178         * tree-flow.h (enum move_pos): Move here from ..
2179         * tree-ssa-loop-im.c (enum move_pos): here.
2180         (movement_possibility): Make externally visible.
2181         * tree-optimize.c (init_tree_optimization_passes): New entry for
2182         if conversion pass.
2183         * tree-pass.h (pass_if_conversion): New.
2184         * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR.
2185         * tree-if-conv.c: New file.
2186         * doc/passes.texi: Document tree if-conversion pass.
2187         * doc/tree-ssa.texi: Same.
2188
2189 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
2190
2191         PR target/14925:
2192         Makefile.in (LIB2ADDEHSTATIC): New.
2193         (LIB2ADDEHSHARED): New.
2194         (LIBUNWIND): New.
2195         (LIBUNWINDDEP): New.
2196         (SHLIBUNWIND_LINK): New.
2197         (SHLIBUNWIND_INSTALL): New.
2198         (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND,
2199         LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL.
2200         (clean): Remove libunwind*
2201         (stage1-start): Remove and copy stage1/libunwind*.
2202         (stage2-start): Remove and copy stage2/libunwind*.
2203         (stage3-start): Remove and copy stage3/libunwind*.
2204         (stage4-start): Remove and copy stage4/libunwind*.
2205         (stageprofile-start): Remove and copy stageprofile/libunwind*.
2206         (stagefeedback-start): Remove and copy stagefeedback/libunwind*.
2207
2208         * config.gcc (ia64*-*-linux*): Always add t-libunwind to
2209         tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to
2210         tmake_file if --with-system-libunwind isn't used.
2211
2212         * config/ia64/t-glibc-libunwind: New file.
2213         * config/t-libunwind-elf: Likewise.
2214         * unwind-compat.c: Likewise.
2215         * unwind-compat.h: Likewise.
2216         * unwind-dw2-fde-compat.c: Likewise.
2217
2218         * config/ia64/t-glibc (LIB2ADDEH): Updated.
2219         * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2220
2221         * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define
2222         aliases if needed.
2223         * unwind-dw2-fde-glibc.c: Likewise.
2224         * unwind-dw2.c: Likewise.
2225
2226         * config/t-libunwind (LIB2ADDEH): Updated.
2227         (LIB2ADDEHSTATIC): New.
2228         (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS.
2229         (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER.
2230
2231         * configure.ac: Change --enable-libunwind-exceptions to
2232         --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS.
2233         * configure: Regenerated.
2234         * config.in: Updated.
2235
2236         * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or
2237         above and mention --with-system-libunwind.
2238         (ia64-*-hpux*): Mention --enable-libunwind-exceptions is
2239         removed in gcc 3.4.3 and later.
2240
2241         * gcc.c (init_spec): Add -lunwind to -lgcc_s if
2242         USE_LIBUNWIND_EXCEPTIONS is defined.
2243
2244         * mklibgcc.in: Support libunwind.
2245
2246 2004-09-03  H.J. Lu  <hongjiu.lu@intel.com>
2247
2248         * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and
2249         m_NOCONA.
2250
2251 2004-09-03  Richard Henderson  <rth@redhat.com>
2252
2253         PR middle-end/9997
2254         * cfgexpand.c (LOCAL_ALIGNMENT): Provide default.
2255         (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise.
2256         (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num,
2257         stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc,
2258         frame_phase, get_decl_align_unit, add_stack_var, triangular_index,
2259         resize_stack_vars_conflict, add_stack_var_conflict,
2260         stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp,
2261         union_stack_vars, partition_stack_vars, dump_stack_var_partition,
2262         expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var,
2263         expand_one_static_var, expand_one_hard_reg_var,
2264         expand_one_register_var, expand_one_error_var, defer_stack_allocation,
2265         expand_one_var, expand_used_vars_for_block, clear_tree_used): New.
2266         (expand_used_vars): Rewrite.
2267         * Makefile.in (cfgexpand.o): Update dependencies.
2268
2269 2004-09-04  Jan Hubicka  <jh@suse.cz>
2270
2271         * cfg.c (free_edge): Use ggc_free.
2272         (expunge_block): Use ggc_free.
2273         * passes.c (rest_of_clean_state): Free after compilation.
2274         * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs
2275         * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments.
2276
2277 2004-09-03  James E Wilson  <wilson@specifixinc.com>
2278
2279         * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after
2280         DECL_EXTERNAL check.
2281
2282 2004-09-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2283
2284         * final.c (output_in_slot): New global variable.
2285         (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter.
2286         Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE.  Set
2287         'output_in_slot' before invoking output_asm_insn.
2288         (output_asm_insn): Add a space after the tab if 'output_in_slot'
2289         is set.
2290         * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to
2291         final_scan_insn.
2292         (output_sibcall): Likewise.
2293
2294 2004-09-03  Jan Hubicka  <jh@suse.cz>
2295
2296         * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays.
2297         * tree-ssanames (init_ssanames): Likewise.
2298
2299 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
2300
2301         * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class,
2302         objc_declare_protocols, objc_start_protocol,
2303         objc_start_class_interface, objc_start_category_interface,
2304         objc_continue_interface, objc_finish_interface,
2305         objc_add_instance_variable, objc_set_visibility, objc_set_method_type,
2306         objc_start_class_implementation, objc_start_category_implementation,
2307         objc_continue_implementation, objc_finish_implementation,
2308         objc_add_method_declaration, objc_start_method_definition,
2309         objc_finish_method_definition, objc_build_keyword_decl,
2310         objc_build_method_signature, objc_build_encode_expr,
2311         objc_build_protocol_expr, objc_build_selector_expr,
2312         objc_build_message_expr, objc_build_string_object,
2313         objc_get_class_reference, objc_get_protocol_qualified_type,
2314         objc_static_init_needed_p, objc_generate_static_init_call): New stubs.
2315
2316 2004-09-03  James E Wilson  <wilson@specifixinc.com>
2317
2318         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
2319
2320         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
2321         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
2322         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
2323         (mips_recip1_<fmt>): Use frdiv1 type.
2324         (mips_recip2_<fmt>): Use frdiv2 type.
2325         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
2326         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
2327         and frsqrt1.
2328         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
2329
2330 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
2331
2332         * reload.c (find_reloads): Swap operand_loc pointers for
2333         find_dummy_reload if we have swapped two operands.
2334
2335 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
2336
2337         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
2338         to get the tablejump-insn before the jump-table label.
2339
2340 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
2341
2342         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
2343         objc_declare_protocols, objc_build_message_expr,
2344         objc_finish_message_expr, objc_build_selector_expr,
2345         objc_build_protocol_expr, objc_build_encode_expr,
2346         objc_build_string_object, objc_get_protocol_qualified_type,
2347         objc_get_class_reference, objc_get_class_ivars,
2348         objc_start_class_interface, objc_start_category_interface,
2349         objc_start_protocol, objc_continue_interface, objc_finish_interface,
2350         objc_start_class_implementation, objc_start_category_implementation,
2351         objc_continue_implementation, objc_finish_implementation,
2352         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
2353         objc_add_method_declaration, objc_start_method_definition,
2354         objc_finish_method_definition, objc_add_instance_variable,
2355         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
2356         objc_finish_try_stmt, objc_begin_catch_clause,
2357         objc_finish_catch_clause, objc_build_finally_clause,
2358         objc_build_synchronized, objc_static_init_needed_p,
2359         objc_generate_static_init_call): New prototypes.
2360
2361 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
2362
2363         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
2364         is only one reg.
2365         (ia64_function_value): Ditto.
2366
2367 2004-09-03  Jan Beulich  <jbeulich@novell.com>
2368
2369         * config.gcc: Resurrect NetWare as a target. Handle special case of
2370         Novell linker to be used (specified through --with-ld=) and threading
2371         model of either Posix (default) or NKS.
2372         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
2373         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
2374         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
2375         * config/i386/netware.c, config/i386/netware.h: New.
2376         * config/i386/nwld.c, config/i386/nwld.h: New.
2377         * config/i386/netware-crt0.c: New.
2378         * config/i386/netware-libgcc.c: New.
2379         * config/i386/netware-libgcc.def: New.
2380         * config/i386/netware-libgcc.exp: New.
2381         * config/i386/t-netware, config/i386/t-nwld: New.
2382         * gthr-nks.h: New.
2383         * doc/install.texi: Document NKS threading model.
2384
2385 2004-09-03  Jan Beulich  <jbeulich@novell.com>
2386
2387         PR c/7054
2388         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
2389         * tree.h (initial_max_fld_align): Declare
2390         * stor-layout.c (initial_max_fld_align): Define and initialize.
2391         (maximum_field_alignment): Initialize to the same value.
2392         * common.opt: Add -fpack-struct= variant of switch.
2393         * opts.c: Handle -fpack-struct= variant of switch.
2394         * c-pragma.c: Change #pragma pack() handling so that it becomes
2395         compatible to other compilers: accept individual 'push' argument,
2396         make final pop restore (command line) default, correct interaction
2397         of push/pop and sole specification of a new alignment (so that the
2398         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
2399         to #pragma pack(push, <n>).
2400         * doc/extend.texi: New node "Structure-Packing Pragmas" under
2401         "Pragmas", describing #pragma pack.
2402         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
2403         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
2404         Document new TARGET_DEFAULT_PACK_STRUCT.
2405
2406 2004-09-03  Devang Patel  <dpatel@apple.com>
2407
2408         * dwarf2out.c (gen_field_die). Equate decl number to die.
2409
2410 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
2411
2412         PR target/15832
2413         * global.c (modify_reg_pav): New function.
2414         (make_accurate_live_analysis): Call the new function.  Move pavin
2415         modification by earlyclobber set into the new function.
2416
2417 2004-09-03  Andreas Schwab  <schwab@suse.de>
2418
2419         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
2420         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
2421         extended.
2422
2423 2004-09-02  Jan Beulich  <jbeulich@novell.com>
2424
2425         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
2426         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
2427         not unwind code specific ones.
2428         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
2429         Remove unwind code specific dependencies.
2430         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
2431         Remove gbl-ctors.h.
2432         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
2433         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
2434         * tsystem.h: Declare memcpy and memset when inhibit_libc.
2435
2436 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
2437
2438         * combine.c (try_combine): Delay modifying of insns which cannot
2439         be easily undone.
2440
2441 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
2442
2443         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
2444         tree-loop-im.
2445         * gcc/tree-ssa-loop.c: Ditto
2446         * gcc/tree-ssa-loop-ivcanon.c: Ditto
2447         * gcc/doc/invoke.texi: Ditto.
2448
2449 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
2450
2451         * c-decl.c (store_parm_decls_newstyle): Make static.
2452         (store_parm_decls_from): New function.
2453         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
2454         (store_parm_decls_from): New prototype.
2455
2456 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
2457
2458         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
2459         HImode with STRICT_ALIGNMENT.
2460
2461 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
2462
2463         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
2464         (TARGET_OS_CPP_BUILTINS): Likewise.
2465         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
2466         TARGET_BPABI_CPP_BUILTINS.
2467
2468 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
2469
2470         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
2471
2472 2004-09-02  Eric Christopher  <echristo@redhat.com>
2473
2474         * builtins.c (expand_builtin_cabs): Delete.
2475         (expand_builtin): If unable to fold the values do a normal
2476         library call for builtin_cab*.
2477         (fold_builtin_cabs): Depend on optimize and optimize_size.
2478         * optabs.c (expand_cmplxdiv_straight): Delete.
2479         (expand_cmplxdiv_wide): Ditto.
2480         (expand_vector_binop): Ditto.
2481         (expand_vector_unop): Ditto.
2482         (expand_complex_abs): Delete.
2483         (expand_binop): Remove calls to above functions.
2484         Remove open coding of complex arithmetic.
2485         (expand_unop): Ditto.
2486         * optabs.h: Remove prototypes.
2487
2488 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
2489
2490         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
2491         * c-tree.h (store_parm_decls_newstyle): New prototype.
2492
2493 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
2494
2495         * config/rs6000/rs6000.c (expand_block_clear): Use vector
2496         instructions if available.
2497         (expand_block_move): Likewise.
2498
2499 2004-09-03  Jan Hubicka  <jh@suse.cz>
2500
2501         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
2502
2503 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
2504
2505         * config/arm/symbian.h (LIB_SPEC): Define to empty.
2506         * config/arm/t-symbian (SHLIB_LC): Likewise.
2507
2508 2004-09-02  Paul Brook  <paul@codesourcery.com>
2509
2510         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
2511
2512 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2513
2514         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
2515         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
2516         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
2517         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
2518         (mips_issue_rate): Remove unreachable abort.
2519         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
2520         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
2521         (mips_block_move_straight, print_operand_address, mips_file_start)
2522         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
2523         (mips_output_conditional_branch, mips_expand_builtin_direct)
2524         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
2525         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
2526         with gcc_assert.
2527
2528 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2529
2530         * config/mips/mips.md (*lea_high64): Change split condition to
2531         flow2_completed.  Add a peephole2 to generate a more parallel version.
2532
2533 2004-09-02  Jan Hubicka  <jh@suse.cz>
2534
2535         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
2536         GGC.
2537
2538         * ggc-page.c: include tree-flow.h.
2539         (extra_order_size_table): Add stmt_ann_d.
2540         (STAT_LABEL): Rename from ....
2541         (LABEL): ... this one.
2542         * Makefile.in (ggc-page.o): Add dependency.
2543
2544         * ggc-common.c (ggc_force_collect): New global variable.
2545         (loc_description): Add fields "freed", "collected"
2546         (ptr_hash): New static hash
2547         (ptr_hash_entry): New structure.
2548         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
2549         (ggc_record_overhead): Take ptr argument, record it
2550         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
2551         (cmp_statistics): Imrove sorting.
2552         (dump_ggc_loc_statistics): Output newly collected statistics
2553         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
2554         (ggc_free): Call ggc_free_overhead.
2555         (ggc_collect): Force collection when asked to be forced.
2556         (ggc_collect): Call ggc_prune_overhead_list.
2557         * ggc.h (ggc_force_collect): Declare
2558         (ggc_record_overhead): Update prototype.
2559         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
2560
2561 2004-09-02  James E Wilson  <wilson@specifixinc.com>
2562
2563         * common.opt (ftrapping-math): Default to on.
2564
2565 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
2566
2567         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
2568
2569 2004-09-02  Denis Chertykov  <denisc@overta.ru>
2570
2571         PR target/16884
2572         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
2573         match_scratch.
2574         (*movmemqi_insn): Likewise.
2575         (*movmemhi): Likewise.
2576         (clrmemhi): Likewise.
2577         (*clrmemqi): Likewise.
2578         (*clrmemhi): Likewise.
2579
2580 2004-09-02  Paul Brook  <paul@codesourcery.com>
2581
2582         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
2583         default_use_cxa_atexit=yes.
2584
2585 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
2586
2587         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
2588         (struct kernel_old_ucontext): Delete.
2589         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
2590         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
2591         when IN_LIGGCC2.
2592
2593 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
2594
2595         * toplev.c (process_options): Fix typo.
2596
2597 2004-09-01  Richard Henderson  <rth@redhat.com>
2598
2599         PR middle-end/17258
2600         * calls.c (initialize_argument_information): Tighten pass-through
2601         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
2602         Use build_fold_addr_expr.
2603         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
2604         that assumes ADDR_EXPR allocates stack space.
2605         * fold-const.c (build_fold_addr_expr_with_type): Look through
2606         WITH_SIZE_EXPR.
2607
2608 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
2609
2610         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
2611         * ggc.h (ggc_alloc_rtx): Delete.
2612
2613 2004-09-01  Roger Sayle  <roger@eyesopen.com>
2614
2615         * expmed.c (enum alg_code): Remove long unused enumeration values.
2616         (struct mult_cost): New structure to hold the "score" of a synthetic
2617         multiply sequence, including both a rtx_cost and a latency field.
2618         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
2619         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
2620         (struct algorithm): Change type of cost field to be mult_cost.
2621         (synth_mult): Change type of cost_limit argument to be a
2622         pointer to a mult_cost.  Update all cost comparisons to use the
2623         new mult_cost infrastructure.  For alg_add_factor and
2624         alg_sub_factor operations, latency is lower than the rtx_cost.
2625         (choose_mult_variant):  Update calls to synth_mult.  Perform
2626         cost comparisons using the new mult_cost infrastructure.
2627         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
2628         to optain the total rtx_cost of a synth_mult "algorithm".
2629
2630 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
2631
2632         * config/rs6000/power4.md: Increase store latency to 12.
2633         * config/rs6000/power5.md: Same.
2634
2635 2004-09-01  James E Wilson  <wilson@specifixinc.com>
2636
2637         PR target/14064
2638         * config/avr/avr.c (avr_unique_section): Delete prototype and
2639         definition.
2640         (TARGET_ASM_UNIQUE_SECTION): Delete.
2641
2642 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2643
2644         * c-parse.in (primary): Call objc_build_message_expr(),
2645         objc_build_selector_expr(), objc_build_protocol_expr(),
2646         objc_build_encode_expr() and objc_build_string_object() instead of
2647         build_message_expr(), build_selector_expr(), build_protocol_expr(),
2648         build_encode_expr() and build_objc_string_object(), respectively.
2649         (component_decl_list2): Call objc_get_class_ivars() instead of
2650         get_class_ivars_from_name().
2651         (keyworddecl): Call objc_build_keyword_decl() instead of
2652         build_keyword_decl().
2653         (receiver): Call objc_get_class_reference() instead of
2654         get_class_reference().
2655         (reswords): Add blank line before @@ifobjc section, for clarity.
2656
2657 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
2658
2659         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
2660         to Altivec vetors.
2661
2662 2004-09-01  Wu Yongwei  <adah@sh163.net>
2663             Danny Smith  <dannysmith@users.sourceforge.net>
2664
2665         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
2666         not Windows 'DWORD'.
2667         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
2668         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
2669         (__gthr_win32_recursive_mutex_init_function): Add prototype for
2670         __GTHREAD_HIDE_WIN32API case..
2671         (__gthr_win32_recursive_mutex_lock): Likewise.
2672         (__gthr_win32_recursive_mutex_trylock): Likewise.
2673         (__gthr_win32_recursive_mutex_unlock): Likewise.
2674         (__gthread_recursive_mutex_init_function); Add definition for
2675         __GTHREAD_HIDE_WIN32API case.
2676         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
2677         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
2678         call to InterlockedDecrement.
2679
2680 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2681
2682         * tree-tailcall.c (find_tail_calls): Also fail is statement has
2683         volatile operands.
2684
2685         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
2686
2687         * doc/c-tree.texi: Document new operands for ARRAY_REF and
2688         COMPONENT_REF.
2689
2690 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2691
2692         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
2693         * common.opt (fspeculative-prefetching): New.
2694         * flags.h (flag_speculative_prefetching_set): Declare.
2695         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
2696         values.
2697         * opts.c (flag_sepculative_prefetching_set): New variable.
2698         (common_handle_option): Handle -fspeculative-prefetching.
2699         * passes.c (rest_of_compilation): Ditto.
2700         * profile.c (instrument_values, compute_value_histograms, branch_prob):
2701         Use vectors instead of arrays.
2702         * toplev.c (process_options): Handle -fspeculative-prefetching.
2703         * rtl-profile.c: Include ggc.h.
2704         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
2705         rtl_gen_one_value_profiler_no_edge_manipulation,
2706         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
2707         argument changed.
2708         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
2709         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
2710         argument changed.
2711         * value-prof.c: Include ggc.h.
2712         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
2713         macros.
2714         (insn_prefetch_values_to_profile, find_mem_reference_1,
2715         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
2716         speculative_prefetching_transform): New.
2717         (value_profile_transformations): Call speculative_prefetching_transform.
2718         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
2719         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
2720         tree_find_values_to_profile, find_values to profile): Use vectors
2721         instead of arrays.
2722         (free_profiled_values): Removed.
2723         * value-prof.h (struct histogram_value): Renamed to
2724         struct histogram_value_t.
2725         (histogram_value, histogram_values): New types.
2726         (find_values_to_profile): Declaration changed.
2727         (free_profiled_values): Removed.
2728         (struct profile_hooks): Type of argument of the hooks changed to
2729         histogram_value.
2730         * doc/invoke.texi (-fspeculative-prefetching): Document.
2731
2732 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2733
2734         PR rtl-optimization/16408
2735         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
2736
2737 2004-09-01  Richard Henderson  <rth@redhat.com>
2738
2739         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
2740         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
2741
2742 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2743
2744         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
2745
2746 2004-09-01  Mike Stump  <mrs@apple.com>
2747
2748         * config/darwin.c (machopic_symbol_defined_p): In addition to
2749         being SYMBOL_REF_LOCAL_P, a symbol must also be
2750         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
2751         defined in this output file, or translation unit in the case
2752         of IMA not being used.
2753         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
2754         never need .indirect_symbol when indirecting.
2755
2756 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2757
2758         * Makefile.in (bb-reorder.o): Add several dependencies.
2759
2760 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
2761
2762         * fold-const.c (operand_equal_p): Require equal sign also for
2763         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
2764
2765 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2766
2767         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
2768         for use in configargs.h.  Put the cname in a separate variable.  Use
2769         that to set target_cpu_default2.
2770
2771 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
2772             Nick Clifton  <nickc@redhat.com>
2773
2774         * config/sh/sh.md ("length"): Increase branch length when
2775         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
2776         constant, 2 byte for aligning the constant.
2777
2778 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2779
2780         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
2781         CPU.
2782         (arm7tdmi-s): New CPU name.
2783         * arm/arm.c (ARM_CORE): Update for new format.
2784         * arm/arm.h (ARM_CORE): Likewise.
2785         * arm/gentune.sh: Update for extra field.
2786         * config.gcc: Likewise.
2787         * arm/arm-tune.md: Regenerate.
2788         * doc/invoke.texi: Document the real processor names for ARM cpus.
2789
2790 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
2791
2792         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
2793         (floatdidf): New functions.
2794         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
2795         (floatdisf): New functions.
2796         * t-arm-elf: Use them.
2797
2798 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
2799
2800         * c-common.h (lookup_interface): Remove prototype.
2801         (is_class_name): Rename to objc_is_class_name.
2802         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2803         (get_current_scope): Rename to objc_get_current_scope.
2804         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
2805         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
2806         (yylexname): Call objc_is_class_name() instead of is_class_name().
2807         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
2808         instead of lookup_objc_ivar().
2809         * stub-objc.c (lookup_interface): Remove stub.
2810         (is_class_name): Rename to objc_is_class_name.
2811         (lookup_objc_ivar): Rename to objc_lookup_ivar.
2812
2813 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2814
2815         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
2816         * config/arm/lib1funcs.asm: Do not include supplemental .S files
2817         when compiling for Symbian.
2818         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
2819         (TARGET_OS_CPP_BUILTINS): Likewise.
2820         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
2821
2822 2004-08-31  Stan Shebs  <shebs@apple.com>
2823
2824         * toplev.c (process_options): Ensure debug_hooks is initialized.
2825
2826 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2827
2828         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
2829         * target.h (cxx): Add export_class_data.
2830         * config/arm/arm.c (arm_cxx_export_class_data): New function.
2831         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
2832         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
2833
2834 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2835
2836         * config/sh/sh.c (output_branch): Check the insn length possibly
2837         in the delayed slot.
2838
2839 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2840
2841         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
2842         blank after ')'.
2843         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
2844
2845         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
2846         (c_sizeof_of_alignof_type): Likewise.
2847         * expr.c (array_ref_element_size): Likewise.
2848         (highest_pow2_factor_for_target): Likewise.
2849         * gimplify.c (canonicalize_addr_expr): Likewise.
2850         (gimplify_compound_lval): Likewise.
2851         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
2852         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
2853         * varasm.c (assemble_variable): Likewise.
2854         (output_constant_def_contents): Alignments are unsigned.
2855
2856 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2857             Jeff Law  <law@redhat.com>
2858
2859         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
2860         gets modified.
2861
2862 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
2863
2864         * hooks.c (hook_bool_void_true): New function.
2865         * hooks.h (hook_bool_void_true): Declare.
2866         * target-def.h (TARGET_CXX): Add
2867         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
2868         * target.h (struct cxx): Add key_method_may_be_inline.
2869         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
2870         function.
2871         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
2872         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
2873         __THUMB_INTERWORK.
2874
2875 2004-08-31  Denis Chertykov  <denisc@overta.ru>
2876
2877         PR target/15417
2878         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
2879         frame pointer register only in Pmode while reload in progress.
2880
2881 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
2882
2883         PR target/15334
2884         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
2885         because it breaks the 32-bit shift patterns that rely on a match_dup.
2886
2887 2004-08-31  Matt Austern  <austern@apple.com>
2888
2889         * config/darwin.c (darwin_make_decl_one_only): Allocate section
2890         names once per compilation, instead of once per symbol.
2891
2892 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
2893
2894         * Makefile.in (build_subdir): New substitution.
2895         (fixinc.sh): Simplify heavily since fixincludes is already built.
2896         (stmp-fixinc): Depend on specs.ready.
2897         (install-mkheaders): Use new location of fixincludes.
2898         (clean): Do not descend into fixinc.
2899         (FORBUILD): Replace with ../$(build_subdir).
2900         * configure.ac (build_subdir): Substitute.
2901         (FORBUILD): Do not set.
2902         (all_outputs): Remove fixinc/Makefile.
2903         (default commands): Do not create links in fixinc.
2904         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
2905         the fixincludes configuration steps and substituting
2906         @FIXINCL@ in fixinc.in.
2907         * fixinc.in: New, from fixinc/fixincl.sh.
2908
2909         * fixinc/*: Removed.
2910
2911 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
2912
2913         * attribs.c (strip_attrs): Remove.
2914         (split_specs_attrs): Move ...
2915         * c-decl.c: ... to here.
2916         * tree.h (split_specs_attrs, strip_attrs): Remove.
2917         * c-tree.h (split_specs_attrs): Declare.
2918
2919 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2920
2921         * read-rtl.c: Disable RTL checking.
2922         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
2923
2924 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
2925
2926         * config/mips/mips.md (fcond): New code macro and attribute.
2927         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
2928         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
2929         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
2930
2931 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
2932
2933         Revert:
2934         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
2935         PR rtl-optimization/16590
2936         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
2937
2938 2004-08-30  Andrew Pinski  <apinski@apple.com>
2939
2940         * hard-reg-set.h:
2941         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
2942         * ChangeLog: Fix previous ChangeLog entry.
2943
2944         PR rtl-opt/13987
2945         * config.host (use_long_long_for_widest_fast_int): New, default is
2946         off.
2947         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
2948         * configure.ac: If use_long_long_for_widest_fast_int, then
2949         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
2950         * configure: Regenerate.
2951         * config.in: Regenerate.
2952         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
2953         New: widest integer type supported efficiently in hardware for the
2954         host.
2955         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
2956         HOST_BITS_PER_WIDEST_FAST_INT.
2957         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
2958         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
2959         HOST_WIDEST_FAST_INT
2960         instead of HOST_WIDE_INT.
2961         (HARD_REG_SET_LONGS): Likewise.
2962         (UHOST_BITS_PER_WIDE_INT): Likewise.
2963         Change the checks for the fast cases to be based on
2964         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
2965
2966 2004-08-30  Steven Bosscher  <stevenb@suse.de>
2967
2968         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
2969         not the pointers.
2970
2971 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
2972
2973         PR 12738
2974         PR 17205
2975         Radar 3460526
2976         Radar 3775729
2977         * c-decl.c (grokdeclarator): Produce error for 'static' on local
2978         function declaration.
2979
2980 2004-08-30  Richard Henderson  <rth@redhat.com>
2981
2982         * expr.c (array_ref_element_size): Force aligned_size back to
2983         sizetype.
2984         (component_ref_field_offset): Similarly for aligned_offset.
2985         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
2986         low-bound, element-size, field-offset fields rather than
2987         computed values.
2988
2989 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2990
2991         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
2992         redundant code.
2993
2994 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
2995
2996         * c-tree.h (struct language_function): Add arg_info element.
2997         * c-decl.c (current_function_arg_info): New.
2998         (grokdeclarator, store_parm_decls): Use it instead of
2999         DECL_ARGUMENTS.
3000         (c_push_function_context, c_pop_function_context): Save and
3001         restore it.
3002
3003 2004-08-30  Richard Henderson  <rth@redhat.com>
3004
3005         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
3006         COMPONENT_REF to pointer arithmetic.
3007         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
3008         constant "c" as a valid constant initializer.  Allow narrowing of
3009         differences against the same base object, for any base object.
3010
3011 2004-08-30  Richard Henderson  <rth@redhat.com>
3012
3013         * expr.c (expand_expr_addr_expr): New.
3014         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
3015
3016 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3017
3018         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
3019         (mips_fp_condition): New enum.
3020         (mips_fp_conditions): New array.
3021         (print_fcc_operand): Delete.
3022         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
3023         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
3024         (builtin_description): Add "cond" field.
3025         (DIRECT_BUILTIN): Initialize it.
3026         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
3027         into INSN and CODE.  Initialize the "cond" field.
3028         (CMP_BUILTINS): Update accordingly.
3029         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
3030         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
3031         mips_fp_condition as argument.  Make it the final operand of the
3032         comparison instruction.
3033         (mips_expand_builtin): Update accordingly.
3034         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
3035         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
3036         the gaps.
3037         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
3038         Don't use the 'Q' operand prefix; just print the operand normally.
3039         (mips_cabs_*, mips_c_*): Delete, replacing with...
3040         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
3041         patterns.  Split the 4s versions into 2 ps patterns after reload.
3042
3043 2004-08-30  Richard Henderson  <rth@redhat.com>
3044
3045         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
3046         assuming an ADDR_EXPR is non-null.
3047
3048 2004-08-30  Jason Merrill  <jason@redhat.com>
3049
3050         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
3051
3052 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3053
3054         * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset,
3055         record_set, rtx_equal_for_memref_p, init_alias_analysis): Use
3056         gcc_assert and gcc_unreachable instead of abort.
3057         * alloc-pool.c (abort, fancy_abort): Remove.
3058         (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use
3059         gcc_assert or gcc_unreachable.
3060         * attribs.c (init_attributes, decl_attributes): Likewise.
3061         * bb-reorder.c (FREE, find_traces_1_round, copy_bb,
3062         mark_bb_for_unlikely_executed_section,
3063         add_labels_and_missing_jumps, fix_crossing_conditional_branches,
3064         fix_crossing_unconditional_branches):  Likewise.
3065         * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit,
3066         bitmap_operation):  Likewise.
3067         * bt-load.c (insn_sets_btr_p, augment_live_range,
3068         move_btr_def):  Likewise.
3069         * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size,
3070         apply_result_size, expand_builtin_apply, expand_builtin_mathfn,
3071         expand_builtin_mathfn_2, expand_builtin_mathfn_3,
3072         builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy,
3073         expand_builtin_memcmp, expand_builtin_args_info,
3074         std_gimplify_va_arg_expr, expand_builtin_unop,
3075         expand_builtin_fputs, expand_builtin_profile_func,
3076         expand_builtin_fork_or_exec, fold_builtin_bitop,
3077         fold_builtin_classify, fold_builtin_fputs): Likewise.
3078
3079 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3080
3081         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
3082         * gcov.c (abort): Remove undef.
3083
3084         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
3085         (struct tree_binfo): Remove primary field.
3086
3087 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3088
3089         * fixinc/Makefile.in (machname.h): Remove.
3090         (fixincl.x): Do not pass $@ to genfixes.
3091         * fixinc/genfixes: Remove code to produce machname.h.
3092         * fixinc/fixincl.sh: Move it here instead.
3093         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
3094         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
3095         return a bool indicating whether pz_mn_name_pat is NULL.
3096         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
3097         Declare extern C variables for the ENV_TABLE.
3098         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
3099         instead use the result of mn_get_regexps.
3100         * fixinc/fixtests.c: Likewise.
3101
3102 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
3103
3104         * configure.ac: Do not run fixincludes after stage1 during
3105         toplevel bootstrap.
3106         * configure: Regenerate.
3107
3108 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
3109
3110         * sched-deps.c (get_condition): Partially revert previous, by never
3111         trying to extract the condition from a condjump.
3112
3113 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
3114
3115         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
3116         (handle_visibility_attribute, c_determine_visibility): Likewise.
3117         * c-common.h (my_friendly_assert): Remove.
3118
3119 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
3120
3121         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
3122         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
3123         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
3124         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
3125         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
3126
3127 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
3128
3129         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
3130         in COMPONENT_REF nodes.
3131
3132 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3133
3134         PR c++/15378
3135         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
3136         global_dc->warning_as_error_requested.
3137         * diagnostic.c (diagnostic_initialize): Tidy.
3138         * diagnostic.h (diagnostic_context::x_data): Remove
3139         (diagnostic_context::issue_warnings_are_errors_message): Rename
3140         from warnings_are_errors_message.
3141         (diagnostic_context::warning_as_error_requested): New.
3142
3143 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
3144
3145         * sched-deps.c (get_condition): Fix breakage in previous patch.
3146
3147 2004-08-30  Paul Brook  <paul@codesourcery.com>
3148
3149         * doc/install.texi: Fix broken mpfr link.
3150
3151 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
3152
3153         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
3154         other FreeBSD platforms.
3155
3156 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3157
3158         * arm.h (REVERSE_CONDITION): Define.
3159         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
3160
3161 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3162
3163         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
3164         just the codes, call reversed_comparison_code ().
3165         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
3166         (not_reg_cond): Use reversed_comparison_code.
3167         (and_reg_cond): Likewise.
3168         * ifcvt.c (cond_exec_process_if_block): Likewise.
3169         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
3170
3171 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
3172
3173         * sched-deps.c (get_condition): Rewrite using jump support functions.
3174         Use reversed_comparison_code.
3175         (conditions_mutex_p): Use reversed_comparison_code.
3176
3177 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3178
3179         * config/mips/mips.c (override_options): Disable hot/cold partitioning
3180         for MIPS16.
3181
3182 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3183
3184         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
3185         (mips_function_type): Move to mips.c.
3186         * config/mips/mips.c (mips_builtin_type): New enum.
3187         (builtin_description): Replace code and ftype with builtin_type
3188         and function_type.
3189         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
3190         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
3191         (CODE_FOR_mips_abs_ps): Define.
3192         (mips_bdesc): Use new macros.
3193         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
3194         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
3195         (mips_expand_builtin_direct): New function.
3196         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
3197         builtin.  Replace boolean parameter with builtin_type.
3198         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
3199         (mips_expand_4s_compare_builtin): Delete, replacing with...
3200         (mips_expand_builtin_compare): ...this new function.
3201
3202 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
3203
3204         PR rtl-optimization/16590
3205         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
3206
3207 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
3208
3209         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
3210         * tree-ssa-propagate.c: Fix documentation.
3211
3212 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3213
3214         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
3215         (mov[sd]fcc): Likewise.
3216
3217 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3218
3219         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
3220
3221 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3222
3223         * config/mips/mips.md (divide_condition): New mode attribute.
3224         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
3225         (sqrt[sd]f3): Redefine using SCALARF.
3226         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
3227         patterns.
3228
3229 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3230
3231         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
3232         (loadx, storex, fmt, UNITMODE): New mode attributes.
3233         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
3234         (mul[sd]f3): Redefine using :SCALARF.
3235         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
3236         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
3237         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
3238         Check TARGET_FUSED_MADD for V2SF too.
3239         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
3240         were already named.
3241         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
3242         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
3243
3244 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3245
3246         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
3247         V2SF_type_node if it will be needed.
3248
3249 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3250
3251         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
3252         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
3253         (mips_prepare_builtin_target): New function.
3254         (mips_expand_builtin): Use them.  Update calls to subroutines.
3255         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
3256         cmp_choice with a boolean argument to select between movt and movf.
3257         Take the comparison's icode as an argument, not the function's fcode.
3258         (mips_expand_compare_builtin): New function.  Rename existing function
3259         to mips_expand_scalar_compare_builtin.
3260         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
3261         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
3262         comparison's icode as an argument, not the builtin's fcode.
3263
3264 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3265
3266         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
3267         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
3268         registers are false and -1 if all registers are true.
3269         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
3270         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
3271         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
3272         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
3273         (bc1any2t, bc1any2f): Likewise CCV2.
3274         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
3275
3276 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
3277
3278         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
3279         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
3280         UNSPEC rather than an IF_THEN_ELSE.
3281         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
3282         mips_cond_move_tf_ps by name.
3283
3284 2004-08-29  Chao-ying Fu  <fu@mips.com>
3285             James E Wilson  <wilson@specifixinc.com>
3286
3287         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
3288         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
3289         * config/mips/mips-ps-3d.md: New file.
3290         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
3291         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
3292         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
3293         (mips_output_move): Emit "mov.ps" for V2SFmode.
3294         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
3295         MODE_VECTOR_FLOAT.
3296         (override_options): Check if TARGET_MIPS3D and there was an explicit
3297         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
3298         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
3299         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
3300         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
3301         and allow CCV2 and CCV4 to occupy two and four CC registers.
3302         (print_fcc_operand): New function.
3303         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
3304         %Z to call print_fcc_operand.
3305         (mips_function_value): Handle MODE_VECTOR_FLOAT.
3306         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
3307         (mips_vector_mode_supported_p): New function.
3308         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
3309         (builtin_description): New struct.
3310         (mips_bdesc): New array of struct builtin_description.
3311         (mips_expand_builtin, mips_init_builtins,
3312         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
3313         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
3314         functions.
3315         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
3316         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
3317         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
3318         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
3319         "-mips3d", and "-mno-mips3d".
3320         (ASM_SPEC): Map -mips3d to -mips3d in gas.
3321         (EXTRA_CONSTRAINT_Y): New macro.
3322         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
3323         multi-letter constraint 'Y'.
3324         (CONSTRAINT_LEN): New macro.
3325         (enum mips_builtins): New for MIPS builtin functions.
3326         (enum mips_function_type): New for the types of MIPS builtin functions.
3327         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
3328         * config/mips/mips.md: New constants for paired single and MIPS-3D
3329         instructions.  Include the new mips-ps-3d.md file.
3330         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
3331         movv2sf_hardfloat_64bit): New named patterns.
3332         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
3333         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
3334         sdxc1_v2sf_di): New unnamed patterns.
3335         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
3336         const_vector support.
3337         (const_0_or_1_operand): New predicate.
3338         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
3339
3340 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
3341
3342         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
3343         (tree-ssa-propagate.o): New rule.
3344         (GTFILES): Add tree-ssa-propagate.c.
3345         * tree-flow.h (struct stmt_ann_d): Remove field
3346         in_ccp_worklist.
3347         * tree-ssa-propagate.c: New file.
3348         * tree-ssa-propagate.h: New file.
3349         * tree-ssa-ccp.c: Re-write to use the routines from
3350         tree-ssa-propagate.c.
3351
3352 2004-08-28  Andrew Pinski  <apinski@apple.com>
3353
3354         * tree-ssa-loop.c: Remove extra include of basic-block.h.
3355
3356 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
3357
3358         * c-common.h: Update comments about ObjC/ObjC++ entry points.
3359         (objc_is_reserved_word): New prototype.
3360         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
3361         separate section; these are call-backs.
3362         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
3363         ObjC/ObjC++ "@" keywords.
3364         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
3365         prototypes; they already live in c-common.h.
3366         * stub-objc.c: Update copyright notice.
3367         (objc_is_reserved_word): New stub.
3368
3369 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
3370
3371         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
3372         even when not checking.
3373
3374 2004-08-27  Jason Merrill  <jason@redhat.com>
3375
3376         PR c++/13684
3377         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
3378         (gimple_push_cleanup): Add eh_only parm.
3379         (gimplify_target_expr): Pass it.
3380         * c.opt (-fno-threadsafe-statics): New option.
3381         * c-opts.c (c_common_handle_option): Handle it.
3382         * c-common.h (flag_threadsafe_statics): Declare it.
3383         * c-common.c (flag_threadsafe_statics): Record it.
3384         * doc/invoke.texi: Document it.
3385         * tsystem.h (_GNU_SOURCE): Define.
3386         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
3387         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
3388         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
3389         (__gthread_recursive_mutex_init_function): New fn.
3390         (__gthread_recursive_mutex_lock): New fn.
3391         (__gthread_recursive_mutex_trylock): New fn.
3392         (__gthread_recursive_mutex_unlock): New fn.
3393         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
3394         * gthr-win32.h, gthr-vxworks.h: Likewise.
3395         * gthr.h: Document.
3396
3397 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
3398
3399         * config/rs6000/rs6000.c (rs6000_override_options): Increase
3400         maximum skip to 15.  Set function alignment, jump alignment, and
3401         loop alignment to 16 for processors that form dispatch groups.
3402         (rs6000_rtx_costs): outer_code is used.
3403
3404 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
3405
3406         * stor-layout.c (sizetype_set): Remove.
3407         (set_sizetype): Don't test or set it.
3408
3409         * tree.h (size_int_type): Remove.
3410         * fold-const.c: Do not #include gt-fold-const.h.
3411         (size_htab_hash, size_htab_eq): Remove.
3412         (size_int_kind): Use build_int_cst.
3413         (new_const, size_htab): Remove.
3414         (size_int_type): Remove.
3415         (round_up): Use build_int_cst.
3416         (round_down): Likewise. Remove spurious constant build.
3417
3418 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
3419
3420         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
3421         Add is_release variable, use it for --enable-werror and
3422         --enable-checking defaults.
3423         * system.h (gcc_assert, gcc_unreachable): New.
3424         * doc/install.texi (--enable-checking): Update.
3425         * configure, config.in: Rebuilt.
3426
3427 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
3428
3429         * rtl.h (read_rtx): Change prototype.
3430         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
3431         line number.  Return true on success.
3432         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
3433         callers accordingly.
3434
3435 2004-08-26  Richard Henderson  <rth@redhat.com>
3436
3437         * c-typeck.c (build_offsetof): Remove.
3438         * c-tree.h (build_offsetof): Remove.
3439         * c-common.c (fold_offsetof_1, fold_offsetof): New.
3440         * c-common.h (fold_offsetof): Declare.
3441         * c-parse.in (offsetof_base): New.
3442         (offsetof_member_designator): Use it.  Build references, not just
3443         a tree list.
3444         (primary): Use fold_offsetof, not build_offsetof.
3445
3446 2004-08-26  Richard Henderson  <rth@redhat.com>
3447
3448         * tree.c (staticp): Return the static object.
3449         * tree.h (staticp): Update decl.
3450         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
3451         * langhooks.c (lhd_staticp): Return NULL_TREE.
3452         * langhooks-def.h (lhd_staticp): Update decl.
3453         * c-common.c (c_staticp): Return the static object.
3454         * c-common.h (c_staticp): Update decl.
3455
3456 2004-08-26  Richard Henderson  <rth@redhat.com>
3457
3458         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
3459         modes.
3460
3461 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
3462
3463         PR c/13801
3464         * c-decl.c (struct c_binding): Add type and inner_comp fields.
3465         (bind): Set type and inner_comp fields.
3466         (pop_scope): Restore type of decl to the correct type from an
3467         outer scope.  Give error when popping file scope for incomplete
3468         arrays completed incompatibly with default initialization in an
3469         inner scope.
3470         (diagnose_mismatched_decls): Handle externs with initializers at
3471         block scope.
3472         (pushdecl): Set type of external declaration at block scope based
3473         only on the visible declarations.  Save type when changing the
3474         type of a declaration.  Merge an external declaration at block
3475         scope with a visible static declaration at file scope.
3476         (implicitly_declare): Give recycled old declaration the new type
3477         except for incompatible declarations of built-in functions, saving
3478         the old type.
3479
3480 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
3481
3482         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
3483
3484 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
3485
3486         * tree-alias-common.c (gate_pta): New function.
3487         (pass_build_pta): Use it.
3488         (pass_del_pta): Use it.
3489         (delete_alias_vars): Don't check flag_tree_points_to.
3490
3491 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3492
3493         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
3494         TFmode as additional register mode cloberred by call.
3495
3496 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3497
3498         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
3499         parallel pattern for library call returning DImode in
3500         mixed mode.
3501
3502 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3503
3504         * config/rs6000/rs6000.c (function_arg): Generate parallel
3505         pattern for more split args.
3506
3507 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
3508
3509         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
3510         either gen_movdi_di_update or gen_movdi_si_update depending on
3511         target mode.
3512         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
3513         to generate two versions.
3514
3515 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
3516
3517         * Makefile.in (lambda-code.o): New.
3518         (lambda-trans.o): Ditto.
3519         (TREE_DATA_REF_H): Ditto.
3520         (LAMBDA_H): Ditto.
3521         (lambda-mat.o): Use LAMBDA_H.
3522         (tree-data-ref.o): Ditto.
3523         * lambda-code.c: New file.  Lambda code generation algorithm.
3524         * lambda-trans.c: Ditto. Lambda transformation matrix support.
3525         * lambda.h: Add lambda loop structures.
3526         Add lambda loopnest structures.
3527         Add lambda body vector structure.
3528         Add lambda linear expression structures.
3529         Add prototypes for functions in new files.
3530         * lambda-mat.c: Include tree.h
3531
3532 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
3533             Sebastian Pop  <pop@cri.ensmp.fr>
3534
3535         * tree-data-ref.h: Include lambda.h
3536         (free_dependence_relation): Declared here.
3537         (free_dependence_relations): Ditto.
3538         (free_data_refs): Ditto.
3539         * tree-data-ref.c (free_dependence_relation): New function.
3540         (free_dependence_relations): Ditto.
3541         (free_data_refs): Ditot.
3542         (analyze_all_data_dependences): Free datarefs and dependence_relations.
3543         (build_classic_dist_vector): Store in the dependence_relations the
3544         information. Each arc in the dependence_relations graph is labelled
3545         with the distance and direction vectors.
3546         (build_classic_dir_vector): Ditto.
3547         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
3548         Now computes again the whole dependence graph including read-read
3549         relations.
3550         (compute_data_dependences_for_loop): Now dependence_relations contains
3551         all the data, and thus it doesn't need to initialize the classic_dir
3552         and classic_dist vectors.
3553         (analyze_all_data_dependences): Adjusted for using the new interface of
3554         compute_data_dependences_for_loop.  Remove the statistics dump.
3555
3556 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
3557
3558         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
3559         (xtensa_expand_block_move): Update comment.
3560         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
3561
3562 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
3563
3564         PR target/13506
3565         * toplev.c (crash_signal): If we crashed while emitting
3566         a user asm, then die more gracefully.
3567
3568 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3569
3570         PR target/17119.
3571         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
3572         checking for a valid constant, regardless of sign.
3573
3574 2004-08-25  Richard Henderson  <rth@redhat.com>
3575
3576         PR target/16974
3577         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
3578         if the constant satisfies add_operand.
3579
3580 2004-08-25  Richard Henderson  <rth@redhat.com>
3581
3582         PR debug/10695
3583         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
3584         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
3585         unwind info for >16-bit frames.
3586
3587 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
3588
3589         PR target/17171
3590         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
3591
3592 2004-08-25  Richard Henderson  <rth@redhat.com>
3593
3594         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
3595         (TARGET_CANNOT_FORCE_CONST_MEM): New.
3596
3597 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3598
3599         * doc/tree-ssa.texi: Document new operand iterator.
3600
3601 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
3602
3603         PR target/16480
3604         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
3605         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
3606         as PLUS base regs.
3607
3608 2005-08-28  Paul Brook  <paul@codesourcery.com>
3609
3610         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
3611         -mfpu=vfp -march=armv5t
3612         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
3613
3614 2004-08-25  Richard Henderson  <rth@redhat.com>
3615
3616         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3617         * target.h (struct gcc_target): Add scalar_mode_supported_p.
3618         * targhooks.c (default_scalar_mode_supported_p): New.
3619         * targhooks.h (default_scalar_mode_supported_p): Declare.
3620         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
3621
3622         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
3623         before attempting to create types.  Tidy.
3624         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
3625
3626         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
3627         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
3628
3629 2004-08-25  Richard Henderson  <rth@redhat.com>
3630
3631         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3632         set REAL_MODE_FORMAT for TFmode.
3633
3634 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3635
3636         * c-decl.c (grokparm): New function.
3637         * c-tree.h (grokparm): New prototype.
3638
3639 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
3640
3641         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
3642         iterator controlling structure.
3643         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
3644         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
3645         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
3646         iterator flags.
3647         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
3648         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
3649         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
3650         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
3651         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
3652         Empty operand pointers.
3653         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
3654         (op_iter_next_use): New.  Return next use_operand_p.
3655         (op_iter_next_def): New.  Return next def_operand_p.
3656         (op_iter_next_tree): New.  Return next operands as a tree.
3657         (op_iter_init): New.  Initialize an iterator structure.
3658         (op_iter_init_use): New.  Initialize structure and get the first use.
3659         (op_iter_init_def): New.  Initialize structure and get the first def.
3660         (op_iter_init_tree): New.  Initialize structure and get the first tree.
3661         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
3662         (op_iter_init_maydef): New.  Initialize structure and get the first
3663         V_MAY_DEF operands.
3664         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
3665         * tree-dfa.c (compute_immediate_uses_for_stmt,
3666         redirect_immediate_uses): Use new operand iterator.
3667         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
3668         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
3669         operands instead of using *_disappeared_p routines.
3670         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
3671         ssa_rewrite_stmt): Use new operand iterator.
3672         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3673         rewrite_trees): Use new operand iterator.
3674         * tree-pretty-print.c (dump_vops): Use new operand iterator.
3675         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
3676         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
3677         dump_points_to_info): Use new operand iterator.
3678         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
3679         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
3680         operand iterator.
3681         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
3682         propagate_necessity): Use new operand iterator.
3683         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
3684         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
3685         a parameter instead of a stmt_ann_t.
3686         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
3687         build_tree_conflict_graph): Use new operand iterator.
3688         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
3689         rewrite_mem_refs): Use new operand iterator.
3690         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
3691         check_loop_closed_ssa_use): Use new operand iterator.
3692         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
3693         * tree-ssanames.c (release_defs): Use new operand iterator.
3694         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
3695
3696 2004-08-25  Adam Nemet  <anemet@lnxw.com>
3697
3698         * tlink.c (initial_cwd): New variable.
3699         (tlink_init): Initialize it.
3700         (recompile_files): Use tlink_execute() instead of system().  Don't
3701         duplicate verbose output of collect_execute.  Restore initial_cwd.
3702         Update comment before the function.
3703
3704 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
3705
3706         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
3707         accept) a cast from one Objective-C pointer type to another.
3708
3709 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
3710
3711         * doc/install.texi: Document that libstdc++-v3 requires
3712         now automake 1.9.1.
3713
3714 2004-08-25  Caroline Tice  <ctice@apple.com>
3715
3716         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
3717         to comments at start of function.
3718         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
3719         comment.
3720         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3721         merge_blocks_move_predecessor_nojumps,
3722         merge_blocks_move_successor_nojumps, merge_blocks_move,
3723         try_crossjump_to_edge, try_crossjump_bb): Likewise.
3724         * cfglayout.c (fixup_reorder_chain): Likewise.
3725         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
3726         cfg_layout_can_merge_blocks_p):  Likewise.
3727         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
3728         * passes.c (rest_of_compilation): Update comments for calling
3729         optimization that partitions hot/cold basic blocks.
3730         * doc/invoke.texi:  Update documentation of
3731         freorder-blocks-and-partition flag.
3732
3733 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3734
3735         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
3736         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
3737
3738 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
3739
3740         * config/mips/mips.md (any_shift): New code macro.
3741         (optab, insn): New code attributes.
3742         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
3743         Use the standard rather than internal patterns for the MIPS16
3744         double-shift optimization.
3745         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
3746         Redefine using :GPR and any_shift.
3747         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
3748         to cover all three shifts.
3749         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
3750         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
3751         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
3752
3753 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
3754
3755         * gimplify.c (lookup_tmp_var): Separate temporaries when not
3756         optimizing.
3757
3758 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3759
3760         PR libstdc++/17005 (fix for HP-UX 11.11)
3761         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
3762         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
3763         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
3764         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
3765         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
3766         (LINK_SPEC): Handle march=1.0 option.
3767         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3768         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
3769         (SUBTARGET_OPTIONS): New define.
3770         (LINK_SPEC): Handle march=1.0 option.
3771         (STARTFILE_SPEC): New define.
3772         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
3773         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
3774         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
3775         (SUBTARGET_OPTIONS): New define.
3776         (LINK_SPEC): Handle march=1.0 option.
3777         (STARTFILE_SPEC): New define.
3778         * config/pa/pa.c (override_options): Add code to process -munix= option.
3779         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
3780         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
3781         defines.
3782         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
3783         (SUBTARGET_OPTIONS): Provide default define.
3784         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
3785         STANDARD_STARTFILE_PREFIX_2): New defines.
3786         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
3787         (ENDFILE_SPEC): Use %O.
3788         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
3789         Mention issue caused by changing namespace and runtime to UNIX 95/98.
3790         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
3791         Document -munix=std option.
3792
3793 2004-08-25  Steven Bosscher  <stevenb@suse.de>
3794
3795         * cse.c (cse_around_loop, cse_check_loop_start,
3796         cse_set_around_loop): Remove.
3797         (cse_basic_block): Remove the around_loop argument.
3798         (cse_end_of_basic_block): Remove the after_loop argument.
3799         (cse_main): Likewise.
3800         * rtl.h (cse_main): Update prototype.
3801         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
3802         rest_of_handle_gcse): Update cse_main calls.
3803
3804 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
3805
3806         * tree.h  (build_int_cst): New, sign extended constant.
3807         (build_int_cstu): New, zero extended constant.
3808         (build_int_cst_wide): Renamed from build_int_cst.
3809         * tree.c (build_int_cst, build_int_cstu): New.
3810         (build_int_cst_wide): Renamed from build_int_cst.
3811         (make_vector_type, build_common_tree_nodes,
3812         build_common_tree_nodes_2): Adjust build_int_cst calls.
3813         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3814         expand_builtin_strpbrk, expand_builtin_fputs,
3815         build_string_literal, expand_builtin_printf,
3816         expand_builtin_sprintf, fold_builtin_classify_type,
3817         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
3818         fold_builtin_toascii, fold_builtin_isdigit,
3819         simplify_builtin_strstr, simplify_builtin_strpbrk,
3820         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
3821         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
3822         DEF_ATTR_INT): Likewise.
3823         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
3824         Likewise.
3825         * c-lex.c (interpret_integer, lex_charconst): Likewise.
3826         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
3827         * c-pretty-print.c (pp_c_integer_constant): Likewise.
3828         * c-typeck.c (really_start_incremental_init, push_init_level,
3829         set_nonincremental_init_from_string): Likewise.
3830         * calls.c (load_register_parameters): Likewise.
3831         convert.c (convert_to_pointer): Likewise.
3832         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3833         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
3834         build_gcov_info): Likewise.
3835         * except.c (init_eh, assign_filter_values): Likewise.
3836         * expmed.c (store_fixed_bit_field, extract_bit_field,
3837         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3838         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3839         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3840         * expr.c (convert_move, emit_group_load, emit_group_store,
3841         expand_assignment, store_constructor, store_field,
3842         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3843         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3844         invert_truthvalue, optimize_bit_field_compare,
3845         decode_field_reference, all_ones_mask_p, constant_boolean_node,
3846         fold_div_compare, fold, fold_read_from_constant_string,
3847         fold_negate_const, fold_abs_const, fold_not_const, round_up,
3848         round_down): Likewise.
3849         * function.c (assign_parm_setup_block): Likewise.
3850         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
3851         Likewise.
3852         * stor-layout.c (layout_type, initialize_sizetypes,
3853         set_min_and_max_values_for_integral_type): Likewise.
3854         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3855         reset_evolution_in_loop): Likewise.
3856         * tree-chrec.h (build_polynomial_chrec): Likewise.
3857         * tree-complex.c (build_replicated_const): Likewise.
3858         * tree-eh.c (honor_protect_cleanup_actions,
3859         lower_try_finally_onedest, lower_try_finally_copy,
3860         lower_try_finally_switch): Likewise.
3861         * tree-mudflap.c (mf_build_string, mx_register_decls,
3862         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3863         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3864         * tree-pretty-print.c (dump_generic_node): Likewise.
3865         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3866         Likewise.
3867         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3868         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3869         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3870         Likewise.
3871         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
3872         canonicalize_loop_induction_variables): Likewise.
3873         * tree-vectorizer.c (vect_create_index_for_array_ref,
3874         vect_transform_loop_bound, vect_compute_data_ref_alignment):
3875         Likewise.
3876
3877         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
3878         alpha_gimplify_va_arg_1): Likewise.
3879         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3880         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3881         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3882         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3883         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3884         mips_gimplify_va_arg_expr): Likewise.
3885         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3886         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3887         add_compiler_branch_island): Likewise.
3888         * config/s390/s390.c (s390_va_start): Likewise.
3889         * config/sh/sh.c (sh_va_start): Likewise.
3890         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3891         Likewise.
3892         * config/xtensa/xtensa.c (xtensa_va_start,
3893         xtensa_gimplify_va_arg_expr): Likewise.
3894
3895         * objc/objc-act.c (build_objc_string_object,
3896         build_objc_symtab_template, init_def_list, init_objc_symtab,
3897         init_module_descriptor, generate_static_references,
3898         build_selector_translation_table, get_proto_encoding,
3899         build_typed_selector_reference, build_selector_reference,
3900         build_next_objc_exception_stuff,
3901         build_method_prototype_list_template, generate_descriptor_table,
3902         generate_protocols, build_protocol_initializer,
3903         build_ivar_list_template, build_method_list_template,
3904         build_ivar_list_initializer, generate_ivars_list,
3905         generate_dispatch_table, generate_protocol_list,
3906         build_category_initializer, build_shared_structure_initializer,
3907         generate_shared_structures, handle_impent,
3908         generate_objc_image_info): Likewise.
3909
3910 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
3911
3912         * cfglayout.c (duplicate_insn_chain): Remove references to
3913         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
3914         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
3915         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
3916         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
3917         and NOTE_INSN_LOOP_CONT.
3918         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
3919         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
3920         and NOTE_INSN_LOOP_CONT.
3921         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
3922         check_dbra_loop, loop_dump_aux): Remove references to removed notes
3923         and fields.
3924         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
3925         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
3926         references to removed notes and fields.
3927         (subtract_reg_term, ujump_to_loop_cont): Remove.
3928
3929 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
3930
3931         * doc/install.texi: Document that libcpp does not require
3932         Automake any longer.  Document that Automake 1.9.1 should
3933         work everywhere.
3934
3935 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3936
3937         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
3938         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
3939         DWARF_DEBUGGING_INFO from choice-of-definition chain;
3940         restructure using C89 features (#elif, #error).
3941         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
3942         * config/sh/sh.h: Remove references to DWARF_DEBUG.
3943         * doc/invoke.texi: Remove references to DWARF version 1;
3944         clarify why -gdwarf-2<n> doesn't work.
3945
3946 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
3947
3948         * basic-block.h (BB_SET_PARTITION): Clear old value first.
3949         * cfg.c (clear_bb_flags): Don't clear partition setting.
3950         * ifcvt.c (find_if_case_1): Remove ??? comment.
3951
3952 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
3953
3954         PR target/17052
3955         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
3956         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
3957         current_function_stdarg in place of sysv_varargs_p.
3958         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
3959         sysv_varargs_p.
3960
3961 2004-08-24  Richard Henderson  <rth@redhat.com>
3962
3963         PR target/16298
3964         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
3965         random codes within CONST.
3966
3967 2004-08-24  James E Wilson  <wilson@specifixinc.com>
3968
3969         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
3970         -freorder-blocks-and-partition.
3971
3972 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3973
3974         PR middle-end/17044
3975         * tree-ssa-threadupdate.c (redirection_data): Make static.
3976         (thread_block): Use ggc_alloc_cleared to allocate struct
3977         redirection_data.  Don't free elements in redirection_data.
3978
3979 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
3980
3981         * config/mips/predicates.md (small_data_pattern): Match prefetches.
3982
3983 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3984
3985         PR tree-optimization/17016
3986         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3987         number_of_iterations_exit): Use POINTER_TYPE_P instead
3988         of testing for POINTER_TYPE.
3989
3990 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3991
3992         * tree-ssa-loop-ivcanon.c: New file.
3993         * tree-ssa-loop-manip.c (create_iv): New function.
3994         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
3995         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
3996         * cfgloop.c (mark_single_exit_loops): New function.
3997         (verify_loop_structure): Verify single-exit loops.
3998         * cfgloop.h (struct loop): Add single_exit field.
3999         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
4000         (mark_single_exit_loops): Declare.
4001         (tree_num_loop_insns): Declare.
4002         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
4003         (duplicate_loop_to_header_edge): Use it.
4004         * common.opt (fivcanon): New flag.
4005         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
4006         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
4007         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
4008         (bsi_insert_on_edge_immediate): New function.
4009         * tree-flow.h (bsi_insert_on_edge_immediate,
4010         canonicalize_induction_variables, tree_unroll_loops_completely,
4011         create_iv): Declare.
4012         * tree-optimize.c (init_tree_optimization_passes): Add
4013         pass_iv_canon and pass_complete_unroll.
4014         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
4015         * tree-scalar-evolution.c (get_loop_exit_condition,
4016         get_exit_conditions_rec, number_of_iterations_in_loop,
4017         scev_initialize): Use single_exit information.
4018         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
4019         missing assumptions.
4020         (loop_niter_by_eval):  Return number of iterations as unsigned
4021         int.
4022         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
4023         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
4024         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
4025         New passes.
4026         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
4027         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
4028         the defining statement is ready.
4029         * tree-vectorizer.c (vect_create_iv_simple): Removed.
4030         (vect_create_index_for_array_ref, vect_transform_loop_bound):
4031         Use create_iv.
4032         (vect_transform_loop_bound): Use single_exit information.
4033         (vect_analyze_loop_form): Cleanup bogus tests.
4034         (vectorize_loops): Do not call flow_loop_scan.
4035         * tree.h (may_negate_without_overflow_p): Declare.
4036         * fold-const.c (may_negate_without_overflow_p): Split out from ...
4037         (negate_expr_p): ... this function.
4038         (tree_expr_nonzero_p): Handle overflowed constants correctly.
4039         * doc/invoke.texi (-fivcanon): Document.
4040         * doc/passes.texi: Document canonical induction variable creation.
4041
4042 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4043
4044         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
4045         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
4046         using the mode of the operand to decide between them.
4047         * config/mips/mips.md (MOVECC): New mode macro.
4048         (ccreg): New mode attribute.
4049         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
4050         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
4051         (mov[sd]icc): Redefine using :GPR.
4052
4053 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4054
4055         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
4056         (mips_prefetch_cookie): New function.
4057         * config/mips/mips.c (print_operand_address): Fix handling of
4058         ADDRESS_CONST_INT.
4059         (mips_emit_prefetch): Delete.
4060         (mips_prefetch_cookie): New function.
4061         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
4062         mode of QImode for the address_operand.  Use mips_prefetch_cookie
4063         to calculate the first "pref" operand.
4064         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
4065         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
4066
4067 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
4068
4069         * arm.md: Include predicates.md.
4070         * predicates.md: New file.
4071         * arm.c (s_register_operand, arm_hard_register_operand)
4072         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
4073         (arm_immediate_operand, arm_neg_immediate_operand)
4074         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
4075         (arm_add_operand, arm_addimm_operand, arm_not_operand)
4076         (offsettable_memory_operand, alignable_memory_operand)
4077         (arm_reload_memory_operand, arm_float_rhs_operand)
4078         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
4079         (index_operand, shiftable_operator, logical_binary_operator)
4080         (shift_operator, equality_operator, arm_comparison_operator)
4081         (minmax_operator, cc_register, dominant_cc_register)
4082         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
4083         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
4084         (const_shift_operand, load_multiple_operation)
4085         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
4086         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
4087         (cirrus_register_operand, cirrus_fp_register)
4088         (cirrus_shift_const): Delete, replaced with equivalents in
4089         predicates.md.
4090         (shift_op): Handle ROTATE.
4091         * arm-protos.h: Delete declarations for above.
4092         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
4093         * t-arm (MD_INCLUDES): Add predicates.md.
4094         (s-preds): Depends on MD_INCLUDES.
4095
4096 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4097
4098         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
4099         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
4100         patterns.  Redefine using :GPR.  Give the match_operator a mode.
4101         Use '%2' rather than '%z2' for operand 2.
4102
4103 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4104
4105         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
4106         attribute.
4107
4108 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4109
4110         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
4111         of internal patterns.
4112         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
4113         Redefine using :P.
4114         (tablejump): Use expand_binop to calculate address.  Adjust names
4115         of internal patterns.
4116         (tablejump[sd]i): Renamed from tablejump_internal[12].
4117         Redefine using :P.
4118         (tablejump_mips16[12]): Delete.
4119
4120 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4121
4122         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
4123         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
4124         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
4125         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
4126         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
4127
4128 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
4129
4130         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
4131         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
4132         using :GPR.
4133         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
4134         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
4135         (*branch_equality[sd]i_inverted): Likewise
4136         branch_equality{,_di}_inverted.
4137         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
4138         Redefine using :GPR.
4139
4140 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
4141
4142         * rtl.def: Reorganize, placing all codes used only in machine
4143         descriptions at the end.
4144
4145         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
4146         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
4147         rtx_name, rtx_format arrays by direct reference to rtl.def,
4148         first undefining GENERATOR_FILE.  Define enum insn_note and
4149         note_insn_name array by direct reference to insn-notes.def.
4150         (adjust_field_rtx_def): Remove local definition of rtx_name.
4151         Use symbolic names for insn notes.
4152         * Makefile.in (gengtype.o): Update dependencies.
4153
4154 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
4155
4156         * basic-block.h (struct basic_block_def): Reorder fields to
4157         eliminate interior padding.  Remove 'partition' field.
4158         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
4159         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
4160         (BB_COPY_PARTITION): New macros.
4161         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
4162         Replace all references to the 'partition' field of a basic
4163         block with new macros.
4164
4165         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
4166         * final.c (final_scan_insn): Don't handle it.
4167         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
4168         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
4169         * sched-rgn.c (sched_is_disabled_for_current_region_p):
4170         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
4171
4172 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4173
4174         * c-decl.c (c_init_decl_processing): Adjust
4175         build_common_tree_nodes call.
4176         * expmed.c (const_mult_add_overflow_p): Use
4177         build_distinct_type_copy.
4178         * stor-layout.c (early_type_list): Remove.
4179         (layout_type): Don't append to early_type_list.
4180         (initialize_sizetypes): Add signed_p argument.
4181         (set_sizetype): Overwrite the stub type nodes directly.
4182         * tree.c (copy_node_stat): Clear a type's value cache here ...
4183         (build_distinct_type): ... not here.
4184         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
4185         * tree.h (initialize_sizetypes): Add signed_p argument.
4186         (build_common_tree_nodes): Likewise.
4187
4188         * objc/objc-act.c (get_static_reference): Use
4189         build_variant_type_copy.
4190         (get_protocol_reference): Likewise.
4191         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
4192
4193 2004-08-24  Richard Henderson  <rth@redhat.com>
4194             Andrew Pinski  <apinski@apple.com>
4195
4196         * gimplify.c (gimplify_array_ref_to_plus): Delete.
4197         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
4198         for ARRAY_REF.
4199
4200         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
4201         ARRAY_REF also to get to the STRING_CST.
4202
4203 2004-08-24  Paul Brook  <paul@codesourcery.com>
4204
4205         * config/arm/arm.c (arm_override_options): Update error message.
4206         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
4207         TARGET_HARD_FLOAT_ABI.
4208         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
4209         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
4210
4211 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4212
4213         PR target/17093
4214         * config/m32r.md (movsi_sda): Add SI mode specification to
4215         UNSPEC.
4216
4217 2004-08-24  Nick Clifton  <nickc@redhat.com>
4218
4219         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
4220         of seth_add3_operand.
4221
4222 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
4223
4224         * Makefile.in (PROTO_OBJS): Add errors.o.
4225         * protoize.c (fancy_abort): Remove.
4226         * mips-tfile.c (fancy_abort): Add parameters.
4227
4228 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
4229
4230         * doc/trouble.texi (C++ misunderstandings): Fix example code.
4231
4232 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
4233
4234         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
4235         (host-default.o): Add dependency on HOOKS_H.
4236         * config/x-linux: Likewise.
4237         * config/x-solaris: Likewise.
4238         * config/i386/x-mingw32: Likewise.
4239         * config/rs6000/x-darwin: Likewise.
4240
4241 2004-08-23  James E Wilson  <wilson@specifixinc.com>
4242
4243         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
4244         DEF_REG_NOTE.
4245
4246 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
4247
4248         PR c/14492
4249         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
4250
4251 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
4252
4253         * cfg.c (check_bb_profile): Fix typos.
4254         * function.c (assign_parm_is_stack_parm): Likewise.
4255         * tree-nested.c: Likewise.
4256
4257 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
4258
4259         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
4260         Remove TYPECODE.
4261         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
4262
4263 2004-08-23  Eric Christopher  <echristo@redhat.com>
4264
4265         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
4266         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
4267         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
4268         * target.h: Ditto.
4269         * hooks.h: Include machmode.h.
4270         (hook_bool_mode_false): Declare.
4271         * hooks.c (hook_bool_mode_false): Define.
4272         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
4273         * stor-layout.c (layout_type): Ditto.
4274         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
4275         Define to target macro.
4276         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
4277         * config/arm/arm.c: Ditto. Use.
4278         * config/arm/arm.h: Ditto.
4279         * config/arm/arm-protos.h: Ditto.
4280         * config/i386/i386.c: Ditto.
4281         * config/i386/i386.h: Ditto.
4282         * config/rs6000/rs6000.c: Ditto.
4283         * config/rs6000/rs6000.h: Ditto.
4284         * config/sh/sh.c: Ditto.
4285         * config/sh/sh.h: Ditto.
4286         * config/sh/sh-protos.h: Ditto.
4287         * config/sh/sh.md: Use.
4288         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
4289         to TARGET_VECTOR_MODE_SUPPORTED_P.
4290
4291 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
4292
4293         * Makefile.in (BUILD_ERRORS): Set to build-errors.
4294         (errors.o): New target for host.
4295         (build-errors.o): New target for build.
4296         (genobjs): Replace errors.o with build-errors.
4297         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
4298         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
4299         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
4300         (fix-header.o): Add errors.h
4301         * collect2.c (fancy_abort): Add parameters.
4302         * collect2.h (fancy_abort): Don't declare.
4303         * errors.h (fancy_abort): Don't declare.
4304         * errors.c: Include either bconfig.h or config.h.
4305         (fancy_abort): Trim filename.
4306         * fix-header.c (v_fatal, fatal): Remove.
4307         (progname): Remove definition.
4308         (main): Set progname here.
4309         * gcc.c (fancy_abort): Add parameters.
4310         * gcc.h (fancy_abort): Remove declaration.
4311         * gcov.c (fancy_abort): Remove.
4312         * rtl.h (fancy_abort): Don't declare.
4313         (abort): Don't define.
4314         * tree.h (fancy_abort): Don't declare.
4315         (abort): Don't define.
4316         * system.h (fancy_abort): Declare.
4317         (abort): Define to fancy_abort.
4318         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
4319
4320         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
4321         (usize_type, ubitsizetype): Remove.
4322         * stor-layout.c (set_sizetype): Don't initialize usizetype,
4323         ubitsizetype.
4324         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
4325
4326         * tree.h (build_distinct_type_copy): New.
4327         (build_type_copy): ... here.  Rename to ...
4328         (build_variant_type_copy): ... here.
4329         * tree.c (build_qualified_type): Rename build_type_copy call.
4330         (build_distinct_type_copy): New, broken out of ...
4331         (build_type_copy): ... here.  Rename to ...
4332         (build_variant_type_copy): ... here.  Use
4333         build_distinct_type_copy.
4334         (build_common_tree_nodes_2): Rename build_type_copy call.
4335         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
4336         call.
4337         (handle_packed_attribute, handle_unused_attribute,
4338         handle_transparanet_union_attribute, handle_aligned_attribute,
4339         handle_deprecated_attribute): Likewise.
4340         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
4341         Likewise.
4342         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
4343         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
4344         build_distinct_type_copy.
4345
4346 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4347
4348         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
4349         attribute.
4350
4351 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4352
4353         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
4354         loads and stores.
4355         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
4356         formerly unnamed patterns.  Redefine using :P for the address.  Remove
4357         explicit length attributes.
4358
4359 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4360
4361         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
4362         New functions.
4363         (single_reachable_address): Use them.
4364         (schedule_sm): Add dump.
4365         (is_call_clobbered_ref): New function.
4366         (determine_lsm_reg): Check whether the reference is call clobbered.
4367         Only work for gimple_reg_type values.
4368
4369 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4370
4371         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
4372         $31 store insns.  Redefine using :GPR.
4373
4374 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4375
4376         * config/mips/mips.md (P): New mode macro.
4377         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
4378         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
4379         Add mode attributes.
4380
4381 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4382
4383         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
4384         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
4385         later constants to cover the gap.
4386         (load, store): New mode attributes.
4387         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
4388         Use new unspec constants.
4389
4390 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4391
4392         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
4393         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
4394         to use register_operand rather than uns_arith_operand as the predicate
4395         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
4396         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
4397         Redefine using :GPR.  Make same predicate change here.  Extend the
4398         commutativity of operands 1 and 2 from the SImode version to the
4399         DImode one.
4400         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
4401         but with no predicate changes.
4402         (*nor[sd]i3): Redefine using :GPR.
4403
4404 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4405
4406         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
4407         noreturn functions.
4408
4409 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4410
4411         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
4412         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
4413         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
4414         rather than "%z2" (with a fake const0_rtx for operand 2).
4415         (ffs[sd]i2): Redefine using :GPR.
4416         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
4417
4418 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4419
4420         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
4421
4422 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4423
4424         * config/mips/mips.md (any_extend): New code macro.
4425         (u, su): New code attributes.
4426         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
4427         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
4428         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
4429         (*{s,u}mul_acc_di): Redefine using any_extend.
4430         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
4431         to reflect real insn names.
4432         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
4433         with an any_extend template.
4434         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
4435         Add '*' to name.
4436
4437 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4438
4439         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
4440         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
4441         (mul[sd]i3_r4000): Redefine using :GPR.
4442         (mulsi3_mult3): Don't check TARGET_MAD separately.
4443         (muldi3_mult3): Moved after mulsi_mult3.
4444
4445 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4446
4447         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
4448         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
4449         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
4450         (TARGET_GAS, TARGET_MIPS_AS): Delete.
4451         (TARGET_GPWORD): Define to true for n32 on IRIX.
4452         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
4453         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
4454         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
4455         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
4456         (MDEBUG_ASM_SPEC): Delete, folding into...
4457         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
4458         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
4459         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
4460         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
4461         to define asm_abi_default_spec.
4462         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
4463         (TARGET_ASM_SELECT_SECTION): Delete.
4464         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
4465         for non-mips16 code, removing previous workaround for SGI assemblers.
4466         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
4467         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
4468         (override_options): Remove !TARGET_GAS and !have_named_sections code.
4469         (print_operand): Fold TARGET_GAS conditionals into asm strings.
4470         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
4471         ASM_STABS_OP and ASM_STABN_OP.
4472         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
4473         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
4474         (mips_output_function_prologue): Remove !TARGET_GAS code.
4475         (mips_select_rtx_section): Remove !have_named_sections code.
4476         (mips_select_section): Delete.
4477         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
4478         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
4479         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
4480         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
4481         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
4482         * config/mips/windiss.h (ASM_SPEC): Likewise.
4483
4484 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4485
4486         * read-rtl.c (map_value, mapping, macro_group): New structures.
4487         (BELLWETHER_CODE): New macro.
4488         (modes, codes, bellwether_codes): New variables.
4489         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
4490         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
4491         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
4492         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
4493         (add_map_value, initialize_macros): New functions.
4494         (def_hash, def_hash_eq_p): Generalize to anything that points to,
4495         or starts with, a char * field.
4496         (find_macro, read_mapping, check_code_macro): New functions.
4497         (read_rtx_1): New, split out from read_rtx.  Handle the new
4498         define_{mode,code}_{macro,attr} constructs.  Use find_macro
4499         to parse the name of a code or mode.  Use BELLWETHER_CODE to
4500         extract the format and to choose a suitable code for rtx_alloc.
4501         Modify recursive invocations to use read_rtx_1.
4502         (read_rtx): Call initialize_macros.  Apply code and mode macros
4503         to the rtx returned by read_rtx_1.  Cache everything after the
4504         first macro expansion for subsequent read_rtx calls.
4505         * doc/md.texi: Document new .md constructs.
4506         * config/mips/mips.md (GPR): New mode macro.
4507         (d, si8_di5): New mode attributes.
4508         (any_cond): New code macro.
4509         (add[sd]i3): Redefine using :GPR.
4510         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
4511         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
4512         previously unnamed MIPS16 patterns.
4513         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
4514         lines.  Don't match (plus (const_int 0) ...).
4515         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
4516         Use a define_split to generate the addition.
4517         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
4518         (subsi3_internal): Delete.
4519         (*subsi3_extended): Renamed from subsi3_internal_2.
4520         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
4521         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
4522         using an any_cond template.
4523
4524 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4525
4526         * read-rtl.c (read_rtx): Tidy use of format_ptr.
4527
4528 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
4529
4530         * read-rtl.c (string_obstack): New file-scope variable.
4531         (read_string, read_quoted_string, read_braced_string)
4532         (read_escape): Remove obstack parameter and use string_obstack instead.
4533         (read_rtx): Remove function-local rtl_obstack and initialize
4534         string_obstack instead.  Update call to read_string.
4535
4536 2004-08-22  Andrew Pinski  <apinski@apple.com>
4537
4538         PR c/15262
4539         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
4540         expression is not constant.
4541         (c_finish_return): Do not go through INDIRECT_REF when looking
4542         for the inner expression of an ADDR_EXPR for warning about.
4543
4544 2004-08-22  Richard Henderson  <rth@redhat.com>
4545
4546         PR 17075
4547         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
4548         create new blocks and fall through.
4549         (expand_gimple_basic_block): Update to match.
4550
4551 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
4552
4553         * reload.c (find_reloads_address): Make return value tri-state.
4554         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
4555         (find_reloads): Assume that reloaded addresses match 'o' or
4556         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
4557         returned 1 (not -1).  Omit optional reloads for address operands
4558         only if find_reloads_address returned 1 (not -1).
4559
4560         * config/s390/s390.c (legitimize_reload_address): New function.
4561         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
4562         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
4563         legitimize_reload_address.
4564
4565 2004-08-22  Richard Hendersion  <rth@redhat.com>
4566
4567         * tree.h (SAVE_EXPR_RESOLVED_P): New.
4568         * gimplify.c (gimplify_save_expr): Use it.
4569         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
4570         on the temporary variable.
4571
4572 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
4573
4574         * fold-const.c (rtl_expr_nonnegative_p): Delete.
4575         * tree.h (rtl_expr_nonnegative_p): Remove.
4576
4577 2004-08-22  Steven Bosscher  <stevenb@suse.de>
4578
4579         * config/i386/ppro.md (ppro_complex_insn): Add missing check
4580         for cpu==pentiumpro.
4581
4582         * combine.c (struct reg_stat): Fix comment typo.
4583
4584 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
4585
4586         * c-tree.h (c_sizeof_nowarn): Remove.
4587
4588 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4589
4590         * c-decl.c (set_array_declarator_type): Rename to
4591         set_array_declarator_inner.
4592         (build_c_parm, build_attrs_declarator, build_function_declarator):
4593         New functions.
4594         (make_pointer_declarator): Call build_attrs_declarator.
4595         * c-tree.h (set_array_declarator_type): Rename to
4596         set_array_declarator_inner.
4597         (build_c_parm, build_attrs_declarator, build_function_declarator):
4598         New prototypes.
4599         * c-parse.in (after_type_declarator,
4600         parm_declarator_starttypename, parm_declarator_nostarttypename,
4601         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
4602         firstparm): Use these functions
4603
4604 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
4605
4606         * c-decl.c (build_array_declarator, set_array_declarator_type,
4607         start_decl, grokdeclarator, grokparms): Change boolean parameters
4608         to type bool.
4609         * c-tree.h (build_array_declarator, set_array_declarator_type,
4610         start_decl): Update prototypes.
4611         * c-decl.c, c-parse.in: All callers changed.
4612
4613 2004-08-21  Mike Stump  <mrs@apple.com>
4614
4615         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
4616         (darwin_fix_and_continue): Likewise.
4617         (darwin_fix_and_continue_switch): Likewise.
4618         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
4619         (darwin_fix_and_continue): Likewise.
4620         (darwin_fix_and_continue_switch): Likewise.
4621
4622 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
4623
4624         PR  c++/16030
4625         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
4626         Remove, merging into ...
4627         (gen_stdcall_or_fastcall_suffix): New function, returning tree
4628         rather than const char*, and accepting additional parameter.
4629         Don't add suffix to '*'-prefixed symbols or variadic functions.
4630         (i386_pe_encode_section_info): Adjust for call to new function.
4631         Call change_decl_assembler_name.
4632
4633 2004-08-20  Mike Stump  <mrs@apple.com>
4634
4635         * config/darwin.c (machopic_indirect_data_reference): Mark
4636         stubs as defined.
4637         * config/386/386.c (darwin_local_data_pic): Add.
4638         (legitimate_constant_p): Reorder so that PLUS handling runs
4639         before darwin_local_data_pic to match the ordering in
4640         legitimate_pic_address_disp_p and so that MINUS runs after
4641         darwin_local_data_pic as otherwise the darwin_local_data_pic
4642         logic can be skipped, which would be very bad.
4643         (legitimate_pic_address_disp_p): Move from from here to
4644         darwin_local_data_pic so it can be reused.
4645
4646 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
4647
4648         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
4649         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
4650         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
4651         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
4652         (RS6000_ABI_NAME): Define as "linux".
4653         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
4654         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
4655         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
4656         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
4657         * config/rs6000/rs6000.c (dot_symbols): New global var.
4658         (rs6000_output_function_entry): New function, modified for
4659         !DOT_SYMBOLS..
4660         (print_operand <case 'z'>): ..extracted from here.
4661         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
4662         (rs6000_output_function_epilogue): Likewise.
4663         (rs6000_elf_declare_function_name): Likewise.
4664         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
4665         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
4666         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
4667         * configure: Regenerate.
4668         * config.in: Regenerate.
4669
4670 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
4671
4672         * reload.c (find_reloads_address): Fix thinko in previous change.
4673
4674         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
4675         a CONST_INT.
4676
4677 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
4678
4679         PR rtl-optimization/17099
4680         * combine.c (force_to_mode): Check if inner_mask has any bits set
4681         outside of GET_MODE (x) instead of op_mode.
4682
4683 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
4684
4685         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
4686         fragment.
4687         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
4688         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
4689         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
4690         architecture.
4691         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
4692         configurations.
4693         * config/arm/t-symbian: New file.
4694
4695 2004-08-20  Andrew Pinski  <apinski@apple.com>
4696
4697         * regrename.c (kill_value_regno): ANSIfy.
4698
4699 2004-08-20  Dale Johannesen  <dalej@apple.com>
4700
4701         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
4702
4703 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
4704
4705         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
4706         (kill_value_regno): New function, derived from kill_value.
4707         (kill_value): Update.
4708         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
4709
4710 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
4711
4712         Fix PR tree-optimization/17111
4713         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
4714         of non-value_handles.
4715         (bitmap_set_contains): All constants are in every set.
4716
4717 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4718
4719         * fold-const.c (round_up, round_down): Use build_int_cst.
4720         Optimize common case.
4721
4722 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
4723             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4724
4725         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
4726         one_only_data_section): Rename to som_readonly_data_section,
4727         som_one_only_readonly_data_section and som_one_only_data_section.
4728         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
4729         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
4730         conditional defines.
4731         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
4732         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
4733         string values.
4734         (pa_select_section): Use renamed section functions.
4735         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
4736         SOM_READONLY_DATA_SECTION_FUNCTION,
4737         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
4738         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
4739         Define here ...
4740         * config/pa/som.h: ... not here.
4741         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
4742         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
4743         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
4744         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
4745         (READONLY_DATA_SECTION): Use som_readonly_data_section.
4746
4747 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
4748
4749         * fold-const.c (int_const_binop): Don't generate non-overflowing
4750         size-types specially.
4751         (fold_convert_const): Likewise.
4752
4753         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
4754         clear cache on copied sizetype.
4755
4756 2004-08-20  Ben Elliston  <bje@au.ibm.com>
4757
4758         * configure.ac: Don't escape apostrophe in --enable-coverage help.
4759         * configure: Regenerate.
4760
4761 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
4762
4763         PR 5620
4764         * gcc.c (struct stat input_stat): Don't define if
4765         HOST_LACKS_INODE_NUMBERS
4766         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
4767         than stat to determine if temp file is same as input file.
4768         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
4769         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
4770
4771 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
4772
4773         * configure.ac (mips*-*-*): Print an error if not using GAS.
4774         * configure: Regenerated.
4775         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
4776         comments about buggy MIPSpro assemblers.
4777         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
4778         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
4779         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
4780         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
4781         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
4782         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
4783         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
4784         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
4785         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
4786         of more general IRIX 6 definitions.
4787         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
4788         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
4789         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
4790         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
4791         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4792         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
4793         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
4794         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
4795         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
4796         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
4797         (LINK_SPEC): Move most of definition to iris.h.
4798         (SUBTARGET_LINK_SPEC): New macro.
4799         (IRIX_STARTFILE_SPEC): Fold into...
4800         (STARTFILE_SPEC): ...here.
4801         (IRIX_ENDFILE_SPEC): Fold into...
4802         (ENDFILE_SPEC): ...here.
4803         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
4804         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
4805         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
4806         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
4807         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
4808         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
4809         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
4810         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
4811         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
4812         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
4813         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
4814         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
4815         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
4816         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
4817         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
4818         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
4819         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
4820         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
4821         (TARGET_IRIX6): Define to 1.
4822         (DRIVER_SELF_SPECS): Define.
4823         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
4824         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
4825         (SUBTARGET_LINK_SPEC): New macro.
4826         (IRIX_STARTFILE_SPEC): Fold into...
4827         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
4828         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
4829         (LIB_SPEC, LIBGCC_SPEC): Use them.
4830         (LIB_SPEC): Remove !mabi=* case.
4831         (IRIX_ENDFILE_SPEC): Fold into...
4832         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
4833         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
4834         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
4835         (TARGET_IRIX6): New macro.
4836         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
4837         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
4838         (LABEL_AFTER_LOC): Delete.
4839         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
4840         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
4841         (mips_build_builtin_va_list): Check TARGET_IRIX6.
4842         (override_options): Remove TARGET_SGI_O32_AS-related code.
4843         (irix_output_external_libcall): Make static.
4844         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
4845         LABEL_AFTER_LOC.
4846         (mips_file_start): Tidy guard for ABI sections.  Remove use of
4847         ABICALLS_ASM_OP; use .abicalls instead.
4848         (mips_output_aligned_decl_common, mips_declare_object_name)
4849         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
4850         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
4851         .globl foo .text directives.
4852         (irix_asm_named_section_1, irix_asm_named_section)
4853         (irix_section_align_entry, irix_section_align_htab)
4854         (irix_orig_asm_out_file, irix_section_align_entry_eq)
4855         (irix_section_align_entry_hash, irix_asm_output_align)
4856         (irix_file_start, irix_section_align_1, copy_file_data)
4857         (irix_file_end, irix_section_type_flags): Delete.
4858         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
4859         Use standard section syntax.  Remove protective "jr $31".
4860         (__gcc_fini): Likewise .gcc_fini.
4861         * config/mips/irix-crtn.asm: Adjust sections accordingly.
4862         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
4863         iris5gas.h.
4864         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
4865         from t-irix-gld.
4866         (EXTRA_MULTILIB_PARTS): Define.
4867         * config/mips/t-iris6: Remove bogus comment.
4868         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
4869         * config/mips/iris5gas.h, config/mips/iris5gld.h,
4870         config/mips/iris6gas.h, config/mips/iris6gld.h,
4871         config/mips/t-iris5-as, config/mips/t-iris5-gas
4872         config/mips/t-irix-gld: Delete.
4873         * config/mips/iris.h: New file.
4874         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
4875
4876 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
4877
4878         * postreload.c (reload_cse_move2add): Allow any condjump, but check
4879         that the implicit set isn't clobbered in the jump insn.
4880
4881 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
4882
4883         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
4884         * optabs.c (init_optabs): Don't check it.
4885         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
4886         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
4887
4888 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
4889
4890         * config/s390/s390.md (s390_warn_framesize_string)
4891         (s390_warn_dynamic_string, s390_stack_size_string)
4892         (s390_stack_guard_string): New global string variables.
4893         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
4894         (s390_stack_guard): New global variables.
4895         (override_options): Added checks for the new options.
4896         (s390_emit_prologue): Emit stack check and trap code and perform
4897         compile time stack size checking.
4898
4899         * config/s390/s390.h (TARGET_OPTIONS): Added new options
4900         "warn-framesize", "warn-dynamicstack", "stack-size" and
4901         "stack-guard".
4902
4903         * doc/invoke.texi: Added documentation for the new options.
4904
4905 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
4906
4907         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
4908         to eliminate warning.
4909         (linear_search_fdes): Declare p as unsigned.
4910         (binary_search_mixed_encoding_fdes): Likewise.
4911         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
4912         to eliminate warning.
4913         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
4914         type cast.
4915
4916 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
4917
4918         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
4919         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
4920         instead of one.  Check for strictly legitimate address.
4921         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
4922         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
4923
4924 2004-08-19  Eric Christopher  <echristo@redhat.com>
4925
4926         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
4927         * langhooks.h (unsave_expr_now): Ditto.
4928         * tree.h (unsave_expr_1): Remove prototype.
4929         (lhd_unsave_expr_now): Rename to unsave_expr_now.
4930         * tree-inline.c (unsave_expr_1): Move here
4931         from tree.c. Make static.
4932         (unsave_expr_now): Rename from lhd_unsave_expr_now.
4933         * tree-sra.c: Fix up for rename.
4934         * tree-ssa-copy.c: Ditto.
4935         * tree-eh.c: Ditto.
4936         * tree.c (unsave_expr_1): Move to tree-inline.c.
4937
4938 2004-08-19  Caroline Tice  <ctice@apple.com>
4939
4940         * config/i386/cygming.h (switch_to_section):  Fix typo (change
4941         in_unlikely_text_section to in_unlikely_executed_text).
4942
4943 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
4944
4945         * vec.h (VEC_lower_bound): New macro.
4946
4947 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
4948
4949         PR target/16446
4950         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
4951         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
4952         treat each ABI separately.  Deal with n32/n64 complex float arguments.
4953         (function_arg): Add associated complex handling here.
4954
4955 2004-08-19  Richard Henderson  <rth@redhat.com>
4956
4957         * config/arm/arm.c (arm_gen_load_multiple): Use
4958         adjust_automodify_address.  Take base memory and offset instead
4959         of unchanging/struct/scalar bits.
4960         (arm_gen_store_multiple): Likewise.
4961         (arm_gen_movmemqi): Use adjust_automodify_address.
4962         * config/arm/arm-protos.h: Update decls.
4963         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
4964         (store_multiple): Similarly.
4965
4966 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
4967
4968         * regclass.c (globalize_reg): Update call_really_used_regs.
4969
4970 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
4971
4972         * doc/invoke.texi (integer-share-limit): Document.
4973
4974         * tree.h (TYPE_CACHED_VALUES_P): New.
4975         (TYPE_CACHED_VALUES): New.
4976         (TYPE_ORIG_SIZE_TYPE): Adjust.
4977         * tree.def (INTEGER_CST): Update documentation.
4978         * tree.c: Inlcude params.h.
4979         (build_int_cst): Cache small values.
4980         (build_type_copy): Do not copy the value cache.
4981         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
4982         unneeded zeroing.
4983         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
4984         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
4985         cache.
4986         * fold-const.c (force_fit_type): Copy value when setting
4987         overflows.
4988         (int_const_binop): Likewise.
4989         * stor-layout.c: Include params.h
4990         (set_sizetype): Create values cache.
4991         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
4992         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
4993         * params.h (INTEGER_SHARE_LIMIT): New.
4994         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
4995
4996 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
4997
4998         * gimplify.c (gimplify_minimax_expr): Remove.
4999         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
5000
5001 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
5002
5003         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
5004         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
5005
5006 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
5007
5008         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
5009
5010 2004-08-18  Andrew Pinski  <apinski@apple.com>
5011
5012         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
5013
5014 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
5015
5016         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
5017         (__aeabi_ul2f): Likewise.
5018
5019 2004-08-18  Richard Henderson  <rth@redhat.com>
5020
5021         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
5022         move to rtl completely.
5023         (struct meminsnbuf, xtensa_emit_block_move): Remove.
5024         (xtensa_find_mode_for_size): Remove.
5025         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
5026         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
5027
5028 2004-08-18  Richard Henderson  <rth@redhat.com>
5029
5030         * config/mcore/mcore.c (mode_from_align): Remove DImode.
5031         (block_move_sequence): Rewrite to use adjust_address.
5032         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
5033         Return boolean indicating success/failure.
5034         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
5035         * config/mcore/mcore.md (movmemsi): Update to match.
5036
5037 2004-08-18  Mike Stump  <mrs@apple.com>
5038
5039         * doc/invoke.texi (-mfix-and-continue): Add support for
5040         fast turn around debugging.
5041         (-ffix-and-continue): Likewise.
5042         (-mindirect-data): Likewise.
5043         (-findirect-data): Likewise.
5044         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
5045         (indirect_data): Likewise.
5046         (machopic_data_defined_p): Likewise.
5047         (machopic_output_indirection): Likewise.
5048         (darwin_encode_section_info): Likewise.
5049         (darwin_fix_and_continue): Likewise.
5050         (darwin_fix_and_continue_switch): Likewise.
5051         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
5052         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
5053         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
5054         (SUBTARGET_OPTIONS): Likewise.
5055         (darwin_fix_and_continue): Likewise.
5056         (darwin_fix_and_continue_switch): Likewise.
5057         (TARGET_FIX_AND_CONTINUE): Likewise.
5058         * config/rs6000.c (rs6000_emit_prologue): Likewise.
5059
5060 2004-08-19  Steven Bosscher  <stevenb@suse.de>
5061
5062         * basic-block.h (struct edge_def): Remove crossing_edge.
5063         (EDGE_CROSSING): New define.
5064         (EDGE_ALL_FLAGS): Update.
5065         * bb-reorder.c (find_traces_1_round, better_edge_p,
5066         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
5067         find_jump_block, fix_crossing_conditional_branches,
5068         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
5069         Replace all occurences of crossing_edge with an edge flag check
5070         or set/reset.
5071         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
5072         try_crossjump_bb): Likewise.
5073         * cfglayout.c (fixup_reorder_chain): Likewise.
5074         * cfgrtl.c (force_nonfallthru_and_redirect,
5075         commit_one_edge_insertion): Likewise.
5076
5077         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
5078         * tree-flow.h (compute_dominance_frontiers): Move prototype...
5079         * basic-block.h:  ...here.
5080         * tree-cfg.c (compute_dominance_frontiers_1,
5081         compute_dominance_frontiers): Move from here...
5082         * cfganal.c: ...to here.  Include timevar.h.
5083
5084 2004-08-18  James E Wilson  <wilson@specifixinc.com>
5085
5086         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
5087         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
5088
5089         * config/mips/mips.md (type): Add frdiv.
5090         (divsf3+1, divsf3+2): Change type to frdiv.
5091         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
5092         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
5093
5094         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
5095         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
5096         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
5097         * config/mips/5000.md (r5k_fdiv_single): Likewise.
5098         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
5099         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
5100         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
5101         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
5102         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
5103         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
5104         Likewise.
5105         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
5106
5107 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
5108
5109         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
5110         get regression tester working again.
5111
5112 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5113
5114         * insn-notes.def, reg-notes.def: New files.
5115         * rtl.h: Use them to define enum insn_note and enum reg_note.
5116         * rtl.c: Use them to define note_insn_name and reg_note_name.
5117         * Makefile.in (RTL_BASE_H): Update.
5118
5119         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
5120         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
5121
5122 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
5123
5124         * arm.c (arm_size_rtx_costs): New function.
5125         (arm_override_options): Use it if optimizing for space.
5126
5127 2004-08-18  Richard Henderson  <rth@redhat.com>
5128
5129         * emit-rtl.c (gen_const_mem): New.
5130         * rtl.h (gen_const_mem): Declare.
5131         * expr.c (do_tablejump): Use it.
5132         * varasm.c (force_const_mem): Likewise.
5133         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5134         (machopic_legitimize_pic_address): Likewise.
5135         * config/arm/arm.c (legitimize_pic_address): Likewise.
5136         * config/i386/i386.c (legitimize_pic_address): Likewise.
5137         (legitimize_tls_address): Likewise.
5138         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5139         * config/ia64/ia64.md (load_fptr): Likewise.
5140         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5141         * config/pa/pa.c (legitimize_pic_address): Likewise.
5142         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5143         (rs6000_emit_move): Likewise.
5144         * config/s390/s390.c (legitimize_pic_address): Likewise.
5145         (legitimize_tls_address): Likewise.
5146         * config/s390/s390.md (casesi): Likewise.
5147         * config/sh/sh.c (sh_reorg): Likewise.
5148         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
5149         * config/v850/v850.md (casesi): Likewise.
5150
5151         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
5152         * config/sh/sh.c (prepare_move_operands): Remove incorrect
5153         use of MEM_READONLY_P.
5154
5155 2004-08-18  Steven Bosscher  <stevenb@suse.de>
5156
5157         * Makefile.in (OBJS-common): Add postreload-gcse.c.
5158         Add new postreload-gcse.o.
5159         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
5160         (lookup_as_function, insert, rehash_using_reg, use_related_value,
5161         equiv_constant): Use SAFE_HASH instead of safe_hash.
5162         (exp_equiv_p): Export.  Add for_gcse argument when comparing
5163         for GCSE.
5164         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
5165         find_comparison_args, fold_rtx, cse_insn): Update callers.
5166         (hash_rtx): New function derived from old canon_hash and bits
5167         from gcse.c hash_expr_1.
5168         (canon_hash_string): Rename to hash_rtx_string.
5169         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
5170         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
5171         (cselib_lookup): Update this caller.
5172         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
5173         Make static.
5174         (hash_expr): Call hash_rtx.
5175         (ldst_entry): Likewise.
5176         (expr_equiv_p): Call exp_equiv_p.
5177         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
5178         reg_used_on_edge, reg_set_between_after_reload_p,
5179         reg_used_between_after_reload_p, get_avail_load_store_reg,
5180         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
5181         get_bb_avail_insn, hash_scan_set_after_reload,
5182         compute_hash_table_after_reload,
5183         eliminate_partially_redundant_loads, gcse_after_reload,
5184         get_bb_avail_insn, gcse_after_reload_main): Remove.
5185         * postreload-gcse.c: New file, reincarnating most of the above.
5186         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
5187         (gcse_after_reload_main): Update prototype.
5188         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
5189         * passes.c (rest_of_handle_gcse2): Use it.
5190
5191 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
5192
5193         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
5194         (pass_loop_done): Likewise.
5195
5196 2004-08-18  Andrew Pinski  <apinski@apple.com>
5197
5198         * config/rs6000/darwin.md: Delete the altivec patterns which are
5199         handled differently now.
5200         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
5201         (macho_correct_pic_di): Likewise.
5202         (call_indirect_nonlocal_darwin64): Likewise.
5203         Delete the save world/saveFP/saveVec patterns.
5204
5205         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
5206         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5207         * config/rs6000/rs6000.md: Include darwin.md.
5208         (builtin_setjmp_receiver): Add DImode case.
5209         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
5210         Darwin bits.
5211
5212 2004-08-18  Matt Austern  <austern@apple.com>
5213
5214         Dead code stripping
5215         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
5216         * darwin.c (darwin_file_end): Mark file as potentially strippable.
5217
5218 2004-08-18  Richard Henderson  <rth@redhat.com>
5219
5220         * alias.c (readonly_fields_p): Remove.
5221         (objects_must_conflict_p): Don't call it.
5222         * tree.h (readonly_fields_p): Remove.
5223         * langhooks.h (struct lang_hooks): Remove honor_readonly.
5224         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
5225
5226 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
5227
5228         * tree-dfa.c (add_referenced_var): Only global variables are
5229         call-clobbered.
5230         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
5231         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
5232         all pointers dereferenced if the statement dereferences them.
5233         (create_name_tags): Do not create memory tags for pointers
5234         that have PT_ANYTHING set.
5235         Also check if PT_VARS is not empty before creating a name tag.
5236         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
5237         variables that share the same alias set with a pointer that
5238         may point anywhere.
5239         (add_may_alias): Add FIXME comment to remove clobbering
5240         aliased variables and tags.
5241         (replace_may_alias): Likewise.
5242         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
5243         (merge_pointed_to_info): If the original variable has not
5244         points-to information, call set_pt_anything.
5245         (add_pointed_to_var): Do not prevent adding a pointed-to
5246         variable if the pointers is PT_ANYTHING.
5247         If the variable is a global, set PT_GLOBAL_MEM.
5248         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
5249         pointer type only come in PTR+OFFSET flavours.
5250         Always call merge_pointed_to_info on PHI arguments that are
5251         SSA_NAMEs.
5252         (get_nmt_for): Mark call-clobbered tags whose pointer points
5253         to global memory.
5254         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
5255         values.
5256         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
5257         FLAGS.
5258         (add_stmt_operand): Abort if the caller tried to add a killing
5259         definition for a memory tag.
5260         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
5261         unnecessary checks.
5262
5263 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
5264
5265         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
5266         from call_used_regs.  Update call_really_used_regs.
5267         (CALL_REALLY_USED_REGISTERS): Define.
5268         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
5269         Replace call_used_regs with call_really_used_regs.
5270         (calc_live_regs, sh_media_register_for_return): Likewise.
5271         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
5272         * sh.md (return_media): Likewise.
5273
5274 2004-08-18  Andrew Pinski  <apinski@apple.com>
5275
5276         * config/darwin.c (machopic_legitimize_pic_address): Only set
5277         MEM_READONLY_P in the non TARGET_TOC case.
5278
5279 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5280
5281         * rtl.def (NIL): Delete.
5282         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
5283         Tighten the syntax a little.
5284
5285         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
5286         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
5287         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
5288         * config/i386/predicates.md, config/m32r/m32r.h
5289         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
5290         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
5291         * config/sparc/sparc.h, doc/tm.texi:
5292         Replace all occurrences of NIL with UNKNOWN.
5293
5294 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
5295
5296         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
5297         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
5298         sequence inline.  Move drop_through_label code into this
5299         block, being the only place it is used.  Adjust comments.
5300
5301 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
5302
5303         * config/rs6000/altivec.md: Add new patterns for calls to
5304         save_world/rest_world functions.
5305
5306         * config/rs6000/rs6000-protos.h: (save_world_operation,
5307         restore_world_operation) new declarations.
5308
5309         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
5310         field added.
5311         (rs6000_stack_info): Set world_save_p field.
5312         (save_world_operation): New function.
5313         (restore_world_operation): New function.
5314         (compute_save_world_info): New function.
5315         (rs6000_stack_info): Call compute_save_world_info.
5316         (rs6000_emit_prologue): Check for world_save_p and generate
5317         pattern to call save_world for saving all non-volatile and
5318         special registers.
5319         (rs6000_emit_epilogue): Check for world_save_p and generate
5320         pattern to call rest_world to restore saved registers.
5321
5322         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
5323         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
5324         (rs6000_reg_names): New entries added for save_world_operation and
5325         restore_world_operation.
5326
5327 2004-08-18  Caroline Tice  <ctice@apple.com>
5328
5329         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
5330         "-freorder-blocks-and-partition" to the flags used in second
5331         stage of profiledbootstrap.
5332         * bb-reorder.c (push_to_next_round_p): Add new variable,
5333         next_round_is_last; set and use variable to make sure, when
5334         partitioning, that the last trace construction round consists
5335         of all (and only) cold basic blocks.
5336         (rotate_loop): Don't copy blocks that end in a section
5337         crossing jump.
5338         (copy_bb): Correctly initialize "partition" of duplicated bb.
5339         (add_unlikely_executed_notes): Add a comment.
5340         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
5341         to make sure, if function contains hot blocks, that the
5342         successors of ENTRY_BLOCK_PTR are hot; also, only look for
5343         crossing edges if the architecture supports named sections.
5344         (mark_bb_for_unlikely_executed_section): Modify to always
5345         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
5346         the basic block note insn.
5347         (fix_crossing_unconditional_branches): Remove extra space.
5348         (fix_edges_for_rarely_executed_code): Modify to only do
5349         partitioning work if the architecture supports named sections.
5350         (reorder_basic_blocks): Modify to only add
5351         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
5352         supports named sections.
5353         * c-common.c (handle_section_attribute): Initialize new global
5354         variable, user_defined_section_attribute, to true if user has
5355         specified one.
5356         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
5357         forward edges that cross section boundaries.
5358         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
5359         partitioning information if the architecture supports named
5360         sections.
5361         * cfgrtl.c (target.h): Add statement to include this.
5362         (rtl_split_block): Make sure newly created bb gets correct
5363         partition.
5364         (try_redirect_by_replacing_jump): Make sure redirection isn't
5365         attempting to cross section boundaries.
5366         (force_nonfallthru_and_redirect): Only do partition fix up if
5367         architecture supports named sections.
5368         (rtl_split_edge): Make sure newly created bb ends up in
5369         correct partition.
5370         (commit_one_edge_insertion): Remove code that incorrectly
5371         updated basic block partition; Make sure partition fix up only
5372         happens if architecture supports named sections and it's not
5373         already done.
5374         (rtl_verify_flow_info_1): Fix if-condition on test/error
5375         condition that fallthru edges are not allowed to cross section
5376         boundaries.
5377         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
5378         * final.c (final_scan_insn): Remove redundant test from if-statement;
5379         change calls to text_section into calls to function_section; add code
5380         to only to partitioning fix up if architecture supports named
5381         sections.
5382         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
5383         partition.
5384         (if_convert): Add targetm.have_named_sections to test.
5385         * output.h (unlikely_section_label): Extern declaration for new global
5386         variable.
5387         (unlikely_text_section_name): Likewise.
5388         * opts.c (decode_options): If both partitioning and DWARF debugging
5389         are turned on, issue a warning that this doesn't work, and change
5390         partitiong to basic block reordering (without hot/cold partitions).
5391         * passes.c (rest_of_handle_final): Re-set new global variable,
5392         user_defined_section_attribute, to false.
5393         (rest_of_compilation): Change options for calling partitioning
5394         function: Don't call if the user defined the section attribute, and
5395         don't call if DECL_ONE_ONLY is true for the current function.
5396         * predict.c (choose_function_section): Return immediately if we
5397         are doing hot/cold partitioning (i.e. let the basic block partitioning
5398         determine where the function belongs).
5399         * reg-stack.c (emit_swap_insn): Add condition to step over
5400         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5401         * toplev.c (user_defined_section_attribute): New global variable.
5402         * toplev.h (user_defined_section_attribute): Extern declaration
5403         for new global variable.
5404         * varasm.c (unlikely_section_label): New global variable.
5405         (unlikely_text_section_name): New global variable.
5406         (unlikely_text_section): Add code to initialize
5407         unlikely_text_section_name if necessary; modify to use
5408         unlikely_text_section_name and unlikely_section_label; also to use
5409         named_section properly.
5410         (in_unlikely_text_section):  Modify to work correctly with
5411         named_section and to use unlikely_text_section_name.
5412         (named_section):  Add code to work properly with cold section.
5413         (function_section): Clean up if-statement.
5414         * config/darwin.c (darwin_asm_named_section): Return to original
5415         code, removing use of SECTION_FORMAT_STRING.
5416         * config/arm/pe.h (switch_to_section):  Add case for
5417         in_unlikely_executed_text to switch statement.
5418         * config/i386/cygming.h (switch_to_section): Likewise.
5419         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5420         (SECTION_FORMAT_STRING): Likewise.
5421         * config/mcore/mcore.h (switch_to_section): Likewise.
5422         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
5423         (SECTION_FORMAT_STRING): Remove.
5424
5425 2004-08-18  Roger Sayle  <roger@eyesopen.com>
5426
5427         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
5428         -ffixed-reg safe, by preserving the meanings of zero and one.
5429         (CALL_USED_REGISTERS): Likewise.
5430         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
5431
5432 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5433
5434         * config/sh/sh.c (split_branches): Check the result of
5435         next_active_insn.
5436         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
5437         Call rtl_register_cfg_hooks.
5438
5439 2004-08-18  Richard Henderson  <rth@redhat.com>
5440
5441         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5442         * alias.c (true_dependence): Update to match new semantics.
5443         (canon_true_dependence, write_dependence_p): Likewise.
5444         (anti_dependence, output_dependence): Update write_dependence_p args.
5445         (unchanging_anti_dependence): Remove.
5446         * calls.c (purge_mem_unchanging_flag): Remove.
5447         (fixup_tail_calls): Don't call it.
5448         (expand_call): Don't add unchanging memory to function usage.
5449         * expr.c (emit_block_move_via_libcall): Likewise.
5450         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
5451         (get_subtarget): Don't use RTX_UNCHANGING_P.
5452         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
5453         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
5454         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
5455         * cse.c (insert): Don't use RTX_UNCHANGING_P.
5456         (cse_insn, canon_hash): Use MEM_READONLY_P.
5457         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
5458         instead of RTX_UNCHANGING_P.
5459         * explow.c (maybe_set_unchanging): Remove.
5460         * expr.h (maybe_set_unchanging): Remove.
5461         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
5462         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
5463         (assign_parm_setup_reg, expand_function_start): Likewise.
5464         * integrate.c (copy_rtx_and_substitute): Likewise.
5465         * ra-rewrite.c (emit_colors): Likewise.
5466         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
5467         (fixup_match_1): Likewise.
5468         * reload1.c (reload, alter_reg): Likewise.
5469         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
5470         not RTX_UNCHANGING_P.
5471         (equiv_init_varies_p): Likewise.
5472         * loop-invariant.c (check_maybe_invariant): Likewise.
5473         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
5474         * loop.c (note_addr_stored): Likewise.
5475         (prescan_loop): Likewise. Don't check function usage for clobbered
5476         unchanging memory.
5477         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
5478         not RTX_UNCHANGING_P.
5479         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
5480         * varasm.c (force_const_mem): Likewise.
5481         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
5482         * web.c (entry_register): Likewise.
5483         * tree-gimple.h (get_base_address): Move decl ...
5484         * tree.h: ... here.
5485         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
5486
5487         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
5488         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
5489         (alpha_set_memflags): Update to match.
5490
5491         * config/darwin.c (machopic_indirect_data_reference): Set
5492         MEM_READONLY_P instead of RTX_UNCHANGING_P.
5493         (machopic_indirect_call_target): Likewise.
5494         (machopic_legitimize_pic_address): Likewise.
5495         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
5496         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
5497         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
5498         * config/frv/frv.md (symGOT2reg): Likewise.
5499         * config/i386/i386.c (legitimize_pic_address,
5500         legitimize_tls_address, ix86_split_to_parts): Likewise.
5501         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
5502         * config/ia64/ia64.md (load_fptr): Likewise.
5503         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
5504         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
5505         * config/mcore/mcore.c (block_move_sequence): Likewise.
5506         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
5507         * config/pa/pa.c (legitimize_pic_address): Likewise.
5508         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
5509         (rs6000_emit_move): Likewise.
5510         * config/s390/s390.c (legitimize_pic_address): Likewise.
5511         (legitimize_tls_address): Likewise.
5512         * config/s390/s390.md (casesi): Likewise.
5513         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
5514         * config/sh/sh.md (symGOT2reg): Likewise.
5515         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
5516         * config/v850/v850.md (casesi): Likewise.
5517
5518         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
5519         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
5520         * config/mips/mips.c (mips_restore_gp): Likewise.
5521         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
5522         * config/sh/sh.c (sh_reorg): Likewise.
5523
5524 2004-08-18  Richard Henderson  <rth@redhat.com>
5525
5526         * tree.h (struct tree_decl): Add gimple_formal_temp.
5527         (DECL_GIMPLE_FORMAL_TEMP_P): New.
5528         * gimplify.c (pop_gimplify_context): Clear it.
5529         (lookup_tmp_var): Set it, if is_formal.
5530         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
5531         Use is_gimple_val for VECTOR.  Simplify return value.
5532         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
5533         (gimplify_expr): Likewise.
5534         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
5535         is_gimple_tmp_rhs for clarity.  Update all callers.
5536         (is_gimple_reg_rhs): Simplify logic.
5537         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
5538         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
5539         (is_gimple_formal_tmp_reg): Similarly.
5540         * tree-gimple.h: Update decls.
5541         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
5542         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
5543         * tree-ssa-live.c (var_union, type_var_init): Likewise.
5544
5545 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
5546
5547         * c4x.c (legitimize_operands): Remove calls to
5548         preserve_subexpressions_p.
5549
5550 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
5551
5552         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
5553         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
5554
5555 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
5556
5557         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
5558         Objective-C++ extensions.
5559         * gengtype.c (get_file_basename): Match entire subdirectory name
5560         ('cp', 'objc', 'objcp') rather than just its suffix.
5561         (get_base_file_bitmap): Allow for files to belong to more than one
5562         language.
5563         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
5564         used by more than one front-end.
5565
5566 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
5567
5568         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
5569         avoid use of preserve_subexpressions_p.
5570
5571 2004-08-17  Richard Henderson  <rth@redhat.com>
5572
5573         PR 17051
5574         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
5575
5576 2004-08-17  DJ Delorie  <dj@redhat.com>
5577
5578         * doc/extend.texi: Document new xstormy16 attribute.
5579
5580         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
5581         (xstormy16_splittable_below100_or_register): New.
5582         (combine_bnp): New.
5583         (xstormy16_reorg): New.
5584         (TARGET_MACHINE_DEPENDENT_REORG): Define.
5585
5586         * config/stormy16/stormy16.md (movqi_internal): Make name public.
5587         (movhi_internal): Likewise.
5588         (cbhranchhi): Likewise.
5589         (cbhranchhi_neg): Likewise.
5590         (andhi3): Only allow splittable below100 operands.
5591         (iorhi3): Likewise.
5592         (peephole2): New and/zero_extend->and peephole.
5593         (peephole2): New load/ior/save->set1 peephole.
5594         (peephole2): New load/and/save->clr1 peephole.
5595         (bclrx, bclrx2, bclr7, bclr15): New.
5596         (bsetx, bsetx2, bset7, bset15): New.
5597
5598         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
5599         liberal about acceptable 'B' masks.
5600
5601         * config/stormy16/stormy16-protos.h
5602         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5603         xstormy16_below100_operand, xstormy16_below100_or_register,
5604         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5605         (PREDICATE_CODES): Add new predicates.
5606
5607         * config/stormy16/stormy16.c
5608         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
5609         xstormy16_below100_operand, xstormy16_below100_or_register,
5610         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
5611         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
5612         (xstormy16_legitimate_address_p): Allow below100 symbols.
5613         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
5614         (xstormy16_expand_move): Leave below100 operands as-is.
5615         (xstormy16_encode_section_info): Encode below100 symbols.
5616         (xstormy16_strip_name_encoding): New.
5617         (xstormy16_print_operand): Print 'b' as shift mask.
5618         (xstormy16_attribute_table): Add below100 attributes.
5619         (xstormy16_handle_below100_attribute): New.
5620
5621         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
5622         (XSTORMY16_SECTION_FUNCTION): New.
5623         (EXTRA_SECTION_FUNCTIONS): Define using the above.
5624         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
5625         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
5626         (ASM_OUTPUT_LABELREF): Define.
5627
5628         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
5629         (movhi_internal): Add below100 support.
5630         (andhi3): Add below100 support.
5631         (iorhi3): Add below100 support.
5632         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
5633
5634 2004-08-17  James E Wilson  <wilson@specifixinc.com>
5635
5636         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
5637         of VOIDmode for comparison code mode.
5638         * config/mips/mips.md: For conditional move patterns, use mode of
5639         first compare operand for comparison mode, instead of VOIDmode.
5640
5641         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
5642         normal and -ffast-math code.
5643
5644 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
5645
5646         PR c++/15871
5647         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
5648
5649 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
5650
5651         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
5652
5653 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
5654
5655         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
5656         for non Darwin targets.
5657         (*call_value_nonlocal_darwin64): Likewise.
5658
5659 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
5660
5661         * config/rs6000/rs6000.c (rs6000_function_value): Check for
5662         altivec mode for altivec return register.
5663
5664 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
5665
5666         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
5667         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5668         * config/rs6000/rs6000.md: Include darwin.md.
5669         (builtin_setjmp_receiver): Add DImode case.
5670         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
5671         Darwin bits.
5672
5673 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
5674
5675         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
5676         trees.
5677         * tree-vectorizer.h: New File: Same.
5678         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
5679         * common.opt (ftree-vectorize): New flag to enable vectorization.
5680         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
5681         vectorization pass.
5682         * tree-data-ref.h (init_data_ref): Additional argument.
5683         (array_base_name_differ_p): Moved to tree-data-ref.c.
5684         * tree-data-ref.c (array_base_name_differ_p): Revised.
5685         (initialize_data_dependence_relation): Call array_base_name_differ_p
5686         with an extra argument.
5687         (analyze_all_data_dependences): Same.
5688         (init_data_ref): Additional argument is_read to set DR_IS_READ.
5689         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
5690         file.
5691         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
5692         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
5693         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
5694         vectorization pass.
5695         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
5696         (tree_ssa_loop_done): Call scev_finalize.
5697         (tree_vectorize): Define the new vectorization pass.
5698         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
5699         size of the vector they support (until support for multiple vector
5700         sizes is added to the vectorizer).
5701         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
5702         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
5703         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
5704         documentation.
5705
5706 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
5707
5708         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
5709         usage.
5710         (generate_protocol_list, handle_impent): Likewise.
5711
5712 2004-08-17  Roger Sayle  <roger@eyesopen.com>
5713
5714         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
5715         ensure that call_used_regs is a superset of both fixed_regs and
5716         call_really_used_regs.
5717
5718 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
5719
5720         PR target/17019
5721         * arm.md (addsi3_cbranch_scratch): Correct case labels.
5722
5723 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
5724
5725         PR middle-end/17036
5726         * fold-const.c (fold): Check for integer operand when
5727         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
5728         Pinski  <pinskia@physics.uc.edu>.
5729
5730 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
5731
5732         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
5733         No need to check if in a cross configuration.
5734         * configure: Regenerate.
5735
5736         * calls.c (precompute_register_parameters):
5737         Inline preserve_subexpressions_p ().
5738         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
5739         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
5740         Likewise.
5741         * expr.c (get_subtarget): Likewise.
5742         * rtl.h (preserve_subexpressions_p): Remove.
5743         * stmt.c (preserve_subexpressions_p): Remove.
5744
5745         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
5746         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
5747         Abort on gimplified cases.
5748
5749 2004-08-16  James E Wilson  <wilson@specifixinc.com>
5750
5751         * tree.h (VECTOR_FLOAT_TYPE_P): New.
5752         (FLOAT_TYPE_P): Use it.
5753         * c-typeck.c (build_binary_op): After convert calls, check for
5754         check for ERROR_MARK operands.
5755
5756 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
5757
5758         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
5759         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
5760         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
5761         (genobjs static pattern rule): Remove %.c dependency.
5762         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
5763         Rename rules; delete commands; fix dependencies.
5764         (mostlyclean): Do not delete temporary source copies.
5765         * configure.ac: Delete all references to BUILD_PREFIX and
5766         BUILD_PREFIX_1.
5767         * configure: Regenerate.
5768
5769         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
5770         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
5771         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
5772         with #ifndef GENERATOR_FILE so that nothing from those headers
5773         is used.
5774
5775         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
5776
5777 2004-08-16  Adam Nemet  <anemet@lnxw.com>
5778
5779         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
5780
5781 2004-08-16  Andrew Pinski  <apinski@apple.com>
5782
5783         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
5784         extraneous semicolon.
5785
5786 2004-08-16  Devang Patel  <dpatel@apple.com>
5787
5788         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
5789         * print-tree.c (print_node): Print DECL_PRESERVE_P.
5790         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
5791         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
5792         * target.h (struct gcc_target): New member, mark_decl_preserved.
5793         * hooks.c (hook_void_charptr): Rename to ...
5794         (hook_void_constcharptr): ... new name.
5795         * hooks.h (hook_void_charptr): Rename to ..
5796         (hook_void_constcharptr): ... new name.
5797         * tree.h (DECL_PRESERVE_P): New #define.
5798         (struct tree_decl): New member, preserve_flag.
5799         * varasm.c (assemble_start_function): Mark decl preserved.
5800         (assemble_variable): Same.
5801         * darwin.c (darwin_mark_decl_preserved): New function.
5802         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
5803         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
5804         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
5805
5806 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
5807
5808         * c-decl.c (grokdeclarator): Allow for function definition where
5809         innermost declarator has attributes.
5810
5811 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
5812
5813         * except.c (get_exception_filter, build_post_landing_pads,
5814         dw2_build_landing_pads): Use target-specific mode for 'filter'.
5815         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
5816         * target.h (eh_return_filter_mode): New field added.
5817         * targhooks.c (default_eh_return_filter_mode): Defined.
5818         * targhooks.h (default_eh_return_filter_mode): Declared.
5819         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
5820
5821 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5822
5823         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
5824         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
5825         * configure: Regenerate.
5826
5827 2004-08-16  Stan Shebs  <shebs@apple.com>
5828
5829         Basic support for 64-bit Darwin.
5830         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
5831         (machopic_legitimize_pic_address): Similarly, plus use Pmode
5832         instead of SImode.
5833         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
5834         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
5835         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
5836         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
5837         (PROCESSOR_DEFAULT64): Define.
5838         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
5839         Darwin.
5840         * config/rs6000/rs6000.md: Include darwin.md.
5841         (builtin_setjmp_receiver): Add DImode case.
5842         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
5843         Darwin.
5844         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
5845         (rs6000_emit_move): Add DImode case to Darwin bits.
5846         (machopic_output_stub): Use .quad if 64-bit.
5847         * invoke.texi: Document -m32 and -m64.
5848
5849 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
5850
5851         * doc/extend.texi (AltiVec builtins): Document additional differences
5852         from the Motorola AltiVec PIM.
5853
5854 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
5855
5856         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
5857         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
5858         (struct tree_common): Update public_flag documentation.
5859
5860 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5861
5862         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
5863         Check for artificial variables, not is_gimple_tmp_var.
5864         * tree-ssa-live.c (var_union): Likewise.
5865
5866 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
5867
5868         * calls.c (load_register_parameters): Remove spurious FIXME token.
5869
5870 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
5871
5872         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
5873         (c-lang.o): Depend on c-objc-common.h.
5874         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
5875         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
5876         * c-lang.c: Include c-objc-common.h.
5877         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
5878         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
5879         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
5880         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
5881         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
5882         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
5883         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
5884         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
5885         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
5886         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
5887         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
5888         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
5889         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
5890         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
5891         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
5892         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
5893         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
5894         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
5895         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
5896         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
5897         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
5898         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
5899         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
5900         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
5901         Move to c-objc-common.h.
5902         * c-objc-common.c: Include c-objc-common.h.
5903         * c-objc-common.h: New file.
5904
5905 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
5906             Andrew Pinski  <pinskia@physics.uc.edu>
5907
5908         PR target/14931
5909         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
5910         style.
5911
5912 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
5913
5914         * tree.h (build_int_cst): New.
5915         (build_int_2): Remove.
5916         * tree.c (build_int_2): Remove.
5917         (build_int_cst): New.
5918         (make_vector_type, build_common_tree_nodes,
5919         build_common_tree_nodes_2): Use build_int_cst.
5920         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
5921         expand_builtin_strpbrk, expand_builtin_fputs,
5922         build_string_literal, expand_builtin_printf,
5923         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
5924         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
5925         fold_builtin_isdigit, simplify_builtin_strstr,
5926         simplify_builtin_strpbrk, fold_builtin_fputs,
5927         simplify_builtin_sprintf): Use build_int_cst.
5928         * c-common.c (start_fname_decls, fix_string_type,
5929         c_common_nodes_and_builtins, c_init_attributes,
5930         shorten_compare): Likewise.
5931         * c-decl.c (complete_array_type,
5932         check_bitfield_type_and_width): Likewise.
5933         * c-lex.c (interpret_integer, lex_charconst): Likewise.
5934         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
5935         * c-pretty-print.c (pp_c_integer_constant): Likewise.
5936         * c-typeck.c (really_start_incremental_init, push_init_level,
5937         set_nonincremental_init_from_string): Likewise.
5938         * calls.c (load_register_parameters): Likewise.
5939         * convert.c (convert_to_pointer): Likewise.
5940         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
5941         build_fn_info_type, build_ctr_info_value, build_gcov_info):
5942         Likewise.
5943         * except.c (init_eh, assign_filter_values, assign_filter_values):
5944         Likewise.
5945         * expmed.c (store_fixed_bit_field, extract_bit_field,
5946         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
5947         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
5948         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
5949         * expr.c (convert_move, emit_group_load, emit_group_store,
5950         expand_assignment, store_constructor, store_field,
5951         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
5952         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
5953         invert_truthvalue, optimize_bit_field_compare,
5954         decode_field_reference, all_ones_mask_p, constant_boolean_node,
5955         fold_div_compare, fold, fold_read_from_constant_string,
5956         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
5957         * function.c (assign_parm_setup_block): Likewise.
5958         * stmt.c (shift_return_value, expand_end_case_type,
5959         estimate_case_costs): Likewise.
5960         * stor-layout.c (layout_type, initialize_sizetypes,
5961         set_min_and_max_values_for_integral_type): Likewise.
5962         * tree-chrec.c (chrec_fold_multiply_poly_poly,
5963         reset_evolution_in_loop): Likewise.
5964         * tree-chrec.h (build_polynomial_chrec): Likewise.
5965         * tree-complex.c (build_replicated_const): Likewise.
5966         * tree-eh.c (honor_protect_cleanup_actions,
5967         lower_try_finally_onedest, lower_try_finally_copy,
5968         lower_try_finally_switch): Likewise.
5969         * tree-mudflap.c (mf_build_string, mx_register_decls,
5970         mudflap_register_call, mudflap_enqueue_constant): Likewise.
5971         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
5972         * tree-pretty-print.c (dump_generic_node): Likewise.
5973         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
5974         Likewise.
5975         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
5976         * tree-ssa-loop-niter.c (number_of_iterations_cond,
5977         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
5978         Likewise.
5979
5980         * config/alpha/alpha.c (alpha_initialize_trampoline,
5981         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
5982         * config/arm/arm.c (arm_get_cookie_size): Likewise.
5983         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
5984         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
5985         * config/i860/i860.c (i860_va_start): Likewise.
5986         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
5987         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
5988         mips_gimplify_va_arg_expr): Likewise.
5989         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
5990         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
5991         add_compiler_branch_island): Likewise.
5992         * config/s390/s390.c (s390_va_start): Likewise.
5993         * config/sh/sh.c (sh_va_start): Likewise.
5994         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
5995         Likewise.
5996         * config/xtensa/xtensa.c (xtensa_va_start,
5997         xtensa_gimplify_va_arg_expr): Likewise.
5998
5999         * objc/objc-act.c (build_objc_string_object,
6000         build_objc_symtab_template, init_def_list, init_objc_symtab,
6001         init_module_descriptor, generate_static_references,
6002         build_selector_translation_table, get_proto_encoding,
6003         build_typed_selector_reference, build_selector_reference,
6004         build_next_objc_exception_stuff,
6005         build_method_prototype_list_template, generate_descriptor_table,
6006         generate_protocols, build_protocol_initializer,
6007         build_ivar_list_template, build_method_list_template,
6008         build_ivar_list_initializer, generate_ivars_list,
6009         generate_dispatch_table, generate_protocol_list,
6010         build_category_initializer, build_shared_structure_initializer,
6011         generate_shared_structures, handle_impent,
6012         generate_objc_image_info): Use build_int_cst.
6013
6014 2004-08-15  Ben Elliston  <bje@au.ibm.com>
6015
6016         * vec.h: Comment improvements.
6017
6018 2004-08-14  Roger Sayle  <roger@eyesopen.com>
6019
6020         * c-common.c (shorten_compare, pointer_int_sum,
6021         c_common_truthvalue_conversion, boolean_increment): Replace calls
6022         to build with calls to buildN.
6023         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
6024         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
6025         gimplify_switch_stmt): Likewise.
6026         * c-typeck.c (default_function_array_conversion,
6027         build_component_ref, build_array_ref, build_function_call,
6028         pointer_diff, build_unary_op, build_conditional_expr,
6029         build_compound_expr, build_modify_expr, c_finish_goto_label,
6030         c_finish_goto_ptr, c_finish_return, c_finish_loop,
6031         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
6032         build_binary_op): Likewise.
6033
6034 2004-08-15  Steven Bosscher  <stevenb@suse.de>
6035
6036         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
6037
6038 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6039
6040         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
6041         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
6042         * fixinc/fixincl.x: Rebuilt.
6043
6044 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
6045
6046         * config/mips/mips-protos.h (mips_symbolic_constant_p)
6047         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
6048         (mips_small_data_pattern_p): Declare.
6049         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
6050         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
6051         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
6052         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
6053         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
6054         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
6055         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
6056         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
6057         (pc_or_label_operand, call_insn_operand, move_operand)
6058         (consttable_operand, symbolic_operand, general_symbolic_operand)
6059         (global_got_operand, local_got_operand, stack_operand)
6060         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
6061         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
6062         (mips_small_data_pattern_p): Replace previous small_data_pattern
6063         predicate.  Turn into a bool () (rtx) function.
6064         * config/mips/predicates.md: New file.
6065         * config/mips/mips.md: Include it.  Use the target-independent
6066         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
6067         trap_comparison_operator and equality_op to equality_operator.
6068         Replace uses of small_int with the equivalent const_arith_operand.
6069         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
6070         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
6071         to fcc_reload_operand.
6072         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
6073
6074 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6075
6076         PR libstdc++/17005 partial fix.
6077         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
6078         except when generating ANSI/C89 code.
6079
6080 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
6081
6082         * c-common.c (shorten_compare): Use force_fit_type directly.
6083
6084 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
6085             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
6086             Dave Korn  <dk@artimi.com>
6087
6088         * doc/install.texi (Building): Avoid duplicate reference to GNU
6089         make requirement.
6090         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
6091
6092 2004-08-14  Richard Henderson  <rth@redhat.com>
6093
6094         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
6095         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
6096
6097 2004-08-13  Richard Henderson  <rth@redhat.com>
6098
6099         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
6100         for constant_call_address_operand.
6101         (call_value_pop_1, call_value_1): Likewise.
6102         (sibcall_value_1, call_value_1_rex64): Likewise.
6103
6104 2004-08-13  James E Wilson  <wilson@specifixinc.com>
6105
6106         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
6107         Correct mode from SFmode to DFmode.
6108
6109 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
6110
6111         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
6112         __cstring_object and __image_info sections with the no_dead_strip
6113         attribute.
6114
6115 2004-08-13  Roger Sayle  <roger@eyesopen.com>
6116             David Billinghurst  <David.Billinghurst@riotinto.com>
6117
6118         PR libgfortran/15930
6119         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
6120         * fixinc/fixincl.x: Regenerate.
6121         * fixinc/tests/base/internal/math_core.h: New file.
6122
6123 2004-08-13  Richard Henderson  <rth@redhat.com>
6124
6125         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
6126         (dbxout_function_end): Remove ifdefs for it.
6127         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
6128
6129 2004-08-13  Richard Henderson  <rth@redhat.com>
6130
6131         * Makefile.in (insn-preds.o): Depend on TREE_H.
6132         * genpreds.c (write_insn_preds_c): Include tree.h.
6133         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
6134         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
6135         const48_operand, and_operand, or_operand, mode_width_operand,
6136         mode_mask_operand, mul8_operand, const0_operand,
6137         hard_fp_register_operand, hard_int_register_operand,
6138         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
6139         samegp_function_operand, direct_call_operand, small_symbolic_operand,
6140         global_symbolic_operand, call_operand, symbolic_operand,
6141         dtp16_symbolic_operand, dtp32_symbolic_operand,
6142         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
6143         gottp_symbolic_operand, alpha_comparison_operator,
6144         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
6145         signed_comparison_operator, alpha_fp_comparison_operator,
6146         divmod_operator, fix_operator, aligned_memory_operand,
6147         unaligned_memory_operand, reg_or_unaligned_mem_operand,
6148         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
6149         reg_no_subreg_operand, addition_operation): Move to predicates.md.
6150         (reg_or_const_int_operand): Remove.  Replace all users with
6151         reg_or_cint_operand.
6152         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
6153         (resolve_reload_operand): Split out of aligned_memory_operand.
6154         * config/alpha/alpha-protos.h: Update for exports.
6155         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
6156         * config/alpha/alpha.md: Include predicates.md.
6157         * config/alpha/predicates.md: New file.
6158
6159 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
6160
6161         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
6162         fields with a pointer to the instruction definition.
6163         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
6164         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
6165         (write_attr_case, write_const_num_delay_slots): Update accordingly.
6166         (write_attr_case, write_const_num_delay_slots): Write the name of
6167         an insn next to its case statement.
6168         * genoutput.c (data): Add a filename field.
6169         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
6170         (output_insn_data): Print the location of each insn definition.
6171         * genrecog.c (write_action): Print the name of an insn above
6172         the statement that returns its code.
6173
6174 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
6175
6176         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
6177         * config/libgloss.h: Likewise.
6178         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
6179         * c4x/c4x-modes.def: Likewise.
6180         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
6181         (c4x_rptb_nop_p): Likewise.
6182         (c4x_rptb_valid_p): Likewise.
6183         (c4x_rptb_insert): Likewise.
6184         (c4x_address_conflict): Likewise.
6185         * config/c4x/c4x.md: Likewise.
6186         * config/frv/frv.md: Likewise.
6187         * config/i386/athlon.md: Likewise.
6188         * config/i386/i386.md: Likewise.
6189         * config/i386/predicates.md: Likewise.
6190         * config/ia64/ia64.c: Likewise.
6191         * config/ia64/itanium1.md: Likewise.
6192         * config/ia64/itanium2.md: Likewise.
6193         * config/iq2000/iq2000.md: Likewise.
6194         * config/mcore/mcore.c: Likewise.
6195         * config/mips/mips.c: Likewise.
6196         * config/mips/r3900.h: Likewise.
6197         * config/mips/sb1.md: Likewise.
6198         * config/pa/milli64.S: Likewise.
6199         * config/pa/pa.c: Likewise.
6200         * config/pa/pa.h: Likewise.
6201         * config/rs6000/8540.md: Likewise.
6202
6203 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
6204
6205         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
6206
6207 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
6208
6209         * sh.md (cbranch define_delay) Use cond_delay_slot for
6210         non-anulled condition too.
6211
6212 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
6213
6214         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
6215         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
6216         any_parallel_operand, lmw_operation, stmw_operation,
6217         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
6218         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
6219         any_parallel_operand.
6220         (return_and_restore_fpregs_{si,di}): Same.
6221
6222 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
6223
6224         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
6225         if pred->singleton != PARALLEL, issue a warning and pretend it was.
6226         Also issue a warning for any predicate we don't know about.
6227
6228 2004-08-12  Richard Henderson  <rth@redhat.com>
6229
6230         * config/i386/i386.c (internal_label_prefix): Export.
6231         (internal_label_prefix_len, struct ix86_address,
6232         ix86_decompose_address, maybe_get_pool_constant,
6233         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
6234         memory_address_length): Export.
6235         (any_fp_register_operand, fp_register_operand,
6236         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
6237         x86_64_general_operand, x86_64_szext_general_operand,
6238         x86_64_nonmemory_operand, x86_64_movabs_operand,
6239         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
6240         x86_64_zext_immediate_operand, const_int_1_31_operand,
6241         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
6242         tls_symbolic_operand, global_dynamic_symbolic_operand,
6243         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
6244         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
6245         constant_call_address_operand, const0_operand, const1_operand,
6246         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
6247         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
6248         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
6249         general_no_elim_operand, nonmemory_no_elim_operand,
6250         index_register_operand, q_regs_operand, flags_reg_operand,
6251         non_q_regs_operand, zero_extended_scalar_load_operand,
6252         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
6253         ix86_comparison_operator, ix86_carry_flag_operator,
6254         fcmov_comparison_operator, promotable_binary_operator,
6255         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
6256         mult_operator, div_operator, arith_or_logical_operator,
6257         memory_displacement_operand, cmpsi_operand, long_memory_operand,
6258         aligned_operand): Move to predicates.md as define_predicates.
6259         (tls_symbolic_operand_1): Remove.
6260         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
6261         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
6262         (legitimize_address): Merge tls_symbolic_operand contents.
6263         (ix86_expand_move): Likewise.
6264         * config/i386/i386-protos.h: Update for exports.
6265         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
6266         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
6267         * config/i386/i386.md: Include predicates.md.
6268         * config/i386/predicates.md: New file.
6269
6270 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
6271
6272         PR c++/16924
6273         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
6274         SYMBOL_REF_DECL.
6275         (i386_pe_mark_dllimport): Likewise.
6276         (i386_pe_encode_section_info): Likewise, when overriding
6277         dllimport attribute.
6278
6279 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
6280
6281         * configure.ac: When testing for flex, nm, ar, and bison, check
6282         that they will actually be built.
6283         * configure: Regenerate.
6284
6285 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
6286
6287         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
6288         (MOVE_MAX_PIECES): Define.
6289
6290 2004-08-12  Devang patel  <dpatel@apple.com>
6291
6292         * dbxout.c (dbxout_begin_prologue): New function.
6293         (dbx_debug_hooks): Use new begin prologue hook.
6294         (dbxout_function_end): Emit N_ENSYM.
6295         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
6296
6297 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
6298
6299         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
6300         argument is float*.
6301
6302         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
6303         for vec_dss.
6304
6305         * doc/extend.texi (AltiVec builtins): Fix description for recent
6306         changes.  Update operation list to match current support.
6307
6308 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
6309
6310         * config/s390/s390.c (struct s390_frame_layout): New struct as element
6311         of struct machine_function.
6312         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
6313         changed all uses.
6314         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
6315         changed all uses.
6316         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
6317         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
6318         (s390_frame_area, s390_register_info): New functions.
6319         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
6320         for base register.
6321         (s390_return_addr_rtx, s390_return_address_offset)
6322         (s390_va_start, s390_gimplify_va_arg)
6323         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
6324         layouts.
6325         (s390_frame_info): Functionality partly moved to s390_register_info.
6326         Made adaptions for new stack layout.
6327         (save_gprs, restore_gprs): Changed meaning of second parameter and
6328         adapted all callers.
6329
6330         * config/s390/s390.h (s390_backchain_string): New global variable.
6331         (MASK_BACKCHAIN): Removed definition.
6332         (TARGET_BACKCHAIN): Changed check.
6333         (TARGET_KERNEL_BACKCHAIN): New macro.
6334         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
6335         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
6336         "kernel-backchain".
6337         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
6338
6339         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
6340         as condition.  Adjusted for new stack layout.
6341
6342         * doc/invoke.texi: Added documentation for new option
6343         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
6344         "-mno-backchain".
6345
6346 2004-08-12  Paul Brook  <paul@codesourcery.com>
6347
6348         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
6349         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
6350
6351 2004-08-12  David Daney  <ddaney@avtrex.com>
6352
6353         * java/gcj.texi:  Add subsection on signal usage.
6354
6355 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
6356
6357         * expr.c (move_by_pieces): Set alignment for move to minimum of
6358         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
6359         alignment, but not less than the original alignment.
6360         (move_by_pieces_ninsns): Same.
6361         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
6362         (store_by_pieces_1): Same.
6363
6364 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
6365
6366         PR tree-optimization/16867
6367         * tree.c (is_global_var): New function.
6368         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
6369         Call is_global_var.
6370         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
6371         Update all users.
6372         (is_global_var): Declare.
6373         * tree-dfa.c (dump_variable): Display global and addressable
6374         attributes.
6375         (add_referenced_var): Clarify documentation when marking
6376         variables call-clobbered.
6377         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
6378         instead of needs_to_live_in_memory.
6379         (mark_call_clobbered): If the variable is a tag, mark it
6380         DECL_EXTERNAL.
6381         * tree-gimple.c (is_gimple_reg): Don't check for
6382         TREE_ADDRESSABLE.
6383         (is_gimple_non_addressable): Likewise.
6384         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
6385         needs to be marked call-clobbered.
6386         (setup_pointers_and_addressables): Call is_global_var instead
6387         of needs_to_live_in_memory.
6388         * tree-ssa-dce.c (need_to_preserve_store): Remove.
6389         Update all users with is_global_var.
6390         (mark_stmt_if_obviously_necessary): Fix processing of aliased
6391         stores.  Don't check the virtual definitions.  Rather, check
6392         whether the store is going into global memory.
6393         (find_obviously_necessary_stmts): Get the symbol from the PHI
6394         result.
6395         * tree-ssa-operands.c (get_call_expr_operands): Do not add
6396         clobbering may-defs if the call does not have side effects.
6397
6398 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
6399
6400         PR c++/16276
6401         * output.h (default_function_rodata_section,
6402         default_no_function_rodata_section): New prototypes.
6403         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
6404         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
6405         (TARGET_ASM_OUT): Add it.
6406         * varasm.c (default_function_rodata_section,
6407         default_no_function_rodata_section): New functions.
6408         * final.c (final_scan_insn): Call
6409         targetm.asm_out.function_rodata_section instead of
6410         readonly_data_section.
6411         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
6412         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6413         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6414         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6415         Likewise.
6416         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6417         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6418         Likewise.
6419         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
6420         Likewise.
6421         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6422         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
6423         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
6424
6425 2004-08-12  Paul Brook  <paul@codesourcery.com>
6426
6427         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
6428         frame info.
6429         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
6430         DWARF2_UNWIND_INFO.
6431
6432 2004-08-12  Ben Elliston  <bje@au.ibm.com>
6433
6434         PR target/16286
6435         * config/rs6000/altivec.h: Change vector to __vector throughout.
6436         (Except for the `vector' macro itself).
6437
6438 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
6439
6440         * genpreds.c: Add capability to generate predicate bodies as
6441         well as function prototypes.  Write function prototypes for
6442         the generic predicates too.
6443         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
6444         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
6445         (write_match_code, write_predicate_expr, write_one_predicate_function)
6446         (parse_option): New functions.
6447         (output_predicate_decls): Delete.
6448         (main): Read the machine description, process DEFINE_PREDICATE or
6449         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
6450         as appropriate.
6451
6452         * genrecog.c (struct decision_test): Replace index with
6453         struct pred_data pointer.
6454         (next_index): Remove, unused.
6455         (pred_table, preds, special_mode_pred_table): Delete.
6456         (compute_predicate_codes, process_define_predicate): New functions.
6457         (validate_pattern, add_to_sequence, write_switch): Update for
6458         new data structures.
6459         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6460         Check both error_count and have_error.
6461
6462         * gensupport.c (in_fname, first_predicate): New globals.
6463         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
6464         (predicate_table, last_predicate, old_pred_table)
6465         (old_special_pred_table): New statics.
6466         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
6467         (add_predicate, init_predicate_table): New functions.
6468         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
6469         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
6470         it or max_include_len.  Call init_predicate_table.
6471         (read_rtx): Run the predicate queue after the attribute queue
6472         but before all the others.
6473         * gensupport.h (in_fname, struct pred_data, first_predicate)
6474         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
6475         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
6476         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
6477         * dummy-conditions.c: Don't include bconfig.h, system.h,
6478         coretypes.h, tm.h, or system.h.  Do include stddef.h.
6479         Duplicate declaration of struct c_test from gensupport.h.
6480
6481         * Makefile.in (OBJS-common): Add insn-preds.o.
6482         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
6483         (insn-preds.c, insn-preds.o): New rules.
6484         (s-preds): Also generate insn-preds.c.
6485         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
6486         Update dependencies.
6487         (print-rtl.o, print-rtl1.o): Correct dependencies.
6488
6489         * recog.h: Delete prototypes of predicate functions.
6490
6491         * doc/md.texi (Predicates): New section with complete
6492         documentation of operand/operator predicates.  Remove some
6493         incomplete documentation of predicates from other places.
6494         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
6495         PREDICATE_CODES; indicate that both are deprecated in favor
6496         of define_predicate/define_special_predicate.
6497
6498         * config/ia64/ia64.c: All predicate function definitions moved
6499         to ia64.md, except
6500         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
6501         (ia64_expand_load_address, ia64_expand_move):
6502         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
6503
6504         * config/ia64/ia64.md: All predicates now defined here.
6505         (symbolic_operand): Is now a special predicate.
6506
6507         * config/ia64/ia64.h: Declare ia64_section_threshold.
6508         (PREDICATE_CODES): Delete.
6509
6510 2004-08-12  Richard Henderson  <rth@redhat.com>
6511
6512         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
6513         * c-semantics.c (add_stmt): Set it.
6514         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
6515         before instantiating a variable sized type.
6516
6517 2004-08-12  Richard Henderson  <rth@redhat.com>
6518
6519         * stor-layout.c (round_up, round_down): Move ...
6520         * fold-const.c (round_up, round_down): ... here.  Use
6521         multiple_of_p to avoid any arithmetic at all.
6522
6523 2004-08-12  Richard Henderson  <rth@redhat.com>
6524
6525         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
6526         (gimplify_init_ctor_preeval_1): New.
6527         (gimplify_init_ctor_preeval): New.
6528         (gimplify_init_ctor_eval): New.
6529         (gimplify_init_constructor): Use them.  Always gimplify the LHS
6530         object first.
6531
6532 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
6533
6534         (This patch is part of merge of objc-improvements-branch
6535         into mainline.)
6536
6537         * doc/frontends.texi: Mention Objective-C++ in addition to
6538         Objective-C.
6539         * doc/install.texi: Add 'obj-c++' to list of configurable
6540         languages.
6541         * doc/invoke.texi: Rename Objective-C option headings to
6542         indicate they also apply to Objective-C++.  List file
6543         extensions for Objective-C++ sources.  Mention that
6544         ObjC and ObjC++ compilations may also use C and C++ options,
6545         respectively.  Point users to doc/standards.texi for
6546         further info on ObjC and ObjC++.
6547         * doc/sourcebuild.texi: Mention the objcp/ directory and
6548         the Objective-C++ sources it contains.
6549         * doc/standards.texi: Update link to Apple ObjC site;
6550         add link to gcc readings.html WWW doc.
6551
6552 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
6553
6554         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
6555         and 2004-07-14 changes.
6556
6557 2004-08-12  Paul Brook  <paul@codesourcery.com>
6558
6559         * doc/invoke.texi: Fix typo.
6560
6561 2004-08-11 Devang Patel  <dpatel@apple.com>
6562
6563         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
6564         and -no_dead_strip_inits_and_terms.
6565         (LINK_SPEC): Same.
6566         * doc/invoke.texi (Darwin Options): Document -dead_strip and
6567         -no_dead_strip_inits_and_terms.
6568
6569 2004-08-11  Paul Brook  <paul@codesourcery.com>
6570
6571         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
6572         (arm_load_pic_register): ... to this.
6573         * config/arm/arm.c (arm_finalize_pic): Rename ...
6574         (arm_load_pic_register): ... to this.  Always output insns at the
6575         current location.  Load via low reg in thumb mode.
6576         (arm_expand_prologue): Call arm_load_pic_register.
6577         (thumb_expand_prologue): Ditto.
6578         * config/arm/arm.h (FINALIZE_PIC): Remove.
6579         * config/arm/arm.md (builtin_setjmp_receiver): Call
6580         arm_load_pic_register.
6581
6582 2004-08-11  Paul Brook  <paul@codesourcery.com>
6583
6584         * arm.c (thumb_force_lr_save): Add prototype.
6585         (thumb_compute_save_reg_mask): New function.
6586         (thumb_find_work_register): New function.
6587         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
6588         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
6589         Don't clobber r3 when removing pretend args.
6590         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
6591         (thumb_output_function_prologue): Use new functions.
6592         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
6593         * arm.h (THUMB_REG_PUSHED_P): Remove.
6594
6595 2004-08-11  James E Wilson  <wilson@specifixinc.com>
6596
6597         PR rtl-optimization/16490
6598         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
6599         global_live_at_end for new basic block if already set for other blocks.
6600
6601 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
6602
6603         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
6604
6605         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
6606         (mfcr rlwinm rlwinm patterns): Set length to 12.
6607
6608 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
6609
6610         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
6611         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
6612         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
6613         (start_ssa_stmt_operands): Delete.
6614         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
6615         struct stmt_operands_d.
6616         (build_ssa_operands): New extern entry point.
6617         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
6618         building code, replace with create_ssa_artficial_load_stmt().
6619         * tree-ssa-operands.c (struct voperands_d): Delete.
6620         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
6621         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
6622         (free_uses, free_defs, free_vuses, free_v_may_defs,
6623         free_v_must_defs): Remove dealloc parameter.
6624         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
6625         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
6626         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
6627         vector comparisons, ssa_name reuse, and allocations here.
6628         (verify_start_operands): Delete.
6629         (finalize_ssa_stmt_operands): Set new operands by calling finalize
6630         routines.
6631         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
6632         (append_def, append_usei): Simplify to simple accumulation.
6633         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
6634         duplicates and simple accumulation.
6635         (free_ssa_operands): Free vectors in a stmt_operand structure.
6636         (build_ssa_operands): New. Create a new stmt_operand structure from
6637         a stmt and an old set of stmt_operands.
6638         (get_stmt_operands): Simplify and call build_ssa_operands.
6639         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
6640         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
6641         add_call_read_ops): Don't pass prev_vops around anymore.
6642         (note_addressable): Return if no stmt annotation.
6643         (copy_virtual_operands): Access v_may_def operands through a struct.
6644         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
6645         hash tables without treating the stmt as a real stmt.
6646         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
6647         v_may_def def and use through a struct instead of 2 array elements.
6648         (struct v_may_def_optype_d): Use v_may_def_operand_type.
6649         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
6650
6651 2004-08-11  Nick Clifton  <nickc@redhat.com>
6652
6653         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
6654         this funciton's behaviour.  Return true when the current function
6655         has a section attribute and -mlong-calls is in effect.
6656         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
6657         short-call marker when -mlong-calls is in effect and the function
6658         has a section attribute.
6659
6660 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
6661
6662         * stmt.c (expand_return): If asked to return the RESULT_DECL,
6663         just call expand_value_return on result_rtl.
6664
6665 2004-08-10  Richard Henderson  <rth@redhat.com>
6666
6667         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
6668         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
6669         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
6670         (add_location_or_const_value_attribute): ... not here.  Use
6671         loc_descriptor_from_tree if possible.
6672         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
6673         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
6674         values specially.
6675         (loc_descriptor_from_tree): New.  Update callers.
6676         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
6677         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
6678         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
6679         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
6680         and BUILT_IN_STACK_RESTORE.
6681         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
6682         * stmt.c (expand_stack_alloc): Remove.
6683         * tree-mudflap.c (mx_register_decls): Don't look for
6684         BUILT_IN_STACK_ALLOC.
6685         * tree-nested.c (convert_local_reference): Likewise.
6686         * tree.h (DECL_VALUE_EXPR): New.
6687
6688 2004-08-10  Richard Henderson  <rth@redhat.com>
6689
6690         * stor-layout.c (round_up): Check for 0/1 before dividing.
6691         (round_down): Likewise.
6692
6693         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
6694
6695 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
6696
6697         * config.gcc (arm*-*-eabi*): New target.
6698         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
6699         (TARGET_LIB_INT_CMP_BIASED): Likewise.
6700         * expmed.c (expand_divmod): Try a two-valued divmod function as a
6701         last resort.
6702         * gthr.h: Remove bogus tokens at end of #pragma.
6703         * optabs.c (expand_twoval_binop_libfunc): New function.
6704         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
6705         (prepare_float_lib_cmp): Try reversing the condition.
6706         (debug_optab_libfuncs): New function.
6707         * optabs.h (expand_twoval_binop_libfunc): Declare.
6708         * config/arm/arm.c (arm_init_libfuncs): New function.
6709         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
6710         (TARGET_INIT_LIBFUNCS): Define it.
6711         * config/arm/arm.h (TARGET_BPABI): New macro.
6712         * config/arm/arm-protos.h
6713         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
6714         * config/arm/bpabi.S: New file.
6715         * config/arm/bpabi.c: Likewise.
6716         * config/arm/bpabi.h: Likewise.
6717         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
6718         (__aeabi_drsub): Likewise.
6719         (__aeabi_dsub): Likewise.
6720         (__aeabi_dadd): Likewise.
6721         (__aeabi_ui2d): Likewise.
6722         (__aeabi_i2d): Likewise.
6723         (__aeabi_f2d): Likewise.
6724         (__aeabi_dmul): Likewise.
6725         (__aeabi_ddiv): Likewise.
6726         (__aeabi_cdrcmple): Likewise.
6727         (__aeabi_cdcmpeq): Likewise.
6728         (__aeabi_cdcmple): Likewise.
6729         (__aeabi_dcmpeq): Likewise.
6730         (__aeabi_dcmplt): Likewise.
6731         (__aeabi_dcmple): Likewise.
6732         (__aeabi_dcmpge): Likewise.
6733         (__aeabi_dcmpgt): Likewise.
6734         (__aeabi_dcmpun): Likewise.
6735         (__aeabi_d2iz): Likewise.
6736         (__aeabi_d2uiz): Likewise.
6737         (__aeabi_d2f): Likewise.
6738         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
6739         (__aeabi_frsub): Likewise.
6740         (__aeabi_fsub): Likewise.
6741         (__aeabi_fadd): Likewise.
6742         (__aeabi_ui2f): Likewise.
6743         (__aeabi_i2f): Likewise.
6744         (__aeabi_fmul): Likewise.
6745         (__aeabi_fdiv): Likewise.
6746         (__aeabi_cfrcmple): Likewise.
6747         (__aeabi_cfcmpeq): Likewise.
6748         (__aeabi_cfcmple): Likewise.
6749         (__aeabi_fcmpeq): Likewise.
6750         (__aeabi_fcmplt): Likewise.
6751         (__aeabi_fcmple): Likewise.
6752         (__aeabi_fcmpge): Likewise.
6753         (__aeabi_fcmpgt): Likewise.
6754         (__aeabi_fcmpun): Likewise.
6755         (__aeabi_f2iz): Likewise.
6756         (__aeabi_f2uiz): Likewise.
6757         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
6758         (__aeabi_uidivmod): New function or alias.
6759         (__aeabi_idivmod): Likewise.
6760         (__aeabi_idiv0): Likewise.
6761         (__aeabi_ldiv0): Likewise.
6762         (__aeabi_llsr): Likewise.
6763         (__aeabi_lasr): Likewise.
6764         (__aeabi_llsl): Likewise.
6765         (bpabi.S): Include it.
6766         * config/arm/libgcc-bpabi.ver: New file.
6767         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
6768         (LINK_SPEC): Remove.
6769         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
6770         __aeabi_ulcmp.
6771         * config/arm/t-bpabi: New file.
6772         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
6773         (TARGET_LIB_INT_CMP_BIASED): Likewise.
6774
6775 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
6776
6777         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
6778         * config/rs6000/rs6000.md (clrmemsi): New pattern.
6779         * config/rs6000/rs6000.c (expand_block_clear): New function.
6780         (expand_block_move): Convert alignment to bits.  Use SImode and
6781         HImode for unaligned addresses if not STRICT_ALIGNMENT.
6782
6783 2004-08-10  Caroline Tice  <ctice@apple.com>
6784
6785         * varasm.c (unlikely_section_label): New global variable.
6786         (unlikely_text_section_name): New global variable.
6787         (text_section):  Remove alignment statement.
6788         (unlikely_text_section): Remove alignment statement; use
6789         unlikely_section_label rather than hard-coded string.
6790         (assemble_start_function): Initialize unlikely_section_label and
6791         unlikely_text_section_name;  make sure cold section is properly
6792         aligned at start of function; output unlikely_section_label if
6793         appropriate.
6794
6795 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
6796
6797         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
6798         * config/s390/s390.c (s390_canonicalize_comparison): New function.
6799         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
6800         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
6801         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
6802         ("*tmqi_mem"): Remove SUBREG from pattern.
6803         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
6804         ("*andsi3_cconly"): Likewise.
6805
6806 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
6807
6808         PR target/16909
6809         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
6810
6811 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
6812
6813         * doc/sourcebuild.texi (compat testing): Document available test
6814         framework commands.  Use the preferred spelling of DejaGnu.
6815
6816 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
6817
6818         * lambda.h: Add matrix type, and prototypes for remainder of
6819         matrix and vector functions.
6820         (lambda_vector_mult_const): New function.
6821         (lambda_vector_negate): Ditto.
6822         (lambda_vector_add): Ditto.
6823         (lambda_vector_add_mc): Ditto.
6824         (lambda_vector_copy): Ditto.
6825         (lambda_vector_zerop): Ditto.
6826         (lambda_vector_equal): Ditto.
6827         (lambda_vector_min_nz): Ditto.
6828         (lambda_vector_first_nz): Ditto.
6829         (lambda_vector_matrix_mult): Ditto.
6830         * lambda-mat.c: New file.
6831         * Makefile.in (lambda-mat.o): New.
6832
6833 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
6834
6835         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
6836         after linking stmt into the program.
6837         (bsi_remove): Don't call modify_stmt.
6838         * tree-complex.c (update_complex_assignment,
6839         expand_complex_comparison): Call modify_stmt after changing the stmt.
6840         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
6841         removing the stmt.
6842         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
6843         the stmt, and only if needed.
6844         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
6845         expression.
6846         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
6847         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
6848         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
6849         (eliminate_redundant_computations): Don't pass an annotation. Call
6850         modify_stmt rather than setting the annotation directly.
6851         (record_equivalences_from_stmt): Remove unused local 'j'.
6852         (cprop_operand): Take a stmt rather than an annotation as a parameter.
6853         Call modify_stmt.
6854         (cprop_into_stmt): Pass stmt rather than annotation.
6855         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
6856         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
6857         modify_stmt.
6858         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
6859
6860 2004-08-10  Jason Merrill  <jason@redhat.com>
6861
6862         PR middle-end/16948
6863         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
6864         the RESULT_DECL.
6865
6866 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
6867
6868         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
6869         hash function.
6870
6871 2004-08-10  Roger Sayle  <roger@eyesopen.com>
6872
6873         * config/mips/mips.md: New reciprocal square root patterns that
6874         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
6875
6876 2004-08-10  Paul Brook  <paul@codesourcery.com>
6877
6878         * config/arm/arm-protos.h (arm_set_return_address,
6879         thumb_set_return_address): Add prototypes.
6880         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
6881         * config/arm/arm.c (arm_compute_func_type,
6882         use_return_insn, arm_compute_save_reg0_reg12_mask,
6883         arm_compute_save_reg_mask, arm_output_function_prologue,
6884         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
6885         current_function_calls_eh_return.
6886         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
6887         old eh code.
6888         (arm_set_return_address, thumb_set_return_address): New functions.
6889         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
6890         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
6891         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
6892         (epilogue): Use the stackadj register.
6893         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
6894
6895 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
6896
6897         PR target/3144
6898         * expr.c (move_by_pieces_ninsns): Add max_size argument.
6899         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
6900         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
6901         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
6902         but using MOVE_RATIO.
6903         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
6904         (can_store_by_pieces): Change max_size type to unsigned int.
6905         (store_by_pieces_1): Likewise.  Pass max_size to
6906         move_by_pieces_ninsns.
6907         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
6908         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
6909         to move_by_pieces_ninsns.
6910         (STORE_BY_PIECES_P): Define.
6911         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
6912         to move_by_pieces_ninsns.
6913         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
6914
6915         * config/i386/i386.h (CLEAR_RATIO): Define.
6916
6917 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
6918
6919         * expr.c (expand_expr_real_1): Add back code that was not dead.
6920
6921 2004-08-09  Andrew Pinski  <apinski@apple.com>
6922
6923         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
6924         which is found to be compatible before returning the aliasing set.
6925
6926 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
6927
6928         * ggc-zone.c (struct alloc_zone): Add statistics counters.
6929         (always_collect): New flag.
6930         (ggc_alloc_zone_1): Update statistics support.  Don't include
6931         overhead in allocated counter.
6932         (sweep_pages): Update allocated counter for large pages.  Don'y
6933         include overhead.
6934         (ggc_collect_1): Always collect.
6935         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
6936         whether to collect.
6937         (SCALE, LABEL): New macros.
6938         (ggc_print_statistics): Add statistics support.
6939
6940 2004-08-09  Roger Sayle  <roger@eyesopen.com>
6941
6942         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
6943         (init_expmed): Fix potential overrun problem with "all.reg".
6944         (expand_sdiv2_pow2): Add an alternate implementation for signed
6945         division, if the target provides a suitable conditional move insn.
6946
6947 2004-08-09  Paul Brook  <paul@codesourcery.com>
6948         Richard Henderson  <rth@redhat.com>
6949
6950         * unwind-dw2.c (uw_install_context_1): Update target saved stack
6951         pointer.
6952
6953 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
6954
6955         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
6956         Check DATA limit only if there's no AS limit.  Ignore insanely
6957         low DATA limits.
6958         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
6959         but take care that the AS limit isn't overrun.
6960         * doc/invoke.texi: Update documentation of min-heapsize parameter.
6961
6962 2004-08-09  Jeff Law  <law@redhat.com>
6963
6964         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
6965         (tree-ssa-threadupdate.o): Add dependencies.
6966         * tree-ssa-threadupdate.c: New file.
6967         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
6968         (rewrite_vars_out_of_ssa): Remove prototype.
6969         (cleanup_tree_cfg): Returns a bool.
6970         * tree.h (thread_through_all_blocks): Prototype.
6971         * tree-outof-ssa.c  (SSANORM_*): Move into here.
6972         (remove_ssa_form): Now static.
6973         (rewrite_vars_out_of_ssa): Kill.
6974         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
6975         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
6976         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
6977         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
6978         anything was changed.
6979         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
6980         from the PHI's annotation rather than the edge associated with
6981         the new argument.
6982         * tree-ssa-dom.c (redirection_edges): Kill.
6983         (redirect_edges_and_update_ssa_graph): Kill.
6984         (tree_ssa_dominator_optimize): Do not reset forwardable flag
6985         for blocks anymore.  Do not initialize redirection_edges.
6986         Call thread_through_all_blocks.  Simplify code for cleanup
6987         of the CFG and iterating.  No longer call cleanup_tree_cfg
6988         outside the iteration loop.
6989         (thread_across_edge): No longer mess with forwardable blocks.
6990
6991 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
6992
6993         * explow.c (memory_address): Use memory_address_p.
6994         * recog.c (general_operand): Likewise.
6995         * regrename.c: No need to define REG_OK_STRICT.
6996
6997 2004-08-09  Steven Bosscher  <stevenb@suse.de>
6998
6999         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
7000         New timers.
7001         * gcse.c: Include timevar.h.
7002         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
7003         and global_copy_prop_count.
7004         (local_const_prop_count, local_copy_prop_count): New static globals.
7005         (gcse_main): Set the right timevar for each pass.
7006         (cprop_jump): Increment global_const_prop_count when a constant is
7007         propagated.  Add "GLOBAL" to dump output.
7008         (cprop_insn): Increment global_const_prop_count when a constant is
7009         propagated, or global_copy_prop_count when a copy is propagated.
7010         (do_local_cprop): Likewise for local_const_prop_count and
7011         local_copy_prop_count.
7012         (one_cprop_pass): Initialize const/cprop counters to zero.
7013         Print out results of local and global const/cprop separately.
7014         (bypass_block): Break over-length line.
7015         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
7016         for bb-reorder.o and tracer.o.
7017
7018 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7019
7020         * Makefile.in (GTFILES): Remove stmt.c
7021         (stmt.o): Do not depend on gt-stmt.h.
7022         * emit-rtl.c (emit_line_note): Do not call
7023         set_file_and_line_for_stmt.
7024         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
7025         do everything.
7026         * function.c (free_after_parsing): Do not free STMT field.
7027         (allocate_struct_function): Do not call init_stmt_for_function.
7028         (assign_stack_temp_for_type): Do not accept values of keep
7029         other than 0 or 1.
7030         (init_temp_slots): Do not initialize removed variables.
7031         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
7032         and X_VAR_TEMP_SLOT_LEVEL fields.
7033         * rtl.h (set_file_and_line_for_stmt): Remove.
7034         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
7035         struct stmt_status, cond_stack, case_stack, nesting_stack,
7036         nesting_depth, emit_locus, set_file_and_line_for_stmt,
7037         same_case_target_p, init_stmt_for_function, emit_nop,
7038         expand_start_cond, expand_start_elseif, expand_start_else,
7039         expand_elseif, expand_end_cond): Remove.
7040         (preserve_subexpressions_p): Remove references to CFUN->STMT.
7041         (expand_start_case, expand_end_case_type): Remove, merge into...
7042         (expand_case): ... this one, including other bits from
7043         expand_expr_real_1.  Inline same_case_target_p.  Turn members
7044         of CASE_STACK into local variables.
7045         (emit_case_bit_tests): Inline same_case_target_p.
7046         (add_case_node): Add HEAD argument, return new head of the list,
7047         do not handle default label here.
7048         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
7049         expand_start_elseif, current_nesting_level, expand_start_case,
7050         expand_end_case_type, expand_end_case, add_case_node,
7051         init_stmt_for_function, expand_elseif): Remove prototypes.
7052         (expand_case): Add prototype.
7053
7054 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7055
7056         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
7057
7058 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
7059
7060         * expr.c (var_rtx): Remove.
7061         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
7062         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
7063         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
7064         Abort.
7065         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
7066         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
7067         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
7068
7069 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
7070         Ayal Zaks <zaks@il.ibm.com>
7071
7072         * common.opt (freschedule-modulo-scheduled-loops): New flag.
7073         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
7074         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
7075         when -freschedule-modulo-scheduled-loops flag is not specified.
7076         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
7077         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
7078         More accurate placing of insn in row of partial schedule.
7079         (ps_insn_find_column): New function.
7080         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
7081         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
7082         (schedule_region): Use sched_is_disabled_for_current_region_p.
7083         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
7084
7085 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7086
7087         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
7088         change.
7089
7090 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
7091
7092         * config/i386/i386.c (ix86_expand_clrmem): Properly call
7093         gen_strset for 64bit target.
7094
7095 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
7096
7097         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
7098
7099 2004-08-07  Jason Merrill  <jason@redhat.com>
7100
7101         Make return in memory explicit.
7102         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
7103         (assign_parm_find_data_types): Remove code for old front end
7104         invisible reference handling.
7105         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
7106         (expand_function_end): Likewise.
7107         * gimplify.c (gimplify_return_expr): Handle a dereferenced
7108         RESULT_DECL.
7109         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
7110         (declare_return_variable): Handle DECL_BY_REFERENCE.
7111         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
7112         (cp_genericize_r): Use convert_from_reference.
7113         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
7114         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
7115
7116         * c-common.c (c_warn_unused_result): Check TREE_USED before
7117         warning about a CALL_EXPR with an unused value.
7118
7119 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
7120
7121         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
7122         to the compiler.  Use -fshort-wchar by default.
7123
7124 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
7125
7126         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
7127         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
7128         threshhold.
7129         * doc/invoke.texi (param): Document min-crossjump-insns.
7130
7131 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
7132
7133         PR c/13282
7134         * c.opt (Wmissing-field-initializers): New option.
7135         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
7136         * c-typeck.c (pop_init_level): Guard the missing field warning with
7137         warn_missing_field_initializers rather than extra_warnings.
7138         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
7139         some of the explanation from...
7140         (-Wextra): ...here.  Say that the missing field warning can be
7141         seperately controlled by -Wmissing-field-initializers.
7142
7143 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
7144
7145         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
7146         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
7147         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
7148         * tree.def (ENTRY_VALUE_EXPR): Remove.
7149
7150 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
7151
7152         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
7153         the places where it is actually needed.  Don't use repz; stosb
7154         for -Os with sufficiently small constant sizes.
7155         For sufficiently small repz; stos{l,q} repeat counts use a sequence
7156         of stos{l,q} instructions instead.
7157
7158 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7159
7160         PR tree-optimization/16807
7161         * loop-iv.c (dump_iv_info): Dump invariants correctly.
7162         (iv_subreg, iv_extend): Express value of invariant purely in
7163         base field.
7164
7165 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
7166
7167         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
7168         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
7169
7170 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
7171
7172         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
7173         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
7174         pre_dec_operand.
7175         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
7176         pattern until reload is finished to allow better code generation
7177         and split them completely into separate instrunctions.
7178         (*andsi3_split): New pattern.
7179
7180 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
7181
7182         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
7183         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
7184         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7185         * tree.h (handle_dll_attribute): Declare.  Test
7186         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7187         * c-common.h (c_determine_visibility): Declare.
7188         * c-common.c (c_determine_visibility): New function.
7189         * c-decl.c (finish_decl): Use it.
7190         (finish_function): Likewise.
7191         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
7192         zero, by default.  Use #if, not #ifdef, to test it.
7193         * config/arm/arm.c (arm_attribute_table): Use
7194         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
7195         #if.
7196         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
7197         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7198         to 1.
7199         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
7200         * config/i386/i386.c (ix86_attribute_table): Use
7201         handle_dll_attribute for dllimport/dllexport.  Test
7202         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
7203         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
7204         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7205         it to 1.
7206         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
7207         with #if.
7208         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
7209         it to 1.
7210         * doc/extend.texi (dllexport): Clarify and correct documentation.
7211         (dllimport): Likewise.
7212         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
7213         handle_dll_attribute.
7214
7215 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7216
7217         * tree-ssa-loop-manip.c: New file.
7218         * Makefile.in (tree-ssa-loop-manip.o): Add.
7219         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
7220         Declare.
7221         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
7222         form.
7223         (tree_ssa_loop_done): Verify loop closed ssa form.
7224         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
7225
7226 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7227
7228         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
7229         pa_asm_output_aligned_local): New functions.
7230         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
7231         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
7232         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
7233         pa_asm_output_aligned_common.
7234         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7235         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
7236         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
7237         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7238         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
7239         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
7240         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
7241         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
7242         common data.
7243
7244 2004-08-05  Andrew Pinski  <apinski@apple.com>
7245
7246         * objc/objc-act.c (build_objc_string_object): Mark the address
7247         expression as constant.
7248
7249 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
7250
7251         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
7252         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
7253         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
7254
7255 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7256
7257         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
7258         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
7259         out, and associated obsolete comments.
7260
7261 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
7262
7263         * tree.h (force_fit_type): Return a tree, take three flags.
7264         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
7265         TREE_CONSTANT_OVERFLOW here.
7266         (int_const_binop, const_binop): Adjust.
7267         (size_int_type): Do sign extension here.
7268         (fold_convert_const, optimize_bit_field_compare,
7269         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
7270         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
7271         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
7272
7273 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7274
7275         PR tree-optimization/16864
7276         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
7277         for ssa names without default_def.
7278
7279 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
7280
7281         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
7282         frame pointer, restore eax with an ebp-relative address.
7283
7284 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
7285
7286         PR 14516
7287         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
7288         * c-common.h (make_rtl_for_local_static): Delete.
7289         * c-decl.c (shadow_tag_warned): Clean up comment.
7290         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
7291         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
7292         * c-semantics.c (make_rtl_for_local_static): Delete.
7293         * expr.c (init_block_move_fn): Use set_user_assembler_name.
7294         (init_block_clear_fn): Likewise.
7295         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
7296         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
7297         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
7298         * tree.h (make_decl_rtl): Remove second parameter.
7299         (set_user_assembler_name): New.
7300         * varasm.c (set_user_assembler_name): New.
7301         (make_decl_rtl): Remove second parameter.  Update callers in many
7302         files.
7303
7304 2004-08-05  Adam Nemet  <anemet@lnxw.com>
7305
7306         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
7307         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
7308         to LynxOS 4.0.
7309         * gthr-lynx.h: New file.
7310         * config/lynx-ng.h: Remove file.
7311         * config/lynx.h: Update to LynxOS 4.0.
7312         * config/t-lynx: New file.
7313         * config/i386/lynx-ng.h: Remove file.
7314         * config/i386/lynx.h: Update to LynxOS 4.0.
7315         * config/rs6000/lynxbase.h: Remove file.
7316         * config/rs6000/lynx.h: Update to LynxOS 4.0.
7317         * config/rs6000/t-lynx: New file.
7318         * doc/install.texi (Options specification): Remove reference to
7319         LynxOS from systems where --with-gnu-as makes a difference.
7320
7321 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7322
7323         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
7324         __UINTMAX_TYPE__.
7325         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
7326         __INTMAX_MAX__.
7327         (c_cpp_builtins): Call it.
7328         * doc/cpp.texi: Update.
7329
7330 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
7331
7332         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
7333         cost.
7334
7335 2004-08-04  Jan Hubicka  <jh@suse.cz>
7336
7337         * basic-block.h (profile_staus): New global variable.
7338         * cfg.c (profile_status): Declare.
7339         (check_bb_profile): Break out from ....; use profile_status
7340         (dump_flow_info): ... here.
7341         * cfgbuild.c (find_basic_blocks): Set profile_status.
7342         * cfgexpand.c (tree_expand_cfg): Likewise.
7343         * predict.c (estimate_probability): Likewise.
7344         * profile.c (branch_prob): Likewise.
7345         * tree-cfg.c (build_tree_cfg): Likewise.
7346         (dump_function_to_file): Use check_bb_profile.
7347         * tree-pretty-print (dump_bb_header): Likewise.
7348         * tree-profile.c (do_tree_profiling): Cleanup.
7349
7350 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
7351
7352         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
7353         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
7354         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
7355         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
7356         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
7357         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
7358         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
7359         (ggc-none.o, errors.o): Move rule to generators section;
7360         correct dependencies.
7361         (min-insn-modes.o): Move rule to generators section; remove
7362         unnecessary explicit command; correct dependencies.
7363         (print-rtl.o, print-rtl1.o): Correct dependencies.
7364         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
7365         (mostlyclean): Update.
7366
7367         * errors.c: Include bconfig.h not config.h.  Correct comment.
7368         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
7369         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
7370         * print-rtl.c: Don't include tm_p.h.
7371
7372         * rtl.h: Move forward-decl of struct function down where it's
7373         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
7374         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
7375
7376 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7377             Jeff Law  <law@redhat.com>
7378
7379         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
7380         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
7381         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
7382         manipulate the duplicated ssa names.
7383         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
7384         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
7385         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
7386         New functions.
7387         (release_ssa_name): Do not release ssa names that may have multiple
7388         definitions.
7389         * tree.h (release_ssa_name_force, mark_for_rewrite,
7390         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
7391         marked_ssa_names): Declare.
7392         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
7393         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
7394         Update call to rewrite_ssa_into_ssa.
7395
7396 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
7397
7398         * defaults.h (TARGET_DECLSPEC): New macro.
7399         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
7400         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
7401         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
7402         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
7403         __declspec support.
7404         (TARGET_DECLSPEC): Define.
7405         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
7406         __declspec support.
7407         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
7408         __declspec support.
7409         (TARGET_DECLSPEC): Define.
7410         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
7411         __declspec support.
7412         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
7413         support.
7414         * doc/tm.texi (TARGET_DECLSPEC): Document.
7415
7416         * doc/extend.texi: Fix typo in comment.
7417
7418 2004-08-04  Paul Brook  <paul@codesourcery.com>
7419
7420         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7421         (TARGET_CXX): Use it.
7422         * target.h (struct gcc_target): Add cdtor_returns_this.
7423         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
7424         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
7425         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
7426
7427 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
7428
7429         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
7430         low/high pair. Do range checking directly.
7431         (interpret_integer): Adjust.
7432
7433 2004-08-04  Nick Clifton  <nickc@redhat.com>
7434
7435         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
7436         GCC ABI.
7437         * doc/invoke.texi: Document this new switch and also the -mrenesas
7438         switch.
7439
7440 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
7441
7442         * cfglayout.c (insn_locators_initialize): Update the current
7443         location before initializing a location.
7444
7445 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7446
7447         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
7448         (dbxout_function_end): Return after emitting the "Lscope" symbol
7449         under the same conditions that this function formerly wasn't called.
7450         Add explanatory comments.
7451
7452         PR 14860
7453         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
7454         on the new decl.
7455
7456         PR 13956
7457         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
7458         functions, broken out of dbxout_block.
7459         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
7460         stabs too, if it contains symbols.  Use the begin_label and
7461         the Lscope label (emitted by dbxout_function_end) for the
7462         range of this block.
7463
7464 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
7465
7466         * doc/install.texi: Update autoconf version requirements.
7467
7468 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7469
7470         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
7471         * recog.c (general_operand, immediate_operand, nonmemory_operand)
7472         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
7473         * regclass.c (record_reg_classes): Likewise.
7474         * reload.c (find_reloads): Likewise.
7475         * reload1.c (reload): Likewise.
7476
7477 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
7478
7479         * gensupport.c (init_md_reader_args_cb): Renamed from
7480         init_md_reader_args.  Add third option, callback function for
7481         parsing program-specific options.  Add diagnosis of incorrect
7482         number of input files.
7483         (init_md_reader): Fold into init_md_reader_args_cb.
7484         (init_md_reader_args): Now a thin wrapper around
7485         init_md_reader_args_cb.
7486         * gensupport.h: Update prototypes.
7487
7488         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
7489         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
7490         * genrecog.c: No need to diagnose lack of an input file;
7491         init_md_reader_args will handle it.
7492         * genconditions.c: Likewise, and use init_md_reader_args.
7493         * genconstants.c: Likewise, and no need to call read_md_rtx.
7494
7495 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
7496
7497         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
7498         declarations.
7499
7500 2004-08-03  Mike Stump  <mrs@apple.com>
7501
7502         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
7503         for frameworks.
7504         * doc/invoke.texi (Darwin Options): Update to reflect above.
7505
7506 2004-08-03  Roger Sayle  <roger@eyesopen.com>
7507
7508         PR middle-end/16790
7509         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
7510         truncations, not just global truncations.
7511
7512 2004-08-03  Andrew Pinski  <apinski@apple.com>
7513
7514         PR bootstrap/16865
7515         * loop-iv.c (simplify_using_assignment): Initialize lhs.
7516
7517 2004-08-03  Paul Brook  <paul@codesourcery.com>
7518
7519         * gcc/doc/install.texi: Document MPFR requirement.
7520
7521 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
7522
7523         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
7524         and mmap() explicitly instead of relying on preset autoconf cache
7525         variables.
7526         * configure: Regenerate.
7527
7528 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
7529
7530         PR target/16570
7531         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
7532         to tmake_file.
7533         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
7534         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
7535         to tmake_file.
7536
7537         * config/i386/t-gmm_malloc: New file.
7538         * config/i386/t-pmm_malloc: Likewise.
7539
7540         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
7541
7542 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
7543             Tanguy Fautrà <tfautre@pandora.be>
7544
7545         * config/i386/pmm_malloc.h: New file.
7546
7547 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
7548
7549         * config/i386/gmm_malloc.h: New file.
7550
7551 2004-08-03  Dale Johannesen  <dalej@apple.com>
7552
7553         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
7554         * c-common.c: Include opts.h.
7555         (c_common_get_alias_set): Fix check for a single input file.
7556         * toplev.c: Remove current_file_decl.
7557         * tree.h: Ditto.
7558
7559 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
7560
7561         * config.gcc (arm*-*-symbianelf*): New target.
7562         * config/arm/symbian.h: New file.
7563
7564         * gthr-gnat.c: Add visibility #pragmas.
7565         * gthr-gnat.h : Likewise.
7566         * gthr.h: Likewise.
7567         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
7568         (__ffsDI2): Likewise.
7569         (__clzSI2): Likewise.
7570         (__ctzSI2): Likewise.
7571         (__ctzDI2): Likewise.
7572         (__popcountSI2): Likewise.
7573         (__popcountDI2): Likewise.
7574         (__paritySI2): Likewise.
7575         (__parityDI2): Likewise.
7576         * libgcc2.h: Add visibility #pragmas.
7577         (__clzDI2): Add prototype.
7578         (__clzSI2): Likewise.
7579         (__ctzSI2): Likewise.
7580         (__ffsDI2): Likewise.
7581         (__ffsSI2): Likewise.
7582         (__ctzDI2): Likewise.
7583         (__popcountSI2): Likewise.
7584         (__popcountDI2): Likewise.
7585         (__paritySI2): Likewise.
7586         (__parityDI2): Likewise.
7587         * unwind-dw2-fde.h: Add visibility #pragmas.
7588         * unwind.h: Likewise.
7589
7590 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
7591             Dale Johannesen  <dalej@apple.com>
7592             Roger Sayle  <roger@eyesopen.com>
7593
7594         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
7595         constants more accurately.  Adjust costs for FMA instructions.
7596         Add cases for most logical and float operations.  Recurse into
7597         most operands.
7598
7599 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
7600
7601         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
7602
7603 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
7604
7605         * ra-build.c (conflicts_between_webs): For webs that cross a call add
7606         conflicts to regs_invalidated_by_call.
7607
7608 2004-08-03  Paul Brook  <paul@codesourcery.com>
7609
7610         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
7611
7612 2004-08-03  Jan Hubicka  <jh@suse.cz>
7613
7614         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
7615         ARRAY_REF argument.
7616
7617 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
7618
7619         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
7620         arm968es, arm10e, arm1020e, arm1022e.
7621         * invoke.texi: Update list of ARM cores.
7622         * arm-tune.md: Regenerate.
7623
7624 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
7625
7626         * arm/gentune.sh: New file.
7627         * arm/t-arm: New file.
7628         * arm/arm-tune.md: New file (autogenerated).
7629         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
7630         * arm.md (attribute tune): Delete.  Include arm-tune.md.
7631
7632 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
7633
7634         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
7635         penultimate parameter.  All callers adjusted.
7636         (struct prefix_list): Remove used_flag_ptr.
7637         (find_a_file): Do not set *pl->used_flag_ptr.
7638         (warn_B, warn_std_ptr): Remove.
7639
7640 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
7641             Mostafa Hagog <mustafa@il.ibm.com>
7642
7643         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
7644
7645 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
7646
7647         * dwarf2out.c (output_call_frame_info): Don't change data format
7648         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
7649         label.  Use 'true' not '1'.
7650         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
7651         required.
7652
7653 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7654
7655         * gdbinit.in: Reflect previous changes to rtunion_def.
7656
7657 2004-08-02  Roger Sayle  <roger@eyesopen.com>
7658
7659         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
7660         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
7661
7662 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7663
7664         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
7665         vec_p_reserve.
7666         * langhooks.h (lang_hooks::builtin_function): Rename parameter
7667         from "class" to "bt_class".
7668
7669 2004-08-02  Paul Brook  <paul@codesourcery.com>
7670
7671         PR rtl-optimization/15068
7672         * flow.c (init_propagate_block_info): Check condition is reversible.
7673
7674 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7675
7676         * gengtype.h (options::info): Change type to const char *.
7677         (enum gc_used_enum): Move out of struct type scope.
7678         * gengtype.c (create_option): Convert initializer for option::info to
7679         appropiate type.
7680         (adjust_field_type, walk_type, write_func_for_structure,
7681         write_root, write_roots): Remove pointless cast.
7682
7683 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
7684
7685         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
7686
7687 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7688
7689         * rtl.h (union rtunion_def): Have all members  start with the
7690         prefix "rt_".
7691         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
7692         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
7693         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
7694         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
7695         access.
7696         * gengtype.c (adjust_field_rtx_def): Likewise.
7697         * rtlanal.c (loc_mentioned_in_p): Likewise.
7698
7699 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
7700
7701         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
7702         Replace uses of mips/elf64.h with mips/elf.h
7703         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
7704         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
7705         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
7706         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
7707         (HANDLE_SYSV_PRAGMA): Delete.
7708         (ASM_OUTPUT_DEF): Fix formatting.
7709         * config/mips/elf64.h: Delete.
7710
7711 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
7712
7713         * config/ia64/ia64.c (got_symbolic_operand): Do require a
7714         symbol+offset operand to have its offset be zero mod 0x3fff
7715         when GOT entries are in use.  Clarify logic in SYMBOL_REF
7716         case.  Clarify comments.
7717         (ia64_expand_load_address): Split a symbol+offset load when
7718         the offset is nonzero mod 0x3fff, not 0x1fff.
7719
7720 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
7721
7722         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
7723         if trying to *store* to a non-offsettable address.
7724         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
7725         a nonoffsettable address.
7726         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
7727         Clean up.
7728         (movti_string): Don't move GPRs to a nonoffsettable address.
7729         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
7730
7731 2004-08-02  Ben Elliston  <bje@au.ibm.com>
7732
7733         PR target/16155
7734         * config/rs6000/altivec.h: Replace typeof with __typeof__.
7735
7736 2004-08-01  Richard Henderson  <rth@redhat.com>
7737
7738         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
7739         variable sized types.
7740
7741 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7742
7743         * doc/invoke.texi: In the MIPS options section, remove the passage
7744         saying that -mexplicit-relocs is usually disabled for -mabicalls
7745         -fno-unit-at-a-time.
7746         * config/mips/mips.c (override_options): Remove the code that enforced
7747         this rule.
7748
7749 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7750
7751         * config/mips/mips.md (cprestore): Provide two alternatives, one for
7752         an in-range offset and one for an out-of-range offset.  Wrap the latter
7753         in .set macro/.set nomacro if it's inside a .set nomacro block.
7754
7755 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
7756
7757         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
7758         (mips_restore_gp): Declare.
7759         * config/mips/mips.c (mips_add_offset): Add a scratch register
7760         argument.  Reimplement in rtl only, reusing MIPS16 logic from
7761         mips_output_mi_thunk.
7762         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
7763         to mips_add_offset.
7764         (mips_gp_save_slot): Delete.
7765         (mips_restore_gp): New function.
7766         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
7767         * config/mips/mips.md (exception_receiver): Turn into a
7768         define_insn_and_split.  Use mips_restore_gp to do the split.
7769         (call_internal, call_value_internal, call_value_multiple_internal): Use
7770         mips_restore_gp to restore $gp.
7771
7772 2004-07-31  Andrew Pinski  <apinski@apple.com>
7773
7774         PR other/16842
7775         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
7776
7777 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
7778
7779         * c-decl.c (diagnose_mismatched_decls): Give error for external
7780         redeclaration of identifier declared with no linkage, not just
7781         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
7782         error for redeclaration with no linkage.
7783
7784 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
7785             Fariborz Jahanian <fjahanian@apple.com>
7786
7787         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
7788         non-offsettable addresses even for DImode.
7789         (rs6000_split_multireg_move): Cope with non-offsettable addresses
7790         being moved into multiple GPRs.
7791
7792         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
7793         to 64.
7794         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
7795         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
7796         to 128.
7797         * config/rs6000/darwin-ldouble.c (isless): New macro.
7798         (inf): New macro.
7799         (nonfinite): New macro.
7800         (FPKINF): Delete.
7801         (_xlqadd): Completely rewrite.
7802         (_xlqmul): Correct overflow handling.
7803         (_xlqdiv): Correct overflow handling.
7804         * config/rs6000/darwin-ldouble-format: New file.
7805
7806 2004-07-30  Roger Sayle  <roger@eyesopen.com>
7807             Richard Henderson  <rth@redhat.com>
7808
7809         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
7810         9 into the equivalent lea instruction.
7811
7812 2004-07-30  Richard Henderson  <rth@redhat.com>
7813
7814         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
7815         with DECL_INITIAL if fb_lvalue.
7816         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
7817         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
7818         with <Cxxx>.
7819         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
7820
7821 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
7822
7823         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
7824         pointer escapes through a function call, assume that the
7825         callee will dereference it.
7826         (add_pointed_to_var): Assume that VALUE is always an
7827         ADDR_EXPR.
7828         (collect_points_to_info_r): Only call add_pointed_to_var if
7829         the value is an ADDR_EXPR.
7830
7831 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
7832
7833         * tree-ssa-alias.c (create_alias_map_for): Do not get the
7834         alias set of the inner type of ARRAY_TYPEs.
7835
7836 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7837
7838         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
7839         setting a non-register to UNDEFINED right before the call to
7840         set_lattice_value.
7841
7842 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7843
7844         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
7845
7846 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7847
7848         * tree-ssa.c (verify_flow_sensitive_alias_info): When
7849         comparing points-to sets of different pointers, make sure the
7850         second pointer is actually referenced in the code.
7851
7852 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
7853
7854         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
7855         (got_symbolic_operand): Remove unreachable code.
7856         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
7857         setjmp_operand; add entry for tls_symbolic_operand.
7858         * config/ia64/ia64-protos.h: Remove all prototypes of
7859         predicate functions.
7860
7861 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
7862
7863         * c-common.h (lang_post_pch_load): New variable.
7864         * c-pch.c (lang_post_pch_load): Define it.
7865         (c_common_read_pch): Use it.
7866         * cgraphunit.c (record_call_1): Give the front end a chance to
7867         record additional needed entities when a variable is marked as
7868         needed.
7869         * tlink.c (recompile_files): Robustify.
7870         (scan_linker_output): If a symbol is assigned to a file,
7871         but after recompilation is not present there, issue an error
7872         message.
7873
7874 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7875
7876         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
7877         Take orig_loop argument and pass it to set_level.
7878         (schedule_sm): Pass the correct orig_loop to force_move_till.
7879
7880 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7881
7882         * cfgloop.c (update_latch_info): Update dominator of the new block.
7883         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
7884         info.
7885         * dominance.c (verify_dominators): Check that the dominance tree is
7886         connected.
7887         (recount_dominator): Ignore unreachable blocks.
7888         (iterate_fix_dominators): Cleanup old dominance information before
7889         recomputing it.
7890
7891 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
7892
7893         * tree-ssa-operands.c (get_expr_operands): Revert changes
7894         to ADDR_EXPR processing introduced by:
7895             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7896             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
7897
7898 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
7899
7900         * doc/implement-c.texi: Add C90 subclause references.  Point to
7901         preprocessor documentation instead of duplicating it.  Add points
7902         only present in C90.  Fill in documentation for all points.
7903
7904 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7905
7906         * pa.c (output_movb): Correct typo.
7907
7908 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
7909
7910         * ra.h (single_reg_in_regclass): Declare.
7911         * ra.c (single_reg_in_regclass): Define.
7912         (first_hard_reg): New.
7913         (init_ra): Initialize single_reg_in_regclass.
7914         * ra-colorize.c (ok_class): New.
7915         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
7916
7917 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
7918
7919         * gcov-io.h: Allow zero tag as EOF indicator.
7920         (gcov_is_eof): Remove.
7921         (gcov_truncate): Remove.
7922         * gcov-io.c (gcov_seek): Always SEEK_SET.
7923         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
7924         EOF tag.
7925         * coverage.c (read_counts_file): Don't use gcov_is_eof.
7926         * gcov-dump.c (dump_file): Likewise.
7927         * gcov.c (read_graph_file, read_count_file): Likewise.
7928
7929         * c-decl.c (complete_array_type): Don't gratuitously copy
7930         maxindex.  Check it always has a type.
7931
7932 2004-07-29  Steven Bosscher  <stevenb@suse.de>
7933
7934         * rtl.c (currently_expanding_to_rtl): New.
7935         * rtl.h (currently_expanding_to_rtl): Export it.
7936         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
7937
7938         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
7939         inliner hack.
7940         * config/sh/sh.c: Replace rtx_equal_function_value_matters
7941         with currently_expanding_to_rtl.
7942         * config/sh/sh.md: Likewise.
7943         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
7944
7945 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
7946
7947         Introduce sh2a support.
7948         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
7949         * config.gcc: Build multilibs for sh2a and sh2a-single by
7950         default.
7951         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
7952         default.  Split their tests out of the corresponding SH4
7953         multilibs.
7954         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
7955         multilibs for SH2a.
7956         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
7957         * config.gcc: Handle sh2a multilibs and cpu selection.
7958         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
7959         * config/sh/t-mlib-sh2a: New.
7960         * config/sh/t-mlib-sh2a-nofpu: New.
7961         * config/sh/t-mlib-sh2a-single: New.
7962         * config/sh/t-mlib-sh2a-single-only: New.
7963         2004-07-09  Nick Clifton  <nickc@redhat.com>
7964         Issue 43400
7965         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
7966         -ml and -m2a are used together.
7967         2004-03-23  DJ Delorie  <dj@redhat.com>
7968         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
7969         when we have a double-sized FPU.
7970         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
7971         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
7972         is set.
7973         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
7974         -msh2a-single and -msh2a-single-only
7975         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
7976         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
7977         is set.
7978         2004-02-20  DJ Delorie  <dj@delorie.com>
7979         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
7980         2004-02-20  Fred Fish <fnf@redhat.com>,
7981         Corinna Vinschen <vinschen@redhat.com>
7982         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
7983         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
7984         2004-02-18  DJ Delorie  <dj@redhat.com>
7985         * config/sh/sh.c (broken_move): Add support for movi20.
7986         * config/sh/sh.h: Likewise.
7987         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
7988         * config/sh/sh.md (udivsi3_sh2a): New.
7989         (udivsi3): Call it.
7990         (divsi3_sh2a): New.
7991         (divsi3): Call it.
7992         (mul_r): New.
7993         (ashlsi3_sh2a): New.
7994         (ashrsi3_sh2a): New.
7995         (lshrsi3_sh2a): New.
7996         (movsi_i): Disable for sh2a.
7997         (movsi_ie): Add movi20.
7998         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
7999         sh2a, for -m2a-nofpu mode.
8000         2004-02-13  DJ Delorie  <dj@redhat.com>
8001         * config/sh/lib1funcs.asm: Handle double vs single better.
8002         * config/sh/sh.h: Likewise.
8003         2004-02-09  DJ Delorie  <dj@redhat.com>
8004         * config/sh/crt1.asm: Add support for sh2a.
8005         * config/sh/elf.h: Likewise.
8006         * config/sh/lib1funcs.asm: Likewise.
8007         * config/sh/sh.c: Likewise.
8008         * config/sh/sh.md: Likewise.
8009         * config/sh/sh.h: Likewise.
8010         * config/sh/t-sh: Likewise.
8011
8012 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8013
8014         * config/frv/frv.md (movqi_internal, movhi_internal,
8015         movsi_internal): Add backup alternatives for memory inputs.
8016
8017 2004-07-28  Matt Austern  <austern@apple.com>
8018
8019         * config/darwin.c (darwin_one_byte_bool): New global variable.
8020         * config/darwin.h (darwin_one_byte_bool): Declare.
8021         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
8022         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
8023         value of darwin_one_byte_bool.
8024         * doc/invoke.texi: Document -mone-byte-bool flag.
8025
8026 2004-07-28  Eric Christopher  <echristo@redhat.com>
8027
8028         * c-common.c (c_common_unsafe_for_reeval): Delete.
8029         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
8030         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
8031         * calls.c (fix_unsafe_tree): Delete.
8032         (expand_call): Delete code which used above.
8033         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
8034         * expr.c (expand_expr_real_1): Ditto.
8035         * fold-const.c (non_lvalue): Ditto.
8036         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8037         (lhd_unsafe_for_reeval): Ditto.
8038         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
8039         * langhooks.h (unsafe_for_reeval): Ditto.
8040         (unsave_expr_now): Adjust comment.
8041         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
8042         (estimate_num_insns_1): Ditto.
8043         * tree-pretty-print.c (dump_generic_node): Ditto.
8044         * tree.c (expr_align): Ditto.
8045         (unsave_expr): Delete.
8046         (unsafe_for_reeval): Ditto.
8047         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
8048         * tree.def (UNSAVE_EXPR): Delete.
8049         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
8050
8051 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
8052
8053         * tree.h (enum tls_model): Move ...
8054         * coretypes.h: ... here.
8055
8056 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
8057
8058         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
8059
8060 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8061
8062         * cse.c (validate_canon_reg): New function, split out from...
8063         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
8064
8065 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8066
8067         * tree-ssa-alias.c (maybe_create_global_var): Don't just
8068         return if .GLOBAL_VAR has been created.
8069
8070 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8071
8072         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
8073         every variable that may have aliases, not just tags.
8074
8075 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
8076
8077         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
8078         move_from_CR_eq_bit.
8079         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
8080
8081
8082         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
8083         e500_flip_eq_bit.
8084
8085         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
8086         output_e500_flip_eq_bit.
8087
8088         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
8089         output_e500_flip_eq_bit.
8090         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
8091         output_e500_flip_eq_bit.
8092         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
8093         (print_operand): case D.  Get to EQ bit.
8094
8095 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
8096
8097         * gcov.c (function_summary): Add missing \n.
8098
8099 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
8100
8101         Introduce sh4a support.
8102         * config.gcc: Handle sh4a multilibs and cpu selection.
8103         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
8104         * config/sh/t-mlib-sh4a: New.
8105         * config/sh/t-mlib-sh4al: New.
8106         * config/sh/t-mlib-sh4a-nofpu: New.
8107         * config/sh/t-mlib-sh4a-single: New.
8108         * config/sh/t-mlib-sh4a-single-only: New.
8109         2004-02-20  DJ Delorie  <dj@redhat.com>
8110         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
8111         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
8112         2003-08-22  Eric Christopher  <echristo@redhat.com>
8113         * config/sh/sh4a.md: Update for chip errata.
8114         2003-08-07  Eric Christopher  <echristo@redhat.com>
8115         * config/sh/sh4a.md: New file. sh4a processor description.
8116         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
8117         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
8118         of -m4a-nofpu.
8119         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
8120         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
8121         * doc/invoke.texi (SH Options): Document -m4al.
8122         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
8123         * config/sh/sh.c (expand_block_move): Remove commented-out code
8124         checked in by mistake.
8125         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
8126         single elements from SFmode vectors.
8127         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
8128         register.
8129         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
8130         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
8131         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
8132         sh_fsca_int2sf): Remove variable declarations.
8133         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
8134         sh_fsca_int2sf): New functions.
8135         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
8136         sh_fsca_int2sf_rtx): New static variables.
8137         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
8138         sh_fsca_int2sf): Declare.
8139         * config/sh/sh.md: Adjust.
8140         * doc/invoke.texi (SH Options): Document new options.
8141         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
8142         compatibility from SH4 code.
8143         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
8144         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
8145         early.
8146         (memory_movsrc_operand): Renamed to...
8147         (unaligned_load_operand): ... this.  Simplified.
8148         * config/sh/sh.h (PREDICATE_CODES): Adjust.
8149         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
8150         input operand to SImode, and adjust the others.  Introduce
8151         post-increment by peephole.
8152         * config/sh/sh.c (expand_block_move): Give the target address the
8153         same mode as the temp reg.
8154         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
8155         copying.
8156         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
8157         Introduce support for SH4a.
8158         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
8159         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
8160         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
8161         sh_fsca_int2sf): New.
8162         (sh_init_builtins): Initialize them.
8163         (print_operand): Support `d'.
8164         (expand_block_move): Use movua if src is misaligned.
8165         (memory_movsrc_operand): New.
8166         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
8167         and one of the SH4 macros.
8168         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
8169         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
8170         SELECT_SH4A_SINGLE): New.
8171         (TARGET_NONE): Add SH4A_BIT.
8172         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
8173         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
8174         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
8175         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
8176         (enum processor_type): Added PROCESSOR_SH4A.
8177         (PREDICATE_CODES): Add memory_movsrc_operand.
8178         * config/sh/sh.md: Removed unused variables.
8179         (attr cpu): Add sh4a.
8180         (attr type): Add movua, fsrra and fsca.
8181         (prefetch): New, for SH4.
8182         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
8183         (toggle_sz): Set type to fp.
8184         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
8185         (movua, extv, extzv): New.
8186         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
8187         and 4a-single-only.
8188
8189 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8190
8191         * tree-optimize.c (init_tree_optimization_passes): Schedule
8192         pass_may_alias right after the program is renamed into SSA.
8193         * tree-pass.h (PROP_alias): Define.
8194         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
8195         * tree-sra.c (pass_sra): Likewise.
8196         * tree-ssa-ccp.c (pass_ccp): Likewise.
8197         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
8198         * tree-ssa-dce.c (pass_dce): Likewise.
8199         * tree-ssa-dom.c (pass_dominator): Likewise.
8200         * tree-ssa-dse.c (pass_dse): Likewise.
8201         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
8202         * tree-ssa-loop-ch.c (pass_ch): Likewise.
8203         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
8204         * tree-ssa-pre.c (pass_pre): Likewise.
8205         * tree-tailcall.c (pass_tail_recursion): Likewise.
8206         * tree-ssa.c (pass_redundant_phi): Likewise.
8207         * tree-ssa-alias.c (aliases_computed_p): Remove.
8208         Update all users.
8209         (init_alias_info): Do not mark all type tags for renaming
8210         unconditionally.
8211         Clear may_aliases from every symbol.
8212         (setup_pointers_and_addressables): If a pointer has not been
8213         dereferenced and it had a type tag, clear it and mark the old
8214         tag for renaming.
8215
8216 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
8217
8218         PR tree-optimization/16705
8219         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
8220         .GLOBAL_VAR.
8221
8222 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8223
8224         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
8225         check.
8226
8227         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
8228         don't make another one.
8229
8230         PR optimization/15077
8231         * function.h (struct function): Add field saved_static_chain_decl.
8232         Fix comment for static_chain_decl.
8233         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
8234         * tree-inline.h (save_body): Add new arg.
8235         * tree-optimize.c (tree_rest_of_compilation): Handle saving
8236         static_chain_decl.
8237
8238 2004-07-27  Richard Henderson  <rth@redhat.com>
8239
8240         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
8241         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
8242         is_gimple_addressable.
8243         * tree-gimple.c (is_gimple_addressable): Rename from
8244         is_gimple_addr_expr_arg; accept INDIRECT_REF.
8245         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
8246         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
8247         rename to is_gimple_addressable.
8248
8249 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
8250
8251         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
8252
8253 2004-07-27  Richard Henderson  <rth@redhat.com>
8254
8255         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
8256         before rounding.
8257
8258 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
8259
8260         * libgcc2.c: Change all conditionals testing
8261         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
8262         * libgcc2.h: Likewise.
8263         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
8264         TYPE_PRECISION of float80_type to 80.
8265         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
8266         of fpreg_type and float80_type to 80.
8267         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
8268         * config/m68k/netbsd-elf.h:
8269         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
8270         to evaluate to 80 whenever they would formerly have evaluated to 96.
8271         * config/i386/sco5.h: Remove unnecessary redefinition of
8272         LONG_DOUBLE_TYPE_SIZE.
8273         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
8274         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
8275         XFmode, with a bitsize of 80.  Update commentary.
8276         * config/ia64/ia64-modes.def: Likewise.
8277         * config/m68k/m68k-modes.def: Likewise.
8278
8279 2004-07-27  Steven Bosscher  <stevenb@suse.de>
8280
8281         * cfgexpand.c (tree_expand_cfg): Fix comment.
8282
8283         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
8284         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
8285         Remove.
8286         (prepare_function_start): Don't set rtx_equal_function_value_matters.
8287         * integrate.c (copy_rtx_and_substitute): Don't test for it.
8288         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
8289         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
8290         here again.  Update leading comment.
8291         * rtl.c (rtx_equal_function_value_matters): Remove.
8292         (rtx_equal_p): Don't test for it.
8293         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
8294         Likewise.
8295
8296         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
8297         * rtl.c (note_insn_name): Likewise.
8298         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
8299         * final.c (final_scan_insn): Likewise.
8300
8301         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
8302         * passes.c (rest_of_handle_eh): Do it here.
8303
8304         * stmt.c (struct nesting): Remove struct nesting block member.
8305         (struct stmt_status): Remove x_block_start_count field.
8306         (current_block_start_count): Remove.
8307
8308 2004-07-27  Brian Booth  <bbooth@redhat.com>
8309
8310         * tree-optimize.c (register_one_dump_file): Update condition that uses
8311         static_pass_number.
8312         (dup_pass_1): Replace with...
8313         (next_pass_1): This.
8314         (NEXT_PASS): Call next_pass_1.
8315         (DUP_PASS): Remove.
8316         (init_tree_optimization_passes): Remove uses of DUP_PASS.
8317         (execute_one_pass): Update condition that uses
8318         static_pass_number.
8319         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
8320         integer.
8321
8322 2004-07-27  Nick Clifton  <nickc@redhat.com>
8323
8324         * config/m32r/m32r.c: Include integrate.h in order to get the
8325         prototype for get_hard_reg_initial_val().
8326
8327         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
8328         and tidy up indentation.
8329         (final_presence_set): Use absence_set instead, so that if there is
8330         nothing in the "o" pipe the "s" pipe can be scheduled.
8331
8332 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
8333
8334         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
8335         don't have PT_VARS nor PT_MALLOC set.
8336         Clear name tag from pointers that have not been dereferenced.
8337         (set_pt_anything, set_pt_malloc): Forward declare.
8338         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
8339         not type compatibility when determining if a pointer can be
8340         copy propagated.
8341
8342 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
8343
8344         * expr.h (canonicalize_condition, get_condition): Add an int argument.
8345         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
8346         it to check whether the condition is still valid at the jump insn.
8347         * ifcvt.c (noce_get_condition): Likewise.
8348         (noce_get_alt_condition): Update call to canonicalize_condition.
8349         * loop-iv.c (simplify_using_initial_values): Update call to
8350         get_condition.  Remove FIXME.
8351         (check_simple_exit): Update call to get_condition.
8352         * loop-unswitch.c (may_unswitch_on): Likewise.
8353         * loop.c (check_dbra_loop): Likewise.
8354         (canonicalize_condition, get_condition): Add an argument to say whether
8355         the condition must still be valid at INSN.
8356         (get_condition_for_loop): Update call to get_condition.  Require that
8357         the condition be valid at INSN.
8358         * predict.c (estimate_probability): Update call to get_condition.
8359         Remove unused earliest parameter.
8360         (expected_value_to_br_prob): Update call to canonicalize_condition.
8361
8362 2004-07-26  Eric Christopher  <echristo@redhat.com>
8363
8364         * tree-dfa.c (add_referenced_var): Register initializers of global
8365         variables.
8366
8367 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
8368
8369         * config/i386/i386.c (function_arg): Always treat 8-
8370         and 16-byte wide vectors the same, even if MMX/SSE
8371         are disabled.
8372         (contains_128bit_aligned_vector_p): Add comment.
8373
8374 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
8375
8376         * ra.h (enum node_type): Rename to:
8377         (enum ra_node_type).
8378         * ra-colorize.c: Likewise.
8379
8380 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
8381
8382         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
8383         after simplifying the jump.
8384
8385 2004-06-26  Richard Henderson  <rth@redhat.com>
8386
8387         * calls.c (combine_pending_stack_adjustment_and_call): Make
8388         preferred_unit_stack_boundary argument unsigned.  Make
8389         unadjusted_alignment unsigned.
8390         (expand_call): Make preferred_stack_boundary and
8391         preferred_unit_stack_boundary variables unsigned.
8392         * function.c (assign_stack_local_1): Make alignment unsigned.
8393         * function.h (struct function): Make stack_alignment_needed,
8394         preferred_stack_boundary unsigned.
8395         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
8396         (ix86_compute_frame_layout): Make stack_alignment_needed,
8397         preferred_alignment variables unsigned.
8398         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
8399
8400 2004-07-26  Tom Tromey  <tromey@redhat.com>
8401
8402         * tree.h: Fix typo in comment.
8403
8404 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
8405
8406         PR bootstrap/12804
8407         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
8408         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
8409         (ggc_free): Remove incorrect freeing.
8410         (sweep_pages): Advance PP for large pages.  Fix indentation.
8411
8412 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
8413
8414         PR rtl-optimization/16643
8415         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
8416         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
8417         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
8418         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
8419         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
8420         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8421         * rtl.h (tracer): Add a flags parameter.
8422         * tracer.c (tracer): Pass it to cfg_layout_initialise.
8423         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
8424         (rest_of_handle_reorder_blocks): Update calls to tracer and
8425         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
8426         (rest_of_handle_tracer): Pass 0 to tracer.
8427         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
8428
8429 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
8430
8431         PR target/16239
8432         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
8433         f->f.
8434
8435 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
8436
8437         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
8438         (BINFO_BASE_ACCESS): Adjust.
8439         (BINFO_BASE_ACCESS_APPEND): New.
8440         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
8441         * dbxout.c (dbxout_type): Adjust binfo access accessing.
8442         * dwarf2out.c (gen_member_die): Likewise.
8443         * tree-dump.c (deque_and_dump): Likewise.
8444
8445 2004-07-26  Falk Hueffner  <falk@debian.org>
8446
8447         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
8448         costs.
8449
8450 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8451
8452         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
8453         value off of the stack if TARGET_USE_FFREEP.
8454
8455 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8456
8457         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
8458         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
8459         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
8460         check on invocation of XRESIZEVEC ().
8461
8462 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8463
8464         * c-common.c (disable_builtin_function): Rename variable n to
8465         new_disabled_builtin.
8466         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
8467         Rename local variable old to old_decl.
8468         * gensupport.c (shift_output_template): Rename parameter old to src.
8469         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
8470         old_rtx and newx to new_rtx.
8471
8472 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
8473
8474         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
8475         of c-pragma.h.
8476         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
8477         enum cpp_ttype.
8478         * c-lex.c: Likewise.
8479
8480 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8481
8482         * fold-const.c (constant_boolean_node): Make extern.
8483         (make_range): Wrap long lines.
8484         (fold_cond_expr_with_comparison): Remove unnecessary call to
8485         pedantic_non_lvalue.  Add missing calls to fold_convert.
8486         (fold_truthop): Add missing calls to fold_convert.
8487         (fold): Likewise.
8488         * tree.h (constant_boolean_node): Add prototype here.
8489         * builtins.c (expand_builtin_strncmp): Add missing calls to
8490         fold_convert.
8491         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
8492         Call fold_convert and constant_boolean_node to correct types.
8493         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
8494         missing call to fold_convert to correct types.
8495
8496 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
8497             Brian Ryner  <bryner@brianryner.com>
8498
8499         PR c++/9283
8500         PR c++/15000
8501         * c-common.c (c_common_attribute_table): Allow
8502         handle_visibility_attribute to be called for types.
8503         (handle_visibility_attribute) When given a type, set the visibility
8504         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
8505         so that we can check later whether the attribute was present. Added
8506         warning if attribute applied to non class type.
8507         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
8508         decls and checking that they are consistent.
8509         * common.opt: Added -fvisibility.
8510         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
8511         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
8512         * flags.h, tree.h: Added assorted support defines for overall patch
8513         * opts.c: Added parsing support for -fvisibility.
8514         * tree.c (build_decl): Set visibility for all decls to be whatever
8515         is in force at that time.
8516         * varasm.c (default_binds_local_p_1): Reworked logic determining
8517         when to make a symbol locally bound.
8518         * doc/invoke.texi: Added documentation for -fvisibility and
8519         -fvisibility-inlines-hidden.
8520
8521 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8522
8523         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
8524         * c-common.c: Add missing casts from void * to other types.
8525         * c-decl.c: Likewise.
8526         * c-format.c: Likewise.
8527         * c-lex.c: Likewise.
8528         * c-pragma.c: Likewise.
8529         * c-typeck.c: Likewise.
8530         * defaults.h: Likewise.
8531         * genconstants.c: Likewise.
8532         * gengtype-lex.l: Likewise.
8533         * genmodes.c: Likewise.
8534         * read-rtl.c: Likewise.
8535         * rtl.c: Likewise.
8536
8537 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8538
8539         * bitmap.c: Use type-safe memory allocation macros from libiberty.
8540         * c-common.c: Likewise.
8541         * c-decl.c: Likewise.
8542         * c-lang.c: Likewise.
8543         * c-lex.c: Likewise.
8544         * c-opts.c: Likewise.
8545         * c-parse.in: Likewise.
8546         * c-typeck.c: Likewise.
8547         * genconditions.c: Likewise.
8548         * gengtype-lex.l: Likewise.
8549         * gengtype-yacc.y: Likewise.
8550         * gengtype.c: Likewise.
8551         * genmodes.c: Likewise.
8552         * gensupport.c: Likewise.
8553         * read-rtl.c: Likewise.
8554         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
8555         htab_find_slot().
8556
8557 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8558
8559         * c-decl.c (groktypename, groktypename_in_param_context): Rename
8560         variable typename to type_name.
8561         * c-lex.c (interpret_float): Likewise.
8562
8563 2004-07-25  Roger Sayle  <roger@eyesopen.com>
8564
8565         * convert.c (convert_to_real, convert_to_integer,
8566         convert_to_complex): Replace calls to build with calls to buildN.
8567         * coverage.c (tree_coverage_counter_ref): Likewise.
8568         * dojump.c (do_jump): Likewise.
8569         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
8570         * emit-rtl.c (component_ref_for_mem_expr,
8571         set_mem_attributes_minus_bitpos): Likewise.
8572         * explow.c (update_nonlocal_goto_save_area): Likewise.
8573         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
8574         expand_mult_add): Likewise.
8575         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
8576         store_constructor, get_inner_reference, expand_expr_real_1,
8577         try_casesi, try_tablejump): Likewise.
8578         * function.c (expand_function_start): Likewise.
8579         * stmt.c (emit_case_bit_tests, expand_end_case_type,
8580         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
8581         * stor-layout.c (place_union_field, layout_type): Likewise.
8582         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
8583         * varasm.c (copy_constant): Likewise.
8584
8585 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8586
8587         * c-common.c: Rename all identifiers named `new'.
8588         * c-decl.c: Likewise.
8589         * gensupport.c: Likewise.
8590         * simplify-rtx.c: Likewise.
8591         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
8592         with XNEW().
8593         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
8594         with XNEWVEC().
8595
8596 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
8597
8598         PR c/15360
8599         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
8600         declarations until after calling pushdecl.
8601         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
8602         "extern" and not on whether the declaration is initialized.
8603
8604 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
8605
8606         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
8607         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
8608         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
8609         "cpplib.h", "c-pragma.h", "c-common.h".
8610         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
8611         (solaris_register_pragmas): New functions.
8612         * config/sol2-protos.h: New file.
8613         * config/sol2.c: New file.
8614         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
8615         (REGISTER_TARGET_PRAGMAS): New macros.
8616         (solaris_pending_aligns, solaris_pending_inits)
8617         (solaris_pending_finis): New variables.
8618         * config/t-sol2 (sol2-c.o): Update dependencies.
8619         (sol2.o): New rule.
8620         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
8621         SUBTARGET_INSERT_ATTRIBUTES.
8622         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
8623         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
8624         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
8625         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
8626         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
8627         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
8628         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
8629         * config/sparc/sparc.c (sparc_attribute_table): New.
8630         (TARGET_INSERT_ATTRIBUTES): Define in terms of
8631         SUBTARGET_INSERT_ATTRIBUTES.
8632         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
8633         is defined.
8634         * doc/extend.texi (Solaris Pragmas): New section.
8635
8636 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8637
8638         * c-common.c: Rename all identifiers named `class' to `cl'.
8639         * c-common.h: Likewise.
8640         * c-parse.in: Likewise.
8641         * c-typeck.c: Likewise.
8642         * genmodes.c: Likewise.
8643         * real.c: Likewise.
8644         * real.h: Likewise.
8645         * recog.c: Likewise.
8646         * recog.h: Likewise.
8647         * regrename.c: Likewise.
8648         * tree.h: Likewise.
8649         * c-common.c (builtin_function_2): Change type of 5th parameter from
8650         int to enum built_in_function. Change type of 8th parameter from int
8651         to bool.
8652         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
8653         with GGC_CNEW().
8654         * c-typeck.c (convert_arguments): Change type of formal_prec from
8655         int to unsigned int.
8656         * genmodes.c (blank_mode): Make a few negative constants unsigned.
8657         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
8658         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
8659         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
8660         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
8661         iterator to for_all_modes () instead of an enum because enums can't
8662         be incremented in C++.
8663
8664
8665 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
8666
8667         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
8668         hard registers.
8669
8670 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8671
8672         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
8673         Handle ARRAY_RANGE_REF like ARRAY_REF.
8674
8675 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
8676
8677         * c-typeck.c (digest_init): Don't allow arrays of signed or
8678         unsigned variants of wchar_t to be initialized by wide string
8679         constants.  Do allow arrays of enumerated types compatible with
8680         wchar_t to be initialized by wide string constants.  Refine tests
8681         distinguishing wide and narrow strings and arrays.  Give specific
8682         error for arrays of other integer types initialized by string
8683         constants.
8684         (output_init_element, process_init_element): Check for
8685         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
8686         initializing with string constants.
8687
8688 2004-07-25  Richard Henderson  <rth@redhat.com>
8689
8690         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
8691         on the RESULT_DECL.
8692         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8693         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
8694         DECL_IGNORED_P to new decl.
8695
8696 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
8697
8698         * config/ia64/ia64.c (general_xfmode_operand)
8699         (destination_xfmode_operand): Delete.
8700         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
8701         * config/ia64/ia64.md (*movxf_internal): Use general_operand
8702         and destination_operand.
8703
8704 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
8705
8706         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
8707         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
8708
8709 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
8710             Zack Weinberg  <zack@codesourcery.com
8711
8712         PR 16684
8713         * c-decl.c (diagnose_mismatched_decls): Don't issue a
8714         redundant-declaration warning the first time a builtin is
8715         declared explicitly.
8716
8717 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8718
8719         * tree.h (staticp): Change return type to bool.
8720
8721 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8722
8723         * c-common.c (c_staticp): Last episode of the staticp saga.
8724
8725 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8726
8727         * c-common.h (c_staticp): Change return type from int to bool.
8728         * tree.c (staticp): Likewise.
8729         * langhooks.h (staticp): Likewise.
8730
8731 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8732
8733         * langhooks-def.h (lhd_staticp): Change return type from int to
8734         bool in prototype to match definition.
8735
8736 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8737
8738         * system.h (bool, true, false): Don't redefine as preprocessor macros
8739         in C++.
8740
8741 2004-07-24  Roger Sayle  <roger@eyesopen.com>
8742
8743         * expmed.c (init_expmed): A signed modulus by a power of two is
8744         considered cheap if its less than or equal to four instructions.
8745
8746 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8747
8748         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
8749         GGC_CNEWVAR): New macros.
8750
8751 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
8752
8753         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
8754         lists.
8755         * c-decl.c: Likewise.
8756         * c-format.c: Likewise.
8757         * c-lex.c: Likewise.
8758         * c-opts.c: Likewise.
8759         * c-pragma.c: Likewise.
8760         * c-typeck.c: Likewise.
8761         * gencheck.c: Likewise.
8762         * genconditions.c: Likewise.
8763         * genconfig.c: Likewise.
8764         * genflags.c: Likewise.
8765         * gengtype.c: Likewise.
8766         * gensupport.c: Likewise.
8767         * ggc-none.c: Likewise.
8768         * langhooks.c: Likewise.
8769         * statistics.h: Likewise.
8770         * stub-objc.c: Likewise.
8771         * java/decl.c: Likewise.
8772
8773 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
8774
8775         * config/m68k/m68k.c (output_scc_di): Fix coding style.
8776         (symbolic_operand): Fix prototype.
8777         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
8778         * config/m68k/m68k.md: Add constants for registers a0 and sp and
8779         use them, change from the "{...}" syntax to the simpler {...}
8780         syntax.
8781         (*cfv4_extendqisi2): Fix destination predicate.
8782         * config/m68k/m68k-protos.h: Remove various declarations also
8783         generated via PREDICATE_CODES.
8784
8785 2004-07-23  Mike Stump  <mrs@apple.com>
8786
8787         * c-typeck.c (convert_for_assignment): Tightened up pointer
8788         converstions that differ in signedness.
8789
8790 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
8791
8792         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
8793
8794 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8795
8796         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
8797         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
8798
8799         * gimplify.c (gimplify_compound_lval): Check for no handled
8800         operations, rather than checking for explicit list of nodes.
8801         (is_gimple_addr_expr_arg_or_indirect): New function.
8802         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
8803         redundant setting of TREE_INVARIANT.
8804         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
8805         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
8806
8807 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
8808
8809         PR tree-optimization/16688
8810         PR tree-optimization/16689
8811         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
8812         unnecessary initialization of 'tag'.
8813         (get_tmt_for): Check that the new type tag has the same alias
8814         set as the pointed-to type.
8815         (group_aliases): Only regular variables need to be removed
8816         from the alias set of a name tag.
8817         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
8818         propagation if the two types are not compatible.
8819         (merge_alias_info): Rename from replace_ssa_names_ann.
8820         Add more checking.
8821         (replace_exp_1): If both arguments are SSA_NAMEs, check that
8822         the propagation can be done.
8823         Only call merge_alias_info on pointers.
8824         (propagate_value): Likewise.
8825         * tree-ssa-copyrename.c: Include langhooks.h.
8826         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
8827         to do the merging.
8828         Do not coalesce variables with incompatible types.
8829         (rename_ssa_copies): Call replace_ssa_name_symbol.
8830         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
8831         the same type as the underlying _DECL.
8832         * tree-ssanames.c (replace_ssa_name_symbol): New function.
8833         * tree.h (replace_ssa_name_symbol): Declare.
8834
8835 2004-07-23  Richard Henderson  <rth@redhat.com>
8836
8837         PR c++/16277
8838         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
8839         unshare it properly.
8840         (gimplify_modify_expr_rhs): Push assignment from a conditional into
8841         the conditional for all non-register types.
8842
8843 2004-07-23  Richard Henderson  <rth@redhat.com>
8844
8845         * expr.c (expand_expr_real_1): Don't handle non-local variables.
8846         * expr.h (fix_lexical_addr): Remove.
8847         * function.c (NEED_SEPARATE_AP): Remove.
8848         (fix_lexical_addr): Remove.
8849         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
8850         not null decl_function_context.
8851         (create_alias_vars): Likewise.
8852         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
8853         (simple_goto_p): Likewise.
8854         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
8855         * tree-ssa-ccp.c (get_default_value): Likewise.
8856         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
8857         * tree.c (needs_to_live_in_memory): Likewise.
8858         * tree-flow-inline.h (may_be_aliased): Move...
8859         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
8860         when TREE_STATIC variables may be addressable.
8861
8862 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
8863
8864         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
8865
8866 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
8867
8868         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
8869         bitmap contents if GENERATOR_FILE is defined.
8870         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
8871         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
8872
8873 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
8874
8875         * c-decl.c (start_function): Form composite type of function types
8876         rather than copying type from previous prototype declaration.
8877
8878 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
8879
8880         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
8881         the const qualifier for the second argument in the C++ functions.
8882
8883         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
8884         specific pointer types.
8885
8886         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
8887         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
8888         for vector bool and/or vector pixel, add C++ and C missing support.
8889         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
8890         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
8891         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
8892         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
8893         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
8894         missing C++ and C support for vector bool and/or vector pixel.
8895         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
8896         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
8897         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
8898         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
8899         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
8900         C++ and C types used for vector bool and/or vector pixel.
8901         (vec_st, vec_stl): Add C++ support for vector pixel.
8902         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
8903         (vec_all_ne): Add C++ support for vector pixel.
8904
8905         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
8906         (vec_vmulesb): Add missing C++ function.
8907         (vec_perm): Fix type of third argument in C++ function.
8908         (vec_vsum4shs): Fix C++ function name.
8909         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
8910         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
8911         argument passed to the error handler in C macro.
8912         (vec_nmsub): Remove extra parens around argument names in C macro.
8913         (vec_packpx): Add missing parens in C macro.
8914
8915 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
8916
8917         * machmode.def: Remove vector modes.
8918         * config/alpha/alpha-modes.def: Add supported vector modes.
8919         * config/arm/arm-modes.def: Likewise.
8920         * config/frv/frv-modes.def: Likewise.
8921         * config/i386/i386-modes.def: Likewise.
8922         * config/rs6000/rs6000-modes.def: Likewise.
8923         * config/sh/sh-modes.def: Likewise.
8924
8925 2004-07-23  Matthias Klose  <doko@debian.org>
8926
8927         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
8928         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
8929         * config.h: Regenerate.
8930         * configure: Likewise.
8931
8932 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
8933
8934         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
8935         generated SYMBOL_REFs for labels.
8936         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
8937         Change prototype.
8938         (machopic_stub_name): Remove.
8939         (machopic_indirection_name): New function.
8940         (machopic_mcount_stub_name): Likewise.
8941         (machopic_classify_name): Remove.
8942         (machopic_function_base_sym): New function.
8943         (machpoic_classify_symbol): Likewise.
8944         (machopic_classify_ident): Remove.
8945         (machopic_define_ident): Likewise.
8946         (machopic_define_name): Likewise.
8947         (machopic_name_defined_p): Likewise.
8948         (machopic_ident_defined_p): Likewise.
8949         (darwin_strip_name_encoding): Likewise.
8950         (machopic_define_symbol): New function.
8951         * config/darwin.c (hashtab.h): Include.
8952         (machopic_defined_list): Remove.
8953         (machopic_classify_ident): Likewise.
8954         (machopic_classify_name): Likewise.
8955         (machopic_ident_defined_p): Likewise.
8956         (machopic_define_ident): Likewise.
8957         (machopic_define_name): Likewise.
8958         (machopic_symbol_defined_p): New function.
8959         (machopic_classify_symbol): Likewise.
8960         (machopic_data_defined_p): Use machopic_classify_symbol.
8961         (machopic_define_symbol): New function.
8962         (machopic_function_base_sym): New function.
8963         (machopic_non_lazy_pointers): Remove.
8964         (machopic_non_lazy_ptr_name): Likewise.
8965         (machopic_stubs): Likewise.
8966         (machopic_stub_name): Likewise.
8967         (NON_LAZY_POINTER_SUFFIX): New macro.
8968         (STUB_SUFFIX): Likewise.
8969         (machopic_indirection): New structure.
8970         (machopic_indirections): New variable.
8971         (machopic_indirection_hash): New function.
8972         (machopic_indirection_eq): Likewise.
8973         (machopic_indirection_name): Likewise.
8974         (machopic_mcount_stub_name): New function.
8975         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
8976         hash table.
8977         (machopic_indirect_data_reference): Rework to use new functions.
8978         (machopic_indirect_call_target): Likewise.
8979         (machopic_legitimize_pic_address): Likewise.
8980         (machopic_output_indirection): New function.
8981         (machopic_finish): Use it.
8982         (machopic_operand_p): Rework to use new functions.
8983         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
8984         (darwin_strip_name_encoding): Remove.
8985         (update_non_lazy_ptrs): Remove.
8986         (update_stubs): Likewise.
8987         (darwin_non_lazy_pcrel): Use new functions.
8988         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
8989         (ASM_OUTPUT_LABELREF): Likewise.
8990         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8991         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
8992         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
8993         (TARGET_STRIP_NAME_ENCODING): Do not use
8994         darwin_strip_name_encoding.
8995         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
8996         darwin_strip_name_encoding.
8997         * config/i386/darwin.h (FUNCTION_PROFILER): Use
8998         machopic_mcount_stub_name.
8999         * config/i386/i386.c (x86_output_mi_thunk): Use
9000         machopic_indirection_name, not machopic_stub_name.
9001         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
9002         machopic_function_base_sym.
9003         (print_operand): Use machopic_classify_symbol.
9004         (rs6000_emit_prologue): Use machopic_function_base_sym.
9005         (output_profile_hook): Do not use machopic_stub_name.
9006         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
9007
9008 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9009
9010         PR c/7284
9011         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
9012         as multiplication.
9013
9014 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9015
9016         * doc/implement-c.texi: New file.
9017         * doc/extend.texi (C Implementation): Move to there.
9018         * doc/gcc.texi: Include implement-c.texi.
9019         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
9020
9021 2004-07-22  Jason Merrill  <jason@redhat.com>
9022
9023         * integrate.c (copy_decl_for_inlining): Remove invisible reference
9024         handling.
9025         * tree-inline.c (setup_one_parameter): Likewise.
9026
9027 2004-07-22  Brian Booth  <bbooth@redhat.com>
9028
9029         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
9030         (substitute_and_fold): Propigate into VUSE operands when possible.
9031         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
9032         (cp_lattice_meet): Handle merging of latticevalues when
9033         UNKNOWN_VAL is present.
9034         (visit_stmt): Visit assignments with V_MUST_DEFs.
9035         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
9036         (ccp_fold): Deal with RHS' that are constant and virtual.
9037         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
9038         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
9039         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
9040         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
9041         computing immediate uses.
9042         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
9043         transition.
9044         (replace_vuse_in): New function.
9045         (likely_value): Add check of vuse operands.
9046         (get_default_value): Set the default value of virtually defined
9047         variables to UKNOWN_VAL instead of VARYING.
9048
9049 2004-07-22  Richard Henderson  <rth@redhat.com>
9050
9051         * expr.c (emit_push_insn): Don't use set_mem_attributes.
9052
9053 2004-07-22  Richard Henderson  <rth@redhat.com>
9054
9055         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
9056         variables due to conditional compilation.
9057
9058 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9059
9060         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
9061         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
9062         Release SSA names that have been re-renamed.
9063         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
9064         variable.
9065         * tree-ssa-alias.c (init_alias_info): If aliases have been
9066         computed before, clear existing alias information.
9067         (create_name_tags): Do no fixup PT_ANYTHING pointers.
9068         If the new name tag for a pointer is different than the one it
9069         had before, mark the old tag for renaming.
9070         (replace_may_alias): New function.
9071         (group_aliases): Call it.
9072         (setup_pointers_and_addressables): Always call get_tmt_for.
9073         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
9074         once.
9075         (set_pt_anything): New local function.
9076         (set_pt_malloc): New local function.
9077         (merge_pointed_to_info): Don't merge pointed-to variables from
9078         the original pointer if the destination is pointing to an
9079         unknown location.
9080         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
9081         (add_pointed_to_var): Do not add a variable to the points-to
9082         set if the pointer is already pointing to anywhere.
9083         (collect_points_to_info_r): If the defining statement is a PHI
9084         node, only merge pointed-to information if the argument has
9085         already been visited.
9086         (get_tmt_for): Only create a new tag if the pointer didn't
9087         have one already.
9088         (dump_alias_info): Emit more information.
9089         (dump_points_to_info_for): Likewise.
9090         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
9091         try to get the annotation of an SSA_NAME.
9092         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
9093         alias sets when checking is enabled.
9094         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
9095         (eliminate): Mark basic blocks that will need
9096         EH information cleaned up.
9097         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
9098         predecessor.
9099         Initialize need_eh_cleanup.
9100         (fini_pre): Call tree_purge_all_dead_eh_edges and
9101         cleanup_tree_cfg if needed.
9102         Free need_eh_cleanup.
9103         * tree-ssa.c (verify_ssa_name): New function.
9104         (verify_def): Call it.
9105         Re-arrange to avoid printing too many error messages.
9106         (verify_use): Likewise.
9107         (verify_phi_args): Likewise.
9108         (verify_flow_insensitive_alias_info): New function.
9109         (verify_flow_sensitive_alias_info): New function.
9110         (verify_alias_info): New function.
9111         (verify_ssa): Call verify_alias_info.
9112         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
9113         program.
9114         Re-arrange to avoid printing too many error messages.
9115         * tree-ssanames.c (make_ssa_name): Clear
9116         SSA_NAME_IN_FREE_LIST.
9117         (release_ssa_name): Never release a default definition.
9118         (release_defs): New function.
9119         * tree.h: Declare it.
9120         * tree-ssa-dce.c (remove_dead_stmt): Call it.
9121
9122 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
9123
9124         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
9125         If true, do a depth-first search.  Do a breadht-first search,
9126         otherwise.
9127         (walk_use_def_chains): Add new argument IS_DFS.
9128         Update all users.
9129         * tree-flow.h (walk_use_def_chains): Update prototype.
9130
9131 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
9132
9133         * config/cris/cris.md: Tweak formatting.
9134         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
9135         (mover2side, moverside, movemside, movei, op3, andu): Replace
9136         live define_peephole:s with define_peephole2 near-equivalents.
9137         Delete the rest.
9138         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
9139         word-size modes.
9140         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
9141         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
9142         "*mov_sidesi_mem" respectively.
9143
9144 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
9145
9146         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
9147         (gimplify_build1): Move from tree-complex.c do_unop.
9148         (gimplify_build2): Move from tree-complex.c do_binop.
9149         (gimplify_build3): New.
9150         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
9151         Adjust throughout to call the functions above.
9152         * tree-flow.h: Declare the functions above.
9153         * tree-nested.c (gimplify_val): Rename to...
9154         (tsi_gimplify_val): ... this.
9155
9156         * Makefile.in (tree_complex.o): Update dependencies.
9157         (stor-layout.o): Depend on regs.h.
9158         * c-common.c (handle_vector_size_attribute): Update for
9159         vector types without corresponding vector modes.
9160         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
9161         a corresponding vector mode is not available.
9162         * print-tree.c (print_node): Print nunits for vector types
9163         * regclass.c (have_regs_of_mode): New.
9164         (init_reg_sets_1): Initialize it and use it instead
9165         of allocatable_regs_of_mode.
9166         * regs.h (have_regs_of_mode): Declare it.
9167         * stor-layout.c (layout_type): Pick a mode for vector types.
9168         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
9169         build_replicated_const, do_unop, do_binop, do_plus_minus,
9170         do_negate, expand_vector_piecewise, expand_vector_parallel,
9171         expand_vector_addition, expand_vector_operations_1,
9172         expand_vector_operations, tree_lower_operations,
9173         pass_lower_vector_ssa, pass_pre_expand): New.
9174         (expand_complex_operations, pass_lower_complex): Remove.
9175         * tree-optimize.c (init_tree_optimization_passes): Adjust
9176         pass ordering for changes in tree-complex.c.
9177         * tree-pass.h: Declare new passes.
9178         * tree.c (finish_vector_type): Remove.
9179         (make_vector_type): New.
9180         (build_vector_type_for_mode, build_vector_type): Rewritten.
9181         * tree.def (VECTOR_TYPE): Document where the number of
9182         subparts is stored.
9183         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
9184         (make_vector): Remove declaration.
9185
9186 2004-07-21  Richard Henderson  <rth@redhat.com>
9187
9188         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
9189         TREE_THIS_VOLATILE, may_aliases, or optimization level.
9190         (remove_useless_vars): Dump debugging info.
9191         (expand_used_vars): Move ...
9192         * cfgexpand.c (expand_used_vars): ... here.  Make static.
9193         * tree-flow-inline.h (set_is_used): New.
9194         (set_default_def): Use get_var_ann.
9195         * tree-flow.h: Update decls.
9196         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
9197         (create_ssa_var_map): Use it.
9198         * tree-ssa.c (set_is_used): Remove.
9199
9200 2004-07-22  Ben Elliston  <bje@au.ibm.com>
9201
9202         * gdbinit.in: Set a breakpoint on internal_error.
9203
9204 2004-07-21  Richard Henderson  <rth@redhat.com>
9205
9206         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
9207         to create a new basic block.
9208
9209 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9210
9211         PR c/15052
9212         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
9213         return type on function definitions.  Move other warnings for
9214         qualified return type to -Wreturn-type.  Do not condition any such
9215         warnings on -pedantic.  Update comments.
9216         (start_function): Only copy function type from previous prototype
9217         declaration if return types are compatible.
9218         * c-typeck.c (function_types_compatible_p): Don't condition
9219         warning for incompatibility of volatile qualifiers on the return
9220         type on -pedantic.  Update comment.
9221         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
9222
9223 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9224
9225         * c-typeck.c (set_init_index): Require designator to be of integer
9226         type.
9227
9228 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
9229
9230         PR c/11250
9231         * c-parse.in (init): Change to exprtype.
9232         (primary): Set original_code for STRING to STRING_CST.
9233         Call maybe_warn_string_init for compound literals.
9234         (initdcl, notype_initdcl): Call maybe_warn_string_init.
9235         (initval): Update.
9236         * c-tree.h (maybe_warn_string_init): New.
9237         (pop_init_level, process_init_element): Use struct c_expr.
9238         (struct c_expr): Update comment.
9239         * c-typeck.c (maybe_warn_string_init): New function.
9240         (digest_init): Call it.  Additional parameter strict_string.  All
9241         callers changed.
9242         (output_init_element): Likewise.
9243         (struct constructor_stack): Use struct c_expr for
9244         replacement_value.
9245         (really_start_incremental_init, push_init_level): Update.
9246         (pop_init_level): Update.  Return struct c_expr.
9247         (process_init_level): Update.  Take struct c_expr argument.
9248
9249 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
9250
9251         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
9252         commit.
9253
9254 2004-07-21  Eric Christopher  <echristo@redhat.com>
9255
9256         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
9257         removal.
9258         * c-decl.c (pop_scope): Ditto.
9259         * calls.c (expand_call): Remove call to current_nesting_level,
9260         update comment accordingly. Remove calls to expand_start_target_temps
9261         and expand_end_target_temps.
9262         * cfgexpand.c (construct_init_block): Remove call to
9263         expand_start_bindings_and_block.
9264         (construct_exit_block): Remove call to expand_end_bindings.
9265         * expr.c (safe_from_p): Remove BIND_EXPR handling.
9266         (expand_expr_real_1): Ditto. Fix formatting.
9267         (expand_vars): Delete.
9268         * stmt.c (POPSTACK): Remove block_stack.
9269         (stmt_status): Remove x_block_stack.
9270         (block_stack): Delete.
9271         (expand_start_bindings_and_block): Ditto.
9272         (expand_start_target_temps): Ditto.
9273         (expand_end_target_temps): Ditto.
9274         (current_nesting_level): Ditto.
9275         (warn_about_unused_variables): Ditto.
9276         (expand_end_bindings): Ditto.
9277         * tree.h: Remove declarations for above.
9278
9279 2004-07-21  Steven Bosscher  <stevenb@suse.de>
9280
9281         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
9282         * rtl.c (note_insn_name): Likewise.
9283         * print-rtl.c (print_rtx): Don't print it.
9284         * cfgrtl.h (can_delete_note_p): Don't handle it.
9285         (rtl_delete_block): Likewise.
9286         * passes.c (rest_of_handle_guess_branch_prob): Remove.
9287         (rest_of_compilation): Don't call it.
9288         * predict.c (process_note_predictions, process_note_prediction,
9289         note_prediction_to_br_prob): Remove.
9290         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
9291         * stmt.c (return_prediction): Remove.
9292         (expand_value_return): Don't call it.  Don't add prediction
9293         notes for return statements.
9294
9295 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
9296
9297         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
9298         once.
9299
9300 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
9301
9302         * c-common.c (vector_types_convertible_p): Use vector types'
9303         TYPE_SIZE and TREE_TYPE instead of their mode.
9304         * convert.c (convert_to_integer): Likewise.
9305         (convert_to_vector): Likewise.
9306         * fold-const.c (fold_convert): Likewise.
9307         * varasm.c (output_constant): Likewise.
9308         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
9309         Allow a VECTOR_TYPE initializer to be made of several vectors.
9310         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
9311         of cleared and need_to_clear, and use fold_convert.
9312         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
9313         integer vectors.
9314
9315 2004-07-20  Richard Henderson  <rth@redhat.com>
9316
9317         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
9318         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
9319
9320 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
9321
9322         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
9323         enormous cost if not TARGET_HARD_MUL.
9324
9325 2004-07-20  Andrew Pinski  <apinski@apple.com>
9326
9327         PR target/16557
9328         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
9329         (ASM_SPEC): here.
9330
9331 2004-07-21  Paul brook  <paul@codesourcery.com>
9332
9333         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
9334
9335 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9336
9337         * fold-const.c (operand_equal_p): Temporarily support NULL args.
9338         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
9339         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
9340
9341 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
9342
9343         * rtl.h (plus_constant): Delete.
9344         (plus_constant_wide): Rename to plus_constant.
9345         (plus_constant_for_output_wide): Delete vestigial prototype.
9346         (GEN_INT): Remove unnecessary cast.
9347         * tree.h (build_int_2, size_int_type): Delete.
9348         (build_int_2_wide): Rename to build_int_2.
9349         (size_int_wide): Rename to size_int_kind.
9350         (size_int_type_wide): Rename to size_int_type.
9351         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
9352         Remove unnecessary cast.
9353         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
9354         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
9355         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
9356         (size_int_type_wide): Rename size_int_type.
9357         (int_const_binop): Use size_int_type.
9358         * c-lex.c (interpret_integer): Use build_int_2.
9359         * final.c (split_double): Remove unnecessary casts.
9360         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
9361
9362 2004-07-20  Richard Henderson  <rth@redhat.com>
9363
9364         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
9365         (gimplify_compound_lval): Use is_gimple_tmp_reg.
9366         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
9367         (is_gimple_tmp_reg): New.
9368         * tree-gimple.h (is_gimple_tmp_reg): Declare.
9369
9370 2004-07-20  Richard Henderson  <rth@redhat.com>
9371
9372         * tree-pretty-print.c (dump_generic_node): Dump
9373         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
9374
9375 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
9376
9377         * tree-mudflap.c (mf_set_options_fndecl): New tree.
9378         (mudflap_init): Set it.
9379         (mudflap_register_call): Remove __mf_init call.
9380         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
9381         to pass "-ignore-reads" option to libmudflap if needed.
9382
9383 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
9384
9385         PR c++/14607
9386         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
9387         (MAKE_DECL_ONE_ONLY): Undefine.
9388         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
9389         readonly_data, one_only_data_section, forget_section): New prototypes.
9390         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
9391         functions.
9392         (pa_select_section): Add one-only (COMDAT) support.
9393         * pa.h (struct machine_function): Define.
9394         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
9395         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
9396         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
9397         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
9398         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
9399         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
9400         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
9401         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
9402         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
9403         for EXTRA_SECTION_FUNCTIONS.
9404         * doc/install.texi: Update binutils requirements.
9405
9406 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9407
9408         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
9409         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
9410         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
9411         size_t.
9412         (struct VEC): Use unsigned for num and alloc.
9413         * vec.c (struct vec_prefix): Likewise.
9414         (vec_o_reserve): Adjust.
9415
9416         * dbxout.c (dbxout_type): Fix printf format.
9417
9418         * tree.h (binfo_member): Remove.
9419         * tree.c (binfo_member): Remove.
9420
9421 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
9422
9423         * tree.h: Include vec.h
9424         (DEF_VEC_P(tree)): New type.
9425         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
9426         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
9427         (BINFO_LANG_SLOT): Remove.
9428         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
9429         (struct tree_binfo): Turn base_binfos into a trailing
9430         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
9431         (binfo_lang_slots): Remove.
9432         * tree.c (binfo_lang_slots): Remove.
9433         (make_tree_binfo_stat): Take a base binfo count, not a
9434         lang slot count.  Adjust.
9435         * Makefile.in (TREE_H): Add vec.h
9436         * alias.c (record_component_aliases): Adjust BINFO access.
9437         * dbxout.c (dbxout_type): Likewise.
9438         * dwarf2out.c (gen_member_die): Likewise.
9439         * sdbout.c (sdbout_one_type): Likewise.
9440         * tree-dump.c (deque_and_dump): Likewise.
9441         * config/i386/i386.c (classify_argument,
9442         contains_128bit_aligned_vector_p): Likewise.
9443         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
9444         * doc/c-tree.texi (Classes): Update BINFO documentation.
9445
9446 2004-07-20  Steven Bosscher  <stevenb@suse.de>
9447
9448         * c-common.h (check_case_value): Remove prototype.
9449         (c_add_case_label): Adjust prototype.
9450         * c-common.c (check_case_value): Make static.
9451         (check_case_bounds): New function.
9452         (c_add_case_label): Use it.  Take new argument orig_type.
9453         * c-typeck.c (struct c_switch): New orig_type field.
9454         (c_start_case): Set it.
9455         (do_case): Pass it to c_add_case_label.
9456         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
9457         cases from here.  Add the labels in reverse order.
9458         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
9459         (add_case_node): Return nothing, don't check for duplicate cases.
9460         Insert new case nodes in a list, not in an AVL tree.
9461         (expand_end_case_type): Don't turn a case tree into a case list.
9462         (case_tree2list): Remove.
9463         * tree.h (add_case_node): Adjust prototype.
9464
9465 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
9466
9467         * genattr.c (struct range, struct function_unit,
9468         write_units, extend_range, init_range): Remove them.
9469         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
9470         Output "#define INSN_SCHEDULING" here.
9471         * genattrtab.c (struct range, struct function_unit_op,
9472         struct function_unit, struct dimension, enum operator,
9473         operate_exp, expand_units, simplify_knowing,
9474         encode_units_mask, simplify_by_exploding,
9475         find_and_mark_used_attributes, unmark_used_attributes,
9476         add_values_to_cover, increment_current_value,
9477         test_for_current_value, simplify_with_current_value,
9478         simplify_with_current_value_aux, gen_unit,
9479         write_unit_name, write_function_unit_info,
9480         write_complex_function, write_toplevel_expr,
9481         find_single_value, extend_range): Remove.
9482         (write_attr_get): Do not handle common_av->value
9483         being an FFS.
9484         (struct attr_desc): Remove func_units_p and blockage_p.
9485         (write_attr_valueq): Do not handle them.
9486         (find_attr): Do not clear them.
9487         (make_internal_attr): Do not initialize them.
9488         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
9489         * sched-vis.c (init_target_units, insn_print_units,
9490         init_block_visualization, print_block_visualization,
9491         visualize_scheduled_insns, visualize_no_unit,
9492         visualize_stall_cycles, visualize_alloc,
9493         visualize_free, target_units, get_visual_tbl_length,
9494         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
9495         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
9496         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
9497         * haifa-sched.c (blockage_range, clear_units,
9498         schedule_unit, actual_hazard, potential_hazard,
9499         insn_unit, unit_last_insn, unit_tick,
9500         actual_hazard_this_instance, potential_hazard,
9501         schedule_unit, max_insn_queue_index_value): Remove.
9502         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
9503         max_insn_queue_index.
9504         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
9505         * doc/md.texi (Processor pipeline description): Remove
9506         references to old pipeline descriptions.
9507         (Automaton pipeline description): Merge with the above.
9508         (Old pipeline description, Comparison of the two descriptions):
9509         Remove.
9510
9511         * bt-load.c (migrate_btr_def): Remove references to
9512         use_pipeline_interface.
9513         * haifa-sched.c (insn_cost, schedule_insn,
9514         schedule_block, advance_one_cycle, sched_init,
9515         queue_to_ready, sched_finish): Likewise.
9516         * modulo-sched.c (sms_schedule, advance_one_cycle,
9517         ps_has_conflicts): Likewise.
9518         * sched-rgn.c (init_ready): Likewise.
9519         (debug_dependencies): Likewise, and remove an "if (1)".
9520         * target.h (use_dfa_pipeline_interface): Remove.
9521         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9522         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9523         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9524         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9525         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9526         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9527         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9528         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9529         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9530         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9531         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9532         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9533         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9534         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9535         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9536         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9537         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9538         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9539         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
9540
9541 2004-07-19  Roger Sayle  <roger@eyesopen.com>
9542
9543         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
9544
9545 2004-07-19  Jeff Law  <law@redhat.com>
9546
9547         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
9548         (get_eq_expr_value): Use it.  Simplify slightly.
9549
9550 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
9551
9552         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
9553         (umulsidi3_32bit_r4000): Likewise.
9554
9555 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
9556
9557         * vec.h: Propagate location information properly.
9558         (VEC_T_iterate): Add result pointer parameter.
9559         (VEC_T_space): New.
9560         (VEC_T_reserve): Use it.
9561
9562 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
9563
9564         * Makefile.in (c-format.o): Depend on c-format.h.
9565         * c-format.h: New file.
9566         (struct format_char_info): Add CHAIN member.
9567         * c-format.c: Move some types and constants to c-format.h.
9568         (format_type_error): Set to -1.
9569         (struct function_format_info): Use an int for format_type.
9570         (decode_format_type): Return an int.  Return format_type_error
9571         on error.
9572         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
9573         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
9574         (scan_char_table, time_char_table, monetary_char_table): Initialize
9575         CHAIN to NULL.
9576         (n_format_types): New variable.
9577         (check_format_info_main): Handle CHAIN in format_char_info.
9578         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
9579         TARGET_N_FORMAT_TYPES.
9580         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
9581         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
9582         * config/sol2-c.c: New file.
9583         * config/t-sol2: New file.
9584         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
9585         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
9586         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
9587
9588         * doc/extend.texi (Target Format Checks): New section.
9589         (Function Attributes): Mention it.
9590         * doc/invoke.texi: Mention target format checks.
9591         * doc/sourcebuild.texi: Mention target format checks.
9592         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
9593         TARGET_FORMAT_TYPES.
9594
9595 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
9596
9597         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
9598         added.
9599         * config/s390/s390.c (regclass_map initializer): Register 35 added to
9600         ADDR_REGS.
9601         (load_multiple_operation, store_multiple_operation): Removed
9602         pointless sanity check.
9603         (s390_decompose_address): Added check for return_address_pointer_rtx.
9604         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
9605         (s390_return_address_offset): New function.
9606         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
9607         (FRAME_REGNO_P): Added check for register 35.
9608         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
9609         REG_ALLOC_ORDER): Appended entry for register 35.
9610         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
9611         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
9612         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
9613         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
9614         is eliminable using stack pointer or hard frame pointer.
9615         (REGISTER_NAMES): Added name for register 35.
9616         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
9617         pointless sanity check.
9618
9619 2004-07-19  Roger Sayle  <roger@eyesopen.com>
9620
9621         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
9622         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
9623         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
9624         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
9625         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
9626         (fold_relational_const): Tidy up handling of floating point
9627         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
9628         transformation; fold_relational_const assumes constant operands.
9629
9630 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
9631
9632         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
9633         directory.
9634
9635 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
9636
9637         * c-tree.h (struct c_expr): Define.
9638         (C_SET_EXP_ORIGINAL_CODE): Remove.
9639         (parser_build_binary_op, build_compound_expr): Update prototypes.
9640         * c-parse.in (%union): Add exprtype.
9641         (FUNC_NAME): Mark as ttype.
9642         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
9643         exprtype.
9644         (expr): Update.  Define directly in terms of expr_no_commas
9645         instead of using nonnull_exprlist.
9646         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
9647         offsetof_member_designator, typespec_nonreserved_nonattr, init,
9648         initval, designator, component_declarator,
9649         component_notype_declarator, enumerator, array_declarator,
9650         condition, exexpr, switch_statement, stmt_nocomp, stmt,
9651         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
9652         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
9653         where appropriate.
9654         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
9655         * c-common.c (c_common_truthvalue_conversion): Don't check
9656         C_EXP_ORIGINAL_CODE.
9657         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
9658         Don't use C_EXP_ORIGINAL_CODE.
9659         (default_conversion, default_function_array_conversion): Don't use
9660         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
9661         (internal_build_compound_expr): Merge into build_compound_expr.
9662         (build_compound_expr): Take two operands instead of a TREE_LIST.
9663         * objc/objc-act.c (get_super_receiver): Update calls to
9664         build_compound_expr.
9665
9666 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
9667
9668         * config/sh/sh.c (sh_use_dfa_interface): Remove.
9669         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
9670         hook_int_void_1.
9671         * config/sh/sh.md: Extract pipeline descriptions
9672         into separate files.
9673         * config/sh/sh1.md: New file, extracted from sh.md.
9674         * config/sh/sh4.md: New file, extracted from sh.md.
9675         * config/sh/shmedia.md: New file, extracted from sh.md
9676         and rewritten using new-style pipeline description.
9677
9678 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
9679
9680         * config/pa/pa.md: Delete the two remaining define_peephole
9681         patterns.
9682
9683 2004-07-18  Steven Bosscher  <stevenb@suse.de>
9684             Joseph S. Myers  <jsm@polyomino.org.uk>
9685
9686         * c-common.c (c_common_truthvalue_conversion): Don't warn if
9687         TREE_NO_WARNING is set.
9688
9689 2004-07-18  Roger Sayle  <roger@eyesopen.com>
9690
9691         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
9692         simplify_builtin_strncmp): Delete.
9693         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
9694         Change argument to accept an arglist instead of an "exp".  Assume
9695         that the return type is always integer_type_node.  Copy missing
9696         transformations from their now obsolete simplify_builtin_*
9697         equivalents.
9698         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
9699         fold_builtin_strcmp and fold_builtin_strncmp.
9700         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
9701         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
9702         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
9703
9704 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
9705
9706         * Makefile.in (tree-alias-common.o): Update dependencies.
9707
9708 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
9709
9710         * cfgloop.c (flow_loop_nested_p): Fix comment.
9711
9712 2004-07-17  Jason Merrill  <jason@redhat.com>
9713
9714         PR c++/16115
9715         * stor-layout.c (relayout_decl): New fn.
9716         * tree.h: Declare it.
9717         (DECL_BY_REFERENCE): New macro.
9718
9719 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
9720
9721         * libgcc2.c (__enable_execute_stack): New symbol.
9722         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
9723         and declare __enable_execute_stack.
9724         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
9725         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
9726         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9727         ENABLE_EXECUTE_STACK.
9728         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
9729         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9730         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9731         ENABLE_EXECUTE_STACK.
9732         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9733         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
9734         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9735         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
9736         ENABLE_EXECUTE_STACK.
9737         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9738         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9739         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9740         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
9741         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
9742         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
9743         (sparc64_initialize_trampoline): Likewise.
9744         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
9745
9746 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
9747
9748         * langhooks.h (builtin_function): New langhook.
9749         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
9750         (LANG_HOOKS_INITIALIZER): Update.
9751         * tree.h (builtin_function): Remove.
9752         * doc/tm.texi: Update.
9753         * c-tree.h (builtin_function): Declare.
9754         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
9755         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
9756         config/ia64/ia64.c, config/iq2000/iq2000.c,
9757         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
9758         config/stormy16/stormy16.c: All callers of builtin_function
9759         changed.
9760
9761 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
9762
9763         PR target/16556
9764         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
9765         Remove white space after the backslash.
9766
9767 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
9768
9769         PR rtl-optimization/16294
9770         * resource.c (return_insn_p): New predicate.
9771         (mark_target_live_regs): Use it.  Special-case return insns.
9772         (init_resource_info): Use it.  Don't scan the epilogue past
9773         a return.
9774
9775 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9776
9777         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
9778         destroy dominance information.
9779         * passes.c (rest_of_handle_loop2):  Free dominance information.
9780         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
9781         jump threading.
9782         (thread_jumps): Update dominance information and remove unreachable
9783         blocks.
9784         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
9785         information and remove the unreachable block.
9786
9787 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
9788
9789         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
9790
9791 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
9792
9793         * doc/sourcebuild.texi: Remove libf2c entry.
9794
9795 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
9796
9797         * config/i386/i386.md (movv16qi_internal): Fix typo.
9798
9799 2004-07-17  Steven Bosscher  <stevenb@suse.de>
9800
9801         * final.c (final_scan_insn): Fix broken commit from previous
9802         patch.
9803
9804 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
9805
9806         * c-typeck.c (parser_build_binary_op): Condition warnings for
9807         X<=Y<=Z on -Wparentheses instead of -Wextra.
9808         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
9809         supported for C only.
9810
9811 2004-07-17  Steven Bosscher  <stevenb@suse.de>
9812
9813         * cfgcleanup.c (try_simplify_condjump): Don't remove line
9814         notes to avoid unreachable code warnings.
9815         * toplev.c (backend_init): Don't emit line notes for
9816         unreachable code warnings.
9817
9818         * combine.c (distribute_notes): Don't distribute a
9819         REG_VTABLE_REF note.
9820         * final.c (final_scan_insn): Don't handle it.
9821         * rtl.c (reg_note_name): Remove it.
9822         * rtl.h (enum reg_node): Dito.
9823
9824         * emit-rtl.c (force_line_numbers, restore_line_number_status):
9825         Remove.
9826         * rtl.h (force_line_numbers, restore_line_number_status):
9827         Remove prototypes.
9828
9829         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
9830         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
9831         (using_eh_for_cleanups): Also moved here.
9832
9833         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
9834         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
9835         to expand_start_case and add_case_node.
9836         * stmt.c (struct nesting): Cleanup unused fields condition_code,
9837         last_unconditional_cleanup, nominal_type, printname, and
9838         line_number_status.
9839         (struct fixup_goto): Remove.
9840         (struct stmt_status): Remove x_goto_fixup_chain field.
9841         (goto_fixup_chain): Remove.
9842         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
9843         pushcase, pushcase_range): Remove.
9844         (expand_start_bindings_and_block): Don't set unused fields in
9845         the nesting stack.
9846         (expand_start_case, add_case_node): Cleanup unused formal arguments.
9847         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
9848         instead of emit_jump_if_reachable.
9849         (emit_case_nodes): Likewise.
9850         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
9851         static.
9852         (update_eh_label): Work around left-over exception handing regions.
9853         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
9854         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
9855         (pass_cleanup_cfg_post_optimizing): New pass.
9856         (init_tree_optimization_passes): Run the new pass after all
9857         optimizations.
9858         * tree.h (pushcase, pushcase_range): Remove prototypes.
9859         (expand_start_case, add_case_node): Update prototypes.
9860
9861 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
9862
9863         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
9864
9865 2004-07-16  Richard Henderson  <rth@redhat.com>
9866
9867         * builtins.c (std_expand_builtin_va_arg): Remove.
9868         (expand_builtin_va_arg): Remove.
9869         * expr.h: Don't declare them.
9870         * gimplify.c (mark_decls_volatile_r): Remove.
9871         (copy_if_shared_r): Don't call it.
9872         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
9873         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
9874         * gimple-low.c (lower_stmt): Likewise.
9875         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
9876         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
9877         * tree-ssa-operands.c (get_expr_operands): Likewise.
9878         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
9879         EXPAND_BUILTIN_VA_ARG.
9880         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
9881         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
9882         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
9883         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
9884
9885 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
9886
9887         * tree-ssa-pre.c (insert_aux): Break out if we hit
9888         a critical edge.
9889
9890 2004-07-16  Richard Henderson  <rth@redhat.com>
9891
9892         * basic-block.h (remove_fake_exit_edges): Declare.
9893         * cfganal.c (remove_fake_predecessors): Rename from
9894         remove_fake_successors; iterate over predecessors.
9895         (remove_fake_exit_edges): New.
9896         * cfgcleanup.c (try_optimize_cfg): Use it.
9897         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
9898         * predict.c (estimate_probability): Likewise.
9899         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
9900         * tree-cfg.c (make_edges): Likewise.
9901         * tree-ssa-pre.c (fini_pre): Likewise.
9902         * profile.c (instrument_edges): Don't remove_fake_edges.
9903         (branch_prob): Do it earlier here.
9904
9905 2004-07-16  Richard Henderson  <rth@redhat.com>
9906
9907         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
9908         switchification wrt CONSTRUCTOR.  Document the reason.
9909
9910 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
9911
9912         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
9913         that prevented descriptive __mf_check source location strings.
9914
9915 2004-07-16  Richard Henderson  <rth@redhat.com>
9916
9917         * tree-def (WITH_SIZE_EXPR): New.
9918         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
9919         * expr.c (expand_expr_real_1): Likewise.
9920         * gimplify.c (maybe_with_size_expr): New.
9921         (gimplify_arg, gimplify_modify_expr): Use it.
9922         (gimplify_modify_expr_to_memcpy): Take size parameter.
9923         (gimplify_modify_expr_to_memset): Likewise.
9924         (gimplify_expr): Handle WITH_SIZE_EXPR.
9925         * tree-alias-common.c (find_func_aliases): Likewise.
9926         * tree-eh.c (tree_could_trap_p): Likewise.
9927         (tree_could_throw_p): Likewise.
9928         * tree-gimple.c (is_gimple_lvalue): Likewise.
9929         (get_call_expr_in): Likewise.
9930         * tree-inline.c (estimate_num_insns_1): Likewise.
9931         (expand_calls_inline): Likewise.
9932         * tree-nested.c (convert_call_expr): Likewise.
9933         * tree-pretty-print.c (dump_generic_node): Likewise.
9934         * tree-sra.c (sra_walk_expr): Likewise.
9935         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
9936         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
9937         * tree-ssa-operands.c (get_expr_operands): Likewise.
9938         * tree-tailcall.c (find_tail_calls): Likewise.
9939
9940         * calls.c (expand_call): Reset old_stack_allocated after
9941         calling emit_stack_restore.
9942
9943 2004-07-16  Richard Henderson  <rth@redhat.com>
9944
9945         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
9946         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
9947         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
9948         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
9949         copy_res_decl_for_inlining.
9950
9951         * tree-inline.c (declare_return_variable): New modify_dest argument.
9952         Use it as the return value, when possible or manditory.  Handle
9953         TREE_ADDRESSABLE types.
9954         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
9955         replacement of CALL_EXPR.
9956
9957 2004-07-16  Richard Henderson  <rth@redhat.com>
9958
9959         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
9960         * gimple-low.c (expand_var_p): Don't check it.
9961         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
9962         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
9963         * tree-ssa-operands.c (add_stmt_operand): Likewise.
9964         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
9965         (find_referenced_vars): Don't call them.
9966         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
9967
9968 2004-07-16  Richard Henderson  <rth@redhat.com>
9969
9970         * function.c (pass_by_reference): True for all variable sized types.
9971
9972 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
9973
9974         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
9975         * tree-pretty-print.c: Include tree-chrec.h.
9976         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
9977         and POLYNOMIAL_CHREC nodes.
9978
9979 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
9980
9981         * builtins.c (expand_builtin_stpcpy): Do not create temporary
9982         reg with VOIDmode.
9983
9984 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
9985
9986         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
9987
9988 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
9989
9990         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
9991         to BASE_REGNUM.
9992         * config/s390/s390.c: Likewise.
9993         * config/s390/s390.h: Likewise.
9994
9995 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
9996
9997         * config/mips/mips.md (addsi3, adddi3): Remove special handling
9998         of $sp adds.  Remove REGNO checks from mips16 patterns.
9999
10000 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10001
10002         * config/mips/mips.md: Delete outdated comment.
10003
10004 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10005
10006         * config/mips/mips.c (get_float_compare_codes): Delete.
10007         (mips_emit_compare): New function, mostly extracted from
10008         get_float_compare_codes and gen_conditional_branch.
10009         (gen_conditional_branch, gen_conditional_move): Use it.
10010
10011 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
10012
10013         * genautomata.c (add_vect): Speedup by using integers as
10014         bit-vectors for walking through the comb_vect and finding
10015         a match.
10016
10017 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10018
10019         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
10020         operand is an uns_arith_operand; use subtraction otherwise.
10021         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
10022         not just arith_operands.
10023
10024 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10025
10026         * config/mips/mips-protos.h (gen_int_relational): Delete.
10027         (mips_emit_scc): Declare.
10028         * config/mips/mips.c (internal_test): Delete.
10029         (sle_operand, sleu_operand): New functions.
10030         (map_test_to_internal_test, gen_int_relational): Delete.
10031         (mips_emit_binary, mips_relational_operand_ok_p)
10032         (mips_emit_int_relational, mips_zero_if_equal)
10033         (mips_emit_scc): New functions.
10034         (gen_conditional_branch): Rework to use mips_emit_int_relational.
10035         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
10036         sleu_operand.
10037         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
10038         (sltu, sleu): Use mips_emit_scc.
10039         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
10040         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
10041         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
10042
10043 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10044
10045         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
10046
10047 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10048
10049         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
10050         (*sne_[sd]i): Likewise sne_[sd]i_zero.
10051         (*sgt_[sd]i): ...and sgt_[sd]i.
10052         (*slt_[sd]i): ...and slt_[sd]i.
10053         (*sgtu_[sd]i): ...and sgtu_[sd]i.
10054         (*sltu_[sd]i): ...and sltu_[sd]i.
10055         (*sleu_[sd]i): ...and sleu_[sd]i_const.
10056         Name previously unnamed mips16 patterns.  Formatting fixes.
10057
10058 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10059
10060         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
10061         (branch_type): Delete.
10062         (gen_conditional_branch, gen_conditional_move)
10063         (mips_gen_conditional_trap): Update after name change.  Get the
10064         comparison mode from cmp_operands[0].
10065         * config/mips/mips.h (cmp_type, branch_type): Delete.
10066         (cmp_operands): Renamed from branch_cmp.
10067         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
10068         name change.  Don't set branch_type.
10069         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
10070         mode class of cmp_operands[0] rather than branch_type.  Update after
10071         name change.
10072
10073 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10074
10075         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
10076         of 0...255 to 0 when inside a SET.
10077
10078 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
10079
10080         * config/mips/mips.md: Remove mips16 define_peepholes.
10081
10082 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
10083
10084         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
10085         (fini_pre): Remove fake edges.
10086
10087 2004-07-15  Richard Henderson  <rth@redhat.com>
10088
10089         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
10090         (get_indirect_ref_operands, get_call_expr_operands): ... these.
10091
10092 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
10093
10094         * vec.h (VEC_address): New function.
10095
10096 2004-07-14  Jason Merrill  <jason@redhat.com>
10097
10098         PR middle-end/15885
10099         * gimplify.c (gimplify_arg): New fn, split out from...
10100         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
10101
10102 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10103
10104         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
10105         generate code which is generated by pushqi1 now
10106         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
10107
10108 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
10109
10110         * combine.c (simplify_set): match the mode of the constant 0 with
10111         the tested operand to match the compare behaviour and the
10112         simplify_relational_operation() expectation.
10113
10114 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10115
10116         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
10117         ("bordered"): Same.
10118
10119 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
10120
10121         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
10122         unconditionally.
10123         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
10124
10125 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10126
10127         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
10128         calls in mips16 code.
10129
10130 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
10131
10132         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
10133         the destination of the li as well as for the neg.
10134
10135 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
10136
10137         g++/15861
10138         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
10139         * cgraph.h: Update declaration.
10140         * c-decl.c (build_cdtor): Update call with default priority.
10141         * coverage.c (create_coverage): Ditto.
10142         * tree-mudflap.c (mf_init_fndecl): New tree.
10143         (mudflap_init): Set it.
10144         (mudflap_register_call): Arrange to call __mf_init before the first
10145         __mf_register call.
10146         (mudflap_finish_file): Mark the mudflap static initializer as extra
10147         high priority, to beat all C++ static constructors.
10148
10149 2004-07-15  Jeff Law  <law@redhat.com>
10150
10151         * loop.c (check_insn_for_givs): Restore check for code labels that was
10152         accidentally deleted by a recent checkin.
10153
10154 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
10155
10156         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
10157         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
10158
10159 2004-07-14  Richard Henderson  <rth@redhat.com>
10160
10161         * print-tree.c (print_node): Fix casts last change.
10162
10163 2004-07-15  Paul Brook  <paul@codesourcery.com>
10164
10165         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
10166         to TARGET_UNWIND_INFO.
10167         * except.c (output_function_exception_table): Ditto.
10168         * except.h: Ditto.
10169         * opts.c (decode_options): Ditto.
10170         * passes.c (rest_of_handle_final): Ditto.
10171         * final.c (final_start_function): Ditto.
10172         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
10173         target hook.
10174         * targhooks.h (default_unwind_emit): Declare.
10175         * targhooks.c (default_unwind_emit): New function.
10176         * target-def.h: Define and use TARGET_UNWIND_EMIT.
10177         * target.h (struct gcc_target): Add unwind_emit.
10178         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
10179         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
10180         Remove IA64_UNWIND_EMIT.
10181         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
10182
10183 2004-07-14  Richard Henderson  <rth@redhat.com>
10184
10185         * print-tree.c (print_node): Handle SSA_NAME.
10186
10187 2004-07-14  James E Wilson  <wilson@specifixinc.com>
10188
10189         PR target/16325
10190         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
10191         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
10192
10193 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
10194
10195         * expr.c (expand_assignment): Reenable bitfield += optimizations.
10196         Use alias set 0 for memory, do proper mode calculations and adjust
10197         address for memories.
10198
10199 2004-07-14  Per Bothner  <per@bothner.com>
10200
10201         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
10202         structure with extra column field.
10203         * tree.c (expand_location):  Also fill in column field.
10204         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
10205         gets confused by the two conditionally-compiled definitions.
10206
10207 2004-07-14  Eric Christopher  <echristo@redhat.com>
10208
10209         * calls.c (expand_call): Fix typo in comment.
10210
10211 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
10212
10213         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
10214         comparision of TFmode.
10215
10216 2004-07-14  Richard Henderson  <rth@redhat.com>
10217
10218         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
10219         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
10220         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
10221         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
10222         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
10223         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
10224         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
10225         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
10226         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
10227
10228 2004-07-14  Mike Stump  <mrs@apple.com>
10229
10230         * config/darwin.h (WINT_TYPE): Define to be int to match
10231         system header files.
10232
10233 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
10234
10235         * config/xtensa/xtensa.c (function_arg_advance): Check for args
10236         that must be passed in the stack.
10237         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
10238         arguments if the size is not a constant.
10239
10240 2004-07-14  Per Bothner  <per@bothner.com>
10241
10242         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
10243         instead of EXPR_LOCUS in a boolean context, which is always true
10244         if --enable-mapped-location.
10245         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
10246
10247 2004-07-14  Richard Henderson  <rth@redhat.com>
10248
10249         * dominance.c (struct dom_info): Add fake_exit_edge.
10250         (init_dom_info): Allocate it.
10251         (free_dom_info): Free it.
10252         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
10253         in two passes.
10254         (calc_idoms): Honor fake_exit_edge.
10255
10256 2004-07-13  Jason Merrill  <jason@redhat.com>
10257
10258         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
10259         (rhs_test_for): New fn.
10260         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
10261         * tree-gimple.h: Declare them.
10262         * gimplify.c (gimplify_modify_expr): Use the new fns.
10263
10264 2004-07-14  Richard Henderson  <rth@redhat.com>
10265
10266         * config/arm/arm-protos.h (arm_va_arg): Remove.
10267         * config/arm/arm.c (arm_va_arg): Remove.
10268         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
10269         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
10270
10271 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10272
10273         * pa.c (fix_range): New function to mark a range(s) of registers as
10274         fixed registers.
10275         (override_options): Call fix_range if the -mfixed-range option string
10276         is not empty.
10277         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
10278         * doc/invoke.texi (-mfixed-range): Document new option.
10279
10280 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
10281
10282         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
10283         for TARGET_64BIT.
10284         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
10285
10286 2004-07-14  Roger Sayle  <roger@eyesopen.com>
10287
10288         * expmed.c (expand_sdiv_pow2): New function to expand signed division
10289         by a positive power of two, split out from expand_divmod.  Provide
10290         an alternate implementation when shifts are expensive.  Lower the
10291         threshold for using a branchless implementation to BRANCH_COST >= 2.
10292         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
10293
10294 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10295
10296         * tree-dfa.c (make_rename_temp): *Really* work just
10297         like create_tmp_var if called while outside SSA form.
10298
10299 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
10300
10301         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
10302         for division by zero.
10303         ("umodsi3"): Likewise.
10304
10305 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
10306
10307         * config/mips/mips.c (mips_output_move): When generating mips16 code,
10308         force loads of negative constants to be split.
10309         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
10310         Generalize SImode li/neg splitter to cope with other modes.
10311
10312 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10313
10314         * expmed.c: Remove more references to QUEUED in the comments.
10315         * expr.c: Likewise.
10316
10317 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
10318
10319         Revert:
10320         2004-07-13  Richard Henderson  <rth@redhat.com>
10321         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
10322         correctly.
10323
10324 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10325
10326         * tree-dfa.c (make_rename_temp): Work just like
10327         create_tmp_var if called while outside SSA form.
10328
10329 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
10330
10331         * expr.c (enqueue_insn, finish_expr_for_function,
10332         protect_from_queue, queued_subexp_p, mark_queue,
10333         emit_insns_enqueued_after_mark, emit_queue,
10334         expand_increment): Remove.
10335         (store_constructor): Expand increment as an assignment.
10336         (expand_expr_real_1 <case PREINCREMENT_EXPR,
10337         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
10338         case POSTDECREMENT_EXPR>): Abort.
10339         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
10340         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
10341         protect_from_queue, emit_queue, queued_subexp_p): Remove.
10342         * function.h (pending_chain, x_pending_chain): Remove.
10343         * rtl.def (QUEUED): Remove.
10344
10345         * emit-rtl.c (copy_insn_1, copy_most_rtx,
10346         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
10347         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
10348         encode_units_mask): Likewise.
10349         * local-alloc.c (equiv_init_varies_p): Likewise.
10350         * rtl.c (copy_rtx): Likewise.
10351         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
10352         * simplify-rtx.c (simplify_gen_subreg): Likewise.
10353         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
10354
10355         * builtins.c (expand_builtin, expand_builtin_apply,
10356         expand_builtin_mathfn, expand_builtin_mathfn_2,
10357         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
10358         Remove calls to emit_queue and protect_from_queue.
10359         * calls.c (expand_call, precompute_arguments,
10360         precompute_register_parameters, rtx_for_function_call,
10361         store_one_arg): Likewise.
10362         * dojump.c (do_compare_and_jump, do_jump): Likewise.
10363         * explow.c (memory_address): Likewise.
10364         * expmed.c (clear_by_pieces_1, clear_storage,
10365         clear_storage_via_libcall, emit_group_load,
10366         emit_group_store, emit_store_flag,
10367         expand_expr_real_1, store_by_pieces,
10368         store_constructor, store_expr, try_casesi,
10369         try_tablejump): Likewise.
10370         * function.c (expand_pending_sizes): Likewise.
10371         * optabs.c (emit_cmp_and_jump_insns,
10372         emit_conditional_add, emit_conditional_move,
10373         expand_fix, expand_float, prepare_cmp_insn): Likewise.
10374         * stmt.c (emit_case_bit_tests,
10375         expand_asm_expr, expand_computed_goto,
10376         expand_decl_init, expand_end_case_type,
10377         expand_end_stmt_expr, expand_expr_stmt_value,
10378         expand_return, expand_start_case,
10379         optimize_tail_recursion): Likewise.
10380         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
10381         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
10382
10383 2004-07-14  Ben Elliston  <bje@au.ibm.com>
10384
10385         * vec.h: Comment fix.
10386
10387 2004-07-13  Richard Henderson  <rth@redhat.com>
10388
10389         * target.h (struct gcc_target): Add calls.pass_by_reference.
10390         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
10391         * function.c (pass_by_reference): Use the hook.
10392         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
10393         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
10394         (hook_pass_by_reference_must_pass_in_stack): New.
10395         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
10396         (alpha_pass_by_reference): New.
10397         (TARGET_PASS_BY_REFERENCE): New.
10398         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10399         * config/arc/arc.c (arc_pass_by_reference): New.
10400         (TARGET_PASS_BY_REFERENCE): New.
10401         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10402         (FUNCTION_ARG_CALLEE_COPIES): True.
10403         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
10404         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
10405         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
10406         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10407         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10408         * config/cris/cris.c (cris_pass_by_reference): New.
10409         (TARGET_PASS_BY_REFERENCE): New.
10410         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
10411         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
10412         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10413         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
10414         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10415         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
10416         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
10417         (frv_function_arg_pass_by_reference): Remove.
10418         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10419         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
10420         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
10421         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
10422         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10423         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
10424         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
10425         (ia64_pass_by_reference): Rename from
10426         ia64_function_arg_pass_by_reference.
10427         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10428         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10429         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
10430         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
10431         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
10432         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10433         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10434         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
10435         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
10436         (m32r_pass_by_reference): Adjust prototype.  Make static.
10437         Handle mode sizes correctly.
10438         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10439         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
10440         (m68hc11_function_arg_pass_by_reference): Remove.
10441         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10442         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10443         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
10444         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10445         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
10446         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
10447         (mips_va_arg): Use pass_by_reference.
10448         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
10449         Handle mode sizes correctly.
10450         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10451         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
10452         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
10453         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
10454         (mmix_pass_by_reference): Rename from
10455         mmix_function_arg_pass_by_reference.
10456         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10457         (FUNCTION_ARG_CALLEE_COPIES): True.
10458         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
10459         (mn10300_pass_by_reference): New.
10460         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10461         (FUNCTION_ARG_CALLEE_COPIES): True.
10462         * config/pa/pa.c (pa_pass_by_reference): New.
10463         (TARGET_PASS_BY_REFERENCE): New.
10464         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10465         (FUNCTION_ARG_CALLEE_COPIES): True.
10466         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
10467         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
10468         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
10469         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10470         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
10471         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
10472         (s390_pass_by_reference): Rename from
10473         s390_function_arg_pass_by_reference.
10474         (s390_function_arg_advance): Don't query pass-by-ref.
10475         (s390_function_arg): Likewise.
10476         (s390_gimplify_va_arg): Use pass_by_reference.
10477         (s390_call_saved_register_used): Likewise.
10478         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10479         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
10480         (shcompact_byref, sh_pass_by_reference): New.
10481         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10482         (SHCOMPACT_BYREF): Remove.
10483         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
10484         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
10485         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
10486         (sparc_gimplify_va_arg): Use pass_by_reference.
10487         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10488         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10489         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
10490         (v850_pass_by_reference): New.
10491         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10492         (FUNCTION_ARG_CALLEE_COPIES): True.
10493         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
10494         FUNCTION_ARG_PASS_BY_REFERENCE docs.
10495
10496 2004-07-14  Richard Henderson  <rth@redhat.com>
10497             Richard Sandiford  <rsandifo@redhat.com>
10498
10499         * config/mips/mips-protos.h (mips_va_arg): Delete.
10500         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
10501         * config/mips/mips.c: Include tree-gimple.h.
10502         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
10503         (mips_arg_info): Remove special handling of must_pass_in_stck args.
10504         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
10505         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
10506
10507 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
10508
10509         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
10510         arguments for COND_EXPR in big-endian adjustment code.
10511
10512 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10513
10514         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
10515         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
10516         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
10517         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
10518
10519 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
10520
10521         PR tree-optimization/16443
10522         * tree-ssa-alias.c: Add more description for
10523         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
10524         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
10525         clobbering of call-clobbered and addressable variables.  If
10526         there are any before aliases have been computed, add them.
10527
10528 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
10529
10530         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
10531         verification.
10532
10533 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
10534
10535         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
10536         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
10537         to the same type.
10538
10539 2004-07-13  Per Bothner  <per@bothner.com>
10540
10541         * collect2.c (main):  Handle --no-demangle and --demangle flags.
10542
10543 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
10544
10545         * Makefile.in (OBJS-common): Add tree-data-ref.o.
10546         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
10547         (tree-data-ref.o): New rule.
10548         * lambda.h: New file.
10549         * tree-data-ref.c: New file.
10550         * tree-data-ref.h: New file.
10551         * tree.c (int_cst_value, tree_fold_gcd): New functions.
10552         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
10553
10554 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10555
10556         PR target/13926
10557         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
10558         * config/sparc/sparc.c (output_ubranch): New function.
10559         * config/sparc/sparc.md (jump pattern): Use it.
10560
10561 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10562
10563         PR target/16494
10564         * config/sparc/sparc.c (output_cbranch): Properly guard
10565         the code handling far branches with TARGET_V9.
10566         * config/sparc/sparc.md (length attribute): Document the
10567         side-effect of having a length greater or equal to 3.
10568
10569 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10570             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
10571
10572         PR target/15186
10573         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
10574         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
10575
10576 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10577             Martin Sebor  <sebor@roguewave.com>
10578
10579         PR target/12602
10580         * doc/invoke.texi (SPARC options): Document -threads
10581         and -pthreads on Solaris.
10582
10583 2004-07-13  Richard Henderson  <rth@redhat.com>
10584
10585         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
10586         by reference.
10587         (ind_gimplify_va_arg_expr): Remove.
10588         * tree.h (ind_gimplify_va_arg_expr): Remove.
10589         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
10590         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
10591         argsp to be null.
10592
10593         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
10594         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
10595         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
10596         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
10597         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
10598
10599 2004-07-13  Richard Henderson  <rth@redhat.com>
10600
10601         * function.c (pass_by_reference): New.
10602         (assign_parm_find_data_types): Use it.
10603         * calls.c (initialize_argument_information): Likewise.
10604         (emit_library_call_value_1): Likewise.
10605         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
10606         * function.h (pass_by_reference): Declare.
10607
10608 2004-07-13  Richard Henderson  <rth@redhat.com>
10609
10610         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
10611         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
10612         * expr.h (MUST_PASS_IN_STACK): Remove.
10613         * system.h (MUST_PASS_IN_STACK): Poison.
10614         * tree.h (must_pass_in_stack_var_size): Declare.
10615         (must_pass_in_stack_var_size_or_pad): Declare.
10616         * calls.c (must_pass_in_stack_var_size): New.
10617         (must_pass_in_stack_var_size_or_pad): Rename from
10618         default_must_pass_in_stack.
10619         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
10620         (TARGET_MUST_PASS_IN_STACK): New.
10621         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
10622         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
10623         (TARGET_MUST_PASS_IN_STACK): New.
10624         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
10625         * config/frv/frv.c (frv_must_pass_in_stack): New.
10626         (TARGET_MUST_PASS_IN_STACK): New.
10627         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
10628         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
10629         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
10630         (ix86_must_pass_in_stack): Make static.
10631         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
10632         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
10633         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
10634         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
10635         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
10636         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
10637         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
10638         (mcore_must_pass_on_stack): Remove.
10639         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
10640         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
10641         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
10642         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
10643         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
10644         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
10645         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
10646         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
10647         (TARGET_MUST_PASS_IN_STACK): New.
10648         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
10649         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
10650         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
10651         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
10652         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
10653         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
10654         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
10655         MUST_PASS_IN_STACK.
10656
10657         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
10658         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
10659         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
10660         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
10661         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
10662         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
10663         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
10664         config/xtensa/xtensa.c: Use target hook.
10665
10666 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
10667
10668         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
10669         * configure: Rebuilt.
10670
10671 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
10672
10673         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
10674         * config/mips/mips.h (mips_reg_names): Don't declare.
10675         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
10676         (TARGET_NAME_REGS): Delete.
10677         (TARGET_SWITCHES): Remove -mrnames.
10678         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
10679         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
10680         in REGISTER_NAMES.
10681         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
10682         (override_options): Remove handling of TARGET_NAME_REGS.
10683
10684 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
10685
10686         * config/mips/mips.h (TARGET_*): Boolify.
10687
10688 2004-07-12  Nick Clifton  <nickc@redhat.com>
10689
10690         * config.gcc: Add sh-*-symbianelf target.
10691         * config/sh/sh.c: Add new target macros:
10692         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
10693         TARGET_CXX_IMPORT_EXPORT_CLASS.
10694         (sh_file_start): Create a definition of the .directive section.
10695         (sh_attribute): Add dllimport and dllexport attributes.
10696         * config/sh/symbian-pre.h: New file.
10697         * config/sh/symbian-post.h: New file.
10698         * config/sh/symbian.c: New file. Contains Symbian specific
10699         functions.
10700         * config/sh/sh-protos.h: Add prototypes for new functions
10701         provided by symbian.c.
10702         * config/sh/t-symbian: New file.
10703         * doc/extend.texi: Document support for dllimport and dllexport
10704         attributes by the sh-symbianelf target.
10705
10706 2004-07-12  James E Wilson  <wilson@specifixinc.com>
10707
10708         * Makefile.in (AR): Use @AR@ not ar.
10709         (NM): New.
10710         (AR_FOR_TARGET): Use $(AR) not ar for native.
10711         (NM_FOR_TARGET): Use $(NM) not nm for native.
10712         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
10713         * configure: Regenerate.
10714
10715 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
10716
10717         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
10718         special case.
10719         (ashldi3_sp64): Likewise.
10720
10721 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10722
10723         PR target/16477
10724         * pa.c (function_arg): Update comment.
10725         * pa.h (BLOCK_REG_PADDING): Define.
10726
10727 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10728
10729         PR tree-optimization/16461
10730         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
10731         arguments of phi nodes.
10732
10733 2004-07-12  Devang Patel  <dpatel@apple.com>
10734
10735         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
10736
10737 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
10738
10739         * function.c (expand_function_start): Ensure r_save is in Pmode.
10740         * calls.c (prepare_call_address): Ensure static_chain_value is
10741         in Pmode.
10742         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
10743         r_save_area are in Pmode.
10744         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
10745         fnaddr, and static_chain are in Pmode.
10746
10747 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
10748
10749         PR target/16445
10750         * config/ia64/ia64.c (bundling): Don't count ignored insns.
10751
10752 2004-07-12  Richard Henderson  <rth@redhat.com>
10753
10754         * target.h (struct gcc_target): Move gimplify_va_arg_expr
10755         next to build_builtin_va_list.
10756         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
10757         * builtins.c (gimplify_va_arg_expr): Likewise.
10758         * gimplify.c (copy_if_shared_r): Likewise.
10759
10760 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
10761
10762         * passes.c (rest_of_decl_compilation): Don't defer call of
10763         assemble_variable if its DECL_RTL is already set.
10764
10765 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
10766
10767         * cfgloop.h (struct loop): Add nb_iterations field.
10768         (current_loops): Declare.
10769         * tree-chrec.c (chrec_not_analyzed_yet,
10770         chrec_dont_know, chrec_known, count_ev_in_wider_type,
10771         chrec_contains_symbols_defined_in_loop): Remove the temporary
10772         hooks.
10773         * tree-flow-inline.h (loop_containing_stmt): New function.
10774         * tree-scalar-evolution.c: Add implementation.
10775         * tree-scalar-evolution.h: Add declarations.
10776
10777 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
10778
10779         PR rtl-optimization/15921
10780         * Makefile.in (global.o): Add recog.h.
10781
10782         * global.c (recog.h): Add the include-clause.
10783         (bb_info): New member earlyclobber.
10784         (allocate_bb_info, free_bb_info): Initialize/finish the new
10785         member.
10786         (earlyclobber_regclass, earlyclobber_regclass_length): The new
10787         global variables.
10788         (check_earlyclobber, regclass_intersect,
10789         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
10790         New functions.
10791         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
10792         (make_accurate_live_analysis): Modify pavin.
10793
10794 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
10795
10796         * tree-cfg.c (find_taken_edge): Statically compute the truth
10797         value of a predicate comparing an SSA_NAME to itself.
10798
10799 2004-07-12  Roger Sayle  <roger@eyesopen.com>
10800
10801         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
10802         rs6000 doesn't have shift-and-add or shift-and-sub instructions
10803         by returning the cost of a multiplication plus an addition.
10804
10805 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
10806
10807         PR tree-optimization/14107
10808         * gimplify.c (gimplify_return_expr): Accept a
10809         RETURN_EXPR with an error argument.
10810         * tree-optimize.c (init_tree_optimization_passes):
10811         Run pass_warn_function_return at -O0.
10812
10813 2004-07-12  Roger Sayle  <roger@eyesopen.com>
10814
10815         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
10816         index entry.
10817
10818 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
10819
10820         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
10821         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10822         * config/mips/3000.md: Add copyright notice.  Remove automota and
10823         function units; use generic ones instead.  Only define reservations
10824         for things that are different from generic.md.  Extend each clause
10825         to include r3900.
10826         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
10827         * config/mips/mips.md: Include them. Remove define_function_units.
10828         (alu, imuldiv): New automata and units.
10829
10830 2004-07-12  Ben Elliston  <bje@au.ibm.com>
10831
10832         * doc/invoke.texi (Optimize Options): Document -frename-registers
10833         not being enabled by default at -O3.
10834
10835 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10836
10837         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
10838         floating point additions, to keep real immediate constant positive.
10839         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
10840         into X + C, and leave positive real constants as X - C.
10841
10842 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10843
10844         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
10845
10846 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10847
10848         PR tree-optimization/15654
10849         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
10850
10851 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10852
10853         * builtins.c (fold_builtin_fputs): Don't bother converting the
10854         return type to integer_type_node, as we've already checked that
10855         the result will be ignored.
10856
10857         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
10858         that signed addition, subtraction, multiplication, division,
10859         remainder, negation and absolute value may potentially trap.
10860
10861         * fold-const.c (fold_ignored_result): New function to strip
10862         non-side-effecting tree nodes from an expression whose result
10863         is ignored.
10864         (fold_convert): Call fold_ignored_result when casting a value
10865         to VOID_TYPE.
10866         (omit_one_operand):  Call fold_ignored_result on the "omitted"
10867         operand when building a COMPOUND_EXPR.
10868         (pedantic_omit_one_operand): Likewise.
10869         * tree.h (fold_ignored_result): Prototype here.
10870         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
10871         when we're going to ignore the result.
10872
10873 2004-07-11  Richard Henderson  <rth@redhat.com>
10874
10875         PR tree-opt/16383
10876         * tree-ssa-ccp.c (fold_stmt_r): Split out...
10877         * tree.c (fields_compatible_p, find_compatible_field): ... new.
10878         * tree.h (fields_compatible_p, find_compatible_field): Declare.
10879         * tree-sra.c (sra_hash_tree): Hash fields by offset.
10880         (sra_elt_eq): Use fields_compatible_p.
10881         (generate_one_element_ref): Use find_compatible_field.
10882
10883 2004-07-11  Richard Henderson  <rth@redhat.com>
10884
10885         PR tree-opt/16422
10886         * tree-sra.c (generate_one_element_init): New.
10887         (generate_element_init): Use it.
10888         (scalarize_init): Push/pop gimplify context around it.
10889         (find_new_referenced_vars_1, find_new_referenced_vars): New.
10890         * gimplify.c (gimplify_expr): Allow SSA_NAME.
10891
10892 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10893
10894         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
10895         combine.c's combine_insn_cost.
10896         * rtl.h (insn_rtx_cost): Prototype here.
10897         * combine.c (combine_insn_cost): Delete function.
10898         (combine_validate_cost): Update callers of combine_insn_cost to
10899         call insn_rtx_cost instead.
10900         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
10901         requesting the rtx_cost of call and/or jump instructions.
10902
10903         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
10904         rtx_cost directly.  Don't request/use the cost of call or jump
10905         instructions.  Return -1 if the cost of any instruction can't be
10906         determined (or the BB contains a function call).
10907         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
10908         -1 (i.e. can't determine the cost of any instruction or the basic
10909         block contains a subroutine call).
10910         (find_if_case_2): Likewise.
10911
10912 2004-07-11  Roger Sayle  <roger@eyesopen.com>
10913
10914         * rs6000.c (struct processor_costs): Change semantics of fields to
10915         include the COST_N_INSNS scaling, and update all initializers.
10916         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
10917         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
10918         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
10919         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
10920
10921 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10922
10923         * LANGUAGES: Remove obsolete information.
10924
10925 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
10926
10927         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
10928         SIGBUS signal frames, the PSW address points *to* the faulting
10929         instruction, not after it.
10930
10931 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
10932
10933         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
10934         added to TLS symbol addresses.
10935
10936 2004-07-11  Richard Henderson  <rth@redhat.com>
10937
10938         * expmed.c (init_expmed): Use stack-local structures for
10939         temporary rtl.  Don't recognize shifts.
10940
10941 2004-07-11  Richard Henderson  <rth@redhat.com>
10942
10943         * expr.c (store_expr): Don't fiddle subreg promotion for types
10944         with precision smaller than the mode.
10945
10946 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10947
10948         * tree.h (all_types_permanent): Remove.
10949
10950 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10951
10952         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
10953         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
10954         * langhooks.c (lhd_clear_binding_stack): Remove.
10955         * langhooks-def.h (lhd_clear_binding_stack,
10956         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
10957         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
10958         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
10959         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
10960         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
10961         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
10962         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
10963         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
10964         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
10965         * tree.h (poplevel): Don't declare.
10966         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
10967         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
10968         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
10969         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
10970         Remove.
10971
10972 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10973
10974         PR tree-optimization/16437
10975         * c-common.c (shorten_compare): Don't mark result of conversion to
10976         narrower signed type as overflowing.
10977         * fold-const.c (decode_field_reference): Determine whether
10978         signedness comes from outer type using precision rather than size.
10979
10980 2004-07-11  Phil Edwards  <phil@codesourcery.com>
10981
10982         * configure.ac:  Alphabetize --enable-checking list, add
10983         missing valgrind entry.
10984         * configure:  Regenerate.
10985
10986 2004-07-11  Phil Edwards  <phil@codesourcery.com>
10987
10988         * doc/install.texi (Testing):  Fix syntax in "make check" example.
10989
10990 2004-07-10  James E Wilson  <wilson@specifixinc.com>
10991
10992         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
10993
10994 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10995
10996         PR rtl-optimization/16001
10997         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
10998         niter_expr.
10999
11000 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
11001
11002         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
11003
11004 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
11005             James Morrison  <phython@gcc.gnu.org>
11006
11007         * doc/contrib.texi (Contributors): Add gfortran contributors and
11008         fix a couple of typos.
11009
11010 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11011
11012         PR rtl-optimization/15387
11013         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
11014         to incoming args space correctly.
11015
11016 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11017
11018         * pa.c (output_indirect_call): Only use %r2 as the link register in
11019         indirect calls with the long PA 2.0 pc-relative branch.
11020
11021 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
11022
11023         * config/i386/i386.c (override_options): Pick a 64-bit CPU
11024         for the default tuning if TARGET_64BIT.
11025
11026 2004-07-10  Richard Henderson  <rth@redhat.com>
11027
11028         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
11029         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
11030
11031 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
11032
11033         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
11034         * expmed.c (store_bit_field, extract_bit_field): Remove last
11035         argument.
11036         * builtins.c (expand_builtin_signbit): Adjust callers.
11037         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
11038         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
11039         * ifcvt.c (noce_emit_move_insn): Likewise.
11040         * stmt.c (expand_return): Likewise.
11041         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
11042         store_field, expand_expr_real_1): Likewise.
11043
11044 2004-07-10  Richard Henderson  <rth@redhat.com>
11045
11046         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
11047
11048 2004-07-09  Mike Stump  <mrs@apple.com>
11049
11050         * config/darwin.c (no_dead_strip): Add.
11051         (HAVE_DEAD_STRIP): Add.
11052         (darwin_emit_unwind_label): Ensure that we don't dead code strip
11053         the .eh label.
11054
11055 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11056
11057         * tree-ssa-loop-im.c: New file.
11058         * Makefile.in (tree-ssa-loop-im.o): Add.
11059         * cfgloop.c (superloop_at_depth): New function.
11060         * cfgloop.h (superloop_at_depth): Declare.
11061         * common.opt (ftree-lim): New flag.
11062         * expr.c (array_ref_up_bound): New function.
11063         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
11064         * timevar.def (TV_LIM): New timevar.
11065         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
11066         computing immediate uses of a phi node.
11067         * tree-flow.h (struct tree_ann_common_d): Add aux field.
11068         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
11069         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
11070         * tree-pass.h (pass_lim): Declare.
11071         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
11072         functions.
11073         (pass_lim): New pass structure.
11074         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
11075         * tree.c (in_array_bounds_p): New function.
11076         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
11077         (in_array_bounds_p, array_ref_up_bound): Declare.
11078         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
11079         * doc/passes.texi (tree-ssa-loop-im.c): Document.
11080
11081 2004-07-09  Richard Henderson  <rth@redhat.com>
11082
11083         * builtins.c (expand_builtin_stpcpy): Don't modify len.
11084
11085         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
11086         with prejudice.
11087
11088 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
11089
11090         * flags.h: Delete redundant prototypes that are being generated
11091         in options.h from common.opt.
11092         * common.opt: Add in the expository comments formerly in flags.h.
11093
11094 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11095
11096         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
11097         available for use only when TARGET_MMX/_SSE is set, and check for
11098         variable argument function if any register count is non-zero.
11099         (function_arg): Correctly suppress repeated warnings for passing SSE
11100         vectors are arguments without SSE enabled.
11101         (ix86_function_arg_boundary): Without SSE enabled, the use of what
11102         would be SSE register modes does no longer influence the alignment.
11103
11104 2004-07-09  Richard Henderson  <rth@redhat.com>
11105
11106         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
11107         Always align upward to arg boundary.  Use size_in_bytes/round_up.
11108         Maintain type-correctness of constants.
11109         * stor-layout.c (round_up, round_down): Special-case powers of 2.
11110
11111 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
11112
11113         * config/sparc/sparc.c (*_costs): Scale instruction costs
11114         by COSTS_N_INSNS.
11115         (sparc_rtx_costs): Adjust as appropriate.
11116
11117 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11118
11119         * config/i386/mm3dnow.h: New.
11120         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
11121
11122 2004-07-09  Richard Henderson  <rth@redhat.com>
11123
11124         * simplify-rtx.c (simplify_const_relational_operation): Only
11125         look at bounds of scalar integers.
11126
11127 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11128
11129         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
11130
11131 2004-07-09  Andrew Pinski  <apinski@apple.com>
11132
11133         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
11134         always referenced.
11135         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
11136         UOBJC_METACLASS_decl.
11137
11138 2004-07-09  James E Wilson  <wilson@specifixinc.com>
11139
11140         PR target/16364
11141         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
11142         do return a parallel if hfa_mode == XFmode and mode == TImode.
11143
11144 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11145
11146         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
11147         permissible for unary plus.
11148
11149 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11150
11151         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
11152         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
11153         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
11154         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
11155         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
11156         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
11157         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
11158         (BUILTIN_xxxIMAX): New.
11159         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
11160         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
11161         BUILT_IN_PARITYIMAX.
11162
11163 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
11164
11165         * config/sparc/sparc.h (processor_costs): Define.
11166         (sparc_costs): Declare.
11167         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
11168         hypersparc_costs, sparclet_costs, ultrasparc_costs,
11169         ultrasparc3_costs): New.
11170         (sparc_override_options): Set sparc_costs as appropriate.
11171         (sparc_rtx_costs): Use sparc_costs instead of messy
11172         conditionals.
11173
11174 2004-07-09  Steven Bosscher  <stevenb@suse.de>
11175
11176         * doc/md.texi (Processor pipeline description): Mention that
11177         the old pipeline description is deprecated.
11178
11179         * config/rs6000/7450.md (automaton ppc7450): Split up, move
11180         mciu_7450 function unit to...
11181         (automaton ppc7450mciu): ...new automaton.
11182
11183         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
11184         (schedule_block): Don't consider inserting bubbles.
11185         (sched_init): Don't initialize DFA bubbles.
11186         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
11187         TARGET_SCHED_DFA_BUBBLE): Remove.
11188         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
11189         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
11190         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
11191
11192         * stmt.c (conditional_context): Remove prototype.
11193         * tree.h (conditional_context): Remove.
11194         * tree-cfg.c (pre_insert_on_edge): Remove.
11195
11196         * c-common.h (c_expand_asm_operands): Remove prototype.
11197         * c-typeck.c (c_expand_asm_operands): Remove.
11198
11199 2004-07-09  Jan Beulich  <jbeulich@novell.com>
11200
11201         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
11202         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
11203         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
11204         and V8QI are class SSE. All sufficiently small remaining vector modes
11205         must be passed in one or two integer registers.
11206         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
11207         returned in memory.
11208         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
11209         __builtin_ia32_pmuludq128 have non-uniform argument and return types
11210         and must thus be handled explicitly.
11211         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
11212         MMX and XMM regs.
11213         (movv8qi_internal, movv4hi_internal, movv2si_internal,
11214         movv2sf_internal): Permit moving between MMX and XMM registers (since
11215         MMX areguments and return values are passed in XMM registers).
11216         (sse2_umulsidi3): Correct type and mode.
11217
11218 2004-07-09  Richard Henderson  <rth@redhat.com>
11219
11220         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
11221
11222 2004-07-09  Eric Christopher  <echristo@redhat.com>
11223
11224         * config/rs6000/40x.md: Split into two automatons.
11225
11226 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
11227             Andrew Pinski  <apinski@apple.com>
11228
11229         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
11230         on when we have more than one input file.
11231         (c_common_parse_file): Restore loop over all input files.
11232         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
11233
11234         * c-decl.c (set_type_context): New function.
11235         (pop_scope): Use it to set context of types.  When we
11236         encounter a TYPE_DECL, set the context of the attached type too.
11237         (pop_file_scope): Don't call cpp_undef_all here.
11238         (diagnose_mismatched_decls): Do not complain about a second
11239         definition of an 'extern inline' function if it's not in the
11240         same translation unit.  Do not complain about inline
11241         declaration after use if the use was in a different
11242         translation unit.
11243         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
11244         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
11245         the external scope.
11246         (pushdecl_top_level): Likewise.
11247         (grokdeclarator): Clarify what is going on with setting
11248         DECL_EXTERNAL on function types, a little.
11249         (c_write_global_declarations): Don't do anything if
11250         -fsyntax-only or errors have been encountered.
11251
11252 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
11253
11254         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
11255
11256 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11257
11258         PR target/16459
11259         * pa.c (output_indirect_call): Use %r2 as the link register when
11260         calling $$dyncall with a pc-relative branch.
11261
11262 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
11263
11264         * doc/install.texi (Binaries): Mention OpenPKG.
11265
11266 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
11267
11268         Fix PR tree-optimization/15555
11269         * tree-dfa.c (dump_variable): If the variable is a pointer
11270         SSA_NAME, also dump its points-to information.
11271         * tree-flow.h (struct ptr_info_def): Add field
11272         is_dereferenced.
11273         (dump_points_to_info_for): Declare.
11274         (debug_points_to_info_for): Declare.
11275         * tree-optimize.c (init_tree_optimization_passes): Add a
11276         second alias analysis pass after DOM2.
11277         Move pass_del_pta to a later spot.
11278         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
11279         create a name tags when we find a dereferenced pointer.  Just
11280         mark the pointer dereferenced.
11281         (collect_points_to_info_for): Move code to clear points-to
11282         information to create_name_tags.
11283         (create_name_tags): New function.
11284         (compute_flow_sensitive_aliasing): Call it.
11285         (setup_pointers_and_addressables): Mark type tags for renaming
11286         here instead of ...
11287         (create_memory_tag): ... here.
11288         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
11289         (dump_points_to_info_for): Declare extern.
11290         (debug_points_to_info_for): New function.
11291
11292 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
11293
11294         * config/arc/arc.md: Switch to DFA-based scheduler description.
11295         * config/arc/arc.c: Switch to DFA-based scheduler description.
11296
11297 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11298
11299         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
11300         pointer.
11301
11302 2004-07-09  Richard Henderson  <rth@redhat.com>
11303
11304         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
11305         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11306         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
11307         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
11308
11309         * config/v850/v850-protos.h (v850_va_arg): Remove.
11310         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11311         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
11312         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
11313         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
11314         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
11315
11316 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11317
11318         PR target/12133
11319         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
11320         and DImode to use +/-4k offset.
11321
11322 2004-07-09  Richard Henderson  <rth@redhat.com>
11323
11324         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
11325         Remove.
11326         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11327         (xstormy16_gimplify_va_arg_expr): Rewrite from
11328         xstormy16_expand_builtin_va_arg.
11329         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
11330
11331         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
11332         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
11333
11334         * config/sh/sh-protos.h (sh_va_arg): Remove.
11335         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11336         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
11337         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
11338
11339         * config/pa/pa-protos.h (hppa_va_arg): Remove.
11340         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11341         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
11342         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
11343
11344         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
11345         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11346         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
11347         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
11348
11349 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
11350
11351         * config/sparc/sparc.md (return): Rewrite length formula.
11352         * config/sparc/sparc.c (output_return): Pass 1 as 5th
11353         argument to final_scan_insn when in a delay slot.
11354         (output_sibcall): Likewise.
11355
11356 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
11357
11358         * arm.c (arm_cpp_interwork): New variable.
11359         (arm_override_options): Set it if TARGET_INTERWORK was on the command
11360         line.
11361         * arm.h (arm_cpp_interwork): Declare it.
11362         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
11363         __THUMB_INTERWORK__ in the preprocessor.
11364
11365 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
11366
11367         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
11368
11369 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
11370
11371         PR target/16416
11372         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
11373         Override default settings to account for -m32 and -m64.
11374
11375 2004-07-08  Randolph Chung  <tausq@debian.org>
11376
11377         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
11378
11379 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
11380
11381         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
11382         before comparing it as such.
11383
11384 2004-07-08  Richard Henderson  <rth@redhat.com>
11385
11386         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
11387         temporary.  Use bit arithmetic to align.
11388
11389 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
11390
11391         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
11392         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
11393         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
11394         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
11395         add_labels_and_missing_jumps, find_jump_block,
11396         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
11397         Likewise.
11398         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
11399         link_btr_uses, move_btr_def): Likewise.
11400         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
11401         expand_builtin_expect_jump): Likewise.
11402         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
11403         * calls.c (expand_call, emit_library_call_value_1): Likewise.
11404         * cfganal.c (forwarder_block_p): Likewise.
11405         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
11406         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
11407         find_bb_boundaries): Likewise.
11408         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
11409         merge_blocks_move_predecessor_nojumps,
11410         merge_blocks_move_successor_nojumps, insns_match_p,
11411         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
11412         try_optimize_cfg): Likewise.
11413         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
11414         * cfglayout.c (skip_insns_after_block, label_for_bb,
11415         record_effective_endpoints, insn_locators_initialize,
11416         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
11417         * cfgmainloop.c (create_loop_notes): Likewise.
11418         * cfgrtl.c (delete_insn, delete_insn_chain,
11419         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
11420         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
11421         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
11422         redirect_branch_edge, force_nonfallthru_and_redirect,
11423         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
11424         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
11425         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
11426         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
11427         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
11428         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
11429         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
11430         * combine.c (combine_instructions, can_combine_p, try_combine,
11431         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
11432         distribute_notes, distribute_links, insn_cuid): Likewise.
11433         * cse.c (fold_rtx, cse_insn, cse_around_loop,
11434         invalidate_skipped_block, cse_set_around_loop,
11435         cse_end_of_basic_block, cse_main, cse_basic_block,
11436         cse_condition_code_reg): Likewise.
11437         * cselib.c (cselib_process_insn): Likewise.
11438         * ddg.c (create_ddg): Likewise.
11439         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
11440         Likewise.
11441         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
11442         gen_label_die, dwarf2out_var_location): Likewise.
11443         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
11444         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
11445         last_call_insn, active_insn_p, next_label, prev_label,
11446         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
11447         add_insn_before, remove_insn, add_function_usage_to,
11448         reorder_insns, find_line_note, remove_unnecessary_notes,
11449         emit_insn_after_1, classify_insn): Likewise.
11450         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
11451         connect_post_landing_pads, sjlj_mark_call_sites,
11452         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
11453         can_throw_internal, can_throw_external, set_nothrow_function_flags,
11454         convert_to_eh_region_ranges): Likewise.
11455         * explow.c (optimize_save_area_alloca): Likewise.
11456         * expr.c (expand_expr_real): Likewise.
11457         * final.c (insn_current_reference_address, compute_alignments,
11458         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
11459         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
11460         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
11461         propagate_block_delete_insn, propagate_one_insn,
11462         init_propagate_block_info, propagate_block, libcall_dead_p,
11463         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
11464         Likewise.
11465         * function.c (instantiate_virtual_regs, reorder_blocks_1,
11466         expand_function_start, expand_function_end, contains,
11467         thread_prologue_and_epilogue_insns,
11468         reposition_prologue_and_epilogue_notes): Likewise.
11469         * gcse.c (constprop_register, bypass_conditional_jumps,
11470         insert_insn_end_bb, gcse_after_reload): Likewise.
11471         * genemit.c (gen_expand, gen_split): Likewise.
11472         * genpeep.c (gen_peephole, main): Likewise.
11473         * global.c (build_insn_chain): Likewise.
11474         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
11475         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
11476         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
11477         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
11478         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
11479         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
11480         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
11481         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
11482         dead_or_predicable): Likewise.
11483         * integrate.c (try_constants): Likewise.
11484         * jump.c (rebuild_jump_labels, cleanup_barriers,
11485         purge_line_number_notes, init_label_info, mark_all_labels,
11486         squeeze_notes, get_label_before, get_label_after,
11487         reversed_comparison_code_parts, simplejump_p, pc_set,
11488         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
11489         delete_barrier, delete_prior_computation, delete_computation,
11490         delete_related_insns, delete_for_peephole, redirect_jump):
11491         Likewise.
11492         * lcm.c (optimize_mode_switching): Likewise.
11493         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
11494         Likewise.
11495         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
11496         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
11497         * loop-iv.c (simplify_using_assignment): Likewise.
11498         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
11499         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
11500         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
11501         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
11502         check_insn_for_givs, check_final_value, update_giv_derive,
11503         basic_induction_var, product_cheap_p, check_dbra_loop,
11504         loop_insn_first_p, last_use_this_basic_block,
11505         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
11506         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
11507         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
11508         sms_schedule_by_order): Likewise.
11509         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
11510         * postreload.c (reload_cse_simplify_operands, reload_combine,
11511         reload_cse_move2add): Likewise.
11512         * predict.c (can_predict_insn_p, estimate_probability,
11513         expected_value_to_br_prob, process_note_predictions): Likewise.
11514         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
11515         * profile.c (branch_prob): Likewise.
11516         * ra-build.c (live_out_1, livethrough_conflicts_bb,
11517         detect_webs_set_in_cond_jump): Likewise.
11518         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
11519         ra_print_rtl_with_bb): Likewise.
11520         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
11521         * recog.c (next_insn_tests_no_inequality, find_single_use,
11522         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
11523         * reg-stack.c (next_flags_user, record_label_references,
11524         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
11525         compensate_edge, convert_regs_1): Likewise.
11526         * regclass.c (scan_one_insn): Likewise.
11527         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
11528         regmove_optimize, fixup_match_1, single_set_for_csa,
11529         combine_stack_adjustments_for_block): Likewise.
11530         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
11531         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
11532         find_equiv_reg): Likewise.
11533         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
11534         reload_as_needed, emit_input_reload_insns, do_output_reload,
11535         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
11536         Likewise.
11537         * reorg.c (find_end_label, emit_delay_sequence,
11538         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
11539         get_jump_flags, rare_destination, mostly_true_jump,
11540         try_merge_delay_insns, redundant_insn, own_thread_p,
11541         fill_simple_delay_slots, fill_slots_from_thread,
11542         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
11543         dbr_schedule): Likewise.
11544         * resource.c (find_basic_block, next_insn_no_annul,
11545         find_dead_or_set_registers, mark_target_live_regs): Likewise.
11546         * rtl.h (RTX_PREV): Likewise.
11547         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
11548         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
11549         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
11550         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
11551         tablejump_p, computed_jump_p, insns_safe_to_move_p,
11552         find_first_parameter_load, can_hoist_insn_p): Likewise.
11553         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
11554         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
11555         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
11556         schedule_ebbs): Likewise.
11557         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
11558         is_conditionally_protected, can_schedule_ready_p,
11559         add_branch_dependences, debug_dependencies): Likewise.
11560         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
11561         Likewise.
11562         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
11563         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
11564         set_dominates_use, ujump_to_loop_cont): Likewise.
11565         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
11566         * varasm.c (output_constant_pool_1): Likewise.
11567
11568 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11569
11570         * tree-scalar-evolution.c: New file.
11571         * tree-scalar-evolution.h: New file.
11572         * tree-ssa-loop-niter.c: New file.
11573         * Makefile.in (SCEV_H): New.
11574         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
11575         * cfgloop.h (struct loop): Add bounds field.
11576         * tree-flow.h (struct tree_niter_desc): New type.
11577         (number_of_iterations_cond, number_of_iterations_exit,
11578         loop_niter_by_eval, find_loop_niter_by_eval,
11579         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
11580         free_numbers_of_iterations_estimates): Declare.
11581         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
11582         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
11583         * doc/invoke.texi (max-iterations-to-track): Document.
11584
11585 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
11586
11587         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
11588         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
11589         (MODE_AFTER): Add cast appropriately.
11590         * config/sh/sh.md (movdi splitter): Likewise.
11591         (casesi_worker_2): Add const qualifier appropriately.
11592         (eh_return): Remove unused variable.
11593         (insv): Initialize v;
11594
11595 2004-07-08  Richard Henderson  <rth@redhat.com>
11596
11597         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
11598         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11599         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
11600         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
11601         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
11602
11603         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
11604         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11605         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
11606         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
11607
11608         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
11609         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11610         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
11611         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
11612
11613         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
11614         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11615         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
11616         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
11617
11618         * config/i860/i860-protos.h (i860_va_arg): Remove.
11619         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11620         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
11621         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
11622
11623 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
11624
11625         * system.h: Prototype getpagesize if missing.
11626         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
11627         * configure: Regenerate.
11628         * config.in: Regenerate.
11629
11630 2004-07-08  Richard Henderson  <rth@redhat.com>
11631
11632         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
11633         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11634         (fr30_gimplify_va_arg_expr): New.
11635         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
11636         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
11637
11638 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
11639
11640         PR target/16414
11641         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
11642         of asm_noperands result.
11643
11644 2004-07-08  Richard Henderson  <rth@redhat.com>
11645
11646         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
11647         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11648         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
11649         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
11650
11651 2004-07-08  Richard Henderson  <rth@redhat.com>
11652
11653         * builtins.c (ind_gimplify_va_arg_expr): New.
11654         * tree.h (ind_gimplify_va_arg_expr): Declare.
11655         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
11656
11657 2004-07-08  Jan Beulich  <jbeulich@novell.com>
11658
11659         * expmed.c (extract_bit_field): Correct condition to use vec_extract
11660         patterns also on vector elements other than the first one.
11661         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
11662         break statements.
11663
11664 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
11665
11666         * config/rs6000/darwin-ldouble.c: Correct reference
11667         to the Linnainmaa paper.
11668
11669 2004-07-08  Richard Henderson  <rth@redhat.com>
11670
11671         * config/arc/arc-protos.h (arc_va_arg): Remove.
11672         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11673         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
11674         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
11675
11676         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
11677         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
11678         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
11679         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
11680
11681 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11682
11683         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
11684
11685 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
11686
11687         * c-decl.c (static_ctors, static_dtors): Make static.
11688         (pop_file_scope): Call c_common_write_pch and
11689         cgraph_finalize_compilation_unit here.
11690         (build_cdtor): Moved here from c-objc-common.c; simplify.
11691         (c_write_global_declarations_1): Clarify comment.
11692         (c_write_global_declarations): Close the external scope before
11693         doing anything else.  Call build_cdtor, cgraph_optimize, and
11694         mudflap_finish_file here.
11695         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
11696         Clarify comment.
11697         * c-objc-common.c: No need to include cgraph.h.
11698         (build_cdtor): Moved to c-decl.c.
11699         (c_objc_common_finish_file): Delete.
11700         * c-tree.h: Update to match.
11701         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
11702         (generate_static_references): Set TREE_USED before calling finish_decl.
11703         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
11704         on the static_instances_decl.
11705
11706 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
11707
11708         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
11709         decls when there is only one input translation unit.
11710         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
11711         change of 2004-07-05; do not treat declarations with
11712         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
11713         * opts.c (cur_in_fname): Delete.
11714         * opts.h: Likewise.
11715         * tree.c: Revert changes of 2004-07-05; no special treatment
11716         for TRANSLATION_UNIT_DECLs.
11717         * Makefile.in (tree.o): Update dependencies.
11718
11719 2004-07-08  Roger Sayle  <roger@eyesopen.com>
11720
11721         * builtins.c (fold_builtin_strcpy): Merge functionality from
11722         simplify_builtin_strcpy.  Add additional len argument.  No longer
11723         static.  Remove function prototype.
11724         (fold_builtin_strncpy): Likewise integrate functionality from
11725         simplify_builtin_strncpy.  Add additional slen argument.  No
11726         longer static.  Remove function prototype.
11727         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
11728         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
11729         types of "ignore" and "unlocked" parameters to bool.
11730         (fold_builtin_1):  Add additional ignore argument.  Call renamed
11731         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
11732         builtins.  Update arguments to fold_builtin_strncpy and
11733         fold_builtin_strcpy.  Add function prototype.
11734         (fold_builtin): Add additional Boolean ignore argument to pass
11735         to fold_builtin_1.
11736         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
11737         and fold_builtin_strncpy instead of simplify_builtin_fputs,
11738         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
11739
11740         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
11741         simplify_builtin_strncpy): Delete function prototypes.
11742         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
11743         fold_builtin_strncpy): Add function prototypes here.
11744         (fold_builtin): Update function prototype with new "bool ignore".
11745
11746         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
11747         (ccp_fold_builtin):  Update call to fold_builtin.  Call
11748         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
11749         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
11750         simplify_builtin_strncpy respectively.
11751         * fold-const.c (fold): Update call to fold_builtin.
11752
11753 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
11754
11755         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
11756         to strcpy.
11757
11758         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
11759         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
11760         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
11761         * calls.c: Remove ifdefs of macros above.
11762         * functions.c: Likewise.
11763         * expr.c: Likewise.
11764
11765 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11766
11767         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
11768         (arch attribute): Delete.
11769         (current_function_calls_alloca attribute): Rename into calls_alloca.
11770         (calls_eh_return): New attribute.
11771         (leaf_function): Likewise.
11772         (length attribute): Fix formula for sibcalls.
11773         (return insn): Correctly compute the 'length' attribute.
11774         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
11775
11776 2004-07-08  Richard Henderson  <rth@redhat.com>
11777
11778         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
11779         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
11780         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
11781         * tree-eh.c (lower_eh_constructs_1): Likewise.
11782         * tree-sra.c (sra_walk_modify_expr): Likewise.
11783         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11784         (eliminate_unnecessary_stmts): Likewise.
11785         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
11786         * tree-tailcall.c (optimize_tail_call): Likewise.
11787         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
11788
11789 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11790             Jakub Jelinek  <jakub@redhat.com>
11791
11792         * config/i386/i386.c (override_options): Enable
11793         SSE prefetches with -mtune, as long as we are
11794         compiling for i686 or higher.  All i686 processors
11795         accept SSE prefetches as NOPS, some i586's don't.
11796
11797 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11798
11799         PR target/10567
11800         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
11801
11802 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
11803
11804         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
11805         the handling of clobbering ASM_EXPRs.
11806
11807 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11808
11809         PR target/16430
11810         * config/sparc/sparc.c (function_value): In 64-bit mode,
11811         return the aggregates larger than 16 bytes like unions.
11812
11813 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11814
11815         PR target/16199
11816         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
11817         'temp' is zero, generate new pseudos as needed and emit the
11818         sequence of insns in single-assignment form.  Resync comments
11819         with code.
11820         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
11821         function before reload.
11822
11823 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
11824
11825         * vec.c (vec_assert_fail): Remove duplicate 'function'.
11826
11827         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
11828
11829         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
11830         Allocation is signed.
11831         (VEC_reserve): Return flag, allocation is signed.
11832
11833 2004-07-08  Richard Henderson  <rth@redhat.com>
11834
11835         * tree-ssa-ccp.c (fold_stmt): Get type directly from
11836         OBJ_TYPE_REF_OBJECT.
11837
11838 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11839             Neil Booth  <neil@daikokuya.co.uk>
11840
11841         PR c/2511
11842         PR c/3325
11843         * c-decl.c (finish_struct): Ensure bit-fields are given the
11844         correct type.
11845         * c-common.c (c_common_signed_or_unsigned_type): For C, require
11846         the precision to match as well as the mode.
11847         * expr.c (reduce_to_bit_field_precision): New function.
11848         (expand_expr_real_1): Reduce expressions of bit-field type to
11849         proper precision.
11850         * langhooks.h (reduce_bit_field_operations): New hook.
11851         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
11852         Define.
11853         * c-lang.c, objc/objc-lang.c
11854         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
11855         * objc/objc-act.c (check_ivars): Convert types to bit-field types
11856         before checking.
11857         * tree.c (build_nonstandard_integer_type): New function.
11858         * tree.h (build_nonstandard_integer_type): New prototype.
11859         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
11860         conversions between integer and boolean types as useless.
11861
11862 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11863
11864         * c-common.c (c_common_nodes_and_builtins): Do not
11865         create __builtin_ptrdiff_t and __builtin_size_t.
11866
11867 2004-07-08  Andrew Pinski  <apinski@apple.com>
11868
11869         * Makefile.in (libbackend.o): Add -combine to the gcc
11870         command line.
11871
11872 2004-07-08  Nick Clifton  <nickc@redhat.com>
11873
11874         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
11875         Set to -Os.
11876
11877 2004-07-08  Richard Henderson  <rth@redhat.com>
11878
11879         * except.c (expand_eh_region_start, expand_eh_region_end,
11880         expand_eh_handler, expand_eh_region_end_cleanup,
11881         expand_start_all_catch, expand_start_catch, expand_end_catch,
11882         expand_end_all_catch, expand_eh_region_end_allowed,
11883         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
11884         expand_eh_region_end_fixup): Remove.
11885         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
11886         cleanups, outer_cleanups, label_chain, exception_region.
11887         (struct goto_fixup): Remove stack_level, cleanup_list_list.
11888         (struct label_chain): Remove.
11889         (struct stmt_status): Remove x_stack_block_stack.
11890         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
11891         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
11892         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
11893         end_cleanup_deferral, last_cleanup_this_contour,
11894         containing_blocks_have_cleanups_or_stack_level,
11895         any_pending_cleanups): Remove.
11896         (expand_null_return_1): Take no arguments.
11897         (expand_label, expand_naked_return, expand_return,
11898         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
11899         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
11900         expand_end_case_type): Don't use any of them.
11901         * calls.c (expand_call): Likewise.
11902         * dojump.c (do_jump): Likewise.
11903         * function.c (expand_function_end): Likewise.
11904         * expr.c (store_expr, expand_expr_real_1): Likewise.
11905         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
11906         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
11907         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
11908         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
11909         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
11910         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
11911         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
11912         for WITH_CLEANUP_EXPR.
11913         (gimple_push_cleanup): Likewise.
11914         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
11915         * print-tree.c (print_node): Likewise.
11916         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
11917         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
11918         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
11919         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
11920         (GOTO_SUBROUTINE_EXPR): Remove.
11921         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
11922         (DECL_TOO_LATE): Remove.
11923         * except.h, tree.h: Update decls.
11924
11925 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
11926
11927         * explow.c (optimize_save_area_alloca): Do not accept parameters.
11928         * passes.c (rest_of_handle_final): Handle symout.
11929         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
11930         Push timevar here.
11931         (rest_of_handle_sched): Break out SMS.  Remove ifs for
11932         flag_schedule_insns and flag_modulo_sched.
11933         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
11934         collect at the end.
11935         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
11936         (rest_of_handle_partition_blocks, rest_of_handle_sms,
11937         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
11938         rest_of_handle_mode_switching, rest_of_handle_jump,
11939         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
11940         rest_of_handle_jump2, rest_of_handle_postreload,
11941         rest_of_handle_flow2, rest_of_clean_state,
11942         rest_of_handle_shorten_branches,
11943         rest_of_handle_prologue_epilogue,
11944         rest_of_handle_branch_target_load_optimize): New.
11945         (rest_of_compilation): Call the above.  Remove ggc_collect
11946         calls moved to rest_of_handle_*.
11947         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
11948
11949         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
11950         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
11951         * except.h (set_nothrow_function_flags): Update comment.
11952         * function.c (current_function_nothrow): Remove.
11953         * output.h (current_function_nothrow): Remove.
11954         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
11955         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
11956
11957 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
11958
11959         PR bootstrap/16326
11960         * reorg.c: Revert 2004-06-30 change.
11961         (find_end_label): If HAVE_epilogue and !HAVE_return,
11962         return 0 instead of creating a label at the end of the insn chain.
11963         (optimize_skip): Account for the failure mode of find_end_label.
11964         (fill_simple_delay_slots): Likewise.
11965         (fill_slots_from_thread): Likewise.
11966         (relax_delay_slots): Likewise.
11967
11968 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
11969
11970         * tree-flow.h (addressable_vars): Declare.
11971         * tree-ssa-alias.c (addressable_vars): Define.
11972         (setup_pointers_and_addressables): Add addressable variables
11973         to addressable_vars.
11974         * tree-ssa-operands.c (get_stmt_operands): Move
11975         handling of ASM_EXPRs ...
11976         (get_asm_expr_operands): ... here.
11977         When the ASM_EXPR clobbers memory, also clobber addressable
11978         variables.
11979         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
11980         (delete_tree_ssa): Reset addressable_vars.
11981
11982 2004-07-07  Jan Beulich  <jbeulich@novell.com>
11983             Richard Henderson  <rth@redhat.com>
11984
11985         * varasm.c (assemble_variable): Use assemble_zeros for
11986         zero-initialized variables.
11987         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
11988         for SECCAT_BSS and SECCAT_TBSS.
11989
11990 2004-07-07  Jan Beulich  <jbeulich@novell.com>
11991
11992         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
11993
11994         * expmed.c (emit_store_flag): Also special-case double-word
11995         (in-)equality comparison against -1.
11996
11997         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
11998         passing arguments the containers for which are registers.
11999
12000         * calls.c (emit_library_call_value_1): Use mode of function parameter
12001         rather than that of argument since constants have none.
12002
12003 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
12004
12005         Introduce H8SX support.
12006         * expr.c (expand_strcpy): Renamed and moved to...
12007         * builtins.c (expand_movstr): ... here.  Tweak.
12008         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
12009         computed or has side effects.
12010         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
12011         unused, or if mempcpy fails.  Adjust the return value in the
12012         latter case.  Use movstr if everything else fails.
12013         * doc/md.texi (movstr): Document.
12014         (movmemM, clrmemM): Fix explanation of memory block operands.
12015         * config/h8300/h8300.md (stpcpy): Renamed to...
12016         (movstr): ... this.  Adjust.
12017         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12018         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
12019         movmem* and clrstr* to clrmem*.
12020         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
12021         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
12022         GENERAL_REGS, always.
12023         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
12024         getting the stack pointer as addr.
12025         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
12026         from general_operand_dst.
12027         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
12028         variant of...
12029         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
12030         instead of requiring it to match only before reload.
12031         (stpcpy_internal_normal): New, normal-mode variant of...
12032         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
12033         `D' instead of requiring it to match only before reload.
12034         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
12035         mode argument.
12036         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
12037         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
12038         h8300_get_index.
12039         * config/h8300/h8300.md (attr type): Add call.
12040         (attr can_delay): If type is call, set it no.
12041         (call, call_value): Set type to call.
12042         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
12043         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
12044         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
12045         * tree.c (get_narrower): Don't narrow integral types into
12046         non-integral types.
12047         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
12048         frame_size *before* the first use.
12049         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
12050         on input.
12051         (peephole2): Don't widen instructions that push SP.  Move
12052         decrement of SP to the end of all stm-generating peepholes.
12053         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12054         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
12055         and OR to set it to all ones.
12056         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
12057         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
12058         (call, call_value): Set can_delay to "no".
12059         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
12060         * config/h8300/h8300.md (extzv): Make subreg check more robust.
12061         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12062         * config/h8300/h8300.md (*brabit): Remove.
12063         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
12064         zero_extract.  Use bit_memory_operand as the predicate for
12065         operand 1 and 'WU' as the constraint.  Check the difference
12066         between the base length and the final one when deciding which
12067         type of branch to use.
12068         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12069         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
12070         Use convert_move to extend the result for TARGET_H8300SX.  Check
12071         for QImode memory references.  Optimize the case where the
12072         destination is a paradoxical subreg.
12073         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12074         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
12075         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
12076         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
12077         * config/h8300/h8300.md: Include mova.md
12078         (length_table): Add mova and mova_zero.
12079         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
12080         after all constant addresses for '%R', '%X', '%T' and '%S'.
12081         (h8300_mova_length): New function.
12082         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
12083         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
12084         dependencies for s-config, etc.
12085         * config/h8300/gemova.sh: New file.
12086         * config/h8300/mova.md: Generated.
12087         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
12088         * config/h8300/h8300.c (h8300_bitfield_length): New.
12089         (nibble_operand): Adjust.
12090         (h8300_binary_length): Handle conditional binary op.
12091         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
12092         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
12093         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
12094         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
12095         constraints.  WU is introduced as a variant of U that requires a
12096         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
12097         * config/h8300/h8300.md (attr type): Added bitbranch.
12098         (attr length_table): Added bitfield and bitbranch.
12099         (attr length): Compute bitbranch length.
12100         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
12101         least-significant bit of a byte.
12102         (brabit, brabc, brabs): New.
12103         (insv, extzv): Emit bfst and bfld on H8300SX.
12104         (bfld, bfst, seq, sne): New.
12105         (bstzhireg, cmpstz, bstz, bistz): New.
12106         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
12107         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
12108         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
12109         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
12110         (h8sx_unary_memory_operator): New function.
12111         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
12112         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
12113         * config/h8300/h8300.md: Add peepholes to combine reloads and
12114         arithmetic insns.
12115         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12116         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
12117         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
12118         (and?i, ior?i, xor?i): Likewise.
12119         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
12120         * config/h8300/h8300.c: Move enums and prototypes to head of file.
12121         Various whitespace fixes.
12122         (h8300_constant_length): New function, split out from...
12123         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
12124         (h8300_classify_operand): Use IN_RANGE.
12125         (h8300_classify_operand): Use h8300_constant_length.
12126         (h8300_short_move_mem_p): Tighten size check.
12127         (h8sx_mergeable_memrefs_p): Tighten equality check.
12128         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
12129         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
12130         for -msx.
12131         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
12132         * config/h8300/crtn.asm: Likewise.
12133         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
12134         if __H8300SX__ is defined.
12135         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
12136         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
12137         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
12138         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
12139         addresses as mode-dependent.
12140         * config/h8300/h8300.c (print_operand_address): Update call to
12141         h8300_get_index.
12142         (h8300_get_index): Take a mode argument.  Rework to fix an
12143         earlier misunderstanding.
12144         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
12145         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
12146         into a register if TARGET_H8300SX.
12147         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
12148         TARGET_H8300SX.  Also disable related define_splits.
12149         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
12150         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
12151         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
12152         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
12153         * config/h8300/h8300.h (OK_FOR_Z): New macro.
12154         (EXTRA_CONSTRAINT_STR): Check it.
12155         * config/h8300/h8300.c (h8300_classify_operand): Accept null
12156         class arguments.
12157         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
12158         * config/h8300/h8300.md (length_table): Add mov_imm4.
12159         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
12160         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
12161         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
12162         be a label.
12163         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
12164         * config/h8300/h8300.c (h8300_reorg): New function.
12165         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12166         * config/h8300/h8300.md (length): Subtract the length of the
12167         delay slot from (pc) when checking the range of forward branches.
12168         (delay_slot, can_delay): New attributes.
12169         (define_delay): Add bra/s handling.
12170         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
12171         (jump): Add delayed-branch handling.
12172         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
12173         * expr.c (expand_strcpy): New function.
12174         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
12175         (expand_builtin_stpcpy): Likewise.
12176         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
12177         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
12178         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
12179         handling to improve register allocation for -fno-omit-frame-pointer.
12180         (h8sx_split_movmd): Delete, moving er6 handling into...
12181         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
12182         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
12183         (movmd): Add calls to copy_rtx.
12184         (movmd_internal): In the second alternative, allow the initial and
12185         final destination registers to be different .  Update the splitter
12186         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
12187         instead of h8sx_split_movmd.
12188         (stpcpy, movsd): New expanders.
12189         (movsd_internal): New define_insn.
12190         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
12191         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
12192         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
12193         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
12194         and DESTINATION_REGS.
12195         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
12196         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
12197         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
12198         (h8300_move_ratio): Declare.
12199         (MOVE_RATIO): Use it.
12200         * config/h8300/h8300.c (h8300_move_ratio): New variable.
12201         (h8300_init_once): Initialize it.
12202         (h8300_reg_class_from_letter): New function.
12203         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
12204         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
12205         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
12206         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
12207         (movstrsi, movmd): New expanders.
12208         (movmd_internal): New insn.
12209         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
12210         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
12211         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
12212         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
12213         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
12214         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12215         * config/h8300/h8300.c (nibble_operand): Fix warning.
12216         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
12217         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
12218         (movsf_h8300h): Disable for TARGET_H8300SX.
12219         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12220         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
12221         h8300_stm_parallel and h8300_return_parallel.
12222         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
12223         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
12224         h8300_stm_parallel, h8300_return_parallel): New functions.
12225         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
12226         if TARGET_H8300SX.  Use h8300_push_pop.
12227         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
12228         and final pop when generating h8sx code.  Always emit some form
12229         of return insn.
12230         * config/h8300/h8300.md: Don't enforce register alignment in
12231         stm peepholes if TARGET_H8300SX.
12232         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
12233         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
12234         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
12235         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
12236         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
12237         (MULTILIB_DIRNAMES): Add a directory for it.
12238         (MULTILIB_MATCHES): Delete.
12239         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
12240         * final.c (walk_alter_subreg): Handle addresses with subregs
12241         inside a ZERO_EXTEND or AND.
12242         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
12243         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
12244         if TARGET_H8300SX.
12245         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
12246         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
12247         @(dd,Rn.w) and @(dd,ERn.L).
12248         (h8300_displacement_size): Take the whole address as argument.
12249         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
12250         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
12251         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
12252         (h8sx_mergeable_memrefs_p): Declare.
12253         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
12254         (HAVE_PRE_INCREMENT): Likewise.
12255         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
12256         addresses for TARGET_H8300SX,
12257         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
12258         and POST_DEC.
12259         (movb_length_table, movl_length_table): New tables.
12260         (movw_length_table): Define to movb_length_table.
12261         (h8300_displacement_size): New, split out from...
12262         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
12263         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
12264         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
12265         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
12266         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
12267         (compute_plussi_length, compute_plussi_cc): Update accordingly.
12268         (h8sx_unary_shift_operator): Get the mode from the operator.
12269         (binary_shift_operator): Likewise.
12270         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
12271         a memory reference, check whether the reference is offsettable.
12272         (length_table): Add movb, movw and movl.
12273         (movqi): Add new h8sx pattern.  Don't force one operand to be a
12274         register when generating h8sx code.
12275         (movhi, movsi, movsf): Likewise.
12276         (movstrictqi): Use the length_table attribute.
12277         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
12278         (addqi3): Split into a define_expand and define_insn.  Don't accept
12279         memory operands in the expander.  Use h8300_operands_match_p to
12280         check for matching operands in the define_insn.
12281         (subqi3, negqi2, one_cmplqi2): Likewise.
12282         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
12283         in any patterns that are unused in h8sx code.  In the h8sx patterns,
12284         use h8300_operands_match_p to check whether operands match.
12285         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
12286         one_cmpl[hs]i3): Likewise.
12287         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
12288         in the expander.
12289         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
12290         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
12291         (h8300_insn_length_from_table): Add a second parameter.
12292         (output_h8sx_shift): Declare.
12293         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
12294         (EXTRA_CONSTRAINT): Replace with...
12295         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
12296         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
12297         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
12298         and h8sx_binary_shift_operator.
12299         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
12300         for TARGET_H8300SX.
12301         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
12302         (bit_memory_operand, fix_bit_operand): Likewise.
12303         (h8300_length_table_for_insn): Remove.
12304         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
12305         instructions.
12306         (h8300_short_immediate_length, h8300_binary_length): New functions.
12307         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
12308         (output_plussi): Use sub to add negative constants.
12309         (compute_plussi_length): Adjust accordingly.
12310         (h8sx_single_shift_type): New enum.
12311         (h8sx_single_shift, h8sx_unary_shift_operator,
12312         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
12313         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
12314         single h8sx instruction.  Return false in this case.
12315         * config/h8300/h8300.md (length_table): Add short_immediate.
12316         (length): Pass the operand array to h8300_insn_length_from_table.
12317         (adjust_length): Assume "no" for insns with a length_table attribute.
12318         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
12319         (*addhi3_h8300hs): Don't use for h8sx.
12320         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
12321         and sub.w #xx:3.
12322         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
12323         1's predicate to nonimmediate_operand.  Only skip default expansion
12324         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
12325         for single h8sx shift instructions.
12326         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
12327         * config/h8300/h8300.c (nibble_operand): Split out of...
12328         (reg_or_nibble_operand): ... this.
12329         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
12330         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
12331         umulhisi3): Introduce expand, and introduce separate insns for
12332         sign- or zero-extended REG and already-extended CONST_INT.
12333         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
12334         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
12335         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
12336         (subhi3): Likewise.  Don't accept immediates for operand 1.
12337         Remove the early clobber from second alternative of the h8300s pattern.
12338         (subsi3): Generalize for h8sx.  Force operand 2 into a register
12339         on plain h8300 targets.
12340         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
12341         (subsi3_h8300h): Generalize for h8sx.
12342         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
12343         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
12344         * config/h8300/h8300.c (reg_or_nibble_operand): New.
12345         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
12346         (TARGET_H8300SXMUL): New.
12347         (CONST_OK_FOR_P): New.
12348         (CONST_OK_FOR_LETTER_P): Adjust.
12349         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
12350         umulhisi3): Accept 4-bit immediate on H8SX.
12351         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
12352         (udivsi3, divhi3, udivsi3, divsi3): New.
12353         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
12354         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
12355         * config/h8300/h8300.h (OK_FOR_Q): New macro.
12356         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
12357         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
12358         Add ADDRESSOF to the bit_operand entry.
12359         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
12360         (h8300_src_operand): Likewise.
12361         (bit_operand): Check nonimmediate_operand rather than general_operand.
12362         Accept any nonimmediate_operand in h8sx code.
12363         (h8300_and_costs): Initialize operands[1].
12364         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
12365         (h8300_operand_class): New enum.
12366         (h8300_length_table): New typedef.
12367         (addb_length_table, addw_length_table, addl_length_table,
12368         logicl_length_table): New tables.
12369         (logicb_length_table, logicw_length_table): New macros.
12370         (h8300_classify_operand, h8300_length_from_table,
12371         h8300_length_table_for_insn, h8300_unary_length,
12372         h8300_insn_length_from_table): New functions.
12373         (output_plussi): Only use adds and subs for register destinations.
12374         Disable redundant clause.
12375         (compute_plussi_cc): Likewise.
12376         (compute_plussi_length): Likewise.  Use h8300_length_from_table
12377         to work out the length of an insn.
12378         (output_logical_op): Only use narrower immediate instructions
12379         if the destination is a register.
12380         (compute_logical_op_cc): Likewise.
12381         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
12382         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
12383         * config/h8300/h8300.md (length_table): New attribute.
12384         (length): When an instruction has a length_table attribute, use
12385         h8300_insn_length_from_table to calculate its default length.
12386         (cmpqi): Use h8300_dst_operand for the first operand and
12387         h8300_src_operand for the second.
12388         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
12389         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
12390         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
12391         iorsi3, xorhi3, xorsi3): Likewise.
12392         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
12393         so that it allows any combination of operands for TARGET_H8300SX.
12394         (iorqi3, xorqi3): Likewise.
12395         (cmpqi): Use the length_table attribute.
12396         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
12397         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
12398         (cmpqi): Add 'Q' constraint.
12399         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
12400         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
12401         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
12402         * config/h8300/h8300.h (MASK_H8300SX): New macro.
12403         (TARGET_H8300S): True for both -ms and -msx.
12404         (TARGET_H8300SX): New macro.
12405         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
12406         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
12407         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
12408         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
12409         [Temporary change.]
12410         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
12411         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
12412         16-bit pointers and 32-bit ints.
12413         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
12414         CONST_DOUBLE with mode no wider than SImode.
12415         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
12416         output operand.
12417         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
12418         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
12419         or SUBREG thereof.
12420         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
12421         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
12422         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
12423
12424 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
12425
12426         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
12427
12428 2004-07-07  Per Bothner  <per@bothner.com>
12429
12430         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
12431
12432 2004-07-07  Mike Stump  <mrs@apple.com>
12433
12434         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
12435         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
12436         (machopic_finish): Likewise.
12437
12438 2004-07-07  Richard Henderson  <rth@redhat.com>
12439
12440         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
12441         through any value-preserving cast.
12442
12443 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12444
12445         * function.c (assign_parm_find_data_types): Call
12446         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
12447
12448 2004-07-07  Steven Bosscher  <stevenb@suse.de>
12449
12450         * tree-cfg.c (group_case_labels): Remove case labels that have
12451         the same target as the default case.
12452
12453 2004-07-07  Steven Bosscher  <stevenb@suse.de>
12454
12455         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
12456         regardless of DECL_LANG_SPECIFIC being present or not.
12457         * tree.h (DECL_NUM_STMTS): Purge.
12458
12459 2004-07-07  Andrew Pinski  <apinski@apple.com>
12460
12461         * configure: Regenerate with the right autoconf.
12462
12463 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
12464
12465         * ifcvt.c (total_bb_rtx_cost): New function.
12466         (find_if_case_1): Compare rtx_cost of basic block to cost of
12467         BRANCH_COST insns.
12468         (find_if_case_2): Same.
12469
12470 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
12471
12472         PR target/10567
12473         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
12474         (output_return): Likewise.
12475         (output_sibcall): Abort if !flag_delayed_branch.
12476         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
12477         (emit_and_preserve): New function.
12478         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
12479         indirect jump to the thunked-to function if !flag_delayed_branch.
12480         * config/sparc/sparc.md (delayed_branch): New attribute.
12481         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
12482         attribute to compute the length of the insn.
12483         (goto_handler_and_restore): Likewise.
12484
12485 2004-07-07  Andrew Pinski  <apinski@apple.com>
12486
12487         PR tree-optimization/15777
12488         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
12489
12490         * expr.c (expand_expr_real_1): Fix formating.
12491         BUFFER_REF and IN_EXPR are dead.
12492         * fold-const.c (non_lvalue): BUFFER_REF is dead.
12493         * tree-inline.c (estimate_num_insns_1): Likewise.
12494         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
12495         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
12496         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
12497
12498 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
12499
12500         * collect2.c (dump_file): Don't call cplus_demangle if
12501         HAVE_LD_DEMANGLE is defined.
12502         (main): Pass "--demangle" to ld if no_demangle is not 0 and
12503         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
12504         if HAVE_LD_DEMANGLE is defined.
12505
12506         * configure.ac (--with-demangler-in-ld): Added
12507         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
12508         --with-demangler-in-ld is used.
12509         * config.in: Regenerated.
12510         * configure: Likewise.
12511
12512 2004-07-07  Roger Sayle  <roger@eyesopen.com>
12513
12514         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
12515         for simple floating point operations "fp", double precision
12516         multiplication "dmul", and single and double precision division
12517         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
12518         (ppc630_cost): New table split from ppc620_cost, to distinguish
12519         differences in floating point latencies.
12520         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
12521         (rs6000_rtx_costs): Add support for single and double precision
12522         floating point addition, subtraction, multiplication, division,
12523         fused-multiply-add, fused-multiply-sub, negation, absolute value
12524         and negative absolute value.  Tweak MEM case to use prefered idiom.
12525
12526 2004-07-07  Richard Henderson  <rth@redhat.com>
12527
12528         * tree-flow-inline.h (may_propagate_copy): Move...
12529         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
12530         attempt to copy between types requiring conversion.
12531         * tree-flow.h (may_propagate_copy): Update decl.
12532         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
12533
12534 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
12535
12536         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
12537         from -mtune= option.
12538
12539 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
12540
12541         * builtins.c: Rename movstr*, except for movstrict*, to
12542         movmem* and clrstr* to clrmem*.
12543         * expr.c: Likewise.
12544         * expr.h: Likewise.
12545         * genopinit.c: Likewise.
12546         * integrate.c: Likewise.
12547         * local-alloc.c: Likewise.
12548         * optabs.c: Likewise.
12549         * optabs.h: Likewise.
12550         * config/alpha/alpha.h: Likewise.
12551         * config/alpha/alpha.md: Likewise.
12552         * config/arm/arm-protos.h: Likewise.
12553         * config/arm/arm.c: Likewise.
12554         * config/arm/arm.md: Likewise.
12555         * config/avr/avr.md: Likewise.
12556         * config/c4x/c4x.c: Likewise.
12557         * config/c4x/c4x.md: Likewise.
12558         * config/frv/frv.md: Likewise.
12559         * config/i386/i386-protos.h: Likewise.
12560         * config/i386/i386.c: Likewise.
12561         * config/i386/i386.h: Likewise.
12562         * config/i386/i386.md: Likewise.
12563         * config/i860/i860.c: Likewise.
12564         * config/i860/i860.md: Likewise.
12565         * config/ip2k/ip2k.md: Likewise.
12566         * config/ip2k/libgcc.S: Likewise.
12567         * config/ip2k/t-ip2k: Likewise.
12568         * config/m32r/m32r.c: Likewise.
12569         * config/m32r/m32r.md: Likewise.
12570         * config/mcore/mcore.md: Likewise.
12571         * config/mips/mips.c: Likewise.
12572         * config/mips/mips.md: Likewise.
12573         * config/ns32k/ns32k.c: Likewise.
12574         * config/ns32k/ns32k.h: Likewise.
12575         * config/ns32k/ns32k.md: Likewise.
12576         * config/pa/pa.c: Likewise.
12577         * config/pa/pa.md: Likewise.
12578         * config/pdp11/pdp11.h: Likewise.
12579         * config/pdp11/pdp11.md: Likewise.
12580         * config/rs6000/rs6000.c: Likewise.
12581         * config/rs6000/rs6000.md: Likewise.
12582         * config/s390/s390-protos.h: Likewise.
12583         * config/s390/s390.c: Likewise.
12584         * config/s390/s390.md: Likewise.
12585         * config/sh/lib1funcs.asm: Likewise.
12586         * config/sh/sh.c: Likewise.
12587         * config/sh/sh.md: Likewise.
12588         * config/sh/t-sh: Likewise.
12589         * config/sparc/sparc.h: Likewise.
12590         * config/vax/vax.md: Likewise.
12591         * config/xtensa/xtensa.c: Likewise.
12592         * config/xtensa/xtensa.md: Likewise.
12593         * doc/invoke.texi: Likewise.
12594         * doc/md.texi: Likewise.
12595         * doc/rtl.texi: Likewise.
12596
12597 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
12598
12599         PR target/16407
12600         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
12601         * config/mips/mips.c (mips_declare_common_object): New function,
12602         mostly split out from...
12603         (mips_output_aligned_decl_common): ...here.
12604         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
12605         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
12606         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
12607         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
12608
12609 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12610
12611         PR c/16392
12612         * function.c (assign_parms): Fix typo from previous change.
12613
12614 2004-07-07  Jason Merrill  <jason@redhat.com>
12615
12616         PR c++/15815
12617         * doc/extend.texi (C++ Interface): Correct information and
12618         discourage use.
12619
12620 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
12621
12622         PR target/16130
12623         PR target/16142
12624         PR target/16143
12625         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
12626         insn.
12627
12628 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12629
12630         PR target/1679.
12631         * config/m32r/m32r.c (m32r_function_symbol): New function:
12632         Generate a symbol name RTX with the correct m32r specific flags
12633         set.
12634         (block_move_call): Use new function to generate correct symbol.
12635         * config/m32r/m32r-protos.h: Add prototype for new funcion.
12636         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
12637         function.
12638
12639 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12640
12641         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
12642         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
12643         TYPE_BINFO_BASETYPE): Remove.
12644         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
12645         to ...
12646         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
12647         here.
12648         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
12649         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
12650         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
12651         (struct tree_binfo): Rename base_types to base_binfos.
12652         * alias.c (record_component_aliases): Adjust BINFO macros.
12653         * dbxout.c (dbxout_type): Likewise.
12654         * dwarf2out.c (gen_member_die): Likewise.
12655         * sdbout.c (sdbout_one_type): Likewise.
12656         * tree-dump.c (deque_and_dump): Likewise.
12657         * config/i386/i386.c (classify_argument,
12658         contains_128bit_aligned_vector_p): Likewise.
12659
12660 2004-07-07  Nick Clifton  <nickc@redhat.com>
12661
12662         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
12663         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
12664
12665 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
12666
12667         * vec.h: Fix the example use.
12668
12669 2004-07-06  Richard Henderson  <rth@redhat.com>
12670
12671         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
12672         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
12673         * tree-inline.c (copy_body_r, setup_one_parameter,
12674         initialize_inlined_parameters, expand_call_inline,
12675         declare_inline_vars): Don't check it.
12676         (expand_calls_inline): Remove old version, rename new version
12677         from gimple_expand_calls_inline.
12678         * tree-optimize.c (execute_gimple): Remove.
12679         (pass_gimple): Don't run anything.
12680
12681 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
12682
12683         * doc/sourcebuild.texi: Use semicolons instead of commas in
12684         section title.
12685
12686 2004-07-06  Richard Henderson  <rth@redhat.com>
12687
12688         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
12689         (sra_walk_modify_expr, scan_init): Likewise.
12690         (generate_element_zero): Check visited before scanning children.
12691         (generate_element_init): Set visited on error.
12692         (scalarize_init): Handle generate_element_init failure similar
12693         to use_block_copy.
12694
12695 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
12696
12697         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
12698         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
12699
12700 2004-07-06  Richard Henderson  <rth@redhat.com>
12701
12702         * config/i386/i386.c (legitimize_pic_address): Make static.
12703         (legitimize_address): Handle CONST with TLS operand.
12704         (ix86_expand_move): Don't call legitimize_pic_address directly.
12705         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
12706
12707 2004-07-06  Roger Sayle  <roger@eyesopen.com>
12708
12709         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
12710         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
12711         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
12712         is currently executed unconditionally, i.e. not in "else_bb".
12713
12714 2004-07-06  Steven Bosscher  <stevenb@suse.de>
12715
12716         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
12717         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12718         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
12719         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12720         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
12721         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12722         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
12723         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12724         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
12725         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12726         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
12727         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12728         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
12729         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12730         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
12731         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
12732
12733 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
12734
12735         * dojump.c (do_jump): REFERENCE_EXPR is dead.
12736         * expr.c (expand_expr_real_1): Ditto.
12737         * tree-inline.c (estimate_num_insns_1): Ditto.
12738         * tree-pretty-print.c (dump_generic_node): Ditto.
12739         (op_symbol): Ditto.
12740         * tree.def: Ditto.
12741
12742 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
12743
12744         * tree-ssa-pre.c (reference_node_pool): New pool.
12745         (find_or_generate_expression): Class 'r' is okay too.
12746         (create_value_expr_from): Ditto.
12747         (add_to_sets): LHS should not include vuses.
12748         (eliminate): Ditto.
12749         (compute_avail): Reverse ordering of tests.
12750         Valuize INDIRECT_REF as well.
12751
12752 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
12753
12754         PR rtl-optimization/16380
12755         * loop.c (check_dbra_loop): Sink comparison instructions if they
12756         do something other than set cc0.
12757
12758 2004-07-06  James E Wilson  <wilson@specifixinc.com>
12759
12760         * doc/interface.texi (longjmp and automatic variables): Delete
12761         paragraph recommending taking the address of a variable.
12762
12763 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12764
12765         * vec.h (VEC_embedded_alloc): Remove.
12766         (VEC_embedded_size, VEC_embedded_init): New.
12767         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
12768         MEM_STAT_INFO.
12769         (VEC_truncate): New.
12770         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
12771         (vec_embedded_alloc): Remove.
12772         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
12773         (vec_embedded_alloc): Remove.
12774
12775 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
12776
12777         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
12778         (gt-langhooks.h): Remove.
12779
12780 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
12781
12782         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
12783
12784 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12785
12786         * config/sparc/sparc.c (get_pc_symbol): Rename into
12787         add_pc_to_pic_symbol.
12788         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
12789         (load_pic_register): Account for previous changes.
12790         Use reg_names.  Don't create the label twice.
12791         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
12792         UNSPEC_LOAD_PCREL_SYM.
12793         (get_pc): Rename into load_pcrel_sym.  Add predicate to
12794         operands.  Remove condition.
12795
12796 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
12797
12798         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
12799         RECORD, UNION & QUAL_UNION is actually a binfo.
12800
12801         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
12802         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
12803         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
12804         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
12805         * dwarf2out.c (add_data_member_location_attribute): Likewise.
12806         (gen_inheritance_die): Likewise.
12807         * tree-dump.c (deque_and_dump): Likewise.
12808         * doc/c-tree.texi (Binfos): Add under reconstruction note.
12809
12810 2004-07-06  Steven Bosscher  <stevenb@suse.de>
12811
12812         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
12813         Define.
12814         * config/mcore/mcore.md: Model memory latency with a simple DFA
12815         pipeline description instead of a define_function_unit.
12816
12817 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12818
12819         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
12820         * langhooks.h (var_mod_type_p): Likewise.
12821         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
12822         * expr.c (count_type_elements): Properly handle return from
12823         array_type_nelts and properly test for overflow.
12824         * gimplify.c (gimplify_init_constructor): Properly handle return
12825         from array_type_nelts.
12826         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
12827         * integrate.c (copy_decl_for_inlining): Correct comments.
12828         * tree-inline.c (remap_decl): Update comments, remove dead code,
12829         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
12830         (remap_type): Only remap if variably modified by vars in function
12831         being inlined.
12832         (copy_body_r): Use compatible_type langhooks to see when can fold.
12833         (setup_one_parameter): Don't remap type.
12834         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
12835         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
12836         compute TREE_INVARIANT for decl case.
12837         (find_var_from_fn): New function.
12838         (variably_modified_type_p): Add arg and call new function.
12839         * tree.h (variably_modified_type_p): Add extra arg.
12840
12841 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12842
12843         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
12844         (goto_handler_and_restore_v9): Delete disabled insn.
12845         (goto_handler_and_restore_v9_sp64): Likewise.
12846
12847 2004-07-05  Roger Sayle  <roger@eyesopen.com>
12848
12849         * calls.c (load_register_parameters): Call expand_shift instead
12850         of expand_binop with ashl_optab (or other shift optab) directly.
12851         * expr.c (emit_group_load, emit_group_store): Likewise.
12852         * function.c (assign_parm_setup_block): Likewise.
12853         * stmt.c (shift_return_value): Likewise.
12854
12855 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
12856
12857         * expr.c (expand_assignment): Disable the bitfield += optimizations.
12858
12859 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12860
12861         * doc/sourcebuild.texi: Revert previous patch.
12862
12863 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12864
12865         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
12866         TARGET_MEM_FUNCTIONS.
12867         * system.h: Poison TARGET_MEM_FUNCTIONS.
12868         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
12869         bcmp_libfunc, bzero_libfunc): Remove.
12870         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
12871         bzero_libfunc.
12872         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
12873         * doc/standards.texi: Don't mention calling BSD string functions.
12874         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
12875         * config/vax/t-memfuncs: New.
12876         * config/memcmp.c, config/memcpy.c, config/memmove.c,
12877         config/memset.c: New.
12878         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
12879         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
12880         vax/t-memfuncs.
12881         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
12882         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
12883         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
12884         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
12885         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
12886         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
12887         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
12888         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
12889         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12890         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
12891
12892 2004-07-05  Richard Henderson  <rth@redhat.com>
12893
12894         * function.c (assign_parm_setup_reg): Properly rename variables in
12895         FUNCTION_ARG_CALLEE_COPIES section.
12896
12897 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
12898
12899         * tree-mudflap.c: Include cgraph.h.
12900         (mf_init_extern_trees): Rename to mudflap_init.  Export.
12901         Rewrite to create synthetic declarations instead of looking
12902         up declarations from mf-runtime.h.
12903         (mf_make_builtin, mf_make_cache_struct_type): New functions.
12904         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
12905         Correct commentary.
12906         (execute_mudflap_function_decls, mudflap_register_call):
12907         Don't call mf_init_extern_trees.
12908         (mudflap_finish_file): Use cgraph_build_static_cdtor.
12909
12910         * tree-mudflap.h: Update prototypes.
12911         * c-mudflap.c: Delete file.
12912         * c-common.c: Include tree-mudflap.h.
12913         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
12914         * Makefile.in: Remove all references to c-mudflap.o.
12915         Update dependencies.
12916
12917 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12918
12919         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
12920         displacements with the spatial-locality cache-control completer.
12921
12922 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
12923
12924         * langhooks.c: Don't include gt-langhooks.h.
12925         (var_labelno): Delete.
12926         (lhd_set_decl_assembler_name): Do not append a distinguishing
12927         number to file-scope internal-linkage declarations for the first
12928         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
12929         the declaration itself (if at block scope), or its containing
12930         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
12931         number.
12932
12933         * opts.c (cur_in_fname): New global.
12934         * opts.h: Declare it.
12935         * tree.c: Include opts.h.
12936         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
12937         DECL_UID equal to cur_in_fname.
12938         (copy_node_stat): Do not change DECL_UID when copying a
12939         TRANSLATION_UNIT_DECL.
12940         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
12941         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
12942
12943         * c-decl.c (c_static_assembler_name): Delete.
12944         * c-tree.h (c_static_assembler_name): Delete prototype.
12945         * c-lang.c, objc/objc-lang.c: Don't override
12946         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
12947
12948         * Makefile.in (tree.o): Update dependencies.
12949         (GTFILES): Remove langhooks.c.
12950
12951 2004-07-05  Roger Sayle  <roger@eyesopen.com>
12952
12953         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
12954         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
12955         Normalize "X % C" as "X % -C" for signed modulus and negative C.
12956         Optimize "X % -Y" as "X % Y" for signed modulus.
12957         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
12958         into "((unsigned) X % Y) == 0".
12959
12960 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12961
12962         * sourcebuild.texi (Config Fragments): Use @comma{} in
12963         cross-reference to section title.
12964
12965 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12966
12967         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
12968         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
12969         (gimplify_target_expr, gimplify_expr): Likewise.
12970         (copy_if_shared_r): No longer need special case for BIND_EXPR.
12971         (unshare_body, unvisit_body): Only look at nested if BODY_P is
12972         whole function.
12973         (gimplify_compound_lval): See if we can strip any useless conversion.
12974         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
12975         from RHS, not LHS.
12976         (gimplify_modify_expr_to_memset): Likewise.
12977         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
12978         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
12979         (declare_inline_vars): Likewise.
12980         (walk_type_fields): New function.
12981         (walk_tree): Use it.
12982         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
12983
12984         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
12985         (sra_walk_modify_expr): Allow init function to fail.
12986         (scan_init): Now returns bool.
12987         (generate_element_init): If can't understand INIT, return false.
12988         (scalarize_init): Return false if generate_element_init does.
12989
12990         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
12991         print bounds.
12992
12993         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
12994         bounds if bounds aren't constant.
12995
12996         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
12997
12998         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
12999         to type hooks; remove bogus PARAMS.
13000
13001 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
13002
13003         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
13004         * dwarf2out.c (add_data_member_location_attribute): Check for
13005         TREE_BINFO.
13006         * tree.c (tree_node_kinds): Add "binfos".
13007         (binfo_lang_slots): New.
13008         (make_node_stat): Add TREE_BINFO.
13009         (make_tree_binfo_stat): New.
13010         (tree_node_structure): Add TREE_BINFO.
13011         * tree.def (TREE_BINFO): New.
13012         * tree.h (REC_OR_UNION_CHECK): Rename to ...
13013         (RECORD_OR_UNION_CHECK): ... here.
13014         (NOT_RECORD_OR_UNION_CHECK): New.
13015         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
13016         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
13017         RECORD_OR_UNION_CHECK.
13018         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
13019         (TYPE_LANG_SLOT_1): New.
13020         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
13021         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
13022         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
13023         (BINFO_ELTS): Remove.
13024         (BINFO_LANG_SLOT): New.
13025         (struct tree_binfo): New.
13026         (binfo_lang_slots): Declare.
13027         (enum tree_node_structure_enum): Add TS_BINFO.
13028         (union tree_node): Add binfo.
13029         (make_tree_binfo_stat): Declare.
13030         (make_tree_binfo): New.
13031         (enum tree_node_kind): Add binfo_kind.
13032
13033         * objc/objc-act.c (start_class, objc_declare_protocols,
13034         start_protocols): Use TYPE_LANG_SLOT_1.
13035         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
13036         to ...
13037         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
13038         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
13039         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
13040         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
13041
13042 2004-07-05  Steven Bosscher  <stevenb@suse.de>
13043
13044         * rtl.h (struct rtx_def): Remove the integrated flag.
13045         Use the return_val flag for MEM_SCALAR_P.
13046         Reshuffle and update flags in CLEAR_RTX_FLAGS.
13047
13048 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
13049
13050         PR target/16357
13051         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
13052         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
13053         move_by_pieces.
13054
13055 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
13056
13057         * var-tracking.c: Fix some comments.
13058         (frame_stack_adjust): New.
13059         (vt_stack_adjustments): Init stack_adjust of entry block to
13060         minus stack adjustment of function prologue.
13061         (adjust_stack_reference): Do not adjust if adjustment == 0.
13062         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
13063         (emit_notes_in_bb): Likewise.
13064         (vt_add_function_parameters): Do not adjust locations of
13065         function arguments.
13066         (vt_initialize): Compute the stack adjustment of function
13067         prologue and offset the initial "location" of frame_base_decl
13068         from the stack pointer after prologue.
13069
13070 2004-07-04  Richard Henderson  <rth@redhat.com>
13071
13072         * function.c (struct assign_parm_data_all): New.
13073         (struct assign_parm_data_one): New.
13074         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
13075         assign_parm_find_data_types, assign_parms_setup_varargs,
13076         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
13077         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
13078         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
13079         assign_parm_setup_block, assign_parm_setup_reg,
13080         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
13081         (assign_parms): ... here.
13082
13083 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
13084
13085         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
13086         now are bitmap_set_t's.
13087         (bitmap_insert_into_set): No point in inserting the value if
13088         it's invariant.
13089         (bitmap_set_contains): New function.
13090         (bitmap_set_replace_value): Add comment on why we do it
13091         this way.
13092         (set_contains): Removed.
13093         (bitmap_set_subtract_from_value_set): New name of
13094         set_subtract now that it's arguments are two different
13095         types of sets.
13096         Update callers.
13097         (bitmap_find_leader): Change algorithm used.
13098         (find_or_generate_expression): Update use of functions for new
13099         bitmap sets.
13100         (create_expression_by_pieces): Ditto.
13101         (insert_aux): Ditto.
13102         (insert): Ditto.
13103         (add_to_sets): Ditto.
13104         (init_pre): Ditto.
13105         (execute_pre): Ditto.
13106         (compute_avail): Ditto.
13107         Also ignore virtual phis.
13108
13109 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13110
13111         * combine.c (simplify_comparison): Fix comment typo.
13112
13113 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13114
13115         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
13116         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
13117         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
13118         (output_restore): Change parameter from 'insn' to 'pat'.
13119         (output_return): Adjust call to output_restore.
13120         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
13121         Adjust call to output_restore.
13122
13123 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
13124
13125         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
13126         and assert system is bsd.
13127
13128 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
13129
13130         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
13131         (TARGET_SWITCHES): Remove -mdebugc.
13132         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
13133         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
13134         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
13135         (sle_[sd]i_reg): Delete.
13136
13137 2004-07-04  Steven Bosscher  <stevenb@suse.de>
13138
13139         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
13140         Define.
13141         * config/iq2000/iq2000.md: Translate old pipeline description to an
13142         equivalent new one.
13143
13144 2004-07-04  Roger Sayle  <roger@eyesopen.com>
13145
13146         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
13147         Ensure the replacement rhs is valid gimple before performing
13148         the substitution.  Return false if these sanity checks fail.
13149         (fold_stmt): Only set changed to true, if set_rhs returns true.
13150         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
13151         succeeds.
13152
13153 2004-07-04  Richard Henderson  <rth@redhat.com>
13154
13155         PR c/16348
13156         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
13157
13158 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
13159
13160         * configure.ac (ranlib_flags): New variable.
13161         * Makefile.in (RANLIB_FLAGS): New variable.
13162         (libbackend.a): Use it.
13163         * configure: Regenerated.
13164
13165 2004-07-04  Roger Sayle  <roger@eyesopen.com>
13166
13167         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
13168         a "sign mask" instead of using ashr_optab directly.
13169
13170 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
13171
13172         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
13173         * doc/cppopts.texi: Clarify processing of command-line defines.
13174
13175 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
13176
13177         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
13178
13179 2004-07-04  Richard Henderson  <rth@redhat.com>
13180
13181         * rtl.def (ADDRESSOF): Remove.
13182         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
13183         (find_base_term, memrefs_conflict_p): Likewise.
13184         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
13185         (fold_rtx, cse_insn, set_live_p): Likewise.
13186         * dwarf2out.c (mem_loc_descriptor): Likewise.
13187         (add_location_or_const_value_attribute): Likewise.
13188         * emit-rtl.c (copy_insn_1): Likewise.
13189         * explow.c (memory_address): Likewise.
13190         * expmed.c (store_split_bit_field): Likewise.
13191         * expr.c (expand_expr_real_1): Likewise.
13192         * function.c (instantiate_decl
13193         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
13194         * genrecog.c (preds, validate_pattern): Likewise.
13195         * integrate.c (copy_rtx_and_substitute): Likewise.
13196         * recog.c (general_operand, register_operand): Likewise.
13197         (memory_address_p): Likwise.
13198         * reload1.c (eliminate_regs, elimination_effects): Likewise.
13199         * rtl.c (copy_rtx): Likewise.
13200         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
13201         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
13202         * rtlhooks.c (gen_lowpart_general): Likewise.
13203         * stmt.c (expand_asm_operands): Likewise.
13204         * web.c (entry_register, replace_ref, web_main): Likewise.
13205         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
13206         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
13207         * config/arm/arm.c (thumb_rtx_costs): Likewise.
13208         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
13209         * config/frv/frv.c (move_destination_operand, move_source_operand,
13210         condexec_dest_operand, condexec_source_operand,
13211         condexec_memory_operand): Likewise.
13212         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
13213         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
13214         (destination_xfmode_operand): Likewise.
13215         * config/mips/mips.h (PREDICATE_CODES): Likewise.
13216         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
13217         * config/s390/s390.c (general_s_operand): Likewise.
13218         * config/s390/s390.md (mov*): Likewise.
13219         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
13220
13221         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
13222         * expr.c (expand_expr_real_1): Likewise.
13223         * stmt.c (expand_decl): Likewise.
13224         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
13225
13226         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
13227         postponed_insns, put_var_into_stack, put_reg_into_stack,
13228         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
13229         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
13230         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
13231         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
13232         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
13233         purge_bitfield_addressof_replacements, purge_addressof_replacements,
13234         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
13235         struct insns_for_mem_walk_info, insns_for_mem_walk,
13236         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
13237         setjmp_protect_args): Remove.
13238         (push_function_context_to): Don't handle var_refs_queue.
13239         (pop_function_context_from, free_after_compilation): Likewise.
13240         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
13241         (assign_parms, allocate_struct_function): Likewise.
13242         (use_register_for_decl): New.
13243         (expand_function_end): Don't setjmp_protect.
13244         * function.h (struct emit_status): Update commentary.
13245         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
13246         (max_parm_reg, parm_reg_stack_loc): Remove.
13247         * passes.c (DFI_addressof): Remove.
13248         (dump_file_info): Remove addressof.
13249         (rest_of_handle_addressof): Remove.
13250         (rest_of_compilation): Don't call it.
13251         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
13252         * stmt.c (expand_decl): Use use_register_for_decl.
13253         * tree.h: Update decls.
13254         * web.c (mark_addressof): Remove.
13255         * doc/invoke.texi (-dF): Remove.
13256
13257 2004-07-03  Richard Henderson  <rth@redhat.com>
13258
13259         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
13260         instead of gen_mem_addressof.
13261         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
13262         TImode output register.
13263
13264 2004-07-03  Richard Henderson  <rth@redhat.com>
13265
13266         PR tree-optimization/16341
13267         * tree-sra.c (sra_walk_function): Increment to next stmt before
13268         processing the current stmt.
13269         (sra_insert_after): Always use BSI_SAME_STMT.
13270
13271 2004-07-03  Richard Henderson  <rth@redhat.com>
13272
13273         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
13274         fp plus with minus.
13275
13276 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13277
13278         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
13279         with tree_int_cst_equal.
13280
13281 2004-07-03  Andreas Schwab  <schwab@suse.de>
13282
13283         * config/ia64/ia64.md: Define new attribute "empty".
13284         (prologue_use, nop_x, insn_group_barrier): Set it.
13285
13286         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
13287         skip over "empty" insns.
13288
13289 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13290
13291         * tree-inline.c (initialize_inlined_parameters): Pass proper function
13292         context to gimplify_body.
13293         (walk_tree): Don't walk into types twice.
13294         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
13295
13296         * tree-sra.c (generate_element_init): Remove any useless conversions.
13297
13298         * gimplify.c (gimplify_conversion): Remove stripping useless
13299         conversions from here.
13300         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
13301         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
13302         Unshare before substituting PLACEHOLDER_EXPR.
13303         (gimplify_modify_expr_to_memset): Likewise.
13304         Pass address of TO to memset, not TO itself.
13305         (gimplify_init_constructor): Make copy of OBJECT so we have it each
13306         time we make an expression (to match a PLACEHOLDER_EXPR).
13307
13308         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
13309         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
13310         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
13311         * tree-ssa-dom.c (local_fold): Likewise.
13312
13313         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
13314         * langhooks.h (strct lang_hooks): New field type_max_size.
13315         * function.c (assign_temp): Call it.
13316
13317 2004-07-03  Steven Bosscher  <stevenb@suse.de>
13318
13319         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
13320         * config/sh/sh.md: Convert the SH1 pipeline description to
13321         a DFA model.
13322
13323 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
13324
13325         * c-decl.c (struct c_binding): Remove contour field; add
13326         depth, invisible, nested fields.
13327         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
13328         (B_IN_EXTERNAL_SCOPE): New convenience macros.
13329         (bind): Add invisible and nested arguments. Initialize
13330         new fields of struct c_binding; adjust loop scanning for
13331         insertion point.
13332         (free_binding_and_advance): Clear structure with memset.
13333         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
13334         in file scope, even if it's in external scope too.
13335         (pushdecl): Adjust to match.  Create invisible file-scope
13336         declarations for block-scope forward declarations of static functions.
13337         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
13338         (undeclared_variable, lookup_label, declare_label, define_label)
13339         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
13340         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
13341         (store_parm_decls_oldstyle): Adjust to match.
13342         (diagnose_mismatched_decls): Correct handling of linkage clashes.
13343         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
13344
13345         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
13346         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
13347
13348 2004-07-02  Richard Henderson  <rth@redhat.com>
13349
13350         * c-decl.c (grokdeclarator): Don't frob current_function_decl
13351         around variable_size.
13352         (set_decl_nonlocal): Remove.
13353         (store_parm_decls): Add stmts for pending sizes.
13354         * calls.c (calls_function, calls_function_1): Remove.
13355         (precompute_arguments): Don't call it.
13356         * cfgexpand.c (set_save_expr_context): Remove.
13357         (tree_expand_cfg): Don't call it.
13358         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
13359         (dwarf2out_finish): Likewise.
13360         * expr.c (emit_block_move): Adjust addresses to BLKmode.
13361         (store_constructor): Don't pre-evaluate SAVE_EXPR.
13362         (safe_from_p): Don't queue SAVE_EXPRs.
13363         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
13364         or build plain VAR_DECLs.
13365         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
13366         (fold): Likewise.
13367         (fold_checksum_tree): Don't special-case SAVE_EXPR.
13368         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
13369         (put_var_into_stack): Don't handle SAVE_EXPR.
13370         (gen_mem_addressof): Likewise.
13371         * function.h (struct function): Remove x_save_expr_regs.
13372         (save_expr_regs): Remove.
13373         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
13374         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
13375         * stor-layout.c (variable_size): Don't set it.
13376         (force_type_save_exprs, force_type_save_exprs_1): Remove.
13377         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
13378         all callers.  Don't set SAVE_EXPR_CONTEXT.
13379         * tree-inline.h (remap_save_expr): Update decl.
13380         * tree.c (save_expr): Update build size.
13381         (first_rtl_op): Don't handle SAVE_EXPR.
13382         (unsave_expr_1, contains_placeholder_p): Likewise.
13383         (decl_function_context): Likewise.
13384         * tree.def (SAVE_EXPR): Remove args 1 and 2.
13385         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
13386         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
13387
13388 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
13389
13390         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
13391         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
13392         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
13393         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
13394         some first-person references and patronizing comments.  Based on
13395         printed manual.
13396         * doc/invoke.texi: Don't reference fortran@gnu.org.
13397         * doc/trouble.texi (Warning when a non-void function value is
13398         ignored): Rewrite.  From Russ Allbery and Chris Devers.
13399
13400 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
13401
13402         * tree-ssa-pre.c (bitmap_set_t): New.
13403         (bb_value_sets): avail_out is now a bitmap_set_t.
13404         (bitmap_find_leader): New function.
13405         (bitmap_value_insert_into_set): Ditto.
13406         (bitmap_set_copy): Ditto.
13407         (bitmap_value_replace_in_set): Ditto.
13408         (bitmap_set_contains_value): Ditto.
13409         (bitmap_set_new): Ditto.
13410         (bitmap_set_pool): New pool.
13411         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
13412         (insert_aux): Ditto.
13413         (add_to_sets): Ditto.
13414         (compute_avail): Ditto
13415         (eliminate): Ditto.
13416         (init_pre): Ditto.
13417         (fini_pre): Ditto.
13418         (execute_pre): Ditto.
13419
13420 2004-07-02  Roger Sayle  <roger@eyesopen.com>
13421
13422         * config/rs6000/rs6000.c (struct processor_costs): New structure
13423         used to hold instruction latencies/sizes for processor types.
13424         (rs6000_cost): New global variable pointing to current CPU's costs.
13425         (rs6000_override_options): Initialize rs6000_cost to point to the
13426         appropriate cost table based upon rs6000_cpu and optimize_size.
13427         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
13428         timings inline.
13429
13430 2004-07-02  Richard Henderson  <rth@redhat.com>
13431
13432         * expmed.c (make_tree): Don't use SET_DECL_RTL.
13433
13434 2004-07-02  Steven Bosscher  <stevenb@suse.de>
13435
13436         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
13437
13438 2004-07-01  Richard Henderson  <rth@redhat.com>
13439
13440         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
13441         (alpha_gp_save_rtx): Use assign_stack_local instead of
13442         gen_mem_addressof.
13443
13444 2004-07-01  Richard Henderson  <rth@redhat.com>
13445
13446         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
13447         (alpha_rtx_cost_data): Update to match.
13448         (alpha_rtx_cost_size): New.
13449         (alpha_rtx_costs): Honor optimize_size.
13450
13451 2004-07-01  Richard Henderson  <rth@redhat.com>
13452
13453         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
13454         * cfgexpand.c (tree_expand_cfg): Do it here.
13455         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
13456         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
13457         * config/mips/mips.c (mips_output_mi_thunk): And here.
13458         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
13459         * config/sh/sh.c (sh_output_mi_thunk): And here.
13460         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
13461
13462 2004-07-01  Richard Henderson  <rth@redhat.com>
13463
13464         * tree.def (RTL_EXPR): Remove.
13465         * c-typeck.c (lvalue_p): Don't handle it.
13466         * expr.c (safe_from_p): Likewise.
13467         (expand_expr_real_1): Likewise.
13468         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
13469         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
13470         * gengtype.c (adjust_field_tree_exp): Likewise.
13471         * stmt.c (warn_if_unused_value): Likewise.
13472         * tree-gimple.c (recalculate_side_effects): Likewise.
13473         * tree-pretty-print.c (dump_generic_node): Likewise.
13474         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
13475         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
13476         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
13477
13478         * stmt.c (struct stmt_status): Remove x_last_expr_type,
13479         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
13480         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
13481         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
13482         all the bits that tracked last_expr.
13483         (expand_end_bindings): Don't track last_expr.
13484         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
13485         (clear_last_expr): Remove.
13486         (expand_asm): Don't call it.
13487         (expand_asm_operands, expand_end_cond): Likewise.
13488         (expand_naked_return, expand_null_return_1): Likewise.
13489         * c-typeck.c (c_begin_compound_stmt): Likewise.
13490         * cfgexpand.c (expand_block): Use expand_expr_stmt.
13491         * expr.c (expand_expr_real_1): Likewise.
13492         * tree.h: Update prototypes.
13493
13494         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
13495         (struct emit_status): Remove sequence_rtl_expr.
13496         (struct function): Remove x_rtl_expr_chain.
13497         (seq_rtl_expr, rtl_expr_chain): Remove.
13498         * function.c (struct temp_slot): Remove rtl_expr.
13499         (assign_stack_temp_for_type): Don't set it.
13500         (free_temp_slots, pop_temp_slots): Don't check it.
13501         (free_after_compilation): Don't clear x_rtl_expr_chain.
13502         (fixup_var_refs): Don't search it.
13503         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
13504         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
13505         or seq_rtl_expr.
13506         (push_topmost_sequence): Likewise.
13507         (end_sequence, init_emit): Likewise.
13508         (start_sequence_for_rtl_expr): Remove.
13509         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
13510         * rtl.h (preserve_rtl_expr_result): Remove.
13511
13512 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
13513
13514         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
13515         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
13516         typos.
13517
13518 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
13519
13520         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
13521         (STANDARD_STARTFILE_PREFIX_2): Define.
13522         (standard_startfile_prefix_1): Initialize to
13523         STANDARD_STARTFILE_PREFIX_1.
13524         (standard_startfile_prefix_2): Initialize to
13525         STANDARD_STARTFILE_PREFIX_2.
13526         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
13527         (STANDARD_STARTFILE_PREFIX_1): Define.
13528         (STANDARD_STARTFILE_PREFIX_2): Define.
13529         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
13530         (STANDARD_STARTFILE_PREFIX_2): Document.
13531
13532 2004-07-01  Richard Henderson  <rth@redhat.com>
13533
13534         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
13535         in order to disable scalarization.  Instead set a flag and wait
13536         for a candidate decl.
13537
13538 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
13539
13540         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
13541         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
13542         Use terminology "testsuite" and "enumerated".
13543
13544 2004-07-01  Richard Henderson  <rth@redhat.com>
13545
13546         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
13547         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
13548         (initial_return_save): Likewise.
13549         (flush_queued_reg_saves): Remap register numbers.
13550         (dwarf2out_return_reg): Likewise.
13551
13552 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13553
13554         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
13555
13556         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
13557         access functions for lower bound and element size and only output
13558         if lower bound nonzero or element size not same as that of type.
13559         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
13560
13561 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13562
13563         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
13564
13565 2004-07-01  Per Bothner  <per@bothner.com>
13566
13567         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
13568
13569 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
13570
13571         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
13572         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
13573         first operand.  Don't optimize if the bitfield is volatile.
13574
13575 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13576
13577         * c-pretty-print.c (pp_c_postfix_expression): Handle
13578         floating-point comparison operators.
13579         (pp_c_expression): Pass floating-point comparison
13580         operators to pp_c_postfix_expression.
13581
13582 2004-07-01  Roger Sayle  <roger@eyesopen.com>
13583
13584         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
13585         rtx_cost instead of "had_mult" to determine whether the transformed
13586         expression is cheaper than the original.
13587
13588 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
13589
13590         * alias.c (get_alias_set, canon_rtx, get_addr,
13591         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
13592         Use MEM_P.
13593         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
13594         expand_builtin): Likewise.
13595         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
13596         Likewise.
13597         * combine.c (can_combine_p, combinable_i3pat, try_combine,
13598         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
13599         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
13600         record_dead_and_set_regs_1, get_last_value_validate,
13601         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
13602         * cse.c (check_dependence, canon_hash, equiv_constant,
13603         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
13604         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
13605         count_reg_usage): Likewise.
13606         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
13607         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
13608         cselib_record_sets): Likewise.
13609         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
13610         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
13611         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
13612         * df.c (df_uses_record): Likewise.
13613         * dojump (do_jump): Likewise.
13614         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
13615         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
13616         decl_start_label): Likewise.
13617         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
13618         operand_subword, change_address_1, make_safe_from): Likewise.
13619         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
13620         stabilize, force_not_mem): Likewise.
13621         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
13622         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
13623         * expr.c (convert_move, convert_modes, emit_block_move,
13624         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
13625         emit_move_insn_1, expand_assignment, store_expr,
13626         store_constructor_field, store_constructor, store_field,
13627         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
13628         Likewise.
13629         * final.c (cleanup_subreg_operands, alter_subreg,
13630         get_mem_expr_from_op): Likewise.
13631         * flow.c (notice_stack_pointer_modification_1,
13632         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
13633         Likewise.
13634         * function.c (mark_temp_addr_taken, preserve_temp_slots,
13635         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
13636         optimize_bit_field, flush_addressof, purge_addressof_1,
13637         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
13638         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
13639         keep_stack_depressed): Likewise.
13640         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
13641         noce_process_if_block, find_memory): Likewise.
13642         * integrate.c (subst_constants, allocate_initial_values): Likewise.
13643         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
13644         update_equiv_regs): Likewise.
13645         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
13646         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
13647         * optabs.c (expand_abs, emit_unop_insn): Likewise.
13648         * passes.c (rest_of_handle_final): Likewise.
13649         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13650         move2add_note_store): Likewise.
13651         * ra-build.c (detect_remat_webs): Likewise.
13652         * ra-debug.c (dump_static_insn_cost): Likewise.
13653         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
13654         * recog.c (validate_change, apply_change_group, cancel_changes,
13655         validate_replace_rtx_1, general_operand, register_operand,
13656         nonmemory_operand, push_operand, pop_operand, memory_operand,
13657         indirect_operand, asm_operand_ok, offsettable_memref_p,
13658         offsettable_nonstrict_memref_p, constrain_operands,
13659         store_data_bypass_p): Likewise.
13660         * reg-stack.c (subst_stack_regs_pat): Likewise.
13661         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
13662         copy_cost, reg_scan_mark_refs): Likewise.
13663         * regmove.c (optimize_reg_copy_3, stack_memref_p,
13664         combine_stack_adjustments_for_block): Likewise.
13665         * regrename.c (copyprop_hardreg_forward_1): Likewise.
13666         * reload.c (can_reload_into, push_reload, decompose, immune_p,
13667         find_reloads, find_reloads_address, find_reloads_address_1,
13668         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
13669         find_equiv_reg): Likewise.
13670         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
13671         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
13672         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
13673         delete_address_reloads): Likewise.
13674         * resource.c (mark_referenced_resources): Likewise.
13675         * rtlanal.c (get_jump_table_offset, count_occurrences,
13676         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
13677         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
13678         num_sign_bit_copies1): Likewise.
13679         * rtlhooks.c (gen_lowpart_general): Likewise.
13680         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13681         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
13682         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
13683         sdbout_global_decl): Likewise.
13684         * simplify-rtx.c (simplify_subreg): Likewise.
13685         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
13686         expand_anon_union_decl, expand_end_case_type): Likewise.
13687         * unroll.c (calculate_giv_inc): Likewise.
13688         * var-tracking.c (stack_adjust_offset_pre_post,
13689         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
13690         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
13691         vt_add_function_parameters): Likewise.
13692         * varasm.c (make_var_volatile, notice_global_symbol,
13693         assemble_external, decode_addr_const, mark_weak,
13694         default_encode_section_info): Likewise.
13695
13696 2004-07-01  Steven Bosscher  <stevenb@suse.de>
13697
13698         * stmt.c (check_seenlabel): Remove.
13699         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
13700
13701 2004-07-01  Richard Henderson  <rth@redhat.com>
13702
13703         * function.h (struct function): Remove x_function_call_count.
13704         (function_call_count): Remove.
13705         * calls.c (expand_call): Don't set it.
13706         * integrate.c (copy_rtx_and_substitute): Likewise.
13707
13708         * function.h (struct function): Remove x_cleanup_label.
13709         (cleanup_label): Remove.
13710         * stmt.c (expand_value_return): Don't use it.
13711         * function.c (free_after_compilation): Don't set it.
13712         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
13713         * cfgexpand.c (tree_expand_cfg): Update call.
13714         * tree.h (expand_function_start): Update decl.
13715
13716 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
13717
13718         PR c/1027
13719         * c-lang.c (c_initialize_diagnostics): Move from here ...
13720         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
13721         (c_tree_printer): Use pretty-printer to format %T.
13722         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
13723         before '*' if not C++.
13724         (pp_c_direct_abstract_declarator): Don't try to print array upper
13725         bound for flexible array members.
13726         * c-tree.h: Include "diagnostic.h".
13727         (c_initialize_diagnostics): Declare.
13728         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
13729         * c-format.c (format_type_warning): New function.  Improve
13730         diagnostics for incorrect format argument types.
13731         (check_format_types): Use it.  Add two parameters.  Use the
13732         TYPE_MAIN_VARIANT of wanted_type.
13733         (check_format_info_main): Pass new parameters to
13734         check_format_types.
13735         (struct format_wanted_type): Update comment.
13736
13737 2004-07-01  Nick Clifton  <nickc@redhat.com>
13738
13739         * target.h (struct gcc_target): Add new field to struct cxx:
13740         import_export_class.
13741         * target-def.h (TARGET_CXX): Initialise the new field.
13742         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
13743         the new field.
13744         * doc/tm.texi: Document the new target hook.
13745
13746 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13747
13748         * builtins.c (fold_builtin_classify): Fix typo.
13749
13750 2004-07-01  Richard Henderson  <rth@redhat.com>
13751
13752         * function.c (identify_blocks, identify_blocks_1): Remove.
13753         * function.h (identify_blocks): Remove.
13754         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
13755
13756 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
13757
13758         * builtins.c (fold_builtin_classify): New.
13759         (fold_builtin_unordered_cmp): Fix commentary.
13760         (fold_builtin): Use it.
13761         * builtins.def: Define builtins for isnan,
13762         isnanf, isnanl, finite, finitef, finitel,
13763         isinf, isinff, isinfl.
13764
13765 2004-07-01  Richard Henderson  <rth@redhat.com>
13766
13767         * function.h (struct function): Remove dont_emit_block_notes.
13768         * gimple-low.c (lower_function_body): Don't set it.
13769         * cfgexpand.c (expand_block): Don't check it.
13770         * cfglayout.c (insn_locators_initialize): Likewise.
13771         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
13772         * passes.c (rest_of_compilation): Likewise.
13773         * stmt.c (expand_start_bindings_and_block): Likewise.
13774         (expand_end_bindings): Likewise.
13775
13776 2004-07-01  Richard Henderson  <rth@redhat.com>
13777
13778         * cgraph.h (cgraph_build_static_cdtor): Declare.
13779         * cgraphunit.c (cgraph_build_static_cdtor): New.
13780         * c-objc-common.c (build_cdtor): Use it.
13781         * coverage.c (create_coverage): Likewise.
13782         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
13783         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
13784
13785 See ChangeLog.11 for earlier changes.