OSDN Git Service

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