OSDN Git Service

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