OSDN Git Service

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