OSDN Git Service

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