OSDN Git Service

79cf1bfb9b7213cc83f57203298f242fbeb4063f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
2
3         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
4         to Altivec vetors.
5
6 2004-09-01  Wu Yongwei  <adah@sh163.net>
7             Danny Smith  <dannysmith@users.sourceforge.net>
8
9         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
10         not Windows 'DWORD'.
11         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
12         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
13         (__gthr_win32_recursive_mutex_init_function): Add prototype for
14         __GTHREAD_HIDE_WIN32API case..
15         (__gthr_win32_recursive_mutex_lock): Likewise.
16         (__gthr_win32_recursive_mutex_trylock): Likewise.
17         (__gthr_win32_recursive_mutex_unlock): Likewise.
18         (__gthread_recursive_mutex_init_function); Add definition for
19         __GTHREAD_HIDE_WIN32API case.
20         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
21         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
22         call to InterlockedDecrement.
23
24 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25
26         * tree-tailcall.c (find_tail_calls): Also fail is statement has
27         volatile operands.
28
29         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
30
31         * doc/c-tree.texi: Document new operands for ARRAY_REF and
32         COMPONENT_REF.
33
34 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
35
36         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
37         * common.opt (fspeculative-prefetching): New.
38         * flags.h (flag_speculative_prefetching_set): Declare.
39         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
40         values.
41         * opts.c (flag_sepculative_prefetching_set): New variable.
42         (common_handle_option): Handle -fspeculative-prefetching.
43         * passes.c (rest_of_compilation): Ditto.
44         * profile.c (instrument_values, compute_value_histograms, branch_prob):
45         Use vectors instead of arrays.
46         * toplev.c (process_options): Handle -fspeculative-prefetching.
47         * rtl-profile.c: Include ggc.h.
48         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
49         rtl_gen_one_value_profiler_no_edge_manipulation,
50         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
51         argument changed.
52         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
53         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
54         argument changed.
55         * value-prof.c: Include ggc.h.
56         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
57         macros.
58         (insn_prefetch_values_to_profile, find_mem_reference_1,
59         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
60         speculative_prefetching_transform): New.
61         (value_profile_transformations): Call speculative_prefetching_transform.
62         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
63         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
64         tree_find_values_to_profile, find_values to profile): Use vectors
65         instead of arrays.
66         (free_profiled_values): Removed.
67         * value-prof.h (struct histogram_value): Renamed to
68         struct histogram_value_t.
69         (histogram_value, histogram_values): New types.
70         (find_values_to_profile): Declaration changed.
71         (free_profiled_values): Removed.
72         (struct profile_hooks): Type of argument of the hooks changed to
73         histogram_value.
74         * doc/invoke.texi (-fspeculative-prefetching): Document.
75
76 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
77
78         PR rtl-optimization/16408
79         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
80
81 2004-09-01  Richard Henderson  <rth@redhat.com>
82
83         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
84         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
85
86 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
87
88         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
89
90 2004-09-01  Mike Stump  <mrs@apple.com>
91
92         * config/darwin.c (machopic_symbol_defined_p): In addition to
93         being SYMBOL_REF_LOCAL_P, a symbol must also be
94         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
95         defined in this output file, or translation unit in the case
96         of IMA not being used.
97         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
98         never need .indirect_symbol when indirecting.
99
100 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
101
102         * Makefile.in (bb-reorder.o): Add several dependencies.
103
104 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
105
106         * fold-const.c (operand_equal_p): Require equal sign also for
107         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
108
109 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
110
111         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
112         for use in configargs.h.  Put the cname in a separate variable.  Use
113         that to set target_cpu_default2.
114
115 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
116             Nick Clifton  <nickc@redhat.com>
117
118         * config/sh/sh.md ("length"): Increase branch length when
119         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
120         constant, 2 byte for aligning the constant.
121
122 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
123
124         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
125         CPU.
126         (arm7tdmi-s): New CPU name.
127         * arm/arm.c (ARM_CORE): Update for new format.
128         * arm/arm.h (ARM_CORE): Likewise.
129         * arm/gentune.sh: Update for extra field.
130         * config.gcc: Likewise.
131         * arm/arm-tune.md: Regenerate.
132         * doc/invoke.texi: Document the real processor names for ARM cpus.
133
134 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
135
136         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
137         (floatdidf): New functions.
138         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
139         (floatdisf): New functions.
140         * t-arm-elf: Use them.
141
142 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
143
144         * c-common.h (lookup_interface): Remove prototype.
145         (is_class_name): Rename to objc_is_class_name.
146         (lookup_objc_ivar): Rename to objc_lookup_ivar.
147         (get_current_scope): Rename to objc_get_current_scope.
148         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
149         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
150         (yylexname): Call objc_is_class_name() instead of is_class_name().
151         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
152         instead of lookup_objc_ivar().
153         * stub-objc.c (lookup_interface): Remove stub.
154         (is_class_name): Rename to objc_is_class_name.
155         (lookup_objc_ivar): Rename to objc_lookup_ivar.
156
157 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
158
159         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
160         * config/arm/lib1funcs.asm: Do not include supplemental .S files
161         when compiling for Symbian.
162         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
163         (TARGET_OS_CPP_BUILTINS): Likewise.
164         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
165
166 2004-08-31  Stan Shebs  <shebs@apple.com>
167
168         * toplev.c (process_options): Ensure debug_hooks is initialized.
169
170 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
171
172         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
173         * target.h (cxx): Add export_class_data.
174         * config/arm/arm.c (arm_cxx_export_class_data): New function.
175         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
176         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
177         
178 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
179
180         * config/sh/sh.c (output_branch): Check the insn length possibly
181         in the delayed slot.
182
183 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
184
185         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
186         blank after ')'.
187         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
188
189         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
190         (c_sizeof_of_alignof_type): Likewise.
191         * expr.c (array_ref_element_size): Likewise.
192         (highest_pow2_factor_for_target): Likewise.
193         * gimplify.c (canonicalize_addr_expr): Likewise.
194         (gimplify_compound_lval): Likewise.
195         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
196         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
197         * varasm.c (assemble_variable): Likewise.
198         (output_constant_def_contents): Alignments are unsigned.
199
200 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
201             Jeff Law  <law@redhat.com>
202
203         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
204         gets modified.
205
206 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
207
208         * hooks.c (hook_bool_void_true): New function.
209         * hooks.h (hook_bool_void_true): Declare.
210         * target-def.h (TARGET_CXX): Add
211         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
212         * target.h (struct cxx): Add key_method_may_be_inline.
213         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
214         function.
215         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
216         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
217         __THUMB_INTERWORK.
218         
219 2004-08-31  Denis Chertykov  <denisc@overta.ru>
220
221         PR target/15417
222         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
223         frame pointer register only in Pmode while reload in progress.
224
225 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
226
227         PR target/15334
228         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
229         because it breaks the 32-bit shift patterns that rely on a match_dup.
230
231 2004-08-31  Matt Austern  <austern@apple.com>
232
233         * config/darwin.c (darwin_make_decl_one_only): Allocate section
234         names once per compilation, instead of once per symbol.
235         
236 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
237
238         * Makefile.in (build_subdir): New substitution.
239         (fixinc.sh): Simplify heavily since fixincludes is already built.
240         (stmp-fixinc): Depend on specs.ready.
241         (install-mkheaders): Use new location of fixincludes.
242         (clean): Do not descend into fixinc.
243         (FORBUILD): Replace with ../$(build_subdir).
244         * configure.ac (build_subdir): Substitute.
245         (FORBUILD): Do not set.
246         (all_outputs): Remove fixinc/Makefile.
247         (default commands): Do not create links in fixinc.
248         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
249         the fixincludes configuration steps and substituting
250         @FIXINCL@ in fixinc.in.
251         * fixinc.in: New, from fixinc/fixincl.sh.
252
253         * fixinc/*: Removed.
254         
255 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
256
257         * attribs.c (strip_attrs): Remove.
258         (split_specs_attrs): Move ...
259         * c-decl.c: ... to here.
260         * tree.h (split_specs_attrs, strip_attrs): Remove.
261         * c-tree.h (split_specs_attrs): Declare.
262
263 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
264
265         * read-rtl.c: Disable RTL checking.
266         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
267
268 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
269
270         * config/mips/mips.md (fcond): New code macro and attribute.
271         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
272         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
273         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
274
275 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
276
277         Revert:
278         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
279         PR rtl-optimization/16590
280         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
281
282 2004-08-30  Andrew Pinski  <apinski@apple.com>
283
284         * hard-reg-set.h: 
285         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
286         * ChangeLog: Fix previous ChangeLog entry.
287
288         PR rtl-opt/13987
289         * config.host (use_long_long_for_widest_fast_int): New, default is 
290         off.
291         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
292         * configure.ac: If use_long_long_for_widest_fast_int, then
293         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
294         * configure: Regenerate.
295         * config.in: Regenerate.
296         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
297         New: widest integer type supported efficiently in hardware for the
298         host.
299         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
300         HOST_BITS_PER_WIDEST_FAST_INT.
301         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
302         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on 
303         HOST_WIDEST_FAST_INT
304         instead of HOST_WIDE_INT.
305         (HARD_REG_SET_LONGS): Likewise.
306         (UHOST_BITS_PER_WIDE_INT): Likewise.
307         Change the checks for the fast cases to be based on
308         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
309
310 2004-08-30  Steven Bosscher  <stevenb@suse.de>
311
312         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
313         not the pointers.
314
315 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
316
317         PR 12738
318         PR 17205
319         Radar 3460526
320         Radar 3775729
321         * c-decl.c (grokdeclarator): Produce error for 'static' on local
322         function declaration.
323
324 2004-08-30  Richard Henderson  <rth@redhat.com>
325
326         * expr.c (array_ref_element_size): Force aligned_size back to
327         sizetype.
328         (component_ref_field_offset): Similarly for aligned_offset.
329         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
330         low-bound, element-size, field-offset fields rather than
331         computed values.
332
333 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
334
335         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
336         redundant code.
337
338 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
339
340         * c-tree.h (struct language_function): Add arg_info element.
341         * c-decl.c (current_function_arg_info): New.
342         (grokdeclarator, store_parm_decls): Use it instead of
343         DECL_ARGUMENTS.
344         (c_push_function_context, c_pop_function_context): Save and
345         restore it.
346
347 2004-08-30  Richard Henderson  <rth@redhat.com>
348
349         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a 
350         COMPONENT_REF to pointer arithmetic.
351         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
352         constant "c" as a valid constant initializer.  Allow narrowing of
353         differences against the same base object, for any base object.
354
355 2004-08-30  Richard Henderson  <rth@redhat.com>
356
357         * expr.c (expand_expr_addr_expr): New.
358         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
359
360 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
361
362         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
363         (mips_fp_condition): New enum.
364         (mips_fp_conditions): New array.
365         (print_fcc_operand): Delete.
366         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
367         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
368         (builtin_description): Add "cond" field.
369         (DIRECT_BUILTIN): Initialize it.
370         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
371         into INSN and CODE.  Initialize the "cond" field.
372         (CMP_BUILTINS): Update accordingly.
373         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
374         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
375         mips_fp_condition as argument.  Make it the final operand of the
376         comparison instruction.
377         (mips_expand_builtin): Update accordingly.
378         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
379         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
380         the gaps.
381         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
382         Don't use the 'Q' operand prefix; just print the operand normally.
383         (mips_cabs_*, mips_c_*): Delete, replacing with...
384         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
385         patterns.  Split the 4s versions into 2 ps patterns after reload.
386
387 2004-08-30  Richard Henderson  <rth@redhat.com>
388
389         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
390         assuming an ADDR_EXPR is non-null.
391
392 2004-08-30  Jason Merrill  <jason@redhat.com>
393
394         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
395
396 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
397
398         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
399         * gcov.c (abort): Remove undef.
400
401         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
402         (struct tree_binfo): Remove primary field.
403
404 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
405
406         * fixinc/Makefile.in (machname.h): Remove.
407         (fixincl.x): Do not pass $@ to genfixes.
408         * fixinc/genfixes: Remove code to produce machname.h.
409         * fixinc/fixincl.sh: Move it here instead.
410         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
411         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
412         return a bool indicating whether pz_mn_name_pat is NULL.
413         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
414         Declare extern C variables for the ENV_TABLE.
415         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
416         instead use the result of mn_get_regexps.
417         * fixinc/fixtests.c: Likewise.
418
419 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
420
421         * configure.ac: Do not run fixincludes after stage1 during
422         toplevel bootstrap.
423         * configure: Regenerate.
424
425 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
426
427         * sched-deps.c (get_condition): Partially revert previous, by never
428         trying to extract the condition from a condjump.
429
430 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
431
432         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
433         (handle_visibility_attribute, c_determine_visibility): Likewise.
434         * c-common.h (my_friendly_assert): Remove.
435
436 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
437
438         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
439         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
440         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
441         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
442         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
443
444 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
445
446         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
447         in COMPONENT_REF nodes.
448
449 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
450
451         PR c++/15378
452         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
453         global_dc->warning_as_error_requested.
454         * diagnostic.c (diagnostic_initialize): Tidy.
455         * diagnostic.h (diagnostic_context::x_data): Remove
456         (diagnostic_context::issue_warnings_are_errors_message): Rename
457         from warnings_are_errors_message.
458         (diagnostic_context::warning_as_error_requested): New.
459
460 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
461
462         * sched-deps.c (get_condition): Fix breakage in previous patch.
463
464 2004-08-30  Paul Brook  <paul@codesourcery.com>
465
466         * doc/install.texi: Fix broken mpfr link.
467
468 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
469
470         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
471         other FreeBSD platforms.
472
473 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
474
475         * arm.h (REVERSE_CONDITION): Define.
476         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
477
478 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
479
480         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
481         just the codes, call reversed_comparison_code ().
482         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
483         (not_reg_cond): Use reversed_comparison_code.
484         (and_reg_cond): Likewise.
485         * ifcvt.c (cond_exec_process_if_block): Likewise.
486         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
487
488 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
489
490         * sched-deps.c (get_condition): Rewrite using jump support functions.
491         Use reversed_comparison_code.
492         (conditions_mutex_p): Use reversed_comparison_code.
493
494 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
495
496         * config/mips/mips.c (override_options): Disable hot/cold partitioning
497         for MIPS16.
498
499 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
500
501         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
502         (mips_function_type): Move to mips.c.
503         * config/mips/mips.c (mips_builtin_type): New enum.
504         (builtin_description): Replace code and ftype with builtin_type
505         and function_type.
506         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
507         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
508         (CODE_FOR_mips_abs_ps): Define.
509         (mips_bdesc): Use new macros.
510         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
511         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
512         (mips_expand_builtin_direct): New function.
513         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
514         builtin.  Replace boolean parameter with builtin_type.
515         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
516         (mips_expand_4s_compare_builtin): Delete, replacing with...
517         (mips_expand_builtin_compare): ...this new function.
518
519 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
520
521         PR rtl-optimization/16590
522         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
523
524 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
525
526         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
527         * tree-ssa-propagate.c: Fix documentation.
528
529 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
530
531         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
532         (mov[sd]fcc): Likewise.
533
534 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
535
536         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
537
538 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
539
540         * config/mips/mips.md (divide_condition): New mode attribute.
541         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
542         (sqrt[sd]f3): Redefine using SCALARF.
543         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
544         patterns.
545
546 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
547
548         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
549         (loadx, storex, fmt, UNITMODE): New mode attributes.
550         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
551         (mul[sd]f3): Redefine using :SCALARF.
552         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
553         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
554         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
555         Check TARGET_FUSED_MADD for V2SF too.
556         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
557         were already named.
558         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
559         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
560
561 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
562
563         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
564         V2SF_type_node if it will be needed.
565
566 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
567
568         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
569         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
570         (mips_prepare_builtin_target): New function.
571         (mips_expand_builtin): Use them.  Update calls to subroutines.
572         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
573         cmp_choice with a boolean argument to select between movt and movf.
574         Take the comparison's icode as an argument, not the function's fcode.
575         (mips_expand_compare_builtin): New function.  Rename existing function
576         to mips_expand_scalar_compare_builtin.
577         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
578         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
579         comparison's icode as an argument, not the builtin's fcode.
580
581 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
582
583         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
584         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
585         registers are false and -1 if all registers are true.
586         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
587         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
588         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
589         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
590         (bc1any2t, bc1any2f): Likewise CCV2.
591         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
592
593 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
594
595         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
596         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
597         UNSPEC rather than an IF_THEN_ELSE.
598         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
599         mips_cond_move_tf_ps by name.
600
601 2004-08-29  Chao-ying Fu  <fu@mips.com>
602             James E Wilson  <wilson@specifixinc.com>
603         
604         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
605         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
606         * config/mips/mips-ps-3d.md: New file.
607         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
608         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
609         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
610         (mips_output_move): Emit "mov.ps" for V2SFmode.
611         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
612         MODE_VECTOR_FLOAT.
613         (override_options): Check if TARGET_MIPS3D and there was an explicit
614         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
615         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
616         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
617         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
618         and allow CCV2 and CCV4 to occupy two and four CC registers.
619         (print_fcc_operand): New function.
620         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
621         %Z to call print_fcc_operand.
622         (mips_function_value): Handle MODE_VECTOR_FLOAT.
623         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
624         (mips_vector_mode_supported_p): New function.
625         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
626         (builtin_description): New struct.
627         (mips_bdesc): New array of struct builtin_description.
628         (mips_expand_builtin, mips_init_builtins,
629         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
630         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
631         functions.
632         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
633         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
634         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
635         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
636         "-mips3d", and "-mno-mips3d".
637         (ASM_SPEC): Map -mips3d to -mips3d in gas.
638         (EXTRA_CONSTRAINT_Y): New macro.
639         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
640         multi-letter constraint 'Y'.
641         (CONSTRAINT_LEN): New macro.
642         (enum mips_builtins): New for MIPS builtin functions.
643         (enum mips_function_type): New for the types of MIPS builtin functions.
644         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
645         * config/mips/mips.md: New constants for paired single and MIPS-3D 
646         instructions.  Include the new mips-ps-3d.md file.
647         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
648         movv2sf_hardfloat_64bit): New named patterns.
649         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
650         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
651         sdxc1_v2sf_di): New unnamed patterns.
652         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
653         const_vector support.
654         (const_0_or_1_operand): New predicate.
655         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
656
657 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
658
659         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
660         (tree-ssa-propagate.o): New rule.
661         (GTFILES): Add tree-ssa-propagate.c.
662         * tree-flow.h (struct stmt_ann_d): Remove field
663         in_ccp_worklist.
664         * tree-ssa-propagate.c: New file.
665         * tree-ssa-propagate.h: New file.
666         * tree-ssa-ccp.c: Re-write to use the routines from
667         tree-ssa-propagate.c.
668
669 2004-08-28  Andrew Pinski  <apinski@apple.com>
670
671         * tree-ssa-loop.c: Remove extra include of basic-block.h.
672
673 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
674
675         * c-common.h: Update comments about ObjC/ObjC++ entry points.
676         (objc_is_reserved_word): New prototype.
677         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
678         separate section; these are call-backs.
679         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
680         ObjC/ObjC++ "@" keywords.
681         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
682         prototypes; they already live in c-common.h.
683         * stub-objc.c: Update copyright notice.
684         (objc_is_reserved_word): New stub.
685
686 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
687
688         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
689         even when not checking.
690
691 2004-08-27  Jason Merrill  <jason@redhat.com>
692
693         PR c++/13684
694         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
695         (gimple_push_cleanup): Add eh_only parm.
696         (gimplify_target_expr): Pass it.
697         * c.opt (-fno-threadsafe-statics): New option.
698         * c-opts.c (c_common_handle_option): Handle it.
699         * c-common.h (flag_threadsafe_statics): Declare it.
700         * c-common.c (flag_threadsafe_statics): Record it.
701         * doc/invoke.texi: Document it.
702         * tsystem.h (_GNU_SOURCE): Define.
703         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
704         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
705         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
706         (__gthread_recursive_mutex_init_function): New fn.
707         (__gthread_recursive_mutex_lock): New fn.
708         (__gthread_recursive_mutex_trylock): New fn.
709         (__gthread_recursive_mutex_unlock): New fn.
710         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
711         * gthr-win32.h, gthr-vxworks.h: Likewise.
712         * gthr.h: Document.
713
714 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
715
716         * config/rs6000/rs6000.c (rs6000_override_options): Increase
717         maximum skip to 15.  Set function alignment, jump alignment, and
718         loop alignment to 16 for processors that form dispatch groups.
719         (rs6000_rtx_costs): outer_code is used.
720
721 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
722
723         * stor-layout.c (sizetype_set): Remove.
724         (set_sizetype): Don't test or set it.
725
726         * tree.h (size_int_type): Remove.
727         * fold-const.c: Do not #include gt-fold-const.h.
728         (size_htab_hash, size_htab_eq): Remove.
729         (size_int_kind): Use build_int_cst.
730         (new_const, size_htab): Remove.
731         (size_int_type): Remove.
732         (round_up): Use build_int_cst.
733         (round_down): Likewise. Remove spurious constant build.
734
735 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
736
737         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
738         Add is_release variable, use it for --enable-werror and
739         --enable-checking defaults.
740         * system.h (gcc_assert, gcc_unreachable): New.
741         * doc/install.texi (--enable-checking): Update.
742         * configure, config.in: Rebuilt.
743
744 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
745
746         * rtl.h (read_rtx): Change prototype.
747         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
748         line number.  Return true on success.
749         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
750         callers accordingly.
751
752 2004-08-26  Richard Henderson  <rth@redhat.com>
753
754         * c-typeck.c (build_offsetof): Remove.
755         * c-tree.h (build_offsetof): Remove.
756         * c-common.c (fold_offsetof_1, fold_offsetof): New.
757         * c-common.h (fold_offsetof): Declare.
758         * c-parse.in (offsetof_base): New.
759         (offsetof_member_designator): Use it.  Build references, not just
760         a tree list.
761         (primary): Use fold_offsetof, not build_offsetof.
762
763 2004-08-26  Richard Henderson  <rth@redhat.com>
764
765         * tree.c (staticp): Return the static object.
766         * tree.h (staticp): Update decl.
767         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
768         * langhooks.c (lhd_staticp): Return NULL_TREE.
769         * langhooks-def.h (lhd_staticp): Update decl.
770         * c-common.c (c_staticp): Return the static object.
771         * c-common.h (c_staticp): Update decl.
772
773 2004-08-26  Richard Henderson  <rth@redhat.com>
774
775         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
776         modes.
777
778 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
779
780         PR c/13801
781         * c-decl.c (struct c_binding): Add type and inner_comp fields.
782         (bind): Set type and inner_comp fields.
783         (pop_scope): Restore type of decl to the correct type from an
784         outer scope.  Give error when popping file scope for incomplete
785         arrays completed incompatibly with default initialization in an
786         inner scope.
787         (diagnose_mismatched_decls): Handle externs with initializers at
788         block scope.
789         (pushdecl): Set type of external declaration at block scope based
790         only on the visible declarations.  Save type when changing the
791         type of a declaration.  Merge an external declaration at block
792         scope with a visible static declaration at file scope.
793         (implicitly_declare): Give recycled old declaration the new type
794         except for incompatible declarations of built-in functions, saving
795         the old type.
796
797 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
798
799         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
800
801 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
802
803         * tree-alias-common.c (gate_pta): New function.
804         (pass_build_pta): Use it.
805         (pass_del_pta): Use it.
806         (delete_alias_vars): Don't check flag_tree_points_to.
807
808 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
809
810         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added 
811         TFmode as additional register mode cloberred by call.
812
813 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
814
815         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
816         parallel pattern for library call returning DImode in
817         mixed mode.
818
819 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
820
821         * config/rs6000/rs6000.c (function_arg): Generate parallel
822         pattern for more split args.
823
824 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
825
826         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
827         either gen_movdi_di_update or gen_movdi_si_update depending on
828         target mode.
829         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
830         to generate two versions.
831  
832 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
833
834         * Makefile.in (lambda-code.o): New.
835         (lambda-trans.o): Ditto.
836         (TREE_DATA_REF_H): Ditto.
837         (LAMBDA_H): Ditto.
838         (lambda-mat.o): Use LAMBDA_H.
839         (tree-data-ref.o): Ditto.
840         * lambda-code.c: New file.  Lambda code generation algorithm.
841         * lambda-trans.c: Ditto. Lambda transformation matrix support.
842         * lambda.h: Add lambda loop structures.
843         Add lambda loopnest structures.
844         Add lambda body vector structure.
845         Add lambda linear expression structures.
846         Add prototypes for functions in new files.
847         * lambda-mat.c: Include tree.h
848
849 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
850             Sebastian Pop  <pop@cri.ensmp.fr>   
851         
852         * tree-data-ref.h: Include lambda.h     
853         (free_dependence_relation): Declared here.
854         (free_dependence_relations): Ditto.     
855         (free_data_refs): Ditto.
856         * tree-data-ref.c (free_dependence_relation): New function.
857         (free_dependence_relations): Ditto.
858         (free_data_refs): Ditot.
859         (analyze_all_data_dependences): Free datarefs and dependence_relations.
860         (build_classic_dist_vector): Store in the dependence_relations the
861         information. Each arc in the dependence_relations graph is labelled
862         with the distance and direction vectors.
863         (build_classic_dir_vector): Ditto.
864         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
865         Now computes again the whole dependence graph including read-read
866         relations.
867         (compute_data_dependences_for_loop): Now dependence_relations contains
868         all the data, and thus it doesn't need to initialize the classic_dir
869         and classic_dist vectors.
870         (analyze_all_data_dependences): Adjusted for using the new interface of
871         compute_data_dependences_for_loop.  Remove the statistics dump.
872         
873 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
874
875         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
876         (xtensa_expand_block_move): Update comment.
877         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
878
879 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
880
881         PR target/13506
882         * toplev.c (crash_signal): If we crashed while emitting
883         a user asm, then die more gracefully.
884
885 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
886
887         PR target/17119.
888         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
889         checking for a valid constant, regardless of sign.
890
891 2004-08-25  Richard Henderson  <rth@redhat.com>
892
893         PR target/16974
894         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
895         if the constant satisfies add_operand.
896
897 2004-08-25  Richard Henderson  <rth@redhat.com>
898  
899         PR debug/10695
900         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
901         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
902         unwind info for >16-bit frames.
903
904 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
905
906         PR target/17171
907         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
908
909 2004-08-25  Richard Henderson  <rth@redhat.com>
910
911         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
912         (TARGET_CANNOT_FORCE_CONST_MEM): New.
913
914 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
915
916         * doc/tree-ssa.texi: Document new operand iterator.
917
918 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
919
920         PR target/16480
921         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
922         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
923         as PLUS base regs.
924
925 2005-08-28  Paul Brook  <paul@codesourcery.com>
926
927         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
928         -mfpu=vfp -march=armv5t
929         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
930
931 2004-08-25  Richard Henderson  <rth@redhat.com>
932
933         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
934         * target.h (struct gcc_target): Add scalar_mode_supported_p.
935         * targhooks.c (default_scalar_mode_supported_p): New.
936         * targhooks.h (default_scalar_mode_supported_p): Declare.
937         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
938
939         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
940         before attempting to create types.  Tidy.
941         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
942
943         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
944         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
945
946 2004-08-25  Richard Henderson  <rth@redhat.com>
947
948         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
949         set REAL_MODE_FORMAT for TFmode.
950
951 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
952
953         * c-decl.c (grokparm): New function.
954         * c-tree.h (grokparm): New prototype.
955
956 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
957
958         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
959         iterator controlling structure.
960         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
961         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
962         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
963         iterator flags.
964         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
965         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
966         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
967         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
968         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New. 
969         Empty operand pointers.
970         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
971         (op_iter_next_use): New.  Return next use_operand_p.
972         (op_iter_next_def): New.  Return next def_operand_p.
973         (op_iter_next_tree): New.  Return next operands as a tree.
974         (op_iter_init): New.  Initialize an iterator structure.
975         (op_iter_init_use): New.  Initialize structure and get the first use.
976         (op_iter_init_def): New.  Initialize structure and get the first def.
977         (op_iter_init_tree): New.  Initialize structure and get the first tree.
978         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
979         (op_iter_init_maydef): New.  Initialize structure and get the first 
980         V_MAY_DEF operands.
981         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
982         * tree-dfa.c (compute_immediate_uses_for_stmt, 
983         redirect_immediate_uses): Use new operand iterator.
984         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
985         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
986         operands instead of using *_disappeared_p routines.
987         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
988         ssa_rewrite_stmt): Use new operand iterator.
989         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
990         rewrite_trees): Use new operand iterator.
991         * tree-pretty-print.c (dump_vops): Use new operand iterator.
992         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
993         * tree-ssa-alias.c (compute_points_to_and_addr_escape, 
994         dump_points_to_info): Use new operand iterator.
995         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize, 
996         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new 
997         operand iterator.
998         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary, 
999         propagate_necessity): Use new operand iterator.
1000         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
1001         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
1002         a parameter instead of a stmt_ann_t.
1003         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
1004         build_tree_conflict_graph): Use new operand iterator.
1005         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
1006         rewrite_mem_refs): Use new operand iterator.
1007         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, 
1008         check_loop_closed_ssa_use): Use new operand iterator.
1009         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
1010         * tree-ssanames.c (release_defs): Use new operand iterator.
1011         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
1012
1013 2004-08-25  Adam Nemet  <anemet@lnxw.com>
1014
1015         * tlink.c (initial_cwd): New variable.
1016         (tlink_init): Initialize it.
1017         (recompile_files): Use tlink_execute() instead of system().  Don't
1018         duplicate verbose output of collect_execute.  Restore initial_cwd.
1019         Update comment before the function.
1020
1021 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1022
1023         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
1024         accept) a cast from one Objective-C pointer type to another.
1025
1026 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1027
1028         * doc/install.texi: Document that libstdc++-v3 requires
1029         now automake 1.9.1.
1030
1031 2004-08-25  Caroline Tice  <ctice@apple.com>
1032
1033         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
1034         to comments at start of function.
1035         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
1036         comment.
1037         * cfgcleanup.c (try_simplify_condjump, try_forward_edges, 
1038         merge_blocks_move_predecessor_nojumps, 
1039         merge_blocks_move_successor_nojumps, merge_blocks_move, 
1040         try_crossjump_to_edge, try_crossjump_bb): Likewise.
1041         * cfglayout.c (fixup_reorder_chain): Likewise.
1042         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1043         cfg_layout_can_merge_blocks_p):  Likewise.
1044         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
1045         * passes.c (rest_of_compilation): Update comments for calling 
1046         optimization that partitions hot/cold basic blocks.
1047         * doc/invoke.texi:  Update documentation of 
1048         freorder-blocks-and-partition flag.
1049         
1050 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1051
1052         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1053         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
1054
1055 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1056
1057         * config/mips/mips.md (any_shift): New code macro.
1058         (optab, insn): New code attributes.
1059         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
1060         Use the standard rather than internal patterns for the MIPS16
1061         double-shift optimization.
1062         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
1063         Redefine using :GPR and any_shift.
1064         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
1065         to cover all three shifts.
1066         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
1067         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
1068         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
1069
1070 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
1071
1072         * gimplify.c (lookup_tmp_var): Separate temporaries when not
1073         optimizing.
1074
1075 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1076
1077         PR libstdc++/17005 (fix for HP-UX 11.11)
1078         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
1079         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
1080         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.  
1081         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
1082         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
1083         (LINK_SPEC): Handle march=1.0 option.
1084         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1085         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
1086         (SUBTARGET_OPTIONS): New define.
1087         (LINK_SPEC): Handle march=1.0 option.
1088         (STARTFILE_SPEC): New define.
1089         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1090         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
1091         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
1092         (SUBTARGET_OPTIONS): New define.
1093         (LINK_SPEC): Handle march=1.0 option.
1094         (STARTFILE_SPEC): New define.
1095         * config/pa/pa.c (override_options): Add code to process -munix= option.
1096         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
1097         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
1098         defines.
1099         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
1100         (SUBTARGET_OPTIONS): Provide default define.
1101         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
1102         STANDARD_STARTFILE_PREFIX_2): New defines.
1103         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
1104         (ENDFILE_SPEC): Use %O.
1105         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
1106         Mention issue caused by changing namespace and runtime to UNIX 95/98.
1107         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
1108         Document -munix=std option.
1109
1110 2004-08-25  Steven Bosscher  <stevenb@suse.de>
1111
1112         * cse.c (cse_around_loop, cse_check_loop_start,
1113         cse_set_around_loop): Remove.
1114         (cse_basic_block): Remove the around_loop argument.
1115         (cse_end_of_basic_block): Remove the after_loop argument.
1116         (cse_main): Likewise.
1117         * rtl.h (cse_main): Update prototype.
1118         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
1119         rest_of_handle_gcse): Update cse_main calls.
1120
1121 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1122
1123         * tree.h  (build_int_cst): New, sign extended constant.
1124         (build_int_cstu): New, zero extended constant.
1125         (build_int_cst_wide): Renamed from build_int_cst.
1126         * tree.c (build_int_cst, build_int_cstu): New.
1127         (build_int_cst_wide): Renamed from build_int_cst.
1128         (make_vector_type, build_common_tree_nodes,
1129         build_common_tree_nodes_2): Adjust build_int_cst calls.
1130         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1131         expand_builtin_strpbrk, expand_builtin_fputs,
1132         build_string_literal, expand_builtin_printf,
1133         expand_builtin_sprintf, fold_builtin_classify_type,
1134         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
1135         fold_builtin_toascii, fold_builtin_isdigit,
1136         simplify_builtin_strstr, simplify_builtin_strpbrk,
1137         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
1138         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
1139         DEF_ATTR_INT): Likewise.
1140         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
1141         Likewise.
1142         * c-lex.c (interpret_integer, lex_charconst): Likewise.
1143         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
1144         * c-pretty-print.c (pp_c_integer_constant): Likewise.
1145         * c-typeck.c (really_start_incremental_init, push_init_level,
1146         set_nonincremental_init_from_string): Likewise.
1147         * calls.c (load_register_parameters): Likewise.
1148         convert.c (convert_to_pointer): Likewise.
1149         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1150         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
1151         build_gcov_info): Likewise.
1152         * except.c (init_eh, assign_filter_values): Likewise.
1153         * expmed.c (store_fixed_bit_field, extract_bit_field,
1154         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1155         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1156         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1157         * expr.c (convert_move, emit_group_load, emit_group_store,
1158         expand_assignment, store_constructor, store_field,
1159         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1160         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1161         invert_truthvalue, optimize_bit_field_compare,
1162         decode_field_reference, all_ones_mask_p, constant_boolean_node,
1163         fold_div_compare, fold, fold_read_from_constant_string,
1164         fold_negate_const, fold_abs_const, fold_not_const, round_up,
1165         round_down): Likewise.
1166         * function.c (assign_parm_setup_block): Likewise.
1167         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
1168         Likewise.
1169         * stor-layout.c (layout_type, initialize_sizetypes,
1170         set_min_and_max_values_for_integral_type): Likewise.
1171         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1172         reset_evolution_in_loop): Likewise.
1173         * tree-chrec.h (build_polynomial_chrec): Likewise.
1174         * tree-complex.c (build_replicated_const): Likewise.
1175         * tree-eh.c (honor_protect_cleanup_actions,
1176         lower_try_finally_onedest, lower_try_finally_copy,
1177         lower_try_finally_switch): Likewise.
1178         * tree-mudflap.c (mf_build_string, mx_register_decls,
1179         mudflap_register_call, mudflap_enqueue_constant): Likewise.
1180         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1181         * tree-pretty-print.c (dump_generic_node): Likewise.
1182         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1183         Likewise.
1184         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1185         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1186         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1187         Likewise.
1188         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
1189         canonicalize_loop_induction_variables): Likewise.
1190         * tree-vectorizer.c (vect_create_index_for_array_ref,
1191         vect_transform_loop_bound, vect_compute_data_ref_alignment):
1192         Likewise.
1193
1194         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
1195         alpha_gimplify_va_arg_1): Likewise.
1196         * config/arm/arm.c (arm_get_cookie_size): Likewise.
1197         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1198         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1199         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1200         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1201         mips_gimplify_va_arg_expr): Likewise.
1202         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1203         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1204         add_compiler_branch_island): Likewise.
1205         * config/s390/s390.c (s390_va_start): Likewise.
1206         * config/sh/sh.c (sh_va_start): Likewise.
1207         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1208         Likewise.
1209         * config/xtensa/xtensa.c (xtensa_va_start,
1210         xtensa_gimplify_va_arg_expr): Likewise.
1211         
1212         * objc/objc-act.c (build_objc_string_object,
1213         build_objc_symtab_template, init_def_list, init_objc_symtab,
1214         init_module_descriptor, generate_static_references,
1215         build_selector_translation_table, get_proto_encoding,
1216         build_typed_selector_reference, build_selector_reference,
1217         build_next_objc_exception_stuff,
1218         build_method_prototype_list_template, generate_descriptor_table,
1219         generate_protocols, build_protocol_initializer,
1220         build_ivar_list_template, build_method_list_template,
1221         build_ivar_list_initializer, generate_ivars_list,
1222         generate_dispatch_table, generate_protocol_list,
1223         build_category_initializer, build_shared_structure_initializer,
1224         generate_shared_structures, handle_impent,
1225         generate_objc_image_info): Likewise.
1226
1227 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1228
1229         * cfglayout.c (duplicate_insn_chain): Remove references to
1230         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
1231         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
1232         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
1233         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
1234         and NOTE_INSN_LOOP_CONT.
1235         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
1236         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
1237         and NOTE_INSN_LOOP_CONT.
1238         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
1239         check_dbra_loop, loop_dump_aux): Remove references to removed notes
1240         and fields.
1241         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
1242         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
1243         references to removed notes and fields.
1244         (subtract_reg_term, ujump_to_loop_cont): Remove.
1245
1246 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1247
1248         * doc/install.texi: Document that libcpp does not require
1249         Automake any longer.  Document that Automake 1.9.1 should
1250         work everywhere.
1251
1252 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1253
1254         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
1255         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
1256         DWARF_DEBUGGING_INFO from choice-of-definition chain;
1257         restructure using C89 features (#elif, #error).
1258         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
1259         * config/sh/sh.h: Remove references to DWARF_DEBUG.
1260         * doc/invoke.texi: Remove references to DWARF version 1;
1261         clarify why -gdwarf-2<n> doesn't work.
1262
1263 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1264
1265         * basic-block.h (BB_SET_PARTITION): Clear old value first.
1266         * cfg.c (clear_bb_flags): Don't clear partition setting.
1267         * ifcvt.c (find_if_case_1): Remove ??? comment.
1268
1269 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
1270
1271         PR target/17052
1272         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
1273         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
1274         current_function_stdarg in place of sysv_varargs_p.
1275         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
1276         sysv_varargs_p.
1277
1278 2004-08-24  Richard Henderson  <rth@redhat.com>
1279
1280         PR target/16298
1281         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
1282         random codes within CONST.
1283
1284 2004-08-24  James E Wilson  <wilson@specifixinc.com>
1285
1286         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
1287         -freorder-blocks-and-partition.
1288
1289 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1290
1291         PR middle-end/17044
1292         * tree-ssa-threadupdate.c (redirection_data): Make static.
1293         (thread_block): Use ggc_alloc_cleared to allocate struct
1294         redirection_data.  Don't free elements in redirection_data.
1295
1296 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1297
1298         * config/mips/predicates.md (small_data_pattern): Match prefetches.
1299
1300 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1301
1302         PR tree-optimization/17016
1303         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1304         number_of_iterations_exit): Use POINTER_TYPE_P instead
1305         of testing for POINTER_TYPE.
1306
1307 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1308
1309         * tree-ssa-loop-ivcanon.c: New file.
1310         * tree-ssa-loop-manip.c (create_iv): New function.
1311         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
1312         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
1313         * cfgloop.c (mark_single_exit_loops): New function.
1314         (verify_loop_structure): Verify single-exit loops.
1315         * cfgloop.h (struct loop): Add single_exit field.
1316         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
1317         (mark_single_exit_loops): Declare.
1318         (tree_num_loop_insns): Declare.
1319         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
1320         (duplicate_loop_to_header_edge): Use it.
1321         * common.opt (fivcanon): New flag.
1322         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
1323         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
1324         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
1325         (bsi_insert_on_edge_immediate): New function.
1326         * tree-flow.h (bsi_insert_on_edge_immediate,
1327         canonicalize_induction_variables, tree_unroll_loops_completely,
1328         create_iv): Declare.
1329         * tree-optimize.c (init_tree_optimization_passes): Add
1330         pass_iv_canon and pass_complete_unroll.
1331         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
1332         * tree-scalar-evolution.c (get_loop_exit_condition,
1333         get_exit_conditions_rec, number_of_iterations_in_loop,
1334         scev_initialize): Use single_exit information.
1335         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
1336         missing assumptions.
1337         (loop_niter_by_eval):  Return number of iterations as unsigned
1338         int.
1339         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
1340         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
1341         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
1342         New passes.
1343         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
1344         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
1345         the defining statement is ready.
1346         * tree-vectorizer.c (vect_create_iv_simple): Removed.
1347         (vect_create_index_for_array_ref, vect_transform_loop_bound):
1348         Use create_iv.
1349         (vect_transform_loop_bound): Use single_exit information.
1350         (vect_analyze_loop_form): Cleanup bogus tests.
1351         (vectorize_loops): Do not call flow_loop_scan.
1352         * tree.h (may_negate_without_overflow_p): Declare.
1353         * fold-const.c (may_negate_without_overflow_p): Split out from ...
1354         (negate_expr_p): ... this function.
1355         (tree_expr_nonzero_p): Handle overflowed constants correctly.
1356         * doc/invoke.texi (-fivcanon): Document.
1357         * doc/passes.texi: Document canonical induction variable creation.
1358
1359 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1360
1361         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
1362         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
1363         using the mode of the operand to decide between them.
1364         * config/mips/mips.md (MOVECC): New mode macro.
1365         (ccreg): New mode attribute.
1366         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
1367         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
1368         (mov[sd]icc): Redefine using :GPR.
1369
1370 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1371
1372         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
1373         (mips_prefetch_cookie): New function.
1374         * config/mips/mips.c (print_operand_address): Fix handling of
1375         ADDRESS_CONST_INT.
1376         (mips_emit_prefetch): Delete.
1377         (mips_prefetch_cookie): New function.
1378         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
1379         mode of QImode for the address_operand.  Use mips_prefetch_cookie
1380         to calculate the first "pref" operand.
1381         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
1382         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
1383
1384 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
1385
1386         * arm.md: Include predicates.md.
1387         * predicates.md: New file.
1388         * arm.c (s_register_operand, arm_hard_register_operand)
1389         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
1390         (arm_immediate_operand, arm_neg_immediate_operand)
1391         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
1392         (arm_add_operand, arm_addimm_operand, arm_not_operand)
1393         (offsettable_memory_operand, alignable_memory_operand)
1394         (arm_reload_memory_operand, arm_float_rhs_operand)
1395         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
1396         (index_operand, shiftable_operator, logical_binary_operator)
1397         (shift_operator, equality_operator, arm_comparison_operator)
1398         (minmax_operator, cc_register, dominant_cc_register)
1399         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
1400         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
1401         (const_shift_operand, load_multiple_operation)
1402         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
1403         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
1404         (cirrus_register_operand, cirrus_fp_register)
1405         (cirrus_shift_const): Delete, replaced with equivalents in
1406         predicates.md.
1407         (shift_op): Handle ROTATE.
1408         * arm-protos.h: Delete declarations for above.
1409         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1410         * t-arm (MD_INCLUDES): Add predicates.md.
1411         (s-preds): Depends on MD_INCLUDES.
1412
1413 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1414
1415         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
1416         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
1417         patterns.  Redefine using :GPR.  Give the match_operator a mode.
1418         Use '%2' rather than '%z2' for operand 2.
1419
1420 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1421
1422         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
1423         attribute.
1424
1425 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1426
1427         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
1428         of internal patterns.
1429         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
1430         Redefine using :P.
1431         (tablejump): Use expand_binop to calculate address.  Adjust names
1432         of internal patterns.
1433         (tablejump[sd]i): Renamed from tablejump_internal[12].
1434         Redefine using :P.
1435         (tablejump_mips16[12]): Delete.
1436
1437 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1438
1439         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
1440         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
1441         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
1442         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
1443         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
1444
1445 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1446
1447         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
1448         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
1449         using :GPR.
1450         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
1451         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
1452         (*branch_equality[sd]i_inverted): Likewise
1453         branch_equality{,_di}_inverted.
1454         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
1455         Redefine using :GPR.
1456
1457 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1458
1459         * rtl.def: Reorganize, placing all codes used only in machine
1460         descriptions at the end.
1461
1462         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
1463         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
1464         rtx_name, rtx_format arrays by direct reference to rtl.def,
1465         first undefining GENERATOR_FILE.  Define enum insn_note and
1466         note_insn_name array by direct reference to insn-notes.def.
1467         (adjust_field_rtx_def): Remove local definition of rtx_name.
1468         Use symbolic names for insn notes.
1469         * Makefile.in (gengtype.o): Update dependencies.
1470
1471 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1472
1473         * basic-block.h (struct basic_block_def): Reorder fields to
1474         eliminate interior padding.  Remove 'partition' field.
1475         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
1476         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
1477         (BB_COPY_PARTITION): New macros.
1478         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
1479         Replace all references to the 'partition' field of a basic
1480         block with new macros.
1481
1482         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1483         * final.c (final_scan_insn): Don't handle it.
1484         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
1485         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
1486         * sched-rgn.c (sched_is_disabled_for_current_region_p):
1487         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
1488
1489 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1490
1491         * c-decl.c (c_init_decl_processing): Adjust
1492         build_common_tree_nodes call.
1493         * expmed.c (const_mult_add_overflow_p): Use
1494         build_distinct_type_copy.
1495         * stor-layout.c (early_type_list): Remove.
1496         (layout_type): Don't append to early_type_list.
1497         (initialize_sizetypes): Add signed_p argument.
1498         (set_sizetype): Overwrite the stub type nodes directly.
1499         * tree.c (copy_node_stat): Clear a type's value cache here ...
1500         (build_distinct_type): ... not here.
1501         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
1502         * tree.h (initialize_sizetypes): Add signed_p argument.
1503         (build_common_tree_nodes): Likewise.
1504
1505         * objc/objc-act.c (get_static_reference): Use
1506         build_variant_type_copy.
1507         (get_protocol_reference): Likewise.
1508         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
1509
1510 2004-08-24  Richard Henderson  <rth@redhat.com>
1511             Andrew Pinski  <apinski@apple.com>
1512
1513         * gimplify.c (gimplify_array_ref_to_plus): Delete.
1514         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
1515         for ARRAY_REF.
1516
1517         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
1518         ARRAY_REF also to get to the STRING_CST.
1519
1520 2004-08-24  Paul Brook  <paul@codesourcery.com>
1521
1522         * config/arm/arm.c (arm_override_options): Update error message.
1523         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
1524         TARGET_HARD_FLOAT_ABI.
1525         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
1526         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
1527
1528 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1529
1530         PR target/17093
1531         * config/m32r.md (movsi_sda): Add SI mode specification to
1532         UNSPEC.
1533
1534 2004-08-24  Nick Clifton  <nickc@redhat.com>
1535
1536         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
1537         of seth_add3_operand.
1538
1539 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1540
1541         * Makefile.in (PROTO_OBJS): Add errors.o.
1542         * protoize.c (fancy_abort): Remove.
1543         * mips-tfile.c (fancy_abort): Add parameters.
1544
1545 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
1546
1547         * doc/trouble.texi (C++ misunderstandings): Fix example code.
1548
1549 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
1550
1551         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
1552         (host-default.o): Add dependency on HOOKS_H.
1553         * config/x-linux: Likewise.
1554         * config/x-solaris: Likewise.
1555         * config/i386/x-mingw32: Likewise.
1556         * config/rs6000/x-darwin: Likewise.
1557
1558 2004-08-23  James E Wilson  <wilson@specifixinc.com>
1559
1560         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
1561         DEF_REG_NOTE.
1562
1563 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
1564
1565         PR c/14492
1566         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
1567
1568 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
1569
1570         * cfg.c (check_bb_profile): Fix typos.
1571         * function.c (assign_parm_is_stack_parm): Likewise.
1572         * tree-nested.c: Likewise.
1573
1574 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
1575
1576         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
1577         Remove TYPECODE.
1578         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
1579
1580 2004-08-23  Eric Christopher  <echristo@redhat.com>
1581
1582         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
1583         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
1584         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
1585         * target.h: Ditto.
1586         * hooks.h: Include machmode.h.
1587         (hook_bool_mode_false): Declare.
1588         * hooks.c (hook_bool_mode_false): Define.
1589         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
1590         * stor-layout.c (layout_type): Ditto.
1591         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
1592         Define to target macro.
1593         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
1594         * config/arm/arm.c: Ditto. Use.
1595         * config/arm/arm.h: Ditto.
1596         * config/arm/arm-protos.h: Ditto.
1597         * config/i386/i386.c: Ditto.
1598         * config/i386/i386.h: Ditto.
1599         * config/rs6000/rs6000.c: Ditto.
1600         * config/rs6000/rs6000.h: Ditto.
1601         * config/sh/sh.c: Ditto.
1602         * config/sh/sh.h: Ditto.
1603         * config/sh/sh-protos.h: Ditto.
1604         * config/sh/sh.md: Use.
1605         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
1606         to TARGET_VECTOR_MODE_SUPPORTED_P.
1607
1608 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1609
1610         * Makefile.in (BUILD_ERRORS): Set to build-errors.
1611         (errors.o): New target for host.
1612         (build-errors.o): New target for build.
1613         (genobjs): Replace errors.o with build-errors.
1614         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
1615         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
1616         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
1617         (fix-header.o): Add errors.h
1618         * collect2.c (fancy_abort): Add parameters.
1619         * collect2.h (fancy_abort): Don't declare.
1620         * errors.h (fancy_abort): Don't declare.
1621         * errors.c: Include either bconfig.h or config.h.
1622         (fancy_abort): Trim filename.
1623         * fix-header.c (v_fatal, fatal): Remove.
1624         (progname): Remove definition.
1625         (main): Set progname here.
1626         * gcc.c (fancy_abort): Add parameters.
1627         * gcc.h (fancy_abort): Remove declaration.
1628         * gcov.c (fancy_abort): Remove.
1629         * rtl.h (fancy_abort): Don't declare.
1630         (abort): Don't define.
1631         * tree.h (fancy_abort): Don't declare.
1632         (abort): Don't define.
1633         * system.h (fancy_abort): Declare.
1634         (abort): Define to fancy_abort.
1635         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
1636
1637         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
1638         (usize_type, ubitsizetype): Remove.
1639         * stor-layout.c (set_sizetype): Don't initialize usizetype,
1640         ubitsizetype.
1641         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
1642
1643         * tree.h (build_distinct_type_copy): New.
1644         (build_type_copy): ... here.  Rename to ...
1645         (build_variant_type_copy): ... here.
1646         * tree.c (build_qualified_type): Rename build_type_copy call.
1647         (build_distinct_type_copy): New, broken out of ...
1648         (build_type_copy): ... here.  Rename to ...
1649         (build_variant_type_copy): ... here.  Use
1650         build_distinct_type_copy.
1651         (build_common_tree_nodes_2): Rename build_type_copy call.
1652         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
1653         call.
1654         (handle_packed_attribute, handle_unused_attribute,
1655         handle_transparanet_union_attribute, handle_aligned_attribute,
1656         handle_deprecated_attribute): Likewise.
1657         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
1658         Likewise.
1659         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
1660         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
1661         build_distinct_type_copy.
1662
1663 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1664
1665         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
1666         attribute.
1667
1668 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1669
1670         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
1671         loads and stores.
1672         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
1673         formerly unnamed patterns.  Redefine using :P for the address.  Remove
1674         explicit length attributes.
1675
1676 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1677
1678         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
1679         New functions.
1680         (single_reachable_address): Use them.
1681         (schedule_sm): Add dump.
1682         (is_call_clobbered_ref): New function.
1683         (determine_lsm_reg): Check whether the reference is call clobbered.
1684         Only work for gimple_reg_type values.
1685
1686 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1687
1688         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
1689         $31 store insns.  Redefine using :GPR.
1690
1691 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1692
1693         * config/mips/mips.md (P): New mode macro.
1694         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
1695         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
1696         Add mode attributes.
1697
1698 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1699
1700         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
1701         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
1702         later constants to cover the gap.
1703         (load, store): New mode attributes.
1704         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
1705         Use new unspec constants.
1706
1707 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1708
1709         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
1710         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
1711         to use register_operand rather than uns_arith_operand as the predicate
1712         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
1713         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
1714         Redefine using :GPR.  Make same predicate change here.  Extend the
1715         commutativity of operands 1 and 2 from the SImode version to the
1716         DImode one.
1717         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
1718         but with no predicate changes.
1719         (*nor[sd]i3): Redefine using :GPR.
1720
1721 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1722
1723         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
1724         noreturn functions.
1725
1726 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1727
1728         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
1729         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
1730         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
1731         rather than "%z2" (with a fake const0_rtx for operand 2).
1732         (ffs[sd]i2): Redefine using :GPR.
1733         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
1734
1735 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1736
1737         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
1738
1739 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1740
1741         * config/mips/mips.md (any_extend): New code macro.
1742         (u, su): New code attributes.
1743         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
1744         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
1745         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
1746         (*{s,u}mul_acc_di): Redefine using any_extend.
1747         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
1748         to reflect real insn names.
1749         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
1750         with an any_extend template.
1751         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
1752         Add '*' to name.
1753
1754 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1755
1756         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
1757         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
1758         (mul[sd]i3_r4000): Redefine using :GPR.
1759         (mulsi3_mult3): Don't check TARGET_MAD separately.
1760         (muldi3_mult3): Moved after mulsi_mult3.
1761
1762 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1763
1764         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
1765         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
1766         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
1767         (TARGET_GAS, TARGET_MIPS_AS): Delete.
1768         (TARGET_GPWORD): Define to true for n32 on IRIX.
1769         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
1770         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
1771         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
1772         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
1773         (MDEBUG_ASM_SPEC): Delete, folding into...
1774         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
1775         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
1776         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
1777         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
1778         to define asm_abi_default_spec.
1779         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
1780         (TARGET_ASM_SELECT_SECTION): Delete.
1781         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
1782         for non-mips16 code, removing previous workaround for SGI assemblers.
1783         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
1784         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
1785         (override_options): Remove !TARGET_GAS and !have_named_sections code.
1786         (print_operand): Fold TARGET_GAS conditionals into asm strings.
1787         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
1788         ASM_STABS_OP and ASM_STABN_OP.
1789         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
1790         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
1791         (mips_output_function_prologue): Remove !TARGET_GAS code.
1792         (mips_select_rtx_section): Remove !have_named_sections code.
1793         (mips_select_section): Delete.
1794         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
1795         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
1796         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
1797         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
1798         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
1799         * config/mips/windiss.h (ASM_SPEC): Likewise.
1800
1801 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1802
1803         * read-rtl.c (map_value, mapping, macro_group): New structures.
1804         (BELLWETHER_CODE): New macro.
1805         (modes, codes, bellwether_codes): New variables.
1806         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
1807         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
1808         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
1809         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
1810         (add_map_value, initialize_macros): New functions.
1811         (def_hash, def_hash_eq_p): Generalize to anything that points to,
1812         or starts with, a char * field.
1813         (find_macro, read_mapping, check_code_macro): New functions.
1814         (read_rtx_1): New, split out from read_rtx.  Handle the new
1815         define_{mode,code}_{macro,attr} constructs.  Use find_macro
1816         to parse the name of a code or mode.  Use BELLWETHER_CODE to
1817         extract the format and to choose a suitable code for rtx_alloc.
1818         Modify recursive invocations to use read_rtx_1.
1819         (read_rtx): Call initialize_macros.  Apply code and mode macros
1820         to the rtx returned by read_rtx_1.  Cache everything after the
1821         first macro expansion for subsequent read_rtx calls.
1822         * doc/md.texi: Document new .md constructs.
1823         * config/mips/mips.md (GPR): New mode macro.
1824         (d, si8_di5): New mode attributes.
1825         (any_cond): New code macro.
1826         (add[sd]i3): Redefine using :GPR.
1827         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
1828         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
1829         previously unnamed MIPS16 patterns.
1830         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
1831         lines.  Don't match (plus (const_int 0) ...).
1832         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
1833         Use a define_split to generate the addition.
1834         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
1835         (subsi3_internal): Delete.
1836         (*subsi3_extended): Renamed from subsi3_internal_2.
1837         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
1838         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
1839         using an any_cond template.
1840
1841 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1842
1843         * read-rtl.c (read_rtx): Tidy use of format_ptr.
1844
1845 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1846
1847         * read-rtl.c (string_obstack): New file-scope variable.
1848         (read_string, read_quoted_string, read_braced_string)
1849         (read_escape): Remove obstack parameter and use string_obstack instead.
1850         (read_rtx): Remove function-local rtl_obstack and initialize
1851         string_obstack instead.  Update call to read_string.
1852
1853 2004-08-22  Andrew Pinski  <apinski@apple.com>
1854
1855         PR c/15262
1856         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
1857         expression is not constant.
1858         (c_finish_return): Do not go through INDIRECT_REF when looking
1859         for the inner expression of an ADDR_EXPR for warning about.
1860
1861 2004-08-22  Richard Henderson  <rth@redhat.com>
1862
1863         PR 17075
1864         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
1865         create new blocks and fall through.
1866         (expand_gimple_basic_block): Update to match.
1867
1868 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
1869
1870         * reload.c (find_reloads_address): Make return value tri-state.
1871         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
1872         (find_reloads): Assume that reloaded addresses match 'o' or
1873         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
1874         returned 1 (not -1).  Omit optional reloads for address operands
1875         only if find_reloads_address returned 1 (not -1).
1876
1877         * config/s390/s390.c (legitimize_reload_address): New function.
1878         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
1879         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
1880         legitimize_reload_address.
1881
1882 2004-08-22  Richard Hendersion  <rth@redhat.com>
1883
1884         * tree.h (SAVE_EXPR_RESOLVED_P): New.
1885         * gimplify.c (gimplify_save_expr): Use it.
1886         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
1887         on the temporary variable.
1888
1889 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1890
1891         * fold-const.c (rtl_expr_nonnegative_p): Delete.
1892         * tree.h (rtl_expr_nonnegative_p): Remove.
1893
1894 2004-08-22  Steven Bosscher  <stevenb@suse.de>
1895
1896         * config/i386/ppro.md (ppro_complex_insn): Add missing check
1897         for cpu==pentiumpro.
1898
1899         * combine.c (struct reg_stat): Fix comment typo.
1900
1901 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1902
1903         * c-tree.h (c_sizeof_nowarn): Remove.
1904
1905 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1906
1907         * c-decl.c (set_array_declarator_type): Rename to
1908         set_array_declarator_inner.
1909         (build_c_parm, build_attrs_declarator, build_function_declarator):
1910         New functions.
1911         (make_pointer_declarator): Call build_attrs_declarator.
1912         * c-tree.h (set_array_declarator_type): Rename to
1913         set_array_declarator_inner.
1914         (build_c_parm, build_attrs_declarator, build_function_declarator):
1915         New prototypes.
1916         * c-parse.in (after_type_declarator,
1917         parm_declarator_starttypename, parm_declarator_nostarttypename,
1918         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
1919         firstparm): Use these functions
1920
1921 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1922
1923         * c-decl.c (build_array_declarator, set_array_declarator_type,
1924         start_decl, grokdeclarator, grokparms): Change boolean parameters
1925         to type bool.
1926         * c-tree.h (build_array_declarator, set_array_declarator_type,
1927         start_decl): Update prototypes.
1928         * c-decl.c, c-parse.in: All callers changed.
1929
1930 2004-08-21  Mike Stump  <mrs@apple.com>
1931
1932         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
1933         (darwin_fix_and_continue): Likewise.
1934         (darwin_fix_and_continue_switch): Likewise.
1935         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
1936         (darwin_fix_and_continue): Likewise.
1937         (darwin_fix_and_continue_switch): Likewise.
1938
1939 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
1940
1941         PR  c++/16030
1942         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
1943         Remove, merging into ...
1944         (gen_stdcall_or_fastcall_suffix): New function, returning tree
1945         rather than const char*, and accepting additional parameter.
1946         Don't add suffix to '*'-prefixed symbols or variadic functions.
1947         (i386_pe_encode_section_info): Adjust for call to new function.
1948         Call change_decl_assembler_name.
1949
1950 2004-08-20  Mike Stump  <mrs@apple.com>
1951
1952         * config/darwin.c (machopic_indirect_data_reference): Mark
1953         stubs as defined.
1954         * config/386/386.c (darwin_local_data_pic): Add.
1955         (legitimate_constant_p): Reorder so that PLUS handling runs
1956         before darwin_local_data_pic to match the ordering in
1957         legitimate_pic_address_disp_p and so that MINUS runs after
1958         darwin_local_data_pic as otherwise the darwin_local_data_pic
1959         logic can be skipped, which would be very bad.
1960         (legitimate_pic_address_disp_p): Move from from here to
1961         darwin_local_data_pic so it can be reused.
1962
1963 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
1964
1965         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
1966         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
1967         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
1968         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
1969         (RS6000_ABI_NAME): Define as "linux".
1970         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
1971         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
1972         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
1973         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
1974         * config/rs6000/rs6000.c (dot_symbols): New global var.
1975         (rs6000_output_function_entry): New function, modified for
1976         !DOT_SYMBOLS..
1977         (print_operand <case 'z'>): ..extracted from here.
1978         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
1979         (rs6000_output_function_epilogue): Likewise.
1980         (rs6000_elf_declare_function_name): Likewise.
1981         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
1982         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
1983         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
1984         * configure: Regenerate.
1985         * config.in: Regenerate.
1986
1987 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
1988
1989         * reload.c (find_reloads_address): Fix thinko in previous change.
1990
1991         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
1992         a CONST_INT.
1993
1994 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
1995
1996         PR rtl-optimization/17099
1997         * combine.c (force_to_mode): Check if inner_mask has any bits set
1998         outside of GET_MODE (x) instead of op_mode.
1999
2000 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2001
2002         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
2003         fragment.
2004         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
2005         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
2006         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
2007         architecture.
2008         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2009         configurations.
2010         * config/arm/t-symbian: New file.
2011
2012 2004-08-20  Andrew Pinski  <apinski@apple.com>
2013
2014         * regrename.c (kill_value_regno): ANSIfy.
2015
2016 2004-08-20  Dale Johannesen  <dalej@apple.com>
2017
2018         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2019
2020 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
2021
2022         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
2023         (kill_value_regno): New function, derived from kill_value.
2024         (kill_value): Update.
2025         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
2026
2027 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
2028
2029         Fix PR tree-optimization/17111
2030         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
2031         of non-value_handles.
2032         (bitmap_set_contains): All constants are in every set.
2033
2034 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2035
2036         * fold-const.c (round_up, round_down): Use build_int_cst.
2037         Optimize common case.
2038
2039 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
2040             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2041
2042         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
2043         one_only_data_section): Rename to som_readonly_data_section,
2044         som_one_only_readonly_data_section and som_one_only_data_section.
2045         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
2046         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
2047         conditional defines.
2048         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
2049         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
2050         string values.
2051         (pa_select_section): Use renamed section functions.
2052         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2053         SOM_READONLY_DATA_SECTION_FUNCTION,
2054         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2055         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
2056         Define here ...
2057         * config/pa/som.h: ... not here.
2058         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2059         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
2060         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2061         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
2062         (READONLY_DATA_SECTION): Use som_readonly_data_section.
2063
2064 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2065
2066         * fold-const.c (int_const_binop): Don't generate non-overflowing
2067         size-types specially.
2068         (fold_convert_const): Likewise.
2069
2070         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2071         clear cache on copied sizetype.
2072
2073 2004-08-20  Ben Elliston  <bje@au.ibm.com>
2074
2075         * configure.ac: Don't escape apostrophe in --enable-coverage help.
2076         * configure: Regenerate.
2077
2078 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2079
2080         PR 5620
2081         * gcc.c (struct stat input_stat): Don't define if
2082         HOST_LACKS_INODE_NUMBERS
2083         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
2084         than stat to determine if temp file is same as input file.
2085         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
2086         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
2087
2088 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
2089
2090         * configure.ac (mips*-*-*): Print an error if not using GAS.
2091         * configure: Regenerated.
2092         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
2093         comments about buggy MIPSpro assemblers.
2094         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
2095         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
2096         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
2097         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
2098         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
2099         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
2100         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
2101         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
2102         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
2103         of more general IRIX 6 definitions.
2104         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
2105         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
2106         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
2107         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
2108         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2109         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
2110         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
2111         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
2112         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
2113         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
2114         (LINK_SPEC): Move most of definition to iris.h.
2115         (SUBTARGET_LINK_SPEC): New macro.
2116         (IRIX_STARTFILE_SPEC): Fold into...
2117         (STARTFILE_SPEC): ...here.
2118         (IRIX_ENDFILE_SPEC): Fold into...
2119         (ENDFILE_SPEC): ...here.
2120         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
2121         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
2122         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
2123         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
2124         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
2125         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
2126         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
2127         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2128         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
2129         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
2130         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
2131         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
2132         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
2133         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
2134         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
2135         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
2136         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
2137         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
2138         (TARGET_IRIX6): Define to 1.
2139         (DRIVER_SELF_SPECS): Define.
2140         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
2141         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
2142         (SUBTARGET_LINK_SPEC): New macro.
2143         (IRIX_STARTFILE_SPEC): Fold into...
2144         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
2145         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
2146         (LIB_SPEC, LIBGCC_SPEC): Use them.
2147         (LIB_SPEC): Remove !mabi=* case.
2148         (IRIX_ENDFILE_SPEC): Fold into...
2149         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
2150         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
2151         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
2152         (TARGET_IRIX6): New macro.
2153         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
2154         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
2155         (LABEL_AFTER_LOC): Delete.
2156         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
2157         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
2158         (mips_build_builtin_va_list): Check TARGET_IRIX6.
2159         (override_options): Remove TARGET_SGI_O32_AS-related code.
2160         (irix_output_external_libcall): Make static.
2161         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
2162         LABEL_AFTER_LOC.
2163         (mips_file_start): Tidy guard for ABI sections.  Remove use of
2164         ABICALLS_ASM_OP; use .abicalls instead.
2165         (mips_output_aligned_decl_common, mips_declare_object_name)
2166         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
2167         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
2168         .globl foo .text directives.
2169         (irix_asm_named_section_1, irix_asm_named_section)
2170         (irix_section_align_entry, irix_section_align_htab)
2171         (irix_orig_asm_out_file, irix_section_align_entry_eq)
2172         (irix_section_align_entry_hash, irix_asm_output_align)
2173         (irix_file_start, irix_section_align_1, copy_file_data)
2174         (irix_file_end, irix_section_type_flags): Delete.
2175         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
2176         Use standard section syntax.  Remove protective "jr $31".
2177         (__gcc_fini): Likewise .gcc_fini.
2178         * config/mips/irix-crtn.asm: Adjust sections accordingly.
2179         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
2180         iris5gas.h.
2181         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
2182         from t-irix-gld.
2183         (EXTRA_MULTILIB_PARTS): Define.
2184         * config/mips/t-iris6: Remove bogus comment.
2185         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
2186         * config/mips/iris5gas.h, config/mips/iris5gld.h,
2187         config/mips/iris6gas.h, config/mips/iris6gld.h,
2188         config/mips/t-iris5-as, config/mips/t-iris5-gas
2189         config/mips/t-irix-gld: Delete.
2190         * config/mips/iris.h: New file.
2191         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
2192
2193 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
2194
2195         * postreload.c (reload_cse_move2add): Allow any condjump, but check
2196         that the implicit set isn't clobbered in the jump insn.
2197
2198 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2199
2200         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
2201         * optabs.c (init_optabs): Don't check it.
2202         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
2203         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
2204
2205 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2206
2207         * config/s390/s390.md (s390_warn_framesize_string)
2208         (s390_warn_dynamic_string, s390_stack_size_string)
2209         (s390_stack_guard_string): New global string variables.
2210         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
2211         (s390_stack_guard): New global variables.
2212         (override_options): Added checks for the new options.
2213         (s390_emit_prologue): Emit stack check and trap code and perform
2214         compile time stack size checking.
2215
2216         * config/s390/s390.h (TARGET_OPTIONS): Added new options
2217         "warn-framesize", "warn-dynamicstack", "stack-size" and
2218         "stack-guard".
2219
2220         * doc/invoke.texi: Added documentation for the new options.
2221
2222 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2223
2224         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
2225         to eliminate warning.
2226         (linear_search_fdes): Declare p as unsigned.
2227         (binary_search_mixed_encoding_fdes): Likewise.
2228         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
2229         to eliminate warning.
2230         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
2231         type cast.
2232
2233 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2234
2235         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
2236         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
2237         instead of one.  Check for strictly legitimate address.
2238         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
2239         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
2240
2241 2004-08-19  Eric Christopher  <echristo@redhat.com>
2242
2243         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
2244         * langhooks.h (unsave_expr_now): Ditto.
2245         * tree.h (unsave_expr_1): Remove prototype.
2246         (lhd_unsave_expr_now): Rename to unsave_expr_now.
2247         * tree-inline.c (unsave_expr_1): Move here
2248         from tree.c. Make static.
2249         (unsave_expr_now): Rename from lhd_unsave_expr_now.
2250         * tree-sra.c: Fix up for rename.
2251         * tree-ssa-copy.c: Ditto.
2252         * tree-eh.c: Ditto.
2253         * tree.c (unsave_expr_1): Move to tree-inline.c.
2254
2255 2004-08-19  Caroline Tice  <ctice@apple.com>
2256
2257         * config/i386/cygming.h (switch_to_section):  Fix typo (change
2258         in_unlikely_text_section to in_unlikely_executed_text).
2259
2260 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
2261
2262         * vec.h (VEC_lower_bound): New macro.
2263
2264 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
2265
2266         PR target/16446
2267         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
2268         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
2269         treat each ABI separately.  Deal with n32/n64 complex float arguments.
2270         (function_arg): Add associated complex handling here.
2271
2272 2004-08-19  Richard Henderson  <rth@redhat.com>
2273
2274         * config/arm/arm.c (arm_gen_load_multiple): Use
2275         adjust_automodify_address.  Take base memory and offset instead
2276         of unchanging/struct/scalar bits.
2277         (arm_gen_store_multiple): Likewise.
2278         (arm_gen_movmemqi): Use adjust_automodify_address.
2279         * config/arm/arm-protos.h: Update decls.
2280         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
2281         (store_multiple): Similarly.
2282
2283 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
2284
2285         * regclass.c (globalize_reg): Update call_really_used_regs.
2286
2287 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2288
2289         * doc/invoke.texi (integer-share-limit): Document.
2290
2291         * tree.h (TYPE_CACHED_VALUES_P): New.
2292         (TYPE_CACHED_VALUES): New.
2293         (TYPE_ORIG_SIZE_TYPE): Adjust.
2294         * tree.def (INTEGER_CST): Update documentation.
2295         * tree.c: Inlcude params.h.
2296         (build_int_cst): Cache small values.
2297         (build_type_copy): Do not copy the value cache.
2298         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
2299         unneeded zeroing.
2300         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
2301         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
2302         cache.
2303         * fold-const.c (force_fit_type): Copy value when setting
2304         overflows.
2305         (int_const_binop): Likewise.
2306         * stor-layout.c: Include params.h
2307         (set_sizetype): Create values cache.
2308         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
2309         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
2310         * params.h (INTEGER_SHARE_LIMIT): New.
2311         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
2312
2313 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
2314
2315         * gimplify.c (gimplify_minimax_expr): Remove.
2316         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
2317
2318 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
2319
2320         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2321         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
2322
2323 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2324
2325         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
2326
2327 2004-08-18  Andrew Pinski  <apinski@apple.com>
2328
2329         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
2330
2331 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
2332
2333         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
2334         (__aeabi_ul2f): Likewise.
2335
2336 2004-08-18  Richard Henderson  <rth@redhat.com>
2337
2338         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
2339         move to rtl completely.
2340         (struct meminsnbuf, xtensa_emit_block_move): Remove.
2341         (xtensa_find_mode_for_size): Remove.
2342         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
2343         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
2344
2345 2004-08-18  Richard Henderson  <rth@redhat.com>
2346
2347         * config/mcore/mcore.c (mode_from_align): Remove DImode.
2348         (block_move_sequence): Rewrite to use adjust_address.
2349         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
2350         Return boolean indicating success/failure.
2351         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
2352         * config/mcore/mcore.md (movmemsi): Update to match.
2353
2354 2004-08-18  Mike Stump  <mrs@apple.com>
2355
2356         * doc/invoke.texi (-mfix-and-continue): Add support for
2357         fast turn around debugging.
2358         (-ffix-and-continue): Likewise.
2359         (-mindirect-data): Likewise.
2360         (-findirect-data): Likewise.
2361         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
2362         (indirect_data): Likewise.
2363         (machopic_data_defined_p): Likewise.
2364         (machopic_output_indirection): Likewise.
2365         (darwin_encode_section_info): Likewise.
2366         (darwin_fix_and_continue): Likewise.
2367         (darwin_fix_and_continue_switch): Likewise.
2368         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
2369         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
2370         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
2371         (SUBTARGET_OPTIONS): Likewise.
2372         (darwin_fix_and_continue): Likewise.
2373         (darwin_fix_and_continue_switch): Likewise.
2374         (TARGET_FIX_AND_CONTINUE): Likewise.
2375         * config/rs6000.c (rs6000_emit_prologue): Likewise.
2376
2377 2004-08-19  Steven Bosscher  <stevenb@suse.de>
2378
2379         * basic-block.h (struct edge_def): Remove crossing_edge.
2380         (EDGE_CROSSING): New define.
2381         (EDGE_ALL_FLAGS): Update.
2382         * bb-reorder.c (find_traces_1_round, better_edge_p,
2383         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
2384         find_jump_block, fix_crossing_conditional_branches,
2385         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
2386         Replace all occurences of crossing_edge with an edge flag check
2387         or set/reset.
2388         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2389         try_crossjump_bb): Likewise.
2390         * cfglayout.c (fixup_reorder_chain): Likewise.
2391         * cfgrtl.c (force_nonfallthru_and_redirect,
2392         commit_one_edge_insertion): Likewise.
2393
2394         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
2395         * tree-flow.h (compute_dominance_frontiers): Move prototype...
2396         * basic-block.h:  ...here.
2397         * tree-cfg.c (compute_dominance_frontiers_1,
2398         compute_dominance_frontiers): Move from here...
2399         * cfganal.c: ...to here.  Include timevar.h.
2400
2401 2004-08-18  James E Wilson  <wilson@specifixinc.com>
2402
2403         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
2404         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
2405
2406         * config/mips/mips.md (type): Add frdiv.
2407         (divsf3+1, divsf3+2): Change type to frdiv.
2408         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
2409         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
2410
2411         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
2412         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
2413         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
2414         * config/mips/5000.md (r5k_fdiv_single): Likewise.
2415         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
2416         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
2417         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
2418         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
2419         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
2420         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
2421         Likewise.
2422         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
2423
2424 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
2425
2426         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
2427         get regression tester working again.
2428
2429 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2430
2431         * insn-notes.def, reg-notes.def: New files.
2432         * rtl.h: Use them to define enum insn_note and enum reg_note.
2433         * rtl.c: Use them to define note_insn_name and reg_note_name.
2434         * Makefile.in (RTL_BASE_H): Update.
2435
2436         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
2437         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2438
2439 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2440
2441         * arm.c (arm_size_rtx_costs): New function.
2442         (arm_override_options): Use it if optimizing for space.
2443
2444 2004-08-18  Richard Henderson  <rth@redhat.com>
2445
2446         * emit-rtl.c (gen_const_mem): New.
2447         * rtl.h (gen_const_mem): Declare.
2448         * expr.c (do_tablejump): Use it.
2449         * varasm.c (force_const_mem): Likewise.
2450         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2451         (machopic_legitimize_pic_address): Likewise.
2452         * config/arm/arm.c (legitimize_pic_address): Likewise.
2453         * config/i386/i386.c (legitimize_pic_address): Likewise.
2454         (legitimize_tls_address): Likewise.
2455         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2456         * config/ia64/ia64.md (load_fptr): Likewise.
2457         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
2458         * config/pa/pa.c (legitimize_pic_address): Likewise.
2459         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2460         (rs6000_emit_move): Likewise.
2461         * config/s390/s390.c (legitimize_pic_address): Likewise.
2462         (legitimize_tls_address): Likewise.
2463         * config/s390/s390.md (casesi): Likewise.
2464         * config/sh/sh.c (sh_reorg): Likewise.
2465         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
2466         * config/v850/v850.md (casesi): Likewise.
2467
2468         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
2469         * config/sh/sh.c (prepare_move_operands): Remove incorrect
2470         use of MEM_READONLY_P.
2471
2472 2004-08-18  Steven Bosscher  <stevenb@suse.de>
2473
2474         * Makefile.in (OBJS-common): Add postreload-gcse.c.
2475         Add new postreload-gcse.o.
2476         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
2477         (lookup_as_function, insert, rehash_using_reg, use_related_value,
2478         equiv_constant): Use SAFE_HASH instead of safe_hash.
2479         (exp_equiv_p): Export.  Add for_gcse argument when comparing
2480         for GCSE.
2481         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
2482         find_comparison_args, fold_rtx, cse_insn): Update callers.
2483         (hash_rtx): New function derived from old canon_hash and bits
2484         from gcse.c hash_expr_1.
2485         (canon_hash_string): Rename to hash_rtx_string.
2486         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
2487         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
2488         (cselib_lookup): Update this caller.
2489         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
2490         Make static.
2491         (hash_expr): Call hash_rtx.
2492         (ldst_entry): Likewise.
2493         (expr_equiv_p): Call exp_equiv_p.
2494         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
2495         reg_used_on_edge, reg_set_between_after_reload_p,
2496         reg_used_between_after_reload_p, get_avail_load_store_reg,
2497         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
2498         get_bb_avail_insn, hash_scan_set_after_reload,
2499         compute_hash_table_after_reload,
2500         eliminate_partially_redundant_loads, gcse_after_reload,
2501         get_bb_avail_insn, gcse_after_reload_main): Remove.
2502         * postreload-gcse.c: New file, reincarnating most of the above.
2503         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
2504         (gcse_after_reload_main): Update prototype.
2505         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
2506         * passes.c (rest_of_handle_gcse2): Use it.
2507
2508 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2509
2510         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
2511         (pass_loop_done): Likewise.
2512
2513 2004-08-18  Andrew Pinski  <apinski@apple.com>
2514
2515         * config/rs6000/darwin.md: Delete the altivec patterns which are
2516         handled differently now.
2517         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
2518         (macho_correct_pic_di): Likewise.
2519         (call_indirect_nonlocal_darwin64): Likewise.
2520         Delete the save world/saveFP/saveVec patterns.
2521
2522         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
2523         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
2524         * config/rs6000/rs6000.md: Include darwin.md.
2525         (builtin_setjmp_receiver): Add DImode case.
2526         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
2527         Darwin bits.
2528
2529 2004-08-18  Matt Austern  <austern@apple.com>
2530
2531         Dead code stripping
2532         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
2533         * darwin.c (darwin_file_end): Mark file as potentially strippable.
2534
2535 2004-08-18  Richard Henderson  <rth@redhat.com>
2536
2537         * alias.c (readonly_fields_p): Remove.
2538         (objects_must_conflict_p): Don't call it.
2539         * tree.h (readonly_fields_p): Remove.
2540         * langhooks.h (struct lang_hooks): Remove honor_readonly.
2541         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
2542
2543 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2544
2545         * tree-dfa.c (add_referenced_var): Only global variables are
2546         call-clobbered.
2547         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
2548         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
2549         all pointers dereferenced if the statement dereferences them.
2550         (create_name_tags): Do not create memory tags for pointers
2551         that have PT_ANYTHING set.
2552         Also check if PT_VARS is not empty before creating a name tag.
2553         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
2554         variables that share the same alias set with a pointer that
2555         may point anywhere.
2556         (add_may_alias): Add FIXME comment to remove clobbering
2557         aliased variables and tags.
2558         (replace_may_alias): Likewise.
2559         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
2560         (merge_pointed_to_info): If the original variable has not
2561         points-to information, call set_pt_anything.
2562         (add_pointed_to_var): Do not prevent adding a pointed-to
2563         variable if the pointers is PT_ANYTHING.
2564         If the variable is a global, set PT_GLOBAL_MEM.
2565         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
2566         pointer type only come in PTR+OFFSET flavours.
2567         Always call merge_pointed_to_info on PHI arguments that are
2568         SSA_NAMEs.
2569         (get_nmt_for): Mark call-clobbered tags whose pointer points
2570         to global memory.
2571         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
2572         values.
2573         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
2574         FLAGS.
2575         (add_stmt_operand): Abort if the caller tried to add a killing
2576         definition for a memory tag.
2577         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
2578         unnecessary checks.
2579
2580 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
2581
2582         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
2583         from call_used_regs.  Update call_really_used_regs.
2584         (CALL_REALLY_USED_REGISTERS): Define.
2585         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
2586         Replace call_used_regs with call_really_used_regs.
2587         (calc_live_regs, sh_media_register_for_return): Likewise.
2588         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
2589         * sh.md (return_media): Likewise.
2590
2591 2004-08-18  Andrew Pinski  <apinski@apple.com>
2592
2593         * config/darwin.c (machopic_legitimize_pic_address): Only set
2594         MEM_READONLY_P in the non TARGET_TOC case.
2595
2596 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2597
2598         * rtl.def (NIL): Delete.
2599         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
2600         Tighten the syntax a little.
2601
2602         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
2603         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
2604         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
2605         * config/i386/predicates.md, config/m32r/m32r.h
2606         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
2607         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
2608         * config/sparc/sparc.h, doc/tm.texi:
2609         Replace all occurrences of NIL with UNKNOWN.
2610
2611 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2612
2613         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
2614         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
2615         sequence inline.  Move drop_through_label code into this
2616         block, being the only place it is used.  Adjust comments.
2617
2618 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
2619
2620         * config/rs6000/altivec.md: Add new patterns for calls to
2621         save_world/rest_world functions.
2622
2623         * config/rs6000/rs6000-protos.h: (save_world_operation,
2624         restore_world_operation) new declarations.
2625
2626         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
2627         field added.
2628         (rs6000_stack_info): Set world_save_p field.
2629         (save_world_operation): New function.
2630         (restore_world_operation): New function.
2631         (compute_save_world_info): New function.
2632         (rs6000_stack_info): Call compute_save_world_info.
2633         (rs6000_emit_prologue): Check for world_save_p and generate
2634         pattern to call save_world for saving all non-volatile and
2635         special registers.
2636         (rs6000_emit_epilogue): Check for world_save_p and generate
2637         pattern to call rest_world to restore saved registers.
2638
2639         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
2640         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
2641         (rs6000_reg_names): New entries added for save_world_operation and
2642         restore_world_operation.
2643
2644 2004-08-18  Caroline Tice  <ctice@apple.com>
2645
2646         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
2647         "-freorder-blocks-and-partition" to the flags used in second
2648         stage of profiledbootstrap.
2649         * bb-reorder.c (push_to_next_round_p): Add new variable,
2650         next_round_is_last; set and use variable to make sure, when
2651         partitioning, that the last trace construction round consists
2652         of all (and only) cold basic blocks.
2653         (rotate_loop): Don't copy blocks that end in a section
2654         crossing jump.
2655         (copy_bb): Correctly initialize "partition" of duplicated bb.
2656         (add_unlikely_executed_notes): Add a comment.
2657         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
2658         to make sure, if function contains hot blocks, that the
2659         successors of ENTRY_BLOCK_PTR are hot; also, only look for
2660         crossing edges if the architecture supports named sections.
2661         (mark_bb_for_unlikely_executed_section): Modify to always
2662         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
2663         the basic block note insn.
2664         (fix_crossing_unconditional_branches): Remove extra space.
2665         (fix_edges_for_rarely_executed_code): Modify to only do
2666         partitioning work if the architecture supports named sections.
2667         (reorder_basic_blocks): Modify to only add
2668         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
2669         supports named sections.
2670         * c-common.c (handle_section_attribute): Initialize new global
2671         variable, user_defined_section_attribute, to true if user has
2672         specified one.
2673         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
2674         forward edges that cross section boundaries.
2675         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
2676         partitioning information if the architecture supports named
2677         sections.
2678         * cfgrtl.c (target.h): Add statement to include this.
2679         (rtl_split_block): Make sure newly created bb gets correct
2680         partition.
2681         (try_redirect_by_replacing_jump): Make sure redirection isn't
2682         attempting to cross section boundaries.
2683         (force_nonfallthru_and_redirect): Only do partition fix up if
2684         architecture supports named sections.
2685         (rtl_split_edge): Make sure newly created bb ends up in
2686         correct partition.
2687         (commit_one_edge_insertion): Remove code that incorrectly
2688         updated basic block partition; Make sure partition fix up only
2689         happens if architecture supports named sections and it's not
2690         already done.
2691         (rtl_verify_flow_info_1): Fix if-condition on test/error
2692         condition that fallthru edges are not allowed to cross section
2693         boundaries.
2694         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
2695         * final.c (final_scan_insn): Remove redundant test from if-statement;
2696         change calls to text_section into calls to function_section; add code
2697         to only to partitioning fix up if architecture supports named
2698         sections.
2699         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
2700         partition.
2701         (if_convert): Add targetm.have_named_sections to test.
2702         * output.h (unlikely_section_label): Extern declaration for new global
2703         variable.
2704         (unlikely_text_section_name): Likewise.
2705         * opts.c (decode_options): If both partitioning and DWARF debugging
2706         are turned on, issue a warning that this doesn't work, and change
2707         partitiong to basic block reordering (without hot/cold partitions).
2708         * passes.c (rest_of_handle_final): Re-set new global variable,
2709         user_defined_section_attribute, to false.
2710         (rest_of_compilation): Change options for calling partitioning
2711         function: Don't call if the user defined the section attribute, and
2712         don't call if DECL_ONE_ONLY is true for the current function.
2713         * predict.c (choose_function_section): Return immediately if we
2714         are doing hot/cold partitioning (i.e. let the basic block partitioning
2715         determine where the function belongs).
2716         * reg-stack.c (emit_swap_insn): Add condition to step over
2717         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
2718         * toplev.c (user_defined_section_attribute): New global variable.
2719         * toplev.h (user_defined_section_attribute): Extern declaration
2720         for new global variable.
2721         * varasm.c (unlikely_section_label): New global variable.
2722         (unlikely_text_section_name): New global variable.
2723         (unlikely_text_section): Add code to initialize
2724         unlikely_text_section_name if necessary; modify to use
2725         unlikely_text_section_name and unlikely_section_label; also to use
2726         named_section properly.
2727         (in_unlikely_text_section):  Modify to work correctly with
2728         named_section and to use unlikely_text_section_name.
2729         (named_section):  Add code to work properly with cold section.
2730         (function_section): Clean up if-statement.
2731         * config/darwin.c (darwin_asm_named_section): Return to original
2732         code, removing use of SECTION_FORMAT_STRING.
2733         * config/arm/pe.h (switch_to_section):  Add case for
2734         in_unlikely_executed_text to switch statement.
2735         * config/i386/cygming.h (switch_to_section): Likewise.
2736         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
2737         (SECTION_FORMAT_STRING): Likewise.
2738         * config/mcore/mcore.h (switch_to_section): Likewise.
2739         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
2740         (SECTION_FORMAT_STRING): Remove.
2741
2742 2004-08-18  Roger Sayle  <roger@eyesopen.com>
2743
2744         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
2745         -ffixed-reg safe, by preserving the meanings of zero and one.
2746         (CALL_USED_REGISTERS): Likewise.
2747         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
2748
2749 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2750
2751         * config/sh/sh.c (split_branches): Check the result of
2752         next_active_insn.
2753         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
2754         Call rtl_register_cfg_hooks.
2755
2756 2004-08-18  Richard Henderson  <rth@redhat.com>
2757
2758         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
2759         * alias.c (true_dependence): Update to match new semantics.
2760         (canon_true_dependence, write_dependence_p): Likewise.
2761         (anti_dependence, output_dependence): Update write_dependence_p args.
2762         (unchanging_anti_dependence): Remove.
2763         * calls.c (purge_mem_unchanging_flag): Remove.
2764         (fixup_tail_calls): Don't call it.
2765         (expand_call): Don't add unchanging memory to function usage.
2766         * expr.c (emit_block_move_via_libcall): Likewise.
2767         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
2768         (get_subtarget): Don't use RTX_UNCHANGING_P.
2769         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
2770         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
2771         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
2772         * cse.c (insert): Don't use RTX_UNCHANGING_P.
2773         (cse_insn, canon_hash): Use MEM_READONLY_P.
2774         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
2775         instead of RTX_UNCHANGING_P.
2776         * explow.c (maybe_set_unchanging): Remove.
2777         * expr.h (maybe_set_unchanging): Remove.
2778         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
2779         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
2780         (assign_parm_setup_reg, expand_function_start): Likewise.
2781         * integrate.c (copy_rtx_and_substitute): Likewise.
2782         * ra-rewrite.c (emit_colors): Likewise.
2783         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
2784         (fixup_match_1): Likewise.
2785         * reload1.c (reload, alter_reg): Likewise.
2786         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
2787         not RTX_UNCHANGING_P.
2788         (equiv_init_varies_p): Likewise.
2789         * loop-invariant.c (check_maybe_invariant): Likewise.
2790         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
2791         * loop.c (note_addr_stored): Likewise.
2792         (prescan_loop): Likewise. Don't check function usage for clobbered
2793         unchanging memory.
2794         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
2795         not RTX_UNCHANGING_P.
2796         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
2797         * varasm.c (force_const_mem): Likewise.
2798         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
2799         * web.c (entry_register): Likewise.
2800         * tree-gimple.h (get_base_address): Move decl ...
2801         * tree.h: ... here.
2802         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
2803
2804         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
2805         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
2806         (alpha_set_memflags): Update to match.
2807
2808         * config/darwin.c (machopic_indirect_data_reference): Set
2809         MEM_READONLY_P instead of RTX_UNCHANGING_P.
2810         (machopic_indirect_call_target): Likewise.
2811         (machopic_legitimize_pic_address): Likewise.
2812         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
2813         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
2814         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
2815         * config/frv/frv.md (symGOT2reg): Likewise.
2816         * config/i386/i386.c (legitimize_pic_address,
2817         legitimize_tls_address, ix86_split_to_parts): Likewise.
2818         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2819         * config/ia64/ia64.md (load_fptr): Likewise.
2820         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
2821         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
2822         * config/mcore/mcore.c (block_move_sequence): Likewise.
2823         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
2824         * config/pa/pa.c (legitimize_pic_address): Likewise.
2825         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2826         (rs6000_emit_move): Likewise.
2827         * config/s390/s390.c (legitimize_pic_address): Likewise.
2828         (legitimize_tls_address): Likewise.
2829         * config/s390/s390.md (casesi): Likewise.
2830         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
2831         * config/sh/sh.md (symGOT2reg): Likewise.
2832         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
2833         * config/v850/v850.md (casesi): Likewise.
2834
2835         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
2836         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
2837         * config/mips/mips.c (mips_restore_gp): Likewise.
2838         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
2839         * config/sh/sh.c (sh_reorg): Likewise.
2840
2841 2004-08-18  Richard Henderson  <rth@redhat.com>
2842
2843         * tree.h (struct tree_decl): Add gimple_formal_temp.
2844         (DECL_GIMPLE_FORMAL_TEMP_P): New.
2845         * gimplify.c (pop_gimplify_context): Clear it.
2846         (lookup_tmp_var): Set it, if is_formal.
2847         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
2848         Use is_gimple_val for VECTOR.  Simplify return value.
2849         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
2850         (gimplify_expr): Likewise.
2851         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
2852         is_gimple_tmp_rhs for clarity.  Update all callers.
2853         (is_gimple_reg_rhs): Simplify logic.
2854         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
2855         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
2856         (is_gimple_formal_tmp_reg): Similarly.
2857         * tree-gimple.h: Update decls.
2858         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
2859         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
2860         * tree-ssa-live.c (var_union, type_var_init): Likewise.
2861
2862 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
2863
2864         * c4x.c (legitimize_operands): Remove calls to
2865         preserve_subexpressions_p.
2866
2867 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
2868
2869         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
2870         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
2871
2872 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
2873
2874         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
2875         Objective-C++ extensions.
2876         * gengtype.c (get_file_basename): Match entire subdirectory name
2877         ('cp', 'objc', 'objcp') rather than just its suffix.
2878         (get_base_file_bitmap): Allow for files to belong to more than one
2879         language.
2880         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
2881         used by more than one front-end.
2882
2883 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2884
2885         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
2886         avoid use of preserve_subexpressions_p.
2887
2888 2004-08-17  Richard Henderson  <rth@redhat.com>
2889
2890         PR 17051
2891         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
2892
2893 2004-08-17  DJ Delorie  <dj@redhat.com>
2894
2895         * doc/extend.texi: Document new xstormy16 attribute.
2896
2897         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
2898         (xstormy16_splittable_below100_or_register): New.
2899         (combine_bnp): New.
2900         (xstormy16_reorg): New.
2901         (TARGET_MACHINE_DEPENDENT_REORG): Define.
2902
2903         * config/stormy16/stormy16.md (movqi_internal): Make name public.
2904         (movhi_internal): Likewise.
2905         (cbhranchhi): Likewise.
2906         (cbhranchhi_neg): Likewise.
2907         (andhi3): Only allow splittable below100 operands.
2908         (iorhi3): Likewise.
2909         (peephole2): New and/zero_extend->and peephole.
2910         (peephole2): New load/ior/save->set1 peephole.
2911         (peephole2): New load/and/save->clr1 peephole.
2912         (bclrx, bclrx2, bclr7, bclr15): New.
2913         (bsetx, bsetx2, bset7, bset15): New.
2914
2915         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
2916         liberal about acceptable 'B' masks.
2917
2918         * config/stormy16/stormy16-protos.h
2919         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
2920         xstormy16_below100_operand, xstormy16_below100_or_register,
2921         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
2922         (PREDICATE_CODES): Add new predicates.
2923
2924         * config/stormy16/stormy16.c
2925         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
2926         xstormy16_below100_operand, xstormy16_below100_or_register,
2927         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
2928         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
2929         (xstormy16_legitimate_address_p): Allow below100 symbols.
2930         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
2931         (xstormy16_expand_move): Leave below100 operands as-is.
2932         (xstormy16_encode_section_info): Encode below100 symbols.
2933         (xstormy16_strip_name_encoding): New.
2934         (xstormy16_print_operand): Print 'b' as shift mask.
2935         (xstormy16_attribute_table): Add below100 attributes.
2936         (xstormy16_handle_below100_attribute): New.
2937
2938         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
2939         (XSTORMY16_SECTION_FUNCTION): New.
2940         (EXTRA_SECTION_FUNCTIONS): Define using the above.
2941         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
2942         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
2943         (ASM_OUTPUT_LABELREF): Define.
2944
2945         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
2946         (movhi_internal): Add below100 support.
2947         (andhi3): Add below100 support.
2948         (iorhi3): Add below100 support.
2949         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
2950
2951 2004-08-17  James E Wilson  <wilson@specifixinc.com>
2952
2953         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
2954         of VOIDmode for comparison code mode.
2955         * config/mips/mips.md: For conditional move patterns, use mode of
2956         first compare operand for comparison mode, instead of VOIDmode.
2957
2958         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
2959         normal and -ffast-math code.
2960
2961 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
2962
2963         PR c++/15871
2964         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
2965
2966 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
2967
2968         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
2969
2970 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
2971
2972         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
2973         for non Darwin targets.
2974         (*call_value_nonlocal_darwin64): Likewise.
2975
2976 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
2977
2978         * config/rs6000/rs6000.c (rs6000_function_value): Check for
2979         altivec mode for altivec return register.
2980
2981 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
2982
2983         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
2984         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
2985         * config/rs6000/rs6000.md: Include darwin.md.
2986         (builtin_setjmp_receiver): Add DImode case.
2987         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
2988         Darwin bits.
2989
2990 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
2991
2992         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
2993         trees.
2994         * tree-vectorizer.h: New File: Same.
2995         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
2996         * common.opt (ftree-vectorize): New flag to enable vectorization.
2997         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
2998         vectorization pass.
2999         * tree-data-ref.h (init_data_ref): Additional argument.
3000         (array_base_name_differ_p): Moved to tree-data-ref.c.
3001         * tree-data-ref.c (array_base_name_differ_p): Revised.
3002         (initialize_data_dependence_relation): Call array_base_name_differ_p
3003         with an extra argument.
3004         (analyze_all_data_dependences): Same.
3005         (init_data_ref): Additional argument is_read to set DR_IS_READ.
3006         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
3007         file.
3008         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
3009         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
3010         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
3011         vectorization pass.
3012         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
3013         (tree_ssa_loop_done): Call scev_finalize.
3014         (tree_vectorize): Define the new vectorization pass.
3015         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
3016         size of the vector they support (until support for multiple vector
3017         sizes is added to the vectorizer).
3018         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
3019         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
3020         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
3021         documentation.
3022
3023 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
3024
3025         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
3026         usage.
3027         (generate_protocol_list, handle_impent): Likewise.
3028
3029 2004-08-17  Roger Sayle  <roger@eyesopen.com>
3030
3031         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
3032         ensure that call_used_regs is a superset of both fixed_regs and
3033         call_really_used_regs.
3034
3035 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
3036
3037         PR target/17019
3038         * arm.md (addsi3_cbranch_scratch): Correct case labels.
3039
3040 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
3041
3042         PR middle-end/17036
3043         * fold-const.c (fold): Check for integer operand when
3044         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
3045         Pinski  <pinskia@physics.uc.edu>.
3046
3047 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
3048
3049         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
3050         No need to check if in a cross configuration.
3051         * configure: Regenerate.
3052
3053         * calls.c (precompute_register_parameters):
3054         Inline preserve_subexpressions_p ().
3055         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
3056         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
3057         Likewise.
3058         * expr.c (get_subtarget): Likewise.
3059         * rtl.h (preserve_subexpressions_p): Remove.
3060         * stmt.c (preserve_subexpressions_p): Remove.
3061
3062         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
3063         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
3064         Abort on gimplified cases.
3065
3066 2004-08-16  James E Wilson  <wilson@specifixinc.com>
3067
3068         * tree.h (VECTOR_FLOAT_TYPE_P): New.
3069         (FLOAT_TYPE_P): Use it.
3070         * c-typeck.c (build_binary_op): After convert calls, check for
3071         check for ERROR_MARK operands.
3072
3073 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
3074
3075         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
3076         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
3077         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
3078         (genobjs static pattern rule): Remove %.c dependency.
3079         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
3080         Rename rules; delete commands; fix dependencies.
3081         (mostlyclean): Do not delete temporary source copies.
3082         * configure.ac: Delete all references to BUILD_PREFIX and
3083         BUILD_PREFIX_1.
3084         * configure: Regenerate.
3085
3086         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
3087         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
3088         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
3089         with #ifndef GENERATOR_FILE so that nothing from those headers
3090         is used.
3091
3092         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
3093
3094 2004-08-16  Adam Nemet  <anemet@lnxw.com>
3095
3096         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
3097
3098 2004-08-16  Andrew Pinski  <apinski@apple.com>
3099
3100         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
3101         extraneous semicolon.
3102
3103 2004-08-16  Devang Patel  <dpatel@apple.com>
3104
3105         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
3106         * print-tree.c (print_node): Print DECL_PRESERVE_P.
3107         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
3108         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
3109         * target.h (struct gcc_target): New member, mark_decl_preserved.
3110         * hooks.c (hook_void_charptr): Rename to ...
3111         (hook_void_constcharptr): ... new name.
3112         * hooks.h (hook_void_charptr): Rename to ..
3113         (hook_void_constcharptr): ... new name.
3114         * tree.h (DECL_PRESERVE_P): New #define.
3115         (struct tree_decl): New member, preserve_flag.
3116         * varasm.c (assemble_start_function): Mark decl preserved.
3117         (assemble_variable): Same.
3118         * darwin.c (darwin_mark_decl_preserved): New function.
3119         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
3120         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
3121         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
3122
3123 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
3124
3125         * c-decl.c (grokdeclarator): Allow for function definition where
3126         innermost declarator has attributes.
3127
3128 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
3129
3130         * except.c (get_exception_filter, build_post_landing_pads,
3131         dw2_build_landing_pads): Use target-specific mode for 'filter'.
3132         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
3133         * target.h (eh_return_filter_mode): New field added.
3134         * targhooks.c (default_eh_return_filter_mode): Defined.
3135         * targhooks.h (default_eh_return_filter_mode): Declared.
3136         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
3137
3138 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3139
3140         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
3141         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
3142         * configure: Regenerate.
3143
3144 2004-08-16  Stan Shebs  <shebs@apple.com>
3145
3146         Basic support for 64-bit Darwin.
3147         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3148         (machopic_legitimize_pic_address): Similarly, plus use Pmode
3149         instead of SImode.
3150         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
3151         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
3152         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
3153         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
3154         (PROCESSOR_DEFAULT64): Define.
3155         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
3156         Darwin.
3157         * config/rs6000/rs6000.md: Include darwin.md.
3158         (builtin_setjmp_receiver): Add DImode case.
3159         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
3160         Darwin.
3161         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
3162         (rs6000_emit_move): Add DImode case to Darwin bits.
3163         (machopic_output_stub): Use .quad if 64-bit.
3164         * invoke.texi: Document -m32 and -m64.
3165
3166 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
3167
3168         * doc/extend.texi (AltiVec builtins): Document additional differences
3169         from the Motorola AltiVec PIM.
3170
3171 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
3172
3173         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
3174         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
3175         (struct tree_common): Update public_flag documentation.
3176
3177 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3178
3179         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3180         Check for artificial variables, not is_gimple_tmp_var.
3181         * tree-ssa-live.c (var_union): Likewise.
3182
3183 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
3184
3185         * calls.c (load_register_parameters): Remove spurious FIXME token.
3186
3187 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
3188
3189         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
3190         (c-lang.o): Depend on c-objc-common.h.
3191         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
3192         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
3193         * c-lang.c: Include c-objc-common.h.
3194         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3195         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3196         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3197         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3198         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3199         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3200         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3201         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3202         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3203         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3204         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3205         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3206         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3207         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3208         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3209         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3210         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3211         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3212         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3213         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3214         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3215         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3216         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3217         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3218         Move to c-objc-common.h.
3219         * c-objc-common.c: Include c-objc-common.h.
3220         * c-objc-common.h: New file.
3221
3222 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
3223             Andrew Pinski  <pinskia@physics.uc.edu>
3224
3225         PR target/14931
3226         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
3227         style.
3228
3229 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
3230
3231         * tree.h (build_int_cst): New.
3232         (build_int_2): Remove.
3233         * tree.c (build_int_2): Remove.
3234         (build_int_cst): New.
3235         (make_vector_type, build_common_tree_nodes,
3236         build_common_tree_nodes_2): Use build_int_cst.
3237         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3238         expand_builtin_strpbrk, expand_builtin_fputs,
3239         build_string_literal, expand_builtin_printf,
3240         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
3241         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
3242         fold_builtin_isdigit, simplify_builtin_strstr,
3243         simplify_builtin_strpbrk, fold_builtin_fputs,
3244         simplify_builtin_sprintf): Use build_int_cst.
3245         * c-common.c (start_fname_decls, fix_string_type,
3246         c_common_nodes_and_builtins, c_init_attributes,
3247         shorten_compare): Likewise.
3248         * c-decl.c (complete_array_type,
3249         check_bitfield_type_and_width): Likewise.
3250         * c-lex.c (interpret_integer, lex_charconst): Likewise.
3251         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
3252         * c-pretty-print.c (pp_c_integer_constant): Likewise.
3253         * c-typeck.c (really_start_incremental_init, push_init_level,
3254         set_nonincremental_init_from_string): Likewise.
3255         * calls.c (load_register_parameters): Likewise.
3256         * convert.c (convert_to_pointer): Likewise.
3257         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3258         build_fn_info_type, build_ctr_info_value, build_gcov_info):
3259         Likewise.
3260         * except.c (init_eh, assign_filter_values, assign_filter_values):
3261         Likewise.
3262         * expmed.c (store_fixed_bit_field, extract_bit_field,
3263         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3264         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3265         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3266         * expr.c (convert_move, emit_group_load, emit_group_store,
3267         expand_assignment, store_constructor, store_field,
3268         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3269         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3270         invert_truthvalue, optimize_bit_field_compare,
3271         decode_field_reference, all_ones_mask_p, constant_boolean_node,
3272         fold_div_compare, fold, fold_read_from_constant_string,
3273         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
3274         * function.c (assign_parm_setup_block): Likewise.
3275         * stmt.c (shift_return_value, expand_end_case_type,
3276         estimate_case_costs): Likewise.
3277         * stor-layout.c (layout_type, initialize_sizetypes,
3278         set_min_and_max_values_for_integral_type): Likewise.
3279         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3280         reset_evolution_in_loop): Likewise.
3281         * tree-chrec.h (build_polynomial_chrec): Likewise.
3282         * tree-complex.c (build_replicated_const): Likewise.
3283         * tree-eh.c (honor_protect_cleanup_actions,
3284         lower_try_finally_onedest, lower_try_finally_copy,
3285         lower_try_finally_switch): Likewise.
3286         * tree-mudflap.c (mf_build_string, mx_register_decls,
3287         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3288         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3289         * tree-pretty-print.c (dump_generic_node): Likewise.
3290         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3291         Likewise.
3292         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3293         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3294         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3295         Likewise.
3296
3297         * config/alpha/alpha.c (alpha_initialize_trampoline,
3298         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
3299         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3300         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3301         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3302         * config/i860/i860.c (i860_va_start): Likewise.
3303         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3304         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3305         mips_gimplify_va_arg_expr): Likewise.
3306         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3307         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3308         add_compiler_branch_island): Likewise.
3309         * config/s390/s390.c (s390_va_start): Likewise.
3310         * config/sh/sh.c (sh_va_start): Likewise.
3311         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3312         Likewise.
3313         * config/xtensa/xtensa.c (xtensa_va_start,
3314         xtensa_gimplify_va_arg_expr): Likewise.
3315
3316         * objc/objc-act.c (build_objc_string_object,
3317         build_objc_symtab_template, init_def_list, init_objc_symtab,
3318         init_module_descriptor, generate_static_references,
3319         build_selector_translation_table, get_proto_encoding,
3320         build_typed_selector_reference, build_selector_reference,
3321         build_next_objc_exception_stuff,
3322         build_method_prototype_list_template, generate_descriptor_table,
3323         generate_protocols, build_protocol_initializer,
3324         build_ivar_list_template, build_method_list_template,
3325         build_ivar_list_initializer, generate_ivars_list,
3326         generate_dispatch_table, generate_protocol_list,
3327         build_category_initializer, build_shared_structure_initializer,
3328         generate_shared_structures, handle_impent,
3329         generate_objc_image_info): Use build_int_cst.
3330
3331 2004-08-15  Ben Elliston  <bje@au.ibm.com>
3332
3333         * vec.h: Comment improvements.
3334
3335 2004-08-14  Roger Sayle  <roger@eyesopen.com>
3336
3337         * c-common.c (shorten_compare, pointer_int_sum,
3338         c_common_truthvalue_conversion, boolean_increment): Replace calls
3339         to build with calls to buildN.
3340         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
3341         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
3342         gimplify_switch_stmt): Likewise.
3343         * c-typeck.c (default_function_array_conversion,
3344         build_component_ref, build_array_ref, build_function_call,
3345         pointer_diff, build_unary_op, build_conditional_expr,
3346         build_compound_expr, build_modify_expr, c_finish_goto_label,
3347         c_finish_goto_ptr, c_finish_return, c_finish_loop,
3348         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
3349         build_binary_op): Likewise.
3350
3351 2004-08-15  Steven Bosscher  <stevenb@suse.de>
3352
3353         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
3354
3355 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3356
3357         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
3358         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
3359         * fixinc/fixincl.x: Rebuilt.
3360
3361 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
3362
3363         * config/mips/mips-protos.h (mips_symbolic_constant_p)
3364         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
3365         (mips_small_data_pattern_p): Declare.
3366         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
3367         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
3368         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
3369         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
3370         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
3371         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
3372         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
3373         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
3374         (pc_or_label_operand, call_insn_operand, move_operand)
3375         (consttable_operand, symbolic_operand, general_symbolic_operand)
3376         (global_got_operand, local_got_operand, stack_operand)
3377         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
3378         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
3379         (mips_small_data_pattern_p): Replace previous small_data_pattern
3380         predicate.  Turn into a bool () (rtx) function.
3381         * config/mips/predicates.md: New file.
3382         * config/mips/mips.md: Include it.  Use the target-independent
3383         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
3384         trap_comparison_operator and equality_op to equality_operator.
3385         Replace uses of small_int with the equivalent const_arith_operand.
3386         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
3387         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
3388         to fcc_reload_operand.
3389         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
3390
3391 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3392
3393         PR libstdc++/17005 partial fix.
3394         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
3395         except when generating ANSI/C89 code.
3396
3397 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
3398
3399         * c-common.c (shorten_compare): Use force_fit_type directly.
3400
3401 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
3402             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
3403             Dave Korn  <dk@artimi.com>
3404
3405         * doc/install.texi (Building): Avoid duplicate reference to GNU
3406         make requirement.
3407         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
3408
3409 2004-08-14  Richard Henderson  <rth@redhat.com>
3410
3411         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
3412         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
3413
3414 2004-08-13  Richard Henderson  <rth@redhat.com>
3415
3416         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
3417         for constant_call_address_operand.
3418         (call_value_pop_1, call_value_1): Likewise.
3419         (sibcall_value_1, call_value_1_rex64): Likewise.
3420
3421 2004-08-13  James E Wilson  <wilson@specifixinc.com>
3422
3423         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
3424         Correct mode from SFmode to DFmode.
3425
3426 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
3427
3428         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
3429         __cstring_object and __image_info sections with the no_dead_strip
3430         attribute.
3431
3432 2004-08-13  Roger Sayle  <roger@eyesopen.com>
3433             David Billinghurst  <David.Billinghurst@riotinto.com>
3434
3435         PR libgfortran/15930
3436         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
3437         * fixinc/fixincl.x: Regenerate.
3438         * fixinc/tests/base/internal/math_core.h: New file.
3439
3440 2004-08-13  Richard Henderson  <rth@redhat.com>
3441
3442         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
3443         (dbxout_function_end): Remove ifdefs for it.
3444         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
3445
3446 2004-08-13  Richard Henderson  <rth@redhat.com>
3447
3448         * Makefile.in (insn-preds.o): Depend on TREE_H.
3449         * genpreds.c (write_insn_preds_c): Include tree.h.
3450         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
3451         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
3452         const48_operand, and_operand, or_operand, mode_width_operand,
3453         mode_mask_operand, mul8_operand, const0_operand,
3454         hard_fp_register_operand, hard_int_register_operand,
3455         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
3456         samegp_function_operand, direct_call_operand, small_symbolic_operand,
3457         global_symbolic_operand, call_operand, symbolic_operand,
3458         dtp16_symbolic_operand, dtp32_symbolic_operand,
3459         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
3460         gottp_symbolic_operand, alpha_comparison_operator,
3461         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
3462         signed_comparison_operator, alpha_fp_comparison_operator,
3463         divmod_operator, fix_operator, aligned_memory_operand,
3464         unaligned_memory_operand, reg_or_unaligned_mem_operand,
3465         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
3466         reg_no_subreg_operand, addition_operation): Move to predicates.md.
3467         (reg_or_const_int_operand): Remove.  Replace all users with
3468         reg_or_cint_operand.
3469         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
3470         (resolve_reload_operand): Split out of aligned_memory_operand.
3471         * config/alpha/alpha-protos.h: Update for exports.
3472         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
3473         * config/alpha/alpha.md: Include predicates.md.
3474         * config/alpha/predicates.md: New file.
3475
3476 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
3477
3478         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
3479         fields with a pointer to the instruction definition.
3480         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
3481         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
3482         (write_attr_case, write_const_num_delay_slots): Update accordingly.
3483         (write_attr_case, write_const_num_delay_slots): Write the name of
3484         an insn next to its case statement.
3485         * genoutput.c (data): Add a filename field.
3486         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
3487         (output_insn_data): Print the location of each insn definition.
3488         * genrecog.c (write_action): Print the name of an insn above
3489         the statement that returns its code.
3490
3491 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
3492
3493         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
3494         * config/libgloss.h: Likewise.
3495         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
3496         * c4x/c4x-modes.def: Likewise.
3497         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
3498         (c4x_rptb_nop_p): Likewise.
3499         (c4x_rptb_valid_p): Likewise.
3500         (c4x_rptb_insert): Likewise.
3501         (c4x_address_conflict): Likewise.
3502         * config/c4x/c4x.md: Likewise.
3503         * config/frv/frv.md: Likewise.
3504         * config/i386/athlon.md: Likewise.
3505         * config/i386/i386.md: Likewise.
3506         * config/i386/predicates.md: Likewise.
3507         * config/ia64/ia64.c: Likewise.
3508         * config/ia64/itanium1.md: Likewise.
3509         * config/ia64/itanium2.md: Likewise.
3510         * config/iq2000/iq2000.md: Likewise.
3511         * config/mcore/mcore.c: Likewise.
3512         * config/mips/mips.c: Likewise.
3513         * config/mips/r3900.h: Likewise.
3514         * config/mips/sb1.md: Likewise.
3515         * config/pa/milli64.S: Likewise.
3516         * config/pa/pa.c: Likewise.
3517         * config/pa/pa.h: Likewise.
3518         * config/rs6000/8540.md: Likewise.
3519
3520 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
3521
3522         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
3523
3524 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
3525
3526         * sh.md (cbranch define_delay) Use cond_delay_slot for
3527         non-anulled condition too.
3528
3529 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3530
3531         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
3532         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
3533         any_parallel_operand, lmw_operation, stmw_operation,
3534         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
3535         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
3536         any_parallel_operand.
3537         (return_and_restore_fpregs_{si,di}): Same.
3538
3539 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3540
3541         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
3542         if pred->singleton != PARALLEL, issue a warning and pretend it was.
3543         Also issue a warning for any predicate we don't know about.
3544
3545 2004-08-12  Richard Henderson  <rth@redhat.com>
3546
3547         * config/i386/i386.c (internal_label_prefix): Export.
3548         (internal_label_prefix_len, struct ix86_address,
3549         ix86_decompose_address, maybe_get_pool_constant,
3550         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
3551         memory_address_length): Export.
3552         (any_fp_register_operand, fp_register_operand,
3553         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
3554         x86_64_general_operand, x86_64_szext_general_operand,
3555         x86_64_nonmemory_operand, x86_64_movabs_operand,
3556         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
3557         x86_64_zext_immediate_operand, const_int_1_31_operand,
3558         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
3559         tls_symbolic_operand, global_dynamic_symbolic_operand,
3560         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
3561         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
3562         constant_call_address_operand, const0_operand, const1_operand,
3563         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
3564         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
3565         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
3566         general_no_elim_operand, nonmemory_no_elim_operand,
3567         index_register_operand, q_regs_operand, flags_reg_operand,
3568         non_q_regs_operand, zero_extended_scalar_load_operand,
3569         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
3570         ix86_comparison_operator, ix86_carry_flag_operator,
3571         fcmov_comparison_operator, promotable_binary_operator,
3572         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
3573         mult_operator, div_operator, arith_or_logical_operator,
3574         memory_displacement_operand, cmpsi_operand, long_memory_operand,
3575         aligned_operand): Move to predicates.md as define_predicates.
3576         (tls_symbolic_operand_1): Remove.
3577         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
3578         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
3579         (legitimize_address): Merge tls_symbolic_operand contents.
3580         (ix86_expand_move): Likewise.
3581         * config/i386/i386-protos.h: Update for exports.
3582         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
3583         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
3584         * config/i386/i386.md: Include predicates.md.
3585         * config/i386/predicates.md: New file.
3586
3587 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
3588
3589         PR c++/16924
3590         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
3591         SYMBOL_REF_DECL.
3592         (i386_pe_mark_dllimport): Likewise.
3593         (i386_pe_encode_section_info): Likewise, when overriding
3594         dllimport attribute.
3595
3596 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
3597
3598         * configure.ac: When testing for flex, nm, ar, and bison, check
3599         that they will actually be built.
3600         * configure: Regenerate.
3601
3602 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
3603
3604         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
3605         (MOVE_MAX_PIECES): Define.
3606
3607 2004-08-12  Devang patel  <dpatel@apple.com>
3608
3609         * dbxout.c (dbxout_begin_prologue): New function.
3610         (dbx_debug_hooks): Use new begin prologue hook.
3611         (dbxout_function_end): Emit N_ENSYM.
3612         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
3613
3614 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
3615
3616         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
3617         argument is float*.
3618
3619         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
3620         for vec_dss.
3621
3622         * doc/extend.texi (AltiVec builtins): Fix description for recent
3623         changes.  Update operation list to match current support.
3624
3625 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3626
3627         * config/s390/s390.c (struct s390_frame_layout): New struct as element
3628         of struct machine_function.
3629         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
3630         changed all uses.
3631         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
3632         changed all uses.
3633         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
3634         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
3635         (s390_frame_area, s390_register_info): New functions.
3636         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
3637         for base register.
3638         (s390_return_addr_rtx, s390_return_address_offset)
3639         (s390_va_start, s390_gimplify_va_arg)
3640         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
3641         layouts.
3642         (s390_frame_info): Functionality partly moved to s390_register_info.
3643         Made adaptions for new stack layout.
3644         (save_gprs, restore_gprs): Changed meaning of second parameter and
3645         adapted all callers.
3646
3647         * config/s390/s390.h (s390_backchain_string): New global variable.
3648         (MASK_BACKCHAIN): Removed definition.
3649         (TARGET_BACKCHAIN): Changed check.
3650         (TARGET_KERNEL_BACKCHAIN): New macro.
3651         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
3652         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
3653         "kernel-backchain".
3654         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
3655
3656         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
3657         as condition.  Adjusted for new stack layout.
3658
3659         * doc/invoke.texi: Added documentation for new option
3660         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
3661         "-mno-backchain".
3662
3663 2004-08-12  Paul Brook  <paul@codesourcery.com>
3664
3665         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
3666         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
3667
3668 2004-08-12  David Daney  <ddaney@avtrex.com>
3669
3670         * java/gcj.texi:  Add subsection on signal usage.
3671
3672 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3673
3674         * expr.c (move_by_pieces): Set alignment for move to minimum of
3675         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
3676         alignment, but not less than the original alignment.
3677         (move_by_pieces_ninsns): Same.
3678         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
3679         (store_by_pieces_1): Same.
3680
3681 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
3682
3683         PR tree-optimization/16867
3684         * tree.c (is_global_var): New function.
3685         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
3686         Call is_global_var.
3687         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
3688         Update all users.
3689         (is_global_var): Declare.
3690         * tree-dfa.c (dump_variable): Display global and addressable
3691         attributes.
3692         (add_referenced_var): Clarify documentation when marking
3693         variables call-clobbered.
3694         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
3695         instead of needs_to_live_in_memory.
3696         (mark_call_clobbered): If the variable is a tag, mark it
3697         DECL_EXTERNAL.
3698         * tree-gimple.c (is_gimple_reg): Don't check for
3699         TREE_ADDRESSABLE.
3700         (is_gimple_non_addressable): Likewise.
3701         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
3702         needs to be marked call-clobbered.
3703         (setup_pointers_and_addressables): Call is_global_var instead
3704         of needs_to_live_in_memory.
3705         * tree-ssa-dce.c (need_to_preserve_store): Remove.
3706         Update all users with is_global_var.
3707         (mark_stmt_if_obviously_necessary): Fix processing of aliased
3708         stores.  Don't check the virtual definitions.  Rather, check
3709         whether the store is going into global memory.
3710         (find_obviously_necessary_stmts): Get the symbol from the PHI
3711         result.
3712         * tree-ssa-operands.c (get_call_expr_operands): Do not add
3713         clobbering may-defs if the call does not have side effects.
3714
3715 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
3716
3717         PR c++/16276
3718         * output.h (default_function_rodata_section,
3719         default_no_function_rodata_section): New prototypes.
3720         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
3721         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3722         (TARGET_ASM_OUT): Add it.
3723         * varasm.c (default_function_rodata_section,
3724         default_no_function_rodata_section): New functions.
3725         * final.c (final_scan_insn): Call
3726         targetm.asm_out.function_rodata_section instead of
3727         readonly_data_section.
3728         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3729         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3730         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3731         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3732         Likewise.
3733         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3734         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3735         Likewise.
3736         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3737         Likewise.
3738         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3739         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3740         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
3741
3742 2004-08-12  Paul Brook  <paul@codesourcery.com>
3743
3744         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
3745         frame info.
3746         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
3747         DWARF2_UNWIND_INFO.
3748
3749 2004-08-12  Ben Elliston  <bje@au.ibm.com>
3750
3751         PR target/16286
3752         * config/rs6000/altivec.h: Change vector to __vector throughout.
3753         (Except for the `vector' macro itself).
3754
3755 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3756
3757         * genpreds.c: Add capability to generate predicate bodies as
3758         well as function prototypes.  Write function prototypes for
3759         the generic predicates too.
3760         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
3761         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
3762         (write_match_code, write_predicate_expr, write_one_predicate_function)
3763         (parse_option): New functions.
3764         (output_predicate_decls): Delete.
3765         (main): Read the machine description, process DEFINE_PREDICATE or
3766         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
3767         as appropriate.
3768
3769         * genrecog.c (struct decision_test): Replace index with
3770         struct pred_data pointer.
3771         (next_index): Remove, unused.
3772         (pred_table, preds, special_mode_pred_table): Delete.
3773         (compute_predicate_codes, process_define_predicate): New functions.
3774         (validate_pattern, add_to_sequence, write_switch): Update for
3775         new data structures.
3776         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3777         Check both error_count and have_error.
3778
3779         * gensupport.c (in_fname, first_predicate): New globals.
3780         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
3781         (predicate_table, last_predicate, old_pred_table)
3782         (old_special_pred_table): New statics.
3783         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
3784         (add_predicate, init_predicate_table): New functions.
3785         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3786         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
3787         it or max_include_len.  Call init_predicate_table.
3788         (read_rtx): Run the predicate queue after the attribute queue
3789         but before all the others.
3790         * gensupport.h (in_fname, struct pred_data, first_predicate)
3791         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
3792         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
3793         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
3794         * dummy-conditions.c: Don't include bconfig.h, system.h,
3795         coretypes.h, tm.h, or system.h.  Do include stddef.h.
3796         Duplicate declaration of struct c_test from gensupport.h.
3797
3798         * Makefile.in (OBJS-common): Add insn-preds.o.
3799         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
3800         (insn-preds.c, insn-preds.o): New rules.
3801         (s-preds): Also generate insn-preds.c.
3802         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
3803         Update dependencies.
3804         (print-rtl.o, print-rtl1.o): Correct dependencies.
3805
3806         * recog.h: Delete prototypes of predicate functions.
3807
3808         * doc/md.texi (Predicates): New section with complete
3809         documentation of operand/operator predicates.  Remove some
3810         incomplete documentation of predicates from other places.
3811         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
3812         PREDICATE_CODES; indicate that both are deprecated in favor
3813         of define_predicate/define_special_predicate.
3814
3815         * config/ia64/ia64.c: All predicate function definitions moved
3816         to ia64.md, except
3817         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
3818         (ia64_expand_load_address, ia64_expand_move):
3819         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
3820
3821         * config/ia64/ia64.md: All predicates now defined here.
3822         (symbolic_operand): Is now a special predicate.
3823
3824         * config/ia64/ia64.h: Declare ia64_section_threshold.
3825         (PREDICATE_CODES): Delete.
3826
3827 2004-08-12  Richard Henderson  <rth@redhat.com>
3828
3829         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
3830         * c-semantics.c (add_stmt): Set it.
3831         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
3832         before instantiating a variable sized type.
3833
3834 2004-08-12  Richard Henderson  <rth@redhat.com>
3835
3836         * stor-layout.c (round_up, round_down): Move ...
3837         * fold-const.c (round_up, round_down): ... here.  Use
3838         multiple_of_p to avoid any arithmetic at all.
3839
3840 2004-08-12  Richard Henderson  <rth@redhat.com>
3841
3842         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
3843         (gimplify_init_ctor_preeval_1): New.
3844         (gimplify_init_ctor_preeval): New.
3845         (gimplify_init_ctor_eval): New.
3846         (gimplify_init_constructor): Use them.  Always gimplify the LHS
3847         object first.
3848
3849 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
3850
3851         (This patch is part of merge of objc-improvements-branch
3852         into mainline.)
3853
3854         * doc/frontends.texi: Mention Objective-C++ in addition to
3855         Objective-C.
3856         * doc/install.texi: Add 'obj-c++' to list of configurable
3857         languages.
3858         * doc/invoke.texi: Rename Objective-C option headings to
3859         indicate they also apply to Objective-C++.  List file
3860         extensions for Objective-C++ sources.  Mention that
3861         ObjC and ObjC++ compilations may also use C and C++ options,
3862         respectively.  Point users to doc/standards.texi for
3863         further info on ObjC and ObjC++.
3864         * doc/sourcebuild.texi: Mention the objcp/ directory and
3865         the Objective-C++ sources it contains.
3866         * doc/standards.texi: Update link to Apple ObjC site;
3867         add link to gcc readings.html WWW doc.
3868
3869 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
3870
3871         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
3872         and 2004-07-14 changes.
3873
3874 2004-08-12  Paul Brook  <paul@codesourcery.com>
3875
3876         * doc/invoke.texi: Fix typo.
3877
3878 2004-08-11 Devang Patel  <dpatel@apple.com>
3879
3880         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
3881         and -no_dead_strip_inits_and_terms.
3882         (LINK_SPEC): Same.
3883         * doc/invoke.texi (Darwin Options): Document -dead_strip and
3884         -no_dead_strip_inits_and_terms.
3885
3886 2004-08-11  Paul Brook  <paul@codesourcery.com>
3887
3888         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
3889         (arm_load_pic_register): ... to this.
3890         * config/arm/arm.c (arm_finalize_pic): Rename ...
3891         (arm_load_pic_register): ... to this.  Always output insns at the
3892         current location.  Load via low reg in thumb mode.
3893         (arm_expand_prologue): Call arm_load_pic_register.
3894         (thumb_expand_prologue): Ditto.
3895         * config/arm/arm.h (FINALIZE_PIC): Remove.
3896         * config/arm/arm.md (builtin_setjmp_receiver): Call
3897         arm_load_pic_register.
3898
3899 2004-08-11  Paul Brook  <paul@codesourcery.com>
3900
3901         * arm.c (thumb_force_lr_save): Add prototype.
3902         (thumb_compute_save_reg_mask): New function.
3903         (thumb_find_work_register): New function.
3904         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
3905         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
3906         Don't clobber r3 when removing pretend args.
3907         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
3908         (thumb_output_function_prologue): Use new functions.
3909         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
3910         * arm.h (THUMB_REG_PUSHED_P): Remove.
3911
3912 2004-08-11  James E Wilson  <wilson@specifixinc.com>
3913
3914         PR rtl-optimization/16490
3915         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
3916         global_live_at_end for new basic block if already set for other blocks.
3917
3918 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
3919
3920         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
3921
3922         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
3923         (mfcr rlwinm rlwinm patterns): Set length to 12.
3924
3925 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
3926