Enable -ftrapping-math by default.
[official-gcc.git] / gcc / ChangeLog
blob710191027b4d7f8e68ce04aa61b21927ecbeddfe
1 2004-09-02  James E Wilson  <wilson@specifixinc.com>
3         * common.opt (ftrapping-math): Default to on.
5 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
7         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
9 2004-09-02  Denis Chertykov  <denisc@overta.ru>
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.
20 2004-09-02  Paul Brook  <paul@codesourcery.com>
22         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
23         default_use_cxa_atexit=yes.
25 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
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.
33 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
35         * toplev.c (process_options): Fix typo.
37 2004-09-01  Richard Henderson  <rth@redhat.com>
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.
48 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
50         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
51         * ggc.h (ggc_alloc_rtx): Delete.
53 2004-09-01  Roger Sayle  <roger@eyesopen.com>
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".
70 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
72         * config/rs6000/power4.md: Increase store latency to 12.
73         * config/rs6000/power5.md: Same.
75 2004-09-01  James E Wilson  <wilson@specifixinc.com>
77         PR target/14064
78         * config/avr/avr.c (avr_unique_section): Delete prototype and
79         definition.
80         (TARGET_ASM_UNIQUE_SECTION): Delete.
82 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
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.
97 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
99         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
100         to Altivec vetors.
102 2004-09-01  Wu Yongwei  <adah@sh163.net>
103             Danny Smith  <dannysmith@users.sourceforge.net>
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.
120 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
122         * tree-tailcall.c (find_tail_calls): Also fail is statement has
123         volatile operands.
125         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
127         * doc/c-tree.texi: Document new operands for ARRAY_REF and
128         COMPONENT_REF.
130 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
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.
172 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
174         PR rtl-optimization/16408
175         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
177 2004-09-01  Richard Henderson  <rth@redhat.com>
179         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
180         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
182 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
184         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
186 2004-09-01  Mike Stump  <mrs@apple.com>
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.
196 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
198         * Makefile.in (bb-reorder.o): Add several dependencies.
200 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
202         * fold-const.c (operand_equal_p): Require equal sign also for
203         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
205 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
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.
211 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
212             Nick Clifton  <nickc@redhat.com>
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.
218 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
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.
230 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
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.
238 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
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.
253 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
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.
262 2004-08-31  Stan Shebs  <shebs@apple.com>
264         * toplev.c (process_options): Ensure debug_hooks is initialized.
266 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
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>
276         * config/sh/sh.c (output_branch): Check the insn length possibly
277         in the delayed slot.
279 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
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.
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.
296 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
297             Jeff Law  <law@redhat.com>
299         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
300         gets modified.
302 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
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>
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.
321 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
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.
327 2004-08-31  Matt Austern  <austern@apple.com>
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>
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.
349         * fixinc/*: Removed.
350         
351 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
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.
359 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
361         * read-rtl.c: Disable RTL checking.
362         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
364 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
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.
371 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
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.
378 2004-08-30  Andrew Pinski  <apinski@apple.com>
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.
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.
406 2004-08-30  Steven Bosscher  <stevenb@suse.de>
408         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
409         not the pointers.
411 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
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.
420 2004-08-30  Richard Henderson  <rth@redhat.com>
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.
429 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
431         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
432         redundant code.
434 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
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.
443 2004-08-30  Richard Henderson  <rth@redhat.com>
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.
451 2004-08-30  Richard Henderson  <rth@redhat.com>
453         * expr.c (expand_expr_addr_expr): New.
454         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
456 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
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.
483 2004-08-30  Richard Henderson  <rth@redhat.com>
485         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
486         assuming an ADDR_EXPR is non-null.
488 2004-08-30  Jason Merrill  <jason@redhat.com>
490         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
492 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
494         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
495         * gcov.c (abort): Remove undef.
497         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
498         (struct tree_binfo): Remove primary field.
500 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
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.
515 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
517         * configure.ac: Do not run fixincludes after stage1 during
518         toplevel bootstrap.
519         * configure: Regenerate.
521 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
523         * sched-deps.c (get_condition): Partially revert previous, by never
524         trying to extract the condition from a condjump.
526 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
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.
532 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
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.
540 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
542         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
543         in COMPONENT_REF nodes.
545 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
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.
556 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
558         * sched-deps.c (get_condition): Fix breakage in previous patch.
560 2004-08-30  Paul Brook  <paul@codesourcery.com>
562         * doc/install.texi: Fix broken mpfr link.
564 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
566         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
567         other FreeBSD platforms.
569 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
571         * arm.h (REVERSE_CONDITION): Define.
572         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
574 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
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.
584 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
586         * sched-deps.c (get_condition): Rewrite using jump support functions.
587         Use reversed_comparison_code.
588         (conditions_mutex_p): Use reversed_comparison_code.
590 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
592         * config/mips/mips.c (override_options): Disable hot/cold partitioning
593         for MIPS16.
595 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
615 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
617         PR rtl-optimization/16590
618         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
620 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
622         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
623         * tree-ssa-propagate.c: Fix documentation.
625 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
627         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
628         (mov[sd]fcc): Likewise.
630 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
632         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
634 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
642 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
657 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
659         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
660         V2SF_type_node if it will be needed.
662 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
677 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
689 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
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.
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.
753 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
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.
765 2004-08-28  Andrew Pinski  <apinski@apple.com>
767         * tree-ssa-loop.c: Remove extra include of basic-block.h.
769 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
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.
782 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
784         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
785         even when not checking.
787 2004-08-27  Jason Merrill  <jason@redhat.com>
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.
810 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
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.
817 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
819         * stor-layout.c (sizetype_set): Remove.
820         (set_sizetype): Don't test or set it.
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.
831 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
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.
840 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
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.
848 2004-08-26  Richard Henderson  <rth@redhat.com>
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.
859 2004-08-26  Richard Henderson  <rth@redhat.com>
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.
869 2004-08-26  Richard Henderson  <rth@redhat.com>
871         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
872         modes.
874 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
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.
893 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
895         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
897 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
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.
904 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
906         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added 
907         TFmode as additional register mode cloberred by call.
909 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
911         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
912         parallel pattern for library call returning DImode in
913         mixed mode.
915 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
917         * config/rs6000/rs6000.c (function_arg): Generate parallel
918         pattern for more split args.
920 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
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.
928 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
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
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>
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.
975 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
977         PR target/13506
978         * toplev.c (crash_signal): If we crashed while emitting
979         a user asm, then die more gracefully.
981 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
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.
987 2004-08-25  Richard Henderson  <rth@redhat.com>
989         PR target/16974
990         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
991         if the constant satisfies add_operand.
993 2004-08-25  Richard Henderson  <rth@redhat.com>
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.
1000 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
1002         PR target/17171
1003         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
1005 2004-08-25  Richard Henderson  <rth@redhat.com>
1007         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
1008         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1010 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1012         * doc/tree-ssa.texi: Document new operand iterator.
1014 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
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.
1021 2005-08-28  Paul Brook  <paul@codesourcery.com>
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.
1027 2004-08-25  Richard Henderson  <rth@redhat.com>
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.
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.
1039         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1040         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1042 2004-08-25  Richard Henderson  <rth@redhat.com>
1044         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1045         set REAL_MODE_FORMAT for TFmode.
1047 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1049         * c-decl.c (grokparm): New function.
1050         * c-tree.h (grokparm): New prototype.
1052 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
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.
1109 2004-08-25  Adam Nemet  <anemet@lnxw.com>
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.
1117 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
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.
1122 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1124         * doc/install.texi: Document that libstdc++-v3 requires
1125         now automake 1.9.1.
1127 2004-08-25  Caroline Tice  <ctice@apple.com>
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>
1148         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1149         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
1151 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
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.
1166 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
1168         * gimplify.c (lookup_tmp_var): Separate temporaries when not
1169         optimizing.
1171 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
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.
1206 2004-08-25  Steven Bosscher  <stevenb@suse.de>
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.
1217 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
1323 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
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.
1342 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1344         * doc/install.texi: Document that libcpp does not require
1345         Automake any longer.  Document that Automake 1.9.1 should
1346         work everywhere.
1348 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
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.
1359 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
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.
1365 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
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.
1374 2004-08-24  Richard Henderson  <rth@redhat.com>
1376         PR target/16298
1377         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
1378         random codes within CONST.
1380 2004-08-24  James E Wilson  <wilson@specifixinc.com>
1382         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
1383         -freorder-blocks-and-partition.
1385 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
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.
1392 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1394         * config/mips/predicates.md (small_data_pattern): Match prefetches.
1396 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
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.
1403 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
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.
1455 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1466 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1480 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
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.
1509 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1516 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1518         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
1519         attribute.
1521 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1533 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1541 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
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.
1553 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1555         * rtl.def: Reorganize, placing all codes used only in machine
1556         descriptions at the end.
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.
1567 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
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.
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.
1585 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
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.
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.
1606 2004-08-24  Richard Henderson  <rth@redhat.com>
1607             Andrew Pinski  <apinski@apple.com>
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.
1613         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
1614         ARRAY_REF also to get to the STRING_CST.
1616 2004-08-24  Paul Brook  <paul@codesourcery.com>
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.
1624 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1626         PR target/17093
1627         * config/m32r.md (movsi_sda): Add SI mode specification to
1628         UNSPEC.
1630 2004-08-24  Nick Clifton  <nickc@redhat.com>
1632         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
1633         of seth_add3_operand.
1635 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1637         * Makefile.in (PROTO_OBJS): Add errors.o.
1638         * protoize.c (fancy_abort): Remove.
1639         * mips-tfile.c (fancy_abort): Add parameters.
1641 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
1643         * doc/trouble.texi (C++ misunderstandings): Fix example code.
1645 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
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.
1654 2004-08-23  James E Wilson  <wilson@specifixinc.com>
1656         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
1657         DEF_REG_NOTE.
1659 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
1661         PR c/14492
1662         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
1664 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
1666         * cfg.c (check_bb_profile): Fix typos.
1667         * function.c (assign_parm_is_stack_parm): Likewise.
1668         * tree-nested.c: Likewise.
1670 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
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.
1676 2004-08-23  Eric Christopher  <echristo@redhat.com>
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.
1704 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
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
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.
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.
1759 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1761         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
1762         attribute.
1764 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1772 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
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.
1782 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1784         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
1785         $31 store insns.  Redefine using :GPR.
1787 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1794 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1803 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1817 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1819         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
1820         noreturn functions.
1822 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1831 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1833         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
1835 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1850 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1858 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1897 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1937 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1939         * read-rtl.c (read_rtx): Tidy use of format_ptr.
1941 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
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.
1949 2004-08-22  Andrew Pinski  <apinski@apple.com>
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.
1957 2004-08-22  Richard Henderson  <rth@redhat.com>
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.
1964 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
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).
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.
1978 2004-08-22  Richard Hendersion  <rth@redhat.com>
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.
1985 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1987         * fold-const.c (rtl_expr_nonnegative_p): Delete.
1988         * tree.h (rtl_expr_nonnegative_p): Remove.
1990 2004-08-22  Steven Bosscher  <stevenb@suse.de>
1992         * config/i386/ppro.md (ppro_complex_insn): Add missing check
1993         for cpu==pentiumpro.
1995         * combine.c (struct reg_stat): Fix comment typo.
1997 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1999         * c-tree.h (c_sizeof_nowarn): Remove.
2001 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
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
2017 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
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.
2026 2004-08-21  Mike Stump  <mrs@apple.com>
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.
2035 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
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.
2046 2004-08-20  Mike Stump  <mrs@apple.com>
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.
2059 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
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.
2083 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2085         * reload.c (find_reloads_address): Fix thinko in previous change.
2087         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2088         a CONST_INT.
2090 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
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.
2096 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
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.
2108 2004-08-20  Andrew Pinski  <apinski@apple.com>
2110         * regrename.c (kill_value_regno): ANSIfy.
2112 2004-08-20  Dale Johannesen  <dalej@apple.com>
2114         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2116 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
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.
2123 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
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.
2130 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2132         * fold-const.c (round_up, round_down): Use build_int_cst.
2133         Optimize common case.
2135 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
2136             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
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.
2160 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2162         * fold-const.c (int_const_binop): Don't generate non-overflowing
2163         size-types specially.
2164         (fold_convert_const): Likewise.
2166         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2167         clear cache on copied sizetype.
2169 2004-08-20  Ben Elliston  <bje@au.ibm.com>
2171         * configure.ac: Don't escape apostrophe in --enable-coverage help.
2172         * configure: Regenerate.
2174 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
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
2184 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
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.
2289 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
2291         * postreload.c (reload_cse_move2add): Allow any condjump, but check
2292         that the implicit set isn't clobbered in the jump insn.
2294 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
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.
2301 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
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.
2312         * config/s390/s390.h (TARGET_OPTIONS): Added new options
2313         "warn-framesize", "warn-dynamicstack", "stack-size" and
2314         "stack-guard".
2316         * doc/invoke.texi: Added documentation for the new options.
2318 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
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.
2329 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
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.
2337 2004-08-19  Eric Christopher  <echristo@redhat.com>
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.
2351 2004-08-19  Caroline Tice  <ctice@apple.com>
2353         * config/i386/cygming.h (switch_to_section):  Fix typo (change
2354         in_unlikely_text_section to in_unlikely_executed_text).
2356 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
2358         * vec.h (VEC_lower_bound): New macro.
2360 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
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.
2368 2004-08-19  Richard Henderson  <rth@redhat.com>
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.
2379 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
2381         * regclass.c (globalize_reg): Update call_really_used_regs.
2383 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2385         * doc/invoke.texi (integer-share-limit): Document.
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.
2409 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
2411         * gimplify.c (gimplify_minimax_expr): Remove.
2412         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
2414 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
2416         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2417         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
2419 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2421         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
2423 2004-08-18  Andrew Pinski  <apinski@apple.com>
2425         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
2427 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
2429         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
2430         (__aeabi_ul2f): Likewise.
2432 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
2441 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
2450 2004-08-18  Mike Stump  <mrs@apple.com>
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.
2473 2004-08-19  Steven Bosscher  <stevenb@suse.de>
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.
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.
2497 2004-08-18  James E Wilson  <wilson@specifixinc.com>
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.
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.
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.
2520 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
2522         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
2523         get regression tester working again.
2525 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
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.
2532         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
2533         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2535 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2537         * arm.c (arm_size_rtx_costs): New function.
2538         (arm_override_options): Use it if optimizing for space.
2540 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
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.
2568 2004-08-18  Steven Bosscher  <stevenb@suse.de>
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.
2604 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2606         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
2607         (pass_loop_done): Likewise.
2609 2004-08-18  Andrew Pinski  <apinski@apple.com>
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.
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.
2625 2004-08-18  Matt Austern  <austern@apple.com>
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.
2631 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
2639 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
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.
2676 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
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.
2687 2004-08-18  Andrew Pinski  <apinski@apple.com>
2689         * config/darwin.c (machopic_legitimize_pic_address): Only set
2690         MEM_READONLY_P in the non TARGET_TOC case.
2692 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2694         * rtl.def (NIL): Delete.
2695         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
2696         Tighten the syntax a little.
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.
2707 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
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.
2714 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
2716         * config/rs6000/altivec.md: Add new patterns for calls to
2717         save_world/rest_world functions.
2719         * config/rs6000/rs6000-protos.h: (save_world_operation,
2720         restore_world_operation) new declarations.
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.
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.
2740 2004-08-18  Caroline Tice  <ctice@apple.com>
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.
2838 2004-08-18  Roger Sayle  <roger@eyesopen.com>
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.
2845 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
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.
2852 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
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.
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.
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.
2937 2004-08-18  Richard Henderson  <rth@redhat.com>
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.
2958 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
2960         * c4x.c (legitimize_operands): Remove calls to
2961         preserve_subexpressions_p.
2963 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
2965         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
2966         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
2968 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
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.
2979 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2981         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
2982         avoid use of preserve_subexpressions_p.
2984 2004-08-17  Richard Henderson  <rth@redhat.com>
2986         PR 17051
2987         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
2989 2004-08-17  DJ Delorie  <dj@redhat.com>
2991         * doc/extend.texi: Document new xstormy16 attribute.
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.
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.
3011         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
3012         liberal about acceptable 'B' masks.
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.
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.
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.
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.
3047 2004-08-17  James E Wilson  <wilson@specifixinc.com>
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.
3054         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
3055         normal and -ffast-math code.
3057 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
3059         PR c++/15871
3060         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
3062 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
3064         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
3066 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
3068         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
3069         for non Darwin targets.
3070         (*call_value_nonlocal_darwin64): Likewise.
3072 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
3074         * config/rs6000/rs6000.c (rs6000_function_value): Check for
3075         altivec mode for altivec return register.
3077 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
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.
3086 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
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.
3119 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
3121         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
3122         usage.
3123         (generate_protocol_list, handle_impent): Likewise.
3125 2004-08-17  Roger Sayle  <roger@eyesopen.com>
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.
3131 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
3133         PR target/17019
3134         * arm.md (addsi3_cbranch_scratch): Correct case labels.
3136 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
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>.
3143 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
3145         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
3146         No need to check if in a cross configuration.
3147         * configure: Regenerate.
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.
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.
3162 2004-08-16  James E Wilson  <wilson@specifixinc.com>
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.
3169 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
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.
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.
3188         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
3190 2004-08-16  Adam Nemet  <anemet@lnxw.com>
3192         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
3194 2004-08-16  Andrew Pinski  <apinski@apple.com>
3196         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
3197         extraneous semicolon.
3199 2004-08-16  Devang Patel  <dpatel@apple.com>
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.
3219 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
3221         * c-decl.c (grokdeclarator): Allow for function definition where
3222         innermost declarator has attributes.
3224 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
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.
3234 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3236         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
3237         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
3238         * configure: Regenerate.
3240 2004-08-16  Stan Shebs  <shebs@apple.com>
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.
3262 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
3264         * doc/extend.texi (AltiVec builtins): Document additional differences
3265         from the Motorola AltiVec PIM.
3267 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
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.
3273 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
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.
3279 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
3281         * calls.c (load_register_parameters): Remove spurious FIXME token.
3283 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
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.
3318 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
3319             Andrew Pinski  <pinskia@physics.uc.edu>
3321         PR target/14931
3322         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
3323         style.
3325 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
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,
3369         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
3370         * function.c (assign_parm_setup_block): Likewise.
3371         * stmt.c (shift_return_value, expand_end_case_type,
3372         estimate_case_costs): Likewise.
3373         * stor-layout.c (layout_type, initialize_sizetypes,
3374         set_min_and_max_values_for_integral_type): Likewise.
3375         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3376         reset_evolution_in_loop): Likewise.
3377         * tree-chrec.h (build_polynomial_chrec): Likewise.
3378         * tree-complex.c (build_replicated_const): Likewise.
3379         * tree-eh.c (honor_protect_cleanup_actions,
3380         lower_try_finally_onedest, lower_try_finally_copy,
3381         lower_try_finally_switch): Likewise.
3382         * tree-mudflap.c (mf_build_string, mx_register_decls,
3383         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3384         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3385         * tree-pretty-print.c (dump_generic_node): Likewise.
3386         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3387         Likewise.
3388         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3389         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3390         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3391         Likewise.
3393         * config/alpha/alpha.c (alpha_initialize_trampoline,
3394         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
3395         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3396         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3397         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3398         * config/i860/i860.c (i860_va_start): Likewise.
3399         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3400         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3401         mips_gimplify_va_arg_expr): Likewise.
3402         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3403         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3404         add_compiler_branch_island): Likewise.
3405         * config/s390/s390.c (s390_va_start): Likewise.
3406         * config/sh/sh.c (sh_va_start): Likewise.
3407         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3408         Likewise.
3409         * config/xtensa/xtensa.c (xtensa_va_start,
3410         xtensa_gimplify_va_arg_expr): Likewise.
3412         * objc/objc-act.c (build_objc_string_object,
3413         build_objc_symtab_template, init_def_list, init_objc_symtab,
3414         init_module_descriptor, generate_static_references,
3415         build_selector_translation_table, get_proto_encoding,
3416         build_typed_selector_reference, build_selector_reference,
3417         build_next_objc_exception_stuff,
3418         build_method_prototype_list_template, generate_descriptor_table,
3419         generate_protocols, build_protocol_initializer,
3420         build_ivar_list_template, build_method_list_template,
3421         build_ivar_list_initializer, generate_ivars_list,
3422         generate_dispatch_table, generate_protocol_list,
3423         build_category_initializer, build_shared_structure_initializer,
3424         generate_shared_structures, handle_impent,
3425         generate_objc_image_info): Use build_int_cst.
3427 2004-08-15  Ben Elliston  <bje@au.ibm.com>
3429         * vec.h: Comment improvements.
3431 2004-08-14  Roger Sayle  <roger@eyesopen.com>
3433         * c-common.c (shorten_compare, pointer_int_sum,
3434         c_common_truthvalue_conversion, boolean_increment): Replace calls
3435         to build with calls to buildN.
3436         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
3437         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
3438         gimplify_switch_stmt): Likewise.
3439         * c-typeck.c (default_function_array_conversion,
3440         build_component_ref, build_array_ref, build_function_call,
3441         pointer_diff, build_unary_op, build_conditional_expr,
3442         build_compound_expr, build_modify_expr, c_finish_goto_label,
3443         c_finish_goto_ptr, c_finish_return, c_finish_loop,
3444         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
3445         build_binary_op): Likewise.
3447 2004-08-15  Steven Bosscher  <stevenb@suse.de>
3449         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
3451 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3453         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
3454         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
3455         * fixinc/fixincl.x: Rebuilt.
3457 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
3459         * config/mips/mips-protos.h (mips_symbolic_constant_p)
3460         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
3461         (mips_small_data_pattern_p): Declare.
3462         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
3463         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
3464         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
3465         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
3466         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
3467         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
3468         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
3469         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
3470         (pc_or_label_operand, call_insn_operand, move_operand)
3471         (consttable_operand, symbolic_operand, general_symbolic_operand)
3472         (global_got_operand, local_got_operand, stack_operand)
3473         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
3474         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
3475         (mips_small_data_pattern_p): Replace previous small_data_pattern
3476         predicate.  Turn into a bool () (rtx) function.
3477         * config/mips/predicates.md: New file.
3478         * config/mips/mips.md: Include it.  Use the target-independent
3479         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
3480         trap_comparison_operator and equality_op to equality_operator.
3481         Replace uses of small_int with the equivalent const_arith_operand.
3482         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
3483         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
3484         to fcc_reload_operand.
3485         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
3487 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3489         PR libstdc++/17005 partial fix.
3490         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
3491         except when generating ANSI/C89 code.
3493 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
3495         * c-common.c (shorten_compare): Use force_fit_type directly.
3497 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
3498             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
3499             Dave Korn  <dk@artimi.com>
3501         * doc/install.texi (Building): Avoid duplicate reference to GNU
3502         make requirement.
3503         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
3505 2004-08-14  Richard Henderson  <rth@redhat.com>
3507         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
3508         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
3510 2004-08-13  Richard Henderson  <rth@redhat.com>
3512         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
3513         for constant_call_address_operand.
3514         (call_value_pop_1, call_value_1): Likewise.
3515         (sibcall_value_1, call_value_1_rex64): Likewise.
3517 2004-08-13  James E Wilson  <wilson@specifixinc.com>
3519         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
3520         Correct mode from SFmode to DFmode.
3522 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
3524         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
3525         __cstring_object and __image_info sections with the no_dead_strip
3526         attribute.
3528 2004-08-13  Roger Sayle  <roger@eyesopen.com>
3529             David Billinghurst  <David.Billinghurst@riotinto.com>
3531         PR libgfortran/15930
3532         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
3533         * fixinc/fixincl.x: Regenerate.
3534         * fixinc/tests/base/internal/math_core.h: New file.
3536 2004-08-13  Richard Henderson  <rth@redhat.com>
3538         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
3539         (dbxout_function_end): Remove ifdefs for it.
3540         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
3542 2004-08-13  Richard Henderson  <rth@redhat.com>
3544         * Makefile.in (insn-preds.o): Depend on TREE_H.
3545         * genpreds.c (write_insn_preds_c): Include tree.h.
3546         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
3547         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
3548         const48_operand, and_operand, or_operand, mode_width_operand,
3549         mode_mask_operand, mul8_operand, const0_operand,
3550         hard_fp_register_operand, hard_int_register_operand,
3551         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
3552         samegp_function_operand, direct_call_operand, small_symbolic_operand,
3553         global_symbolic_operand, call_operand, symbolic_operand,
3554         dtp16_symbolic_operand, dtp32_symbolic_operand,
3555         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
3556         gottp_symbolic_operand, alpha_comparison_operator,
3557         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
3558         signed_comparison_operator, alpha_fp_comparison_operator,
3559         divmod_operator, fix_operator, aligned_memory_operand,
3560         unaligned_memory_operand, reg_or_unaligned_mem_operand,
3561         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
3562         reg_no_subreg_operand, addition_operation): Move to predicates.md.
3563         (reg_or_const_int_operand): Remove.  Replace all users with
3564         reg_or_cint_operand.
3565         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
3566         (resolve_reload_operand): Split out of aligned_memory_operand.
3567         * config/alpha/alpha-protos.h: Update for exports.
3568         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
3569         * config/alpha/alpha.md: Include predicates.md.
3570         * config/alpha/predicates.md: New file.
3572 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
3574         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
3575         fields with a pointer to the instruction definition.
3576         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
3577         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
3578         (write_attr_case, write_const_num_delay_slots): Update accordingly.
3579         (write_attr_case, write_const_num_delay_slots): Write the name of
3580         an insn next to its case statement.
3581         * genoutput.c (data): Add a filename field.
3582         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
3583         (output_insn_data): Print the location of each insn definition.
3584         * genrecog.c (write_action): Print the name of an insn above
3585         the statement that returns its code.
3587 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
3589         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
3590         * config/libgloss.h: Likewise.
3591         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
3592         * c4x/c4x-modes.def: Likewise.
3593         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
3594         (c4x_rptb_nop_p): Likewise.
3595         (c4x_rptb_valid_p): Likewise.
3596         (c4x_rptb_insert): Likewise.
3597         (c4x_address_conflict): Likewise.
3598         * config/c4x/c4x.md: Likewise.
3599         * config/frv/frv.md: Likewise.
3600         * config/i386/athlon.md: Likewise.
3601         * config/i386/i386.md: Likewise.
3602         * config/i386/predicates.md: Likewise.
3603         * config/ia64/ia64.c: Likewise.
3604         * config/ia64/itanium1.md: Likewise.
3605         * config/ia64/itanium2.md: Likewise.
3606         * config/iq2000/iq2000.md: Likewise.
3607         * config/mcore/mcore.c: Likewise.
3608         * config/mips/mips.c: Likewise.
3609         * config/mips/r3900.h: Likewise.
3610         * config/mips/sb1.md: Likewise.
3611         * config/pa/milli64.S: Likewise.
3612         * config/pa/pa.c: Likewise.
3613         * config/pa/pa.h: Likewise.
3614         * config/rs6000/8540.md: Likewise.
3616 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
3618         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
3620 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
3622         * sh.md (cbranch define_delay) Use cond_delay_slot for
3623         non-anulled condition too.
3625 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3627         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
3628         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
3629         any_parallel_operand, lmw_operation, stmw_operation,
3630         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
3631         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
3632         any_parallel_operand.
3633         (return_and_restore_fpregs_{si,di}): Same.
3635 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3637         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
3638         if pred->singleton != PARALLEL, issue a warning and pretend it was.
3639         Also issue a warning for any predicate we don't know about.
3641 2004-08-12  Richard Henderson  <rth@redhat.com>
3643         * config/i386/i386.c (internal_label_prefix): Export.
3644         (internal_label_prefix_len, struct ix86_address,
3645         ix86_decompose_address, maybe_get_pool_constant,
3646         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
3647         memory_address_length): Export.
3648         (any_fp_register_operand, fp_register_operand,
3649         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
3650         x86_64_general_operand, x86_64_szext_general_operand,
3651         x86_64_nonmemory_operand, x86_64_movabs_operand,
3652         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
3653         x86_64_zext_immediate_operand, const_int_1_31_operand,
3654         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
3655         tls_symbolic_operand, global_dynamic_symbolic_operand,
3656         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
3657         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
3658         constant_call_address_operand, const0_operand, const1_operand,
3659         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
3660         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
3661         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
3662         general_no_elim_operand, nonmemory_no_elim_operand,
3663         index_register_operand, q_regs_operand, flags_reg_operand,
3664         non_q_regs_operand, zero_extended_scalar_load_operand,
3665         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
3666         ix86_comparison_operator, ix86_carry_flag_operator,
3667         fcmov_comparison_operator, promotable_binary_operator,
3668         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
3669         mult_operator, div_operator, arith_or_logical_operator,
3670         memory_displacement_operand, cmpsi_operand, long_memory_operand,
3671         aligned_operand): Move to predicates.md as define_predicates.
3672         (tls_symbolic_operand_1): Remove.
3673         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
3674         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
3675         (legitimize_address): Merge tls_symbolic_operand contents.
3676         (ix86_expand_move): Likewise.
3677         * config/i386/i386-protos.h: Update for exports.
3678         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
3679         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
3680         * config/i386/i386.md: Include predicates.md.
3681         * config/i386/predicates.md: New file.
3683 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
3685         PR c++/16924
3686         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
3687         SYMBOL_REF_DECL.
3688         (i386_pe_mark_dllimport): Likewise.
3689         (i386_pe_encode_section_info): Likewise, when overriding
3690         dllimport attribute.
3692 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
3694         * configure.ac: When testing for flex, nm, ar, and bison, check
3695         that they will actually be built.
3696         * configure: Regenerate.
3698 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
3700         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
3701         (MOVE_MAX_PIECES): Define.
3703 2004-08-12  Devang patel  <dpatel@apple.com>
3705         * dbxout.c (dbxout_begin_prologue): New function.
3706         (dbx_debug_hooks): Use new begin prologue hook.
3707         (dbxout_function_end): Emit N_ENSYM.
3708         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
3710 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
3712         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
3713         argument is float*.
3715         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
3716         for vec_dss.
3718         * doc/extend.texi (AltiVec builtins): Fix description for recent
3719         changes.  Update operation list to match current support.
3721 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3723         * config/s390/s390.c (struct s390_frame_layout): New struct as element
3724         of struct machine_function.
3725         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
3726         changed all uses.
3727         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
3728         changed all uses.
3729         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
3730         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
3731         (s390_frame_area, s390_register_info): New functions.
3732         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
3733         for base register.
3734         (s390_return_addr_rtx, s390_return_address_offset)
3735         (s390_va_start, s390_gimplify_va_arg)
3736         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
3737         layouts.
3738         (s390_frame_info): Functionality partly moved to s390_register_info.
3739         Made adaptions for new stack layout.
3740         (save_gprs, restore_gprs): Changed meaning of second parameter and
3741         adapted all callers.
3743         * config/s390/s390.h (s390_backchain_string): New global variable.
3744         (MASK_BACKCHAIN): Removed definition.
3745         (TARGET_BACKCHAIN): Changed check.
3746         (TARGET_KERNEL_BACKCHAIN): New macro.
3747         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
3748         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
3749         "kernel-backchain".
3750         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
3752         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
3753         as condition.  Adjusted for new stack layout.
3755         * doc/invoke.texi: Added documentation for new option
3756         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
3757         "-mno-backchain".
3759 2004-08-12  Paul Brook  <paul@codesourcery.com>
3761         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
3762         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
3764 2004-08-12  David Daney  <ddaney@avtrex.com>
3766         * java/gcj.texi:  Add subsection on signal usage.
3768 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3770         * expr.c (move_by_pieces): Set alignment for move to minimum of
3771         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
3772         alignment, but not less than the original alignment.
3773         (move_by_pieces_ninsns): Same.
3774         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
3775         (store_by_pieces_1): Same.
3777 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
3779         PR tree-optimization/16867
3780         * tree.c (is_global_var): New function.
3781         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
3782         Call is_global_var.
3783         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
3784         Update all users.
3785         (is_global_var): Declare.
3786         * tree-dfa.c (dump_variable): Display global and addressable
3787         attributes.
3788         (add_referenced_var): Clarify documentation when marking
3789         variables call-clobbered.
3790         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
3791         instead of needs_to_live_in_memory.
3792         (mark_call_clobbered): If the variable is a tag, mark it
3793         DECL_EXTERNAL.
3794         * tree-gimple.c (is_gimple_reg): Don't check for
3795         TREE_ADDRESSABLE.
3796         (is_gimple_non_addressable): Likewise.
3797         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
3798         needs to be marked call-clobbered.
3799         (setup_pointers_and_addressables): Call is_global_var instead
3800         of needs_to_live_in_memory.
3801         * tree-ssa-dce.c (need_to_preserve_store): Remove.
3802         Update all users with is_global_var.
3803         (mark_stmt_if_obviously_necessary): Fix processing of aliased
3804         stores.  Don't check the virtual definitions.  Rather, check
3805         whether the store is going into global memory.
3806         (find_obviously_necessary_stmts): Get the symbol from the PHI
3807         result.
3808         * tree-ssa-operands.c (get_call_expr_operands): Do not add
3809         clobbering may-defs if the call does not have side effects.
3811 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
3813         PR c++/16276
3814         * output.h (default_function_rodata_section,
3815         default_no_function_rodata_section): New prototypes.
3816         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
3817         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3818         (TARGET_ASM_OUT): Add it.
3819         * varasm.c (default_function_rodata_section,
3820         default_no_function_rodata_section): New functions.
3821         * final.c (final_scan_insn): Call
3822         targetm.asm_out.function_rodata_section instead of
3823         readonly_data_section.
3824         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3825         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3826         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3827         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3828         Likewise.
3829         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3830         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3831         Likewise.
3832         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3833         Likewise.
3834         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3835         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3836         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
3838 2004-08-12  Paul Brook  <paul@codesourcery.com>
3840         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
3841         frame info.
3842         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
3843         DWARF2_UNWIND_INFO.
3845 2004-08-12  Ben Elliston  <bje@au.ibm.com>
3847         PR target/16286
3848         * config/rs6000/altivec.h: Change vector to __vector throughout.
3849         (Except for the `vector' macro itself).
3851 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3853         * genpreds.c: Add capability to generate predicate bodies as
3854         well as function prototypes.  Write function prototypes for
3855         the generic predicates too.
3856         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
3857         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
3858         (write_match_code, write_predicate_expr, write_one_predicate_function)
3859         (parse_option): New functions.
3860         (output_predicate_decls): Delete.
3861         (main): Read the machine description, process DEFINE_PREDICATE or
3862         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
3863         as appropriate.
3865         * genrecog.c (struct decision_test): Replace index with
3866         struct pred_data pointer.
3867         (next_index): Remove, unused.
3868         (pred_table, preds, special_mode_pred_table): Delete.
3869         (compute_predicate_codes, process_define_predicate): New functions.
3870         (validate_pattern, add_to_sequence, write_switch): Update for
3871         new data structures.
3872         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3873         Check both error_count and have_error.
3875         * gensupport.c (in_fname, first_predicate): New globals.
3876         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
3877         (predicate_table, last_predicate, old_pred_table)
3878         (old_special_pred_table): New statics.
3879         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
3880         (add_predicate, init_predicate_table): New functions.
3881         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3882         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
3883         it or max_include_len.  Call init_predicate_table.
3884         (read_rtx): Run the predicate queue after the attribute queue
3885         but before all the others.
3886         * gensupport.h (in_fname, struct pred_data, first_predicate)
3887         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
3888         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
3889         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
3890         * dummy-conditions.c: Don't include bconfig.h, system.h,
3891         coretypes.h, tm.h, or system.h.  Do include stddef.h.
3892         Duplicate declaration of struct c_test from gensupport.h.
3894         * Makefile.in (OBJS-common): Add insn-preds.o.
3895         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
3896         (insn-preds.c, insn-preds.o): New rules.
3897         (s-preds): Also generate insn-preds.c.
3898         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
3899         Update dependencies.
3900         (print-rtl.o, print-rtl1.o): Correct dependencies.
3902         * recog.h: Delete prototypes of predicate functions.
3904         * doc/md.texi (Predicates): New section with complete
3905         documentation of operand/operator predicates.  Remove some
3906         incomplete documentation of predicates from other places.
3907         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
3908         PREDICATE_CODES; indicate that both are deprecated in favor
3909         of define_predicate/define_special_predicate.
3911         * config/ia64/ia64.c: All predicate function definitions moved
3912         to ia64.md, except
3913         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
3914         (ia64_expand_load_address, ia64_expand_move):
3915         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
3917         * config/ia64/ia64.md: All predicates now defined here.
3918         (symbolic_operand): Is now a special predicate.
3920         * config/ia64/ia64.h: Declare ia64_section_threshold.
3921         (PREDICATE_CODES): Delete.
3923 2004-08-12  Richard Henderson  <rth@redhat.com>
3925         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
3926         * c-semantics.c (add_stmt): Set it.
3927         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
3928         before instantiating a variable sized type.
3930 2004-08-12  Richard Henderson  <rth@redhat.com>
3932         * stor-layout.c (round_up, round_down): Move ...
3933         * fold-const.c (round_up, round_down): ... here.  Use
3934         multiple_of_p to avoid any arithmetic at all.
3936 2004-08-12  Richard Henderson  <rth@redhat.com>
3938         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
3939         (gimplify_init_ctor_preeval_1): New.
3940         (gimplify_init_ctor_preeval): New.
3941         (gimplify_init_ctor_eval): New.
3942         (gimplify_init_constructor): Use them.  Always gimplify the LHS
3943         object first.
3945 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
3947         (This patch is part of merge of objc-improvements-branch
3948         into mainline.)
3950         * doc/frontends.texi: Mention Objective-C++ in addition to
3951         Objective-C.
3952         * doc/install.texi: Add 'obj-c++' to list of configurable
3953         languages.
3954         * doc/invoke.texi: Rename Objective-C option headings to
3955         indicate they also apply to Objective-C++.  List file
3956         extensions for Objective-C++ sources.  Mention that
3957         ObjC and ObjC++ compilations may also use C and C++ options,
3958         respectively.  Point users to doc/standards.texi for
3959         further info on ObjC and ObjC++.
3960         * doc/sourcebuild.texi: Mention the objcp/ directory and
3961         the Objective-C++ sources it contains.
3962         * doc/standards.texi: Update link to Apple ObjC site;
3963         add link to gcc readings.html WWW doc.
3965 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
3967         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
3968         and 2004-07-14 changes.
3970 2004-08-12  Paul Brook  <paul@codesourcery.com>
3972         * doc/invoke.texi: Fix typo.
3974 2004-08-11 Devang Patel  <dpatel@apple.com>
3976         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
3977         and -no_dead_strip_inits_and_terms.
3978         (LINK_SPEC): Same.
3979         * doc/invoke.texi (Darwin Options): Document -dead_strip and
3980         -no_dead_strip_inits_and_terms.
3982 2004-08-11  Paul Brook  <paul@codesourcery.com>
3984         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
3985         (arm_load_pic_register): ... to this.
3986         * config/arm/arm.c (arm_finalize_pic): Rename ...
3987         (arm_load_pic_register): ... to this.  Always output insns at the
3988         current location.  Load via low reg in thumb mode.
3989         (arm_expand_prologue): Call arm_load_pic_register.
3990         (thumb_expand_prologue): Ditto.
3991         * config/arm/arm.h (FINALIZE_PIC): Remove.
3992         * config/arm/arm.md (builtin_setjmp_receiver): Call
3993         arm_load_pic_register.
3995 2004-08-11  Paul Brook  <paul@codesourcery.com>
3997         * arm.c (thumb_force_lr_save): Add prototype.
3998         (thumb_compute_save_reg_mask): New function.
3999         (thumb_find_work_register): New function.
4000         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
4001         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
4002         Don't clobber r3 when removing pretend args.
4003         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
4004         (thumb_output_function_prologue): Use new functions.
4005         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
4006         * arm.h (THUMB_REG_PUSHED_P): Remove.
4008 2004-08-11  James E Wilson  <wilson@specifixinc.com>
4010         PR rtl-optimization/16490
4011         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
4012         global_live_at_end for new basic block if already set for other blocks.
4014 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
4016         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
4018         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
4019         (mfcr rlwinm rlwinm patterns): Set length to 12.
4021 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
4023         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
4024         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
4025         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
4026         (start_ssa_stmt_operands): Delete.
4027         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
4028         struct stmt_operands_d.
4029         (build_ssa_operands): New extern entry point.
4030         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
4031         building code, replace with create_ssa_artficial_load_stmt().
4032         * tree-ssa-operands.c (struct voperands_d): Delete.
4033         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
4034         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
4035         (free_uses, free_defs, free_vuses, free_v_may_defs,
4036         free_v_must_defs): Remove dealloc parameter.
4037         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
4038         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
4039         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
4040         vector comparisons, ssa_name reuse, and allocations here.
4041         (verify_start_operands): Delete.
4042         (finalize_ssa_stmt_operands): Set new operands by calling finalize
4043         routines.
4044         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
4045         (append_def, append_usei): Simplify to simple accumulation.
4046         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
4047         duplicates and simple accumulation.
4048         (free_ssa_operands): Free vectors in a stmt_operand structure.
4049         (build_ssa_operands): New. Create a new stmt_operand structure from
4050         a stmt and an old set of stmt_operands.
4051         (get_stmt_operands): Simplify and call build_ssa_operands.
4052         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
4053         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
4054         add_call_read_ops): Don't pass prev_vops around anymore.
4055         (note_addressable): Return if no stmt annotation.
4056         (copy_virtual_operands): Access v_may_def operands through a struct.
4057         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
4058         hash tables without treating the stmt as a real stmt.
4059         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
4060         v_may_def def and use through a struct instead of 2 array elements.
4061         (struct v_may_def_optype_d): Use v_may_def_operand_type.
4062         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
4064 2004-08-11  Nick Clifton  <nickc@redhat.com>
4066         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
4067         this funciton's behaviour.  Return true when the current function
4068         has a section attribute and -mlong-calls is in effect.
4069         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
4070         short-call marker when -mlong-calls is in effect and the function
4071         has a section attribute.
4073 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
4075         * stmt.c (expand_return): If asked to return the RESULT_DECL,
4076         just call expand_value_return on result_rtl.
4078 2004-08-10  Richard Henderson  <rth@redhat.com>
4080         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
4081         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
4082         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
4083         (add_location_or_const_value_attribute): ... not here.  Use
4084         loc_descriptor_from_tree if possible.
4085         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
4086         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
4087         values specially.
4088         (loc_descriptor_from_tree): New.  Update callers.
4089         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
4090         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
4091         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
4092         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
4093         and BUILT_IN_STACK_RESTORE.
4094         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
4095         * stmt.c (expand_stack_alloc): Remove.
4096         * tree-mudflap.c (mx_register_decls): Don't look for
4097         BUILT_IN_STACK_ALLOC.
4098         * tree-nested.c (convert_local_reference): Likewise.
4099         * tree.h (DECL_VALUE_EXPR): New.
4101 2004-08-10  Richard Henderson  <rth@redhat.com>
4103         * stor-layout.c (round_up): Check for 0/1 before dividing.
4104         (round_down): Likewise.
4106         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
4108 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
4110         * config.gcc (arm*-*-eabi*): New target.
4111         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
4112         (TARGET_LIB_INT_CMP_BIASED): Likewise.
4113         * expmed.c (expand_divmod): Try a two-valued divmod function as a
4114         last resort.
4115         * gthr.h: Remove bogus tokens at end of #pragma.
4116         * optabs.c (expand_twoval_binop_libfunc): New function.
4117         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
4118         (prepare_float_lib_cmp): Try reversing the condition.
4119         (debug_optab_libfuncs): New function.
4120         * optabs.h (expand_twoval_binop_libfunc): Declare.
4121         * config/arm/arm.c (arm_init_libfuncs): New function.
4122         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
4123         (TARGET_INIT_LIBFUNCS): Define it.
4124         * config/arm/arm.h (TARGET_BPABI): New macro.
4125         * config/arm/arm-protos.h
4126         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
4127         * config/arm/bpabi.S: New file.
4128         * config/arm/bpabi.c: Likewise.
4129         * config/arm/bpabi.h: Likewise.
4130         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
4131         (__aeabi_drsub): Likewise.
4132         (__aeabi_dsub): Likewise.
4133         (__aeabi_dadd): Likewise.
4134         (__aeabi_ui2d): Likewise.
4135         (__aeabi_i2d): Likewise.
4136         (__aeabi_f2d): Likewise.
4137         (__aeabi_dmul): Likewise.
4138         (__aeabi_ddiv): Likewise.
4139         (__aeabi_cdrcmple): Likewise.
4140         (__aeabi_cdcmpeq): Likewise.
4141         (__aeabi_cdcmple): Likewise.
4142         (__aeabi_dcmpeq): Likewise.
4143         (__aeabi_dcmplt): Likewise.
4144         (__aeabi_dcmple): Likewise.
4145         (__aeabi_dcmpge): Likewise.
4146         (__aeabi_dcmpgt): Likewise.
4147         (__aeabi_dcmpun): Likewise.
4148         (__aeabi_d2iz): Likewise.
4149         (__aeabi_d2uiz): Likewise.
4150         (__aeabi_d2f): Likewise.
4151         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
4152         (__aeabi_frsub): Likewise.
4153         (__aeabi_fsub): Likewise.
4154         (__aeabi_fadd): Likewise.
4155         (__aeabi_ui2f): Likewise.
4156         (__aeabi_i2f): Likewise.
4157         (__aeabi_fmul): Likewise.
4158         (__aeabi_fdiv): Likewise.
4159         (__aeabi_cfrcmple): Likewise.
4160         (__aeabi_cfcmpeq): Likewise.
4161         (__aeabi_cfcmple): Likewise.
4162         (__aeabi_fcmpeq): Likewise.
4163         (__aeabi_fcmplt): Likewise.
4164         (__aeabi_fcmple): Likewise.
4165         (__aeabi_fcmpge): Likewise.
4166         (__aeabi_fcmpgt): Likewise.
4167         (__aeabi_fcmpun): Likewise.
4168         (__aeabi_f2iz): Likewise.
4169         (__aeabi_f2uiz): Likewise.
4170         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
4171         (__aeabi_uidivmod): New function or alias.
4172         (__aeabi_idivmod): Likewise.
4173         (__aeabi_idiv0): Likewise.
4174         (__aeabi_ldiv0): Likewise.
4175         (__aeabi_llsr): Likewise.
4176         (__aeabi_lasr): Likewise.
4177         (__aeabi_llsl): Likewise.
4178         (bpabi.S): Include it.
4179         * config/arm/libgcc-bpabi.ver: New file.
4180         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
4181         (LINK_SPEC): Remove.
4182         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
4183         __aeabi_ulcmp.
4184         * config/arm/t-bpabi: New file.
4185         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
4186         (TARGET_LIB_INT_CMP_BIASED): Likewise.
4188 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
4190         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
4191         * config/rs6000/rs6000.md (clrmemsi): New pattern.
4192         * config/rs6000/rs6000.c (expand_block_clear): New function.
4193         (expand_block_move): Convert alignment to bits.  Use SImode and
4194         HImode for unaligned addresses if not STRICT_ALIGNMENT.
4196 2004-08-10  Caroline Tice  <ctice@apple.com>
4198         * varasm.c (unlikely_section_label): New global variable.
4199         (unlikely_text_section_name): New global variable.
4200         (text_section):  Remove alignment statement.
4201         (unlikely_text_section): Remove alignment statement; use
4202         unlikely_section_label rather than hard-coded string.
4203         (assemble_start_function): Initialize unlikely_section_label and
4204         unlikely_text_section_name;  make sure cold section is properly
4205         aligned at start of function; output unlikely_section_label if
4206         appropriate.
4208 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
4210         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
4211         * config/s390/s390.c (s390_canonicalize_comparison): New function.
4212         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
4213         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
4214         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
4215         ("*tmqi_mem"): Remove SUBREG from pattern.
4216         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
4217         ("*andsi3_cconly"): Likewise.
4219 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
4221         PR target/16909
4222         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
4224 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
4226         * doc/sourcebuild.texi (compat testing): Document available test
4227         framework commands.  Use the preferred spelling of DejaGnu.
4229 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
4231         * lambda.h: Add matrix type, and prototypes for remainder of
4232         matrix and vector functions.
4233         (lambda_vector_mult_const): New function.
4234         (lambda_vector_negate): Ditto.
4235         (lambda_vector_add): Ditto.
4236         (lambda_vector_add_mc): Ditto.
4237         (lambda_vector_copy): Ditto.
4238         (lambda_vector_zerop): Ditto.
4239         (lambda_vector_equal): Ditto.
4240         (lambda_vector_min_nz): Ditto.
4241         (lambda_vector_first_nz): Ditto.
4242         (lambda_vector_matrix_mult): Ditto.
4243         * lambda-mat.c: New file.
4244         * Makefile.in (lambda-mat.o): New.
4246 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
4248         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
4249         after linking stmt into the program.
4250         (bsi_remove): Don't call modify_stmt.
4251         * tree-complex.c (update_complex_assignment,
4252         expand_complex_comparison): Call modify_stmt after changing the stmt.
4253         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
4254         removing the stmt.
4255         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
4256         the stmt, and only if needed.
4257         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
4258         expression.
4259         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
4260         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
4261         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
4262         (eliminate_redundant_computations): Don't pass an annotation. Call
4263         modify_stmt rather than setting the annotation directly.
4264         (record_equivalences_from_stmt): Remove unused local 'j'.
4265         (cprop_operand): Take a stmt rather than an annotation as a parameter.
4266         Call modify_stmt.
4267         (cprop_into_stmt): Pass stmt rather than annotation.
4268         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
4269         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
4270         modify_stmt.
4271         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
4273 2004-08-10  Jason Merrill  <jason@redhat.com>
4275         PR middle-end/16948
4276         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
4277         the RESULT_DECL.
4279 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
4281         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
4282         hash function.
4284 2004-08-10  Roger Sayle  <roger@eyesopen.com>
4286         * config/mips/mips.md: New reciprocal square root patterns that
4287         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
4289 2004-08-10  Paul Brook  <paul@codesourcery.com>
4291         * config/arm/arm-protos.h (arm_set_return_address,
4292         thumb_set_return_address): Add prototypes.
4293         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
4294         * config/arm/arm.c (arm_compute_func_type,
4295         use_return_insn, arm_compute_save_reg0_reg12_mask,
4296         arm_compute_save_reg_mask, arm_output_function_prologue,
4297         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
4298         current_function_calls_eh_return.
4299         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
4300         old eh code.
4301         (arm_set_return_address, thumb_set_return_address): New functions.
4302         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
4303         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
4304         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
4305         (epilogue): Use the stackadj register.
4306         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
4308 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
4310         PR target/3144
4311         * expr.c (move_by_pieces_ninsns): Add max_size argument.
4312         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
4313         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
4314         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
4315         but using MOVE_RATIO.
4316         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
4317         (can_store_by_pieces): Change max_size type to unsigned int.
4318         (store_by_pieces_1): Likewise.  Pass max_size to
4319         move_by_pieces_ninsns.
4320         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
4321         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
4322         to move_by_pieces_ninsns.
4323         (STORE_BY_PIECES_P): Define.
4324         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
4325         to move_by_pieces_ninsns.
4326         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
4328         * config/i386/i386.h (CLEAR_RATIO): Define.
4330 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4332         * expr.c (expand_expr_real_1): Add back code that was not dead.
4334 2004-08-09  Andrew Pinski  <apinski@apple.com>
4336         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
4337         which is found to be compatible before returning the aliasing set.
4339 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
4341         * ggc-zone.c (struct alloc_zone): Add statistics counters.
4342         (always_collect): New flag.
4343         (ggc_alloc_zone_1): Update statistics support.  Don't include
4344         overhead in allocated counter.
4345         (sweep_pages): Update allocated counter for large pages.  Don'y
4346         include overhead.
4347         (ggc_collect_1): Always collect.
4348         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
4349         whether to collect.
4350         (SCALE, LABEL): New macros.
4351         (ggc_print_statistics): Add statistics support.
4353 2004-08-09  Roger Sayle  <roger@eyesopen.com>
4355         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
4356         (init_expmed): Fix potential overrun problem with "all.reg".
4357         (expand_sdiv2_pow2): Add an alternate implementation for signed
4358         division, if the target provides a suitable conditional move insn.
4360 2004-08-09  Paul Brook  <paul@codesourcery.com>
4361         Richard Henderson  <rth@redhat.com>
4363         * unwind-dw2.c (uw_install_context_1): Update target saved stack
4364         pointer.
4366 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
4368         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
4369         Check DATA limit only if there's no AS limit.  Ignore insanely
4370         low DATA limits.
4371         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
4372         but take care that the AS limit isn't overrun.
4373         * doc/invoke.texi: Update documentation of min-heapsize parameter.
4375 2004-08-09  Jeff Law  <law@redhat.com>
4377         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
4378         (tree-ssa-threadupdate.o): Add dependencies.
4379         * tree-ssa-threadupdate.c: New file.
4380         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
4381         (rewrite_vars_out_of_ssa): Remove prototype.
4382         (cleanup_tree_cfg): Returns a bool.
4383         * tree.h (thread_through_all_blocks): Prototype.
4384         * tree-outof-ssa.c  (SSANORM_*): Move into here.
4385         (remove_ssa_form): Now static.
4386         (rewrite_vars_out_of_ssa): Kill.
4387         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
4388         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
4389         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
4390         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
4391         anything was changed.
4392         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
4393         from the PHI's annotation rather than the edge associated with
4394         the new argument.
4395         * tree-ssa-dom.c (redirection_edges): Kill.
4396         (redirect_edges_and_update_ssa_graph): Kill.
4397         (tree_ssa_dominator_optimize): Do not reset forwardable flag
4398         for blocks anymore.  Do not initialize redirection_edges.
4399         Call thread_through_all_blocks.  Simplify code for cleanup
4400         of the CFG and iterating.  No longer call cleanup_tree_cfg
4401         outside the iteration loop.
4402         (thread_across_edge): No longer mess with forwardable blocks.
4404 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
4406         * explow.c (memory_address): Use memory_address_p.
4407         * recog.c (general_operand): Likewise.
4408         * regrename.c: No need to define REG_OK_STRICT.
4410 2004-08-09  Steven Bosscher  <stevenb@suse.de>
4412         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
4413         New timers.
4414         * gcse.c: Include timevar.h.
4415         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
4416         and global_copy_prop_count.
4417         (local_const_prop_count, local_copy_prop_count): New static globals.
4418         (gcse_main): Set the right timevar for each pass.
4419         (cprop_jump): Increment global_const_prop_count when a constant is
4420         propagated.  Add "GLOBAL" to dump output.
4421         (cprop_insn): Increment global_const_prop_count when a constant is
4422         propagated, or global_copy_prop_count when a copy is propagated.
4423         (do_local_cprop): Likewise for local_const_prop_count and
4424         local_copy_prop_count.
4425         (one_cprop_pass): Initialize const/cprop counters to zero.
4426         Print out results of local and global const/cprop separately.
4427         (bypass_block): Break over-length line.
4428         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
4429         for bb-reorder.o and tracer.o.
4431 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4433         * Makefile.in (GTFILES): Remove stmt.c
4434         (stmt.o): Do not depend on gt-stmt.h.
4435         * emit-rtl.c (emit_line_note): Do not call
4436         set_file_and_line_for_stmt.
4437         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
4438         do everything.
4439         * function.c (free_after_parsing): Do not free STMT field.
4440         (allocate_struct_function): Do not call init_stmt_for_function.
4441         (assign_stack_temp_for_type): Do not accept values of keep
4442         other than 0 or 1.
4443         (init_temp_slots): Do not initialize removed variables.
4444         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
4445         and X_VAR_TEMP_SLOT_LEVEL fields.
4446         * rtl.h (set_file_and_line_for_stmt): Remove.
4447         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
4448         struct stmt_status, cond_stack, case_stack, nesting_stack,
4449         nesting_depth, emit_locus, set_file_and_line_for_stmt,
4450         same_case_target_p, init_stmt_for_function, emit_nop,
4451         expand_start_cond, expand_start_elseif, expand_start_else,
4452         expand_elseif, expand_end_cond): Remove.
4453         (preserve_subexpressions_p): Remove references to CFUN->STMT.
4454         (expand_start_case, expand_end_case_type): Remove, merge into...
4455         (expand_case): ... this one, including other bits from
4456         expand_expr_real_1.  Inline same_case_target_p.  Turn members
4457         of CASE_STACK into local variables.
4458         (emit_case_bit_tests): Inline same_case_target_p.
4459         (add_case_node): Add HEAD argument, return new head of the list,
4460         do not handle default label here.
4461         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
4462         expand_start_elseif, current_nesting_level, expand_start_case,
4463         expand_end_case_type, expand_end_case, add_case_node,
4464         init_stmt_for_function, expand_elseif): Remove prototypes.
4465         (expand_case): Add prototype.
4467 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4469         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
4471 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4473         * expr.c (var_rtx): Remove.
4474         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
4475         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
4476         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
4477         Abort.
4478         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
4479         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
4480         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
4482 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
4483         Ayal Zaks <zaks@il.ibm.com>
4485         * common.opt (freschedule-modulo-scheduled-loops): New flag.
4486         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
4487         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
4488         when -freschedule-modulo-scheduled-loops flag is not specified.
4489         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
4490         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
4491         More accurate placing of insn in row of partial schedule.
4492         (ps_insn_find_column): New function.
4493         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
4494         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
4495         (schedule_region): Use sched_is_disabled_for_current_region_p.
4496         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
4498 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
4500         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
4501         change.
4503 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
4505         * config/i386/i386.c (ix86_expand_clrmem): Properly call
4506         gen_strset for 64bit target.
4508 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
4510         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
4512 2004-08-07  Jason Merrill  <jason@redhat.com>
4514         Make return in memory explicit.
4515         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
4516         (assign_parm_find_data_types): Remove code for old front end
4517         invisible reference handling.
4518         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
4519         (expand_function_end): Likewise.
4520         * gimplify.c (gimplify_return_expr): Handle a dereferenced
4521         RESULT_DECL.
4522         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
4523         (declare_return_variable): Handle DECL_BY_REFERENCE.
4524         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
4525         (cp_genericize_r): Use convert_from_reference.
4526         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
4527         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
4529         * c-common.c (c_warn_unused_result): Check TREE_USED before
4530         warning about a CALL_EXPR with an unused value.
4532 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
4534         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
4535         to the compiler.  Use -fshort-wchar by default.
4537 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
4539         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
4540         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
4541         threshhold.
4542         * doc/invoke.texi (param): Document min-crossjump-insns.
4544 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
4546         PR c/13282
4547         * c.opt (Wmissing-field-initializers): New option.
4548         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
4549         * c-typeck.c (pop_init_level): Guard the missing field warning with
4550         warn_missing_field_initializers rather than extra_warnings.
4551         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
4552         some of the explanation from...
4553         (-Wextra): ...here.  Say that the missing field warning can be
4554         seperately controlled by -Wmissing-field-initializers.
4556 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
4558         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
4559         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
4560         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
4561         * tree.def (ENTRY_VALUE_EXPR): Remove.
4563 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
4565         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
4566         the places where it is actually needed.  Don't use repz; stosb
4567         for -Os with sufficiently small constant sizes.
4568         For sufficiently small repz; stos{l,q} repeat counts use a sequence
4569         of stos{l,q} instructions instead.
4571 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4573         PR tree-optimization/16807
4574         * loop-iv.c (dump_iv_info): Dump invariants correctly.
4575         (iv_subreg, iv_extend): Express value of invariant purely in
4576         base field.
4578 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
4580         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
4581         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
4583 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
4585         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
4586         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
4587         pre_dec_operand.
4588         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
4589         pattern until reload is finished to allow better code generation
4590         and split them completely into separate instrunctions.
4591         (*andsi3_split): New pattern.
4593 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
4595         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
4596         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
4597         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4598         * tree.h (handle_dll_attribute): Declare.  Test
4599         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4600         * c-common.h (c_determine_visibility): Declare.
4601         * c-common.c (c_determine_visibility): New function.
4602         * c-decl.c (finish_decl): Use it.
4603         (finish_function): Likewise.
4604         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
4605         zero, by default.  Use #if, not #ifdef, to test it.
4606         * config/arm/arm.c (arm_attribute_table): Use
4607         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
4608         #if.
4609         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
4610         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4611         to 1.
4612         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
4613         * config/i386/i386.c (ix86_attribute_table): Use
4614         handle_dll_attribute for dllimport/dllexport.  Test
4615         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4616         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
4617         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4618         it to 1.
4619         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
4620         with #if.
4621         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4622         it to 1.
4623         * doc/extend.texi (dllexport): Clarify and correct documentation.
4624         (dllimport): Likewise.
4625         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
4626         handle_dll_attribute.
4628 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4630         * tree-ssa-loop-manip.c: New file.
4631         * Makefile.in (tree-ssa-loop-manip.o): Add.
4632         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
4633         Declare.
4634         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
4635         form.
4636         (tree_ssa_loop_done): Verify loop closed ssa form.
4637         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
4639 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4641         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
4642         pa_asm_output_aligned_local): New functions.
4643         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
4644         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
4645         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
4646         pa_asm_output_aligned_common.
4647         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4648         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
4649         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
4650         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4651         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
4652         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
4653         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4654         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
4655         common data.
4657 2004-08-05  Andrew Pinski  <apinski@apple.com>
4659         * objc/objc-act.c (build_objc_string_object): Mark the address
4660         expression as constant.
4662 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
4664         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
4665         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
4666         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
4668 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4670         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
4671         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
4672         out, and associated obsolete comments.
4674 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
4676         * tree.h (force_fit_type): Return a tree, take three flags.
4677         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
4678         TREE_CONSTANT_OVERFLOW here.
4679         (int_const_binop, const_binop): Adjust.
4680         (size_int_type): Do sign extension here.
4681         (fold_convert_const, optimize_bit_field_compare,
4682         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
4683         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
4684         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
4686 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4688         PR tree-optimization/16864
4689         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
4690         for ssa names without default_def.
4692 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
4694         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
4695         frame pointer, restore eax with an ebp-relative address.
4697 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
4699         PR 14516
4700         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
4701         * c-common.h (make_rtl_for_local_static): Delete.
4702         * c-decl.c (shadow_tag_warned): Clean up comment.
4703         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
4704         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
4705         * c-semantics.c (make_rtl_for_local_static): Delete.
4706         * expr.c (init_block_move_fn): Use set_user_assembler_name.
4707         (init_block_clear_fn): Likewise.
4708         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
4709         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
4710         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
4711         * tree.h (make_decl_rtl): Remove second parameter.
4712         (set_user_assembler_name): New.
4713         * varasm.c (set_user_assembler_name): New.
4714         (make_decl_rtl): Remove second parameter.  Update callers in many
4715         files.
4717 2004-08-05  Adam Nemet  <anemet@lnxw.com>
4719         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
4720         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
4721         to LynxOS 4.0.
4722         * gthr-lynx.h: New file.
4723         * config/lynx-ng.h: Remove file.
4724         * config/lynx.h: Update to LynxOS 4.0.
4725         * config/t-lynx: New file.
4726         * config/i386/lynx-ng.h: Remove file.
4727         * config/i386/lynx.h: Update to LynxOS 4.0.
4728         * config/rs6000/lynxbase.h: Remove file.
4729         * config/rs6000/lynx.h: Update to LynxOS 4.0.
4730         * config/rs6000/t-lynx: New file.
4731         * doc/install.texi (Options specification): Remove reference to
4732         LynxOS from systems where --with-gnu-as makes a difference.
4734 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4736         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
4737         __UINTMAX_TYPE__.
4738         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
4739         __INTMAX_MAX__.
4740         (c_cpp_builtins): Call it.
4741         * doc/cpp.texi: Update.
4743 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
4745         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
4746         cost.
4748 2004-08-04  Jan Hubicka  <jh@suse.cz>
4750         * basic-block.h (profile_staus): New global variable.
4751         * cfg.c (profile_status): Declare.
4752         (check_bb_profile): Break out from ....; use profile_status
4753         (dump_flow_info): ... here.
4754         * cfgbuild.c (find_basic_blocks): Set profile_status.
4755         * cfgexpand.c (tree_expand_cfg): Likewise.
4756         * predict.c (estimate_probability): Likewise.
4757         * profile.c (branch_prob): Likewise.
4758         * tree-cfg.c (build_tree_cfg): Likewise.
4759         (dump_function_to_file): Use check_bb_profile.
4760         * tree-pretty-print (dump_bb_header): Likewise.
4761         * tree-profile.c (do_tree_profiling): Cleanup.
4763 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
4765         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
4766         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
4767         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
4768         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
4769         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
4770         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
4771         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
4772         (ggc-none.o, errors.o): Move rule to generators section;
4773         correct dependencies.
4774         (min-insn-modes.o): Move rule to generators section; remove
4775         unnecessary explicit command; correct dependencies.
4776         (print-rtl.o, print-rtl1.o): Correct dependencies.
4777         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
4778         (mostlyclean): Update.
4780         * errors.c: Include bconfig.h not config.h.  Correct comment.
4781         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
4782         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
4783         * print-rtl.c: Don't include tm_p.h.
4785         * rtl.h: Move forward-decl of struct function down where it's
4786         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
4787         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
4789 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4790             Jeff Law  <law@redhat.com>
4792         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
4793         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
4794         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
4795         manipulate the duplicated ssa names.
4796         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
4797         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
4798         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
4799         New functions.
4800         (release_ssa_name): Do not release ssa names that may have multiple
4801         definitions.
4802         * tree.h (release_ssa_name_force, mark_for_rewrite,
4803         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
4804         marked_ssa_names): Declare.
4805         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
4806         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
4807         Update call to rewrite_ssa_into_ssa.
4809 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
4811         * defaults.h (TARGET_DECLSPEC): New macro.
4812         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
4813         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
4814         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
4815         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
4816         __declspec support.
4817         (TARGET_DECLSPEC): Define.
4818         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
4819         __declspec support.
4820         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
4821         __declspec support.
4822         (TARGET_DECLSPEC): Define.
4823         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
4824         __declspec support.
4825         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
4826         support.
4827         * doc/tm.texi (TARGET_DECLSPEC): Document.
4829         * doc/extend.texi: Fix typo in comment.
4831 2004-08-04  Paul Brook  <paul@codesourcery.com>
4833         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
4834         (TARGET_CXX): Use it.
4835         * target.h (struct gcc_target): Add cdtor_returns_this.
4836         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
4837         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
4838         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
4840 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
4842         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
4843         low/high pair. Do range checking directly.
4844         (interpret_integer): Adjust.
4846 2004-08-04  Nick Clifton  <nickc@redhat.com>
4848         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
4849         GCC ABI.
4850         * doc/invoke.texi: Document this new switch and also the -mrenesas
4851         switch.
4853 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
4855         * cfglayout.c (insn_locators_initialize): Update the current
4856         location before initializing a location.
4858 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4860         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
4861         (dbxout_function_end): Return after emitting the "Lscope" symbol
4862         under the same conditions that this function formerly wasn't called.
4863         Add explanatory comments.
4865         PR 14860
4866         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
4867         on the new decl.
4869         PR 13956
4870         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
4871         functions, broken out of dbxout_block.
4872         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
4873         stabs too, if it contains symbols.  Use the begin_label and
4874         the Lscope label (emitted by dbxout_function_end) for the
4875         range of this block.
4877 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
4879         * doc/install.texi: Update autoconf version requirements.
4881 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4883         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
4884         * recog.c (general_operand, immediate_operand, nonmemory_operand)
4885         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
4886         * regclass.c (record_reg_classes): Likewise.
4887         * reload.c (find_reloads): Likewise.
4888         * reload1.c (reload): Likewise.
4890 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4892         * gensupport.c (init_md_reader_args_cb): Renamed from
4893         init_md_reader_args.  Add third option, callback function for
4894         parsing program-specific options.  Add diagnosis of incorrect
4895         number of input files.
4896         (init_md_reader): Fold into init_md_reader_args_cb.
4897         (init_md_reader_args): Now a thin wrapper around
4898         init_md_reader_args_cb.
4899         * gensupport.h: Update prototypes.
4901         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
4902         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
4903         * genrecog.c: No need to diagnose lack of an input file;
4904         init_md_reader_args will handle it.
4905         * genconditions.c: Likewise, and use init_md_reader_args.
4906         * genconstants.c: Likewise, and no need to call read_md_rtx.
4908 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
4910         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
4911         declarations.
4913 2004-08-03  Mike Stump  <mrs@apple.com>
4915         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
4916         for frameworks.
4917         * doc/invoke.texi (Darwin Options): Update to reflect above.
4919 2004-08-03  Roger Sayle  <roger@eyesopen.com>
4921         PR middle-end/16790
4922         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
4923         truncations, not just global truncations.
4925 2004-08-03  Andrew Pinski  <apinski@apple.com>
4927         PR bootstrap/16865
4928         * loop-iv.c (simplify_using_assignment): Initialize lhs.
4930 2004-08-03  Paul Brook  <paul@codesourcery.com>
4932         * gcc/doc/install.texi: Document MPFR requirement.
4934 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
4936         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4937         and mmap() explicitly instead of relying on preset autoconf cache
4938         variables.
4939         * configure: Regenerate.
4941 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
4943         PR target/16570
4944         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
4945         to tmake_file.
4946         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
4947         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
4948         to tmake_file.
4950         * config/i386/t-gmm_malloc: New file.
4951         * config/i386/t-pmm_malloc: Likewise.
4953         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
4955 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
4956             Tanguy Fautrà <tfautre@pandora.be>
4958         * config/i386/pmm_malloc.h: New file.
4960 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
4962         * config/i386/gmm_malloc.h: New file.
4964 2004-08-03  Dale Johannesen  <dalej@apple.com>
4966         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
4967         * c-common.c: Include opts.h.
4968         (c_common_get_alias_set): Fix check for a single input file.
4969         * toplev.c: Remove current_file_decl.
4970         * tree.h: Ditto.
4972 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
4974         * config.gcc (arm*-*-symbianelf*): New target.
4975         * config/arm/symbian.h: New file.
4977         * gthr-gnat.c: Add visibility #pragmas.
4978         * gthr-gnat.h : Likewise.
4979         * gthr.h: Likewise.
4980         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
4981         (__ffsDI2): Likewise.
4982         (__clzSI2): Likewise.
4983         (__ctzSI2): Likewise.
4984         (__ctzDI2): Likewise.
4985         (__popcountSI2): Likewise.
4986         (__popcountDI2): Likewise.
4987         (__paritySI2): Likewise.
4988         (__parityDI2): Likewise.
4989         * libgcc2.h: Add visibility #pragmas.
4990         (__clzDI2): Add prototype.
4991         (__clzSI2): Likewise.
4992         (__ctzSI2): Likewise.
4993         (__ffsDI2): Likewise.
4994         (__ffsSI2): Likewise.
4995         (__ctzDI2): Likewise.
4996         (__popcountSI2): Likewise.
4997         (__popcountDI2): Likewise.
4998         (__paritySI2): Likewise.
4999         (__parityDI2): Likewise.
5000         * unwind-dw2-fde.h: Add visibility #pragmas.
5001         * unwind.h: Likewise.
5003 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
5004             Dale Johannesen  <dalej@apple.com>
5005             Roger Sayle  <roger@eyesopen.com>
5007         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
5008         constants more accurately.  Adjust costs for FMA instructions.
5009         Add cases for most logical and float operations.  Recurse into
5010         most operands.
5012 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
5014         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
5016 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
5018         * ra-build.c (conflicts_between_webs): For webs that cross a call add
5019         conflicts to regs_invalidated_by_call.
5021 2004-08-03  Paul Brook  <paul@codesourcery.com>
5023         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
5025 2004-08-03  Jan Hubicka  <jh@suse.cz>
5027         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
5028         ARRAY_REF argument.
5030 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
5032         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
5033         arm968es, arm10e, arm1020e, arm1022e.
5034         * invoke.texi: Update list of ARM cores.
5035         * arm-tune.md: Regenerate.
5037 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
5039         * arm/gentune.sh: New file.
5040         * arm/t-arm: New file.
5041         * arm/arm-tune.md: New file (autogenerated).
5042         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
5043         * arm.md (attribute tune): Delete.  Include arm-tune.md.
5045 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
5047         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
5048         penultimate parameter.  All callers adjusted.
5049         (struct prefix_list): Remove used_flag_ptr.
5050         (find_a_file): Do not set *pl->used_flag_ptr.
5051         (warn_B, warn_std_ptr): Remove.
5053 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
5054             Mostafa Hagog <mustafa@il.ibm.com>
5056         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
5058 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
5060         * dwarf2out.c (output_call_frame_info): Don't change data format
5061         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
5062         label.  Use 'true' not '1'.
5063         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
5064         required.
5066 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
5068         * gdbinit.in: Reflect previous changes to rtunion_def.
5070 2004-08-02  Roger Sayle  <roger@eyesopen.com>
5072         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
5073         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
5075 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5077         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
5078         vec_p_reserve.
5079         * langhooks.h (lang_hooks::builtin_function): Rename parameter
5080         from "class" to "bt_class".
5082 2004-08-02  Paul Brook  <paul@codesourcery.com>
5084         PR rtl-optimization/15068
5085         * flow.c (init_propagate_block_info): Check condition is reversible.
5087 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5089         * gengtype.h (options::info): Change type to const char *.
5090         (enum gc_used_enum): Move out of struct type scope.
5091         * gengtype.c (create_option): Convert initializer for option::info to
5092         appropiate type.
5093         (adjust_field_type, walk_type, write_func_for_structure,
5094         write_root, write_roots): Remove pointless cast.
5096 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
5098         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
5100 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5102         * rtl.h (union rtunion_def): Have all members  start with the
5103         prefix "rt_".
5104         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
5105         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
5106         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
5107         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
5108         access.
5109         * gengtype.c (adjust_field_rtx_def): Likewise.
5110         * rtlanal.c (loc_mentioned_in_p): Likewise.
5112 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
5114         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
5115         Replace uses of mips/elf64.h with mips/elf.h
5116         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
5117         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
5118         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
5119         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
5120         (HANDLE_SYSV_PRAGMA): Delete.
5121         (ASM_OUTPUT_DEF): Fix formatting.
5122         * config/mips/elf64.h: Delete.
5124 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
5126         * config/ia64/ia64.c (got_symbolic_operand): Do require a
5127         symbol+offset operand to have its offset be zero mod 0x3fff
5128         when GOT entries are in use.  Clarify logic in SYMBOL_REF
5129         case.  Clarify comments.
5130         (ia64_expand_load_address): Split a symbol+offset load when
5131         the offset is nonzero mod 0x3fff, not 0x1fff.
5133 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
5135         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
5136         if trying to *store* to a non-offsettable address.
5137         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
5138         a nonoffsettable address.
5139         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
5140         Clean up.
5141         (movti_string): Don't move GPRs to a nonoffsettable address.
5142         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
5144 2004-08-02  Ben Elliston  <bje@au.ibm.com>
5146         PR target/16155
5147         * config/rs6000/altivec.h: Replace typeof with __typeof__.
5149 2004-08-01  Richard Henderson  <rth@redhat.com>
5151         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
5152         variable sized types.
5154 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5156         * doc/invoke.texi: In the MIPS options section, remove the passage
5157         saying that -mexplicit-relocs is usually disabled for -mabicalls
5158         -fno-unit-at-a-time.
5159         * config/mips/mips.c (override_options): Remove the code that enforced
5160         this rule.
5162 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5164         * config/mips/mips.md (cprestore): Provide two alternatives, one for
5165         an in-range offset and one for an out-of-range offset.  Wrap the latter
5166         in .set macro/.set nomacro if it's inside a .set nomacro block.
5168 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5170         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
5171         (mips_restore_gp): Declare.
5172         * config/mips/mips.c (mips_add_offset): Add a scratch register
5173         argument.  Reimplement in rtl only, reusing MIPS16 logic from
5174         mips_output_mi_thunk.
5175         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
5176         to mips_add_offset.
5177         (mips_gp_save_slot): Delete.
5178         (mips_restore_gp): New function.
5179         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
5180         * config/mips/mips.md (exception_receiver): Turn into a
5181         define_insn_and_split.  Use mips_restore_gp to do the split.
5182         (call_internal, call_value_internal, call_value_multiple_internal): Use
5183         mips_restore_gp to restore $gp.
5185 2004-07-31  Andrew Pinski  <apinski@apple.com>
5187         PR other/16842
5188         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
5190 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
5192         * c-decl.c (diagnose_mismatched_decls): Give error for external
5193         redeclaration of identifier declared with no linkage, not just
5194         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
5195         error for redeclaration with no linkage.
5197 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
5198             Fariborz Jahanian <fjahanian@apple.com>
5200         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
5201         non-offsettable addresses even for DImode.
5202         (rs6000_split_multireg_move): Cope with non-offsettable addresses
5203         being moved into multiple GPRs.
5205         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
5206         to 64.
5207         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
5208         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
5209         to 128.
5210         * config/rs6000/darwin-ldouble.c (isless): New macro.
5211         (inf): New macro.
5212         (nonfinite): New macro.
5213         (FPKINF): Delete.
5214         (_xlqadd): Completely rewrite.
5215         (_xlqmul): Correct overflow handling.
5216         (_xlqdiv): Correct overflow handling.
5217         * config/rs6000/darwin-ldouble-format: New file.
5219 2004-07-30  Roger Sayle  <roger@eyesopen.com>
5220             Richard Henderson  <rth@redhat.com>
5222         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
5223         9 into the equivalent lea instruction.
5225 2004-07-30  Richard Henderson  <rth@redhat.com>
5227         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
5228         with DECL_INITIAL if fb_lvalue.
5229         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
5230         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
5231         with <Cxxx>.
5232         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
5234 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
5236         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
5237         pointer escapes through a function call, assume that the
5238         callee will dereference it.
5239         (add_pointed_to_var): Assume that VALUE is always an
5240         ADDR_EXPR.
5241         (collect_points_to_info_r): Only call add_pointed_to_var if
5242         the value is an ADDR_EXPR.
5244 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
5246         * tree-ssa-alias.c (create_alias_map_for): Do not get the
5247         alias set of the inner type of ARRAY_TYPEs.
5249 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5251         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
5252         setting a non-register to UNDEFINED right before the call to
5253         set_lattice_value.
5255 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5257         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
5259 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5261         * tree-ssa.c (verify_flow_sensitive_alias_info): When
5262         comparing points-to sets of different pointers, make sure the
5263         second pointer is actually referenced in the code.
5265 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
5267         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
5268         (got_symbolic_operand): Remove unreachable code.
5269         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
5270         setjmp_operand; add entry for tls_symbolic_operand.
5271         * config/ia64/ia64-protos.h: Remove all prototypes of
5272         predicate functions.
5274 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
5276         * c-common.h (lang_post_pch_load): New variable.
5277         * c-pch.c (lang_post_pch_load): Define it.
5278         (c_common_read_pch): Use it.
5279         * cgraphunit.c (record_call_1): Give the front end a chance to
5280         record additional needed entities when a variable is marked as
5281         needed.
5282         * tlink.c (recompile_files): Robustify.
5283         (scan_linker_output): If a symbol is assigned to a file,
5284         but after recompilation is not present there, issue an error
5285         message.
5287 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5289         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
5290         Take orig_loop argument and pass it to set_level.
5291         (schedule_sm): Pass the correct orig_loop to force_move_till.
5293 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5295         * cfgloop.c (update_latch_info): Update dominator of the new block.
5296         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
5297         info.
5298         * dominance.c (verify_dominators): Check that the dominance tree is
5299         connected.
5300         (recount_dominator): Ignore unreachable blocks.
5301         (iterate_fix_dominators): Cleanup old dominance information before
5302         recomputing it.
5304 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5306         * tree-ssa-operands.c (get_expr_operands): Revert changes
5307         to ADDR_EXPR processing introduced by:
5308             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5309             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
5311 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
5313         * doc/implement-c.texi: Add C90 subclause references.  Point to
5314         preprocessor documentation instead of duplicating it.  Add points
5315         only present in C90.  Fill in documentation for all points.
5317 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5319         * pa.c (output_movb): Correct typo.
5321 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
5323         * ra.h (single_reg_in_regclass): Declare.
5324         * ra.c (single_reg_in_regclass): Define.
5325         (first_hard_reg): New.
5326         (init_ra): Initialize single_reg_in_regclass.
5327         * ra-colorize.c (ok_class): New.
5328         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
5330 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
5332         * gcov-io.h: Allow zero tag as EOF indicator.
5333         (gcov_is_eof): Remove.
5334         (gcov_truncate): Remove.
5335         * gcov-io.c (gcov_seek): Always SEEK_SET.
5336         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
5337         EOF tag.
5338         * coverage.c (read_counts_file): Don't use gcov_is_eof.
5339         * gcov-dump.c (dump_file): Likewise.
5340         * gcov.c (read_graph_file, read_count_file): Likewise.
5342         * c-decl.c (complete_array_type): Don't gratuitously copy
5343         maxindex.  Check it always has a type.
5345 2004-07-29  Steven Bosscher  <stevenb@suse.de>
5347         * rtl.c (currently_expanding_to_rtl): New.
5348         * rtl.h (currently_expanding_to_rtl): Export it.
5349         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
5351         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
5352         inliner hack.
5353         * config/sh/sh.c: Replace rtx_equal_function_value_matters
5354         with currently_expanding_to_rtl.
5355         * config/sh/sh.md: Likewise.
5356         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
5358 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
5360         Introduce sh2a support.
5361         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
5362         * config.gcc: Build multilibs for sh2a and sh2a-single by
5363         default.
5364         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
5365         default.  Split their tests out of the corresponding SH4
5366         multilibs.
5367         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
5368         multilibs for SH2a.
5369         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5370         * config.gcc: Handle sh2a multilibs and cpu selection.
5371         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
5372         * config/sh/t-mlib-sh2a: New.
5373         * config/sh/t-mlib-sh2a-nofpu: New.
5374         * config/sh/t-mlib-sh2a-single: New.
5375         * config/sh/t-mlib-sh2a-single-only: New.
5376         2004-07-09  Nick Clifton  <nickc@redhat.com>
5377         Issue 43400
5378         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
5379         -ml and -m2a are used together.
5380         2004-03-23  DJ Delorie  <dj@redhat.com>
5381         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
5382         when we have a double-sized FPU.
5383         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
5384         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
5385         is set.
5386         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
5387         -msh2a-single and -msh2a-single-only
5388         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
5389         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
5390         is set.
5391         2004-02-20  DJ Delorie  <dj@delorie.com>
5392         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
5393         2004-02-20  Fred Fish <fnf@redhat.com>,
5394         Corinna Vinschen <vinschen@redhat.com>
5395         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
5396         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
5397         2004-02-18  DJ Delorie  <dj@redhat.com>
5398         * config/sh/sh.c (broken_move): Add support for movi20.
5399         * config/sh/sh.h: Likewise.
5400         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
5401         * config/sh/sh.md (udivsi3_sh2a): New.
5402         (udivsi3): Call it.
5403         (divsi3_sh2a): New.
5404         (divsi3): Call it.
5405         (mul_r): New.
5406         (ashlsi3_sh2a): New.
5407         (ashrsi3_sh2a): New.
5408         (lshrsi3_sh2a): New.
5409         (movsi_i): Disable for sh2a.
5410         (movsi_ie): Add movi20.
5411         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
5412         sh2a, for -m2a-nofpu mode.
5413         2004-02-13  DJ Delorie  <dj@redhat.com>
5414         * config/sh/lib1funcs.asm: Handle double vs single better.
5415         * config/sh/sh.h: Likewise.
5416         2004-02-09  DJ Delorie  <dj@redhat.com>
5417         * config/sh/crt1.asm: Add support for sh2a.
5418         * config/sh/elf.h: Likewise.
5419         * config/sh/lib1funcs.asm: Likewise.
5420         * config/sh/sh.c: Likewise.
5421         * config/sh/sh.md: Likewise.
5422         * config/sh/sh.h: Likewise.
5423         * config/sh/t-sh: Likewise.
5425 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5427         * config/frv/frv.md (movqi_internal, movhi_internal,
5428         movsi_internal): Add backup alternatives for memory inputs.
5430 2004-07-28  Matt Austern  <austern@apple.com>
5432         * config/darwin.c (darwin_one_byte_bool): New global variable.
5433         * config/darwin.h (darwin_one_byte_bool): Declare.
5434         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
5435         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
5436         value of darwin_one_byte_bool.
5437         * doc/invoke.texi: Document -mone-byte-bool flag.
5439 2004-07-28  Eric Christopher  <echristo@redhat.com>
5441         * c-common.c (c_common_unsafe_for_reeval): Delete.
5442         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
5443         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
5444         * calls.c (fix_unsafe_tree): Delete.
5445         (expand_call): Delete code which used above.
5446         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
5447         * expr.c (expand_expr_real_1): Ditto.
5448         * fold-const.c (non_lvalue): Ditto.
5449         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5450         (lhd_unsafe_for_reeval): Ditto.
5451         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
5452         * langhooks.h (unsafe_for_reeval): Ditto.
5453         (unsave_expr_now): Adjust comment.
5454         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
5455         (estimate_num_insns_1): Ditto.
5456         * tree-pretty-print.c (dump_generic_node): Ditto.
5457         * tree.c (expr_align): Ditto.
5458         (unsave_expr): Delete.
5459         (unsafe_for_reeval): Ditto.
5460         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
5461         * tree.def (UNSAVE_EXPR): Delete.
5462         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5464 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
5466         * tree.h (enum tls_model): Move ...
5467         * coretypes.h: ... here.
5469 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
5471         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
5473 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
5475         * cse.c (validate_canon_reg): New function, split out from...
5476         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
5478 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5480         * tree-ssa-alias.c (maybe_create_global_var): Don't just
5481         return if .GLOBAL_VAR has been created.
5483 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5485         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
5486         every variable that may have aliases, not just tags.
5488 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
5490         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
5491         move_from_CR_eq_bit.
5492         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
5495         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
5496         e500_flip_eq_bit.
5498         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
5499         output_e500_flip_eq_bit.
5501         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
5502         output_e500_flip_eq_bit.
5503         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
5504         output_e500_flip_eq_bit.
5505         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
5506         (print_operand): case D.  Get to EQ bit.
5508 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
5510         * gcov.c (function_summary): Add missing \n.
5512 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5514         Introduce sh4a support.
5515         * config.gcc: Handle sh4a multilibs and cpu selection.
5516         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
5517         * config/sh/t-mlib-sh4a: New.
5518         * config/sh/t-mlib-sh4al: New.
5519         * config/sh/t-mlib-sh4a-nofpu: New.
5520         * config/sh/t-mlib-sh4a-single: New.
5521         * config/sh/t-mlib-sh4a-single-only: New.
5522         2004-02-20  DJ Delorie  <dj@redhat.com>
5523         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
5524         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
5525         2003-08-22  Eric Christopher  <echristo@redhat.com>
5526         * config/sh/sh4a.md: Update for chip errata.
5527         2003-08-07  Eric Christopher  <echristo@redhat.com>
5528         * config/sh/sh4a.md: New file. sh4a processor description.
5529         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
5530         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
5531         of -m4a-nofpu.
5532         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
5533         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
5534         * doc/invoke.texi (SH Options): Document -m4al.
5535         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
5536         * config/sh/sh.c (expand_block_move): Remove commented-out code
5537         checked in by mistake.
5538         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
5539         single elements from SFmode vectors.
5540         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
5541         register.
5542         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
5543         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
5544         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
5545         sh_fsca_int2sf): Remove variable declarations.
5546         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
5547         sh_fsca_int2sf): New functions.
5548         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
5549         sh_fsca_int2sf_rtx): New static variables.
5550         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
5551         sh_fsca_int2sf): Declare.
5552         * config/sh/sh.md: Adjust.
5553         * doc/invoke.texi (SH Options): Document new options.
5554         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
5555         compatibility from SH4 code.
5556         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
5557         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
5558         early.
5559         (memory_movsrc_operand): Renamed to...
5560         (unaligned_load_operand): ... this.  Simplified.
5561         * config/sh/sh.h (PREDICATE_CODES): Adjust.
5562         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
5563         input operand to SImode, and adjust the others.  Introduce
5564         post-increment by peephole.
5565         * config/sh/sh.c (expand_block_move): Give the target address the
5566         same mode as the temp reg.
5567         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
5568         copying.
5569         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
5570         Introduce support for SH4a.
5571         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
5572         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
5573         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
5574         sh_fsca_int2sf): New.
5575         (sh_init_builtins): Initialize them.
5576         (print_operand): Support `d'.
5577         (expand_block_move): Use movua if src is misaligned.
5578         (memory_movsrc_operand): New.
5579         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
5580         and one of the SH4 macros.
5581         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
5582         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
5583         SELECT_SH4A_SINGLE): New.
5584         (TARGET_NONE): Add SH4A_BIT.
5585         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
5586         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
5587         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
5588         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
5589         (enum processor_type): Added PROCESSOR_SH4A.
5590         (PREDICATE_CODES): Add memory_movsrc_operand.
5591         * config/sh/sh.md: Removed unused variables.
5592         (attr cpu): Add sh4a.
5593         (attr type): Add movua, fsrra and fsca.
5594         (prefetch): New, for SH4.
5595         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
5596         (toggle_sz): Set type to fp.
5597         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
5598         (movua, extv, extzv): New.
5599         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
5600         and 4a-single-only.
5602 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5604         * tree-optimize.c (init_tree_optimization_passes): Schedule
5605         pass_may_alias right after the program is renamed into SSA.
5606         * tree-pass.h (PROP_alias): Define.
5607         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
5608         * tree-sra.c (pass_sra): Likewise.
5609         * tree-ssa-ccp.c (pass_ccp): Likewise.
5610         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
5611         * tree-ssa-dce.c (pass_dce): Likewise.
5612         * tree-ssa-dom.c (pass_dominator): Likewise.
5613         * tree-ssa-dse.c (pass_dse): Likewise.
5614         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
5615         * tree-ssa-loop-ch.c (pass_ch): Likewise.
5616         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5617         * tree-ssa-pre.c (pass_pre): Likewise.
5618         * tree-tailcall.c (pass_tail_recursion): Likewise.
5619         * tree-ssa.c (pass_redundant_phi): Likewise.
5620         * tree-ssa-alias.c (aliases_computed_p): Remove.
5621         Update all users.
5622         (init_alias_info): Do not mark all type tags for renaming
5623         unconditionally.
5624         Clear may_aliases from every symbol.
5625         (setup_pointers_and_addressables): If a pointer has not been
5626         dereferenced and it had a type tag, clear it and mark the old
5627         tag for renaming.
5629 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5631         PR tree-optimization/16705
5632         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
5633         .GLOBAL_VAR.
5635 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5637         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
5638         check.
5640         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
5641         don't make another one.
5643         PR optimization/15077
5644         * function.h (struct function): Add field saved_static_chain_decl.
5645         Fix comment for static_chain_decl.
5646         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
5647         * tree-inline.h (save_body): Add new arg.
5648         * tree-optimize.c (tree_rest_of_compilation): Handle saving
5649         static_chain_decl.
5651 2004-07-27  Richard Henderson  <rth@redhat.com>
5653         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
5654         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
5655         is_gimple_addressable.
5656         * tree-gimple.c (is_gimple_addressable): Rename from
5657         is_gimple_addr_expr_arg; accept INDIRECT_REF.
5658         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
5659         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
5660         rename to is_gimple_addressable.
5662 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
5664         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
5666 2004-07-27  Richard Henderson  <rth@redhat.com>
5668         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
5669         before rounding.
5671 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
5673         * libgcc2.c: Change all conditionals testing
5674         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
5675         * libgcc2.h: Likewise.
5676         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
5677         TYPE_PRECISION of float80_type to 80.
5678         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
5679         of fpreg_type and float80_type to 80.
5680         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
5681         * config/m68k/netbsd-elf.h:
5682         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
5683         to evaluate to 80 whenever they would formerly have evaluated to 96.
5684         * config/i386/sco5.h: Remove unnecessary redefinition of
5685         LONG_DOUBLE_TYPE_SIZE.
5686         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
5687         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
5688         XFmode, with a bitsize of 80.  Update commentary.
5689         * config/ia64/ia64-modes.def: Likewise.
5690         * config/m68k/m68k-modes.def: Likewise.
5692 2004-07-27  Steven Bosscher  <stevenb@suse.de>
5694         * cfgexpand.c (tree_expand_cfg): Fix comment.
5696         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
5697         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
5698         Remove.
5699         (prepare_function_start): Don't set rtx_equal_function_value_matters.
5700         * integrate.c (copy_rtx_and_substitute): Don't test for it.
5701         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
5702         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
5703         here again.  Update leading comment.
5704         * rtl.c (rtx_equal_function_value_matters): Remove.
5705         (rtx_equal_p): Don't test for it.
5706         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
5707         Likewise.
5709         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
5710         * rtl.c (note_insn_name): Likewise.
5711         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
5712         * final.c (final_scan_insn): Likewise.
5714         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
5715         * passes.c (rest_of_handle_eh): Do it here.
5717         * stmt.c (struct nesting): Remove struct nesting block member.
5718         (struct stmt_status): Remove x_block_start_count field.
5719         (current_block_start_count): Remove.
5721 2004-07-27  Brian Booth  <bbooth@redhat.com>
5723         * tree-optimize.c (register_one_dump_file): Update condition that uses
5724         static_pass_number.
5725         (dup_pass_1): Replace with...
5726         (next_pass_1): This.
5727         (NEXT_PASS): Call next_pass_1.
5728         (DUP_PASS): Remove.
5729         (init_tree_optimization_passes): Remove uses of DUP_PASS.
5730         (execute_one_pass): Update condition that uses
5731         static_pass_number.
5732         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
5733         integer.
5735 2004-07-27  Nick Clifton  <nickc@redhat.com>
5737         * config/m32r/m32r.c: Include integrate.h in order to get the
5738         prototype for get_hard_reg_initial_val().
5740         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
5741         and tidy up indentation.
5742         (final_presence_set): Use absence_set instead, so that if there is
5743         nothing in the "o" pipe the "s" pipe can be scheduled.
5745 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
5747         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
5748         don't have PT_VARS nor PT_MALLOC set.
5749         Clear name tag from pointers that have not been dereferenced.
5750         (set_pt_anything, set_pt_malloc): Forward declare.
5751         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
5752         not type compatibility when determining if a pointer can be
5753         copy propagated.
5755 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
5757         * expr.h (canonicalize_condition, get_condition): Add an int argument.
5758         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
5759         it to check whether the condition is still valid at the jump insn.
5760         * ifcvt.c (noce_get_condition): Likewise.
5761         (noce_get_alt_condition): Update call to canonicalize_condition.
5762         * loop-iv.c (simplify_using_initial_values): Update call to
5763         get_condition.  Remove FIXME.
5764         (check_simple_exit): Update call to get_condition.
5765         * loop-unswitch.c (may_unswitch_on): Likewise.
5766         * loop.c (check_dbra_loop): Likewise.
5767         (canonicalize_condition, get_condition): Add an argument to say whether
5768         the condition must still be valid at INSN.
5769         (get_condition_for_loop): Update call to get_condition.  Require that
5770         the condition be valid at INSN.
5771         * predict.c (estimate_probability): Update call to get_condition.
5772         Remove unused earliest parameter.
5773         (expected_value_to_br_prob): Update call to canonicalize_condition.
5775 2004-07-26  Eric Christopher  <echristo@redhat.com>
5777         * tree-dfa.c (add_referenced_var): Register initializers of global
5778         variables.
5780 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
5782         * config/i386/i386.c (function_arg): Always treat 8-
5783         and 16-byte wide vectors the same, even if MMX/SSE
5784         are disabled.
5785         (contains_128bit_aligned_vector_p): Add comment.
5787 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
5789         * ra.h (enum node_type): Rename to:
5790         (enum ra_node_type).
5791         * ra-colorize.c: Likewise.
5793 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
5795         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
5796         after simplifying the jump.
5798 2004-06-26  Richard Henderson  <rth@redhat.com>
5800         * calls.c (combine_pending_stack_adjustment_and_call): Make
5801         preferred_unit_stack_boundary argument unsigned.  Make
5802         unadjusted_alignment unsigned.
5803         (expand_call): Make preferred_stack_boundary and
5804         preferred_unit_stack_boundary variables unsigned.
5805         * function.c (assign_stack_local_1): Make alignment unsigned.
5806         * function.h (struct function): Make stack_alignment_needed,
5807         preferred_stack_boundary unsigned.
5808         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
5809         (ix86_compute_frame_layout): Make stack_alignment_needed,
5810         preferred_alignment variables unsigned.
5811         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
5813 2004-07-26  Tom Tromey  <tromey@redhat.com>
5815         * tree.h: Fix typo in comment.
5817 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
5819         PR bootstrap/12804
5820         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
5821         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
5822         (ggc_free): Remove incorrect freeing.
5823         (sweep_pages): Advance PP for large pages.  Fix indentation.
5825 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
5827         PR rtl-optimization/16643
5828         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
5829         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
5830         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
5831         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
5832         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
5833         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5834         * rtl.h (tracer): Add a flags parameter.
5835         * tracer.c (tracer): Pass it to cfg_layout_initialise.
5836         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
5837         (rest_of_handle_reorder_blocks): Update calls to tracer and
5838         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
5839         (rest_of_handle_tracer): Pass 0 to tracer.
5840         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
5842 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
5844         PR target/16239
5845         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
5846         f->f.
5848 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
5850         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
5851         (BINFO_BASE_ACCESS): Adjust.
5852         (BINFO_BASE_ACCESS_APPEND): New.
5853         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
5854         * dbxout.c (dbxout_type): Adjust binfo access accessing.
5855         * dwarf2out.c (gen_member_die): Likewise.
5856         * tree-dump.c (deque_and_dump): Likewise.
5858 2004-07-26  Falk Hueffner  <falk@debian.org>
5860         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
5861         costs.
5863 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5865         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
5866         value off of the stack if TARGET_USE_FFREEP.
5868 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5870         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
5871         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
5872         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
5873         check on invocation of XRESIZEVEC ().
5875 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5877         * c-common.c (disable_builtin_function): Rename variable n to
5878         new_disabled_builtin.
5879         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
5880         Rename local variable old to old_decl.
5881         * gensupport.c (shift_output_template): Rename parameter old to src.
5882         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
5883         old_rtx and newx to new_rtx.
5885 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5887         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
5888         of c-pragma.h.
5889         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
5890         enum cpp_ttype.
5891         * c-lex.c: Likewise.
5893 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5895         * fold-const.c (constant_boolean_node): Make extern.
5896         (make_range): Wrap long lines.
5897         (fold_cond_expr_with_comparison): Remove unnecessary call to
5898         pedantic_non_lvalue.  Add missing calls to fold_convert.
5899         (fold_truthop): Add missing calls to fold_convert.
5900         (fold): Likewise.
5901         * tree.h (constant_boolean_node): Add prototype here.
5902         * builtins.c (expand_builtin_strncmp): Add missing calls to
5903         fold_convert.
5904         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
5905         Call fold_convert and constant_boolean_node to correct types.
5906         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
5907         missing call to fold_convert to correct types.
5909 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
5910             Brian Ryner  <bryner@brianryner.com>
5912         PR c++/9283
5913         PR c++/15000
5914         * c-common.c (c_common_attribute_table): Allow
5915         handle_visibility_attribute to be called for types.
5916         (handle_visibility_attribute) When given a type, set the visibility
5917         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
5918         so that we can check later whether the attribute was present. Added
5919         warning if attribute applied to non class type.
5920         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
5921         decls and checking that they are consistent.
5922         * common.opt: Added -fvisibility.
5923         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
5924         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
5925         * flags.h, tree.h: Added assorted support defines for overall patch
5926         * opts.c: Added parsing support for -fvisibility.
5927         * tree.c (build_decl): Set visibility for all decls to be whatever
5928         is in force at that time.
5929         * varasm.c (default_binds_local_p_1): Reworked logic determining
5930         when to make a symbol locally bound.
5931         * doc/invoke.texi: Added documentation for -fvisibility and
5932         -fvisibility-inlines-hidden.
5934 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5936         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
5937         * c-common.c: Add missing casts from void * to other types.
5938         * c-decl.c: Likewise.
5939         * c-format.c: Likewise.
5940         * c-lex.c: Likewise.
5941         * c-pragma.c: Likewise.
5942         * c-typeck.c: Likewise.
5943         * defaults.h: Likewise.
5944         * genconstants.c: Likewise.
5945         * gengtype-lex.l: Likewise.
5946         * genmodes.c: Likewise.
5947         * read-rtl.c: Likewise.
5948         * rtl.c: Likewise.
5950 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5952         * bitmap.c: Use type-safe memory allocation macros from libiberty.
5953         * c-common.c: Likewise.
5954         * c-decl.c: Likewise.
5955         * c-lang.c: Likewise.
5956         * c-lex.c: Likewise.
5957         * c-opts.c: Likewise.
5958         * c-parse.in: Likewise.
5959         * c-typeck.c: Likewise.
5960         * genconditions.c: Likewise.
5961         * gengtype-lex.l: Likewise.
5962         * gengtype-yacc.y: Likewise.
5963         * gengtype.c: Likewise.
5964         * genmodes.c: Likewise.
5965         * gensupport.c: Likewise.
5966         * read-rtl.c: Likewise.
5967         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
5968         htab_find_slot().
5970 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5972         * c-decl.c (groktypename, groktypename_in_param_context): Rename
5973         variable typename to type_name.
5974         * c-lex.c (interpret_float): Likewise.
5976 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5978         * convert.c (convert_to_real, convert_to_integer,
5979         convert_to_complex): Replace calls to build with calls to buildN.
5980         * coverage.c (tree_coverage_counter_ref): Likewise.
5981         * dojump.c (do_jump): Likewise.
5982         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
5983         * emit-rtl.c (component_ref_for_mem_expr,
5984         set_mem_attributes_minus_bitpos): Likewise.
5985         * explow.c (update_nonlocal_goto_save_area): Likewise.
5986         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
5987         expand_mult_add): Likewise.
5988         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
5989         store_constructor, get_inner_reference, expand_expr_real_1,
5990         try_casesi, try_tablejump): Likewise.
5991         * function.c (expand_function_start): Likewise.
5992         * stmt.c (emit_case_bit_tests, expand_end_case_type,
5993         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
5994         * stor-layout.c (place_union_field, layout_type): Likewise.
5995         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
5996         * varasm.c (copy_constant): Likewise.
5998 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6000         * c-common.c: Rename all identifiers named `new'.
6001         * c-decl.c: Likewise.
6002         * gensupport.c: Likewise.
6003         * simplify-rtx.c: Likewise.
6004         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
6005         with XNEW().
6006         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
6007         with XNEWVEC().
6009 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6011         PR c/15360
6012         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
6013         declarations until after calling pushdecl.
6014         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
6015         "extern" and not on whether the declaration is initialized.
6017 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
6019         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
6020         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
6021         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
6022         "cpplib.h", "c-pragma.h", "c-common.h".
6023         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
6024         (solaris_register_pragmas): New functions.
6025         * config/sol2-protos.h: New file.
6026         * config/sol2.c: New file.
6027         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
6028         (REGISTER_TARGET_PRAGMAS): New macros.
6029         (solaris_pending_aligns, solaris_pending_inits)
6030         (solaris_pending_finis): New variables.
6031         * config/t-sol2 (sol2-c.o): Update dependencies.
6032         (sol2.o): New rule.
6033         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
6034         SUBTARGET_INSERT_ATTRIBUTES.
6035         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
6036         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
6037         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
6038         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
6039         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
6040         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
6041         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
6042         * config/sparc/sparc.c (sparc_attribute_table): New.
6043         (TARGET_INSERT_ATTRIBUTES): Define in terms of
6044         SUBTARGET_INSERT_ATTRIBUTES.
6045         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
6046         is defined.
6047         * doc/extend.texi (Solaris Pragmas): New section.
6049 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6051         * c-common.c: Rename all identifiers named `class' to `cl'.
6052         * c-common.h: Likewise.
6053         * c-parse.in: Likewise.
6054         * c-typeck.c: Likewise.
6055         * genmodes.c: Likewise.
6056         * real.c: Likewise.
6057         * real.h: Likewise.
6058         * recog.c: Likewise.
6059         * recog.h: Likewise.
6060         * regrename.c: Likewise.
6061         * tree.h: Likewise.
6062         * c-common.c (builtin_function_2): Change type of 5th parameter from
6063         int to enum built_in_function. Change type of 8th parameter from int
6064         to bool.
6065         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
6066         with GGC_CNEW().
6067         * c-typeck.c (convert_arguments): Change type of formal_prec from
6068         int to unsigned int.
6069         * genmodes.c (blank_mode): Make a few negative constants unsigned.
6070         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
6071         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
6072         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
6073         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
6074         iterator to for_all_modes () instead of an enum because enums can't
6075         be incremented in C++.
6078 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
6080         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
6081         hard registers.
6083 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6085         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
6086         Handle ARRAY_RANGE_REF like ARRAY_REF.
6088 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6090         * c-typeck.c (digest_init): Don't allow arrays of signed or
6091         unsigned variants of wchar_t to be initialized by wide string
6092         constants.  Do allow arrays of enumerated types compatible with
6093         wchar_t to be initialized by wide string constants.  Refine tests
6094         distinguishing wide and narrow strings and arrays.  Give specific
6095         error for arrays of other integer types initialized by string
6096         constants.
6097         (output_init_element, process_init_element): Check for
6098         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
6099         initializing with string constants.
6101 2004-07-25  Richard Henderson  <rth@redhat.com>
6103         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
6104         on the RESULT_DECL.
6105         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6106         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
6107         DECL_IGNORED_P to new decl.
6109 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
6111         * config/ia64/ia64.c (general_xfmode_operand)
6112         (destination_xfmode_operand): Delete.
6113         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
6114         * config/ia64/ia64.md (*movxf_internal): Use general_operand
6115         and destination_operand.
6117 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
6119         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
6120         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
6122 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
6123             Zack Weinberg  <zack@codesourcery.com
6125         PR 16684
6126         * c-decl.c (diagnose_mismatched_decls): Don't issue a
6127         redundant-declaration warning the first time a builtin is
6128         declared explicitly.
6130 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6132         * tree.h (staticp): Change return type to bool.
6134 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6136         * c-common.c (c_staticp): Last episode of the staticp saga.
6138 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6140         * c-common.h (c_staticp): Change return type from int to bool.
6141         * tree.c (staticp): Likewise.
6142         * langhooks.h (staticp): Likewise.
6144 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6146         * langhooks-def.h (lhd_staticp): Change return type from int to
6147         bool in prototype to match definition.
6149 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6151         * system.h (bool, true, false): Don't redefine as preprocessor macros
6152         in C++.
6154 2004-07-24  Roger Sayle  <roger@eyesopen.com>
6156         * expmed.c (init_expmed): A signed modulus by a power of two is
6157         considered cheap if its less than or equal to four instructions.
6159 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6161         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
6162         GGC_CNEWVAR): New macros.
6164 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6166         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
6167         lists.
6168         * c-decl.c: Likewise.
6169         * c-format.c: Likewise.
6170         * c-lex.c: Likewise.
6171         * c-opts.c: Likewise.
6172         * c-pragma.c: Likewise.
6173         * c-typeck.c: Likewise.
6174         * gencheck.c: Likewise.
6175         * genconditions.c: Likewise.
6176         * genconfig.c: Likewise.
6177         * genflags.c: Likewise.
6178         * gengtype.c: Likewise.
6179         * gensupport.c: Likewise.
6180         * ggc-none.c: Likewise.
6181         * langhooks.c: Likewise.
6182         * statistics.h: Likewise.
6183         * stub-objc.c: Likewise.
6184         * java/decl.c: Likewise.
6186 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
6188         * config/m68k/m68k.c (output_scc_di): Fix coding style.
6189         (symbolic_operand): Fix prototype.
6190         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
6191         * config/m68k/m68k.md: Add constants for registers a0 and sp and
6192         use them, change from the "{...}" syntax to the simpler {...}
6193         syntax.
6194         (*cfv4_extendqisi2): Fix destination predicate.
6195         * config/m68k/m68k-protos.h: Remove various declarations also
6196         generated via PREDICATE_CODES.
6198 2004-07-23  Mike Stump  <mrs@apple.com>
6200         * c-typeck.c (convert_for_assignment): Tightened up pointer
6201         converstions that differ in signedness.
6203 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
6205         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
6207 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6209         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
6210         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
6212         * gimplify.c (gimplify_compound_lval): Check for no handled
6213         operations, rather than checking for explicit list of nodes.
6214         (is_gimple_addr_expr_arg_or_indirect): New function.
6215         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
6216         redundant setting of TREE_INVARIANT.
6217         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
6218         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
6220 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
6222         PR tree-optimization/16688
6223         PR tree-optimization/16689
6224         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
6225         unnecessary initialization of 'tag'.
6226         (get_tmt_for): Check that the new type tag has the same alias
6227         set as the pointed-to type.
6228         (group_aliases): Only regular variables need to be removed
6229         from the alias set of a name tag.
6230         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
6231         propagation if the two types are not compatible.
6232         (merge_alias_info): Rename from replace_ssa_names_ann.
6233         Add more checking.
6234         (replace_exp_1): If both arguments are SSA_NAMEs, check that
6235         the propagation can be done.
6236         Only call merge_alias_info on pointers.
6237         (propagate_value): Likewise.
6238         * tree-ssa-copyrename.c: Include langhooks.h.
6239         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
6240         to do the merging.
6241         Do not coalesce variables with incompatible types.
6242         (rename_ssa_copies): Call replace_ssa_name_symbol.
6243         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
6244         the same type as the underlying _DECL.
6245         * tree-ssanames.c (replace_ssa_name_symbol): New function.
6246         * tree.h (replace_ssa_name_symbol): Declare.
6248 2004-07-23  Richard Henderson  <rth@redhat.com>
6250         PR c++/16277
6251         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
6252         unshare it properly.
6253         (gimplify_modify_expr_rhs): Push assignment from a conditional into
6254         the conditional for all non-register types.
6256 2004-07-23  Richard Henderson  <rth@redhat.com>
6258         * expr.c (expand_expr_real_1): Don't handle non-local variables.
6259         * expr.h (fix_lexical_addr): Remove.
6260         * function.c (NEED_SEPARATE_AP): Remove.
6261         (fix_lexical_addr): Remove.
6262         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
6263         not null decl_function_context.
6264         (create_alias_vars): Likewise.
6265         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
6266         (simple_goto_p): Likewise.
6267         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
6268         * tree-ssa-ccp.c (get_default_value): Likewise.
6269         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6270         * tree.c (needs_to_live_in_memory): Likewise.
6271         * tree-flow-inline.h (may_be_aliased): Move...
6272         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
6273         when TREE_STATIC variables may be addressable.
6275 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
6277         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
6279 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
6281         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
6282         bitmap contents if GENERATOR_FILE is defined.
6283         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
6284         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
6286 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
6288         * c-decl.c (start_function): Form composite type of function types
6289         rather than copying type from previous prototype declaration.
6291 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
6293         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
6294         the const qualifier for the second argument in the C++ functions.
6296         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
6297         specific pointer types.
6299         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
6300         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
6301         for vector bool and/or vector pixel, add C++ and C missing support.
6302         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
6303         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
6304         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
6305         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
6306         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
6307         missing C++ and C support for vector bool and/or vector pixel.
6308         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
6309         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
6310         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
6311         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
6312         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
6313         C++ and C types used for vector bool and/or vector pixel.
6314         (vec_st, vec_stl): Add C++ support for vector pixel.
6315         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
6316         (vec_all_ne): Add C++ support for vector pixel.
6318         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
6319         (vec_vmulesb): Add missing C++ function.
6320         (vec_perm): Fix type of third argument in C++ function.
6321         (vec_vsum4shs): Fix C++ function name.
6322         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
6323         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
6324         argument passed to the error handler in C macro.
6325         (vec_nmsub): Remove extra parens around argument names in C macro.
6326         (vec_packpx): Add missing parens in C macro.
6328 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
6330         * machmode.def: Remove vector modes.
6331         * config/alpha/alpha-modes.def: Add supported vector modes.
6332         * config/arm/arm-modes.def: Likewise.
6333         * config/frv/frv-modes.def: Likewise.
6334         * config/i386/i386-modes.def: Likewise.
6335         * config/rs6000/rs6000-modes.def: Likewise.
6336         * config/sh/sh-modes.def: Likewise.
6338 2004-07-23  Matthias Klose  <doko@debian.org>
6340         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
6341         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
6342         * config.h: Regenerate.
6343         * configure: Likewise.
6345 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
6347         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
6348         generated SYMBOL_REFs for labels.
6349         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
6350         Change prototype.
6351         (machopic_stub_name): Remove.
6352         (machopic_indirection_name): New function.
6353         (machopic_mcount_stub_name): Likewise.
6354         (machopic_classify_name): Remove.
6355         (machopic_function_base_sym): New function.
6356         (machpoic_classify_symbol): Likewise.
6357         (machopic_classify_ident): Remove.
6358         (machopic_define_ident): Likewise.
6359         (machopic_define_name): Likewise.
6360         (machopic_name_defined_p): Likewise.
6361         (machopic_ident_defined_p): Likewise.
6362         (darwin_strip_name_encoding): Likewise.
6363         (machopic_define_symbol): New function.
6364         * config/darwin.c (hashtab.h): Include.
6365         (machopic_defined_list): Remove.
6366         (machopic_classify_ident): Likewise.
6367         (machopic_classify_name): Likewise.
6368         (machopic_ident_defined_p): Likewise.
6369         (machopic_define_ident): Likewise.
6370         (machopic_define_name): Likewise.
6371         (machopic_symbol_defined_p): New function.
6372         (machopic_classify_symbol): Likewise.
6373         (machopic_data_defined_p): Use machopic_classify_symbol.
6374         (machopic_define_symbol): New function.
6375         (machopic_function_base_sym): New function.
6376         (machopic_non_lazy_pointers): Remove.
6377         (machopic_non_lazy_ptr_name): Likewise.
6378         (machopic_stubs): Likewise.
6379         (machopic_stub_name): Likewise.
6380         (NON_LAZY_POINTER_SUFFIX): New macro.
6381         (STUB_SUFFIX): Likewise.
6382         (machopic_indirection): New structure.
6383         (machopic_indirections): New variable.
6384         (machopic_indirection_hash): New function.
6385         (machopic_indirection_eq): Likewise.
6386         (machopic_indirection_name): Likewise.
6387         (machopic_mcount_stub_name): New function.
6388         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
6389         hash table.
6390         (machopic_indirect_data_reference): Rework to use new functions.
6391         (machopic_indirect_call_target): Likewise.
6392         (machopic_legitimize_pic_address): Likewise.
6393         (machopic_output_indirection): New function.
6394         (machopic_finish): Use it.
6395         (machopic_operand_p): Rework to use new functions.
6396         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
6397         (darwin_strip_name_encoding): Remove.
6398         (update_non_lazy_ptrs): Remove.
6399         (update_stubs): Likewise.
6400         (darwin_non_lazy_pcrel): Use new functions.
6401         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
6402         (ASM_OUTPUT_LABELREF): Likewise.
6403         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
6404         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
6405         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
6406         (TARGET_STRIP_NAME_ENCODING): Do not use
6407         darwin_strip_name_encoding.
6408         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
6409         darwin_strip_name_encoding.
6410         * config/i386/darwin.h (FUNCTION_PROFILER): Use
6411         machopic_mcount_stub_name.
6412         * config/i386/i386.c (x86_output_mi_thunk): Use
6413         machopic_indirection_name, not machopic_stub_name.
6414         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
6415         machopic_function_base_sym.
6416         (print_operand): Use machopic_classify_symbol.
6417         (rs6000_emit_prologue): Use machopic_function_base_sym.
6418         (output_profile_hook): Do not use machopic_stub_name.
6419         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
6421 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6423         PR c/7284
6424         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
6425         as multiplication.
6427 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6429         * doc/implement-c.texi: New file.
6430         * doc/extend.texi (C Implementation): Move to there.
6431         * doc/gcc.texi: Include implement-c.texi.
6432         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
6434 2004-07-22  Jason Merrill  <jason@redhat.com>
6436         * integrate.c (copy_decl_for_inlining): Remove invisible reference
6437         handling.
6438         * tree-inline.c (setup_one_parameter): Likewise.
6440 2004-07-22  Brian Booth  <bbooth@redhat.com>
6442         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
6443         (substitute_and_fold): Propigate into VUSE operands when possible.
6444         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
6445         (cp_lattice_meet): Handle merging of latticevalues when
6446         UNKNOWN_VAL is present.
6447         (visit_stmt): Visit assignments with V_MUST_DEFs.
6448         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
6449         (ccp_fold): Deal with RHS' that are constant and virtual.
6450         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
6451         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
6452         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
6453         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
6454         computing immediate uses.
6455         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
6456         transition.
6457         (replace_vuse_in): New function.
6458         (likely_value): Add check of vuse operands.
6459         (get_default_value): Set the default value of virtually defined
6460         variables to UKNOWN_VAL instead of VARYING.
6462 2004-07-22  Richard Henderson  <rth@redhat.com>
6464         * expr.c (emit_push_insn): Don't use set_mem_attributes.
6466 2004-07-22  Richard Henderson  <rth@redhat.com>
6468         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
6469         variables due to conditional compilation.
6471 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
6473         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
6474         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
6475         Release SSA names that have been re-renamed.
6476         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
6477         variable.
6478         * tree-ssa-alias.c (init_alias_info): If aliases have been
6479         computed before, clear existing alias information.
6480         (create_name_tags): Do no fixup PT_ANYTHING pointers.
6481         If the new name tag for a pointer is different than the one it
6482         had before, mark the old tag for renaming.
6483         (replace_may_alias): New function.
6484         (group_aliases): Call it.
6485         (setup_pointers_and_addressables): Always call get_tmt_for.
6486         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
6487         once.
6488         (set_pt_anything): New local function.
6489         (set_pt_malloc): New local function.
6490         (merge_pointed_to_info): Don't merge pointed-to variables from
6491         the original pointer if the destination is pointing to an
6492         unknown location.
6493         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
6494         (add_pointed_to_var): Do not add a variable to the points-to
6495         set if the pointer is already pointing to anywhere.
6496         (collect_points_to_info_r): If the defining statement is a PHI
6497         node, only merge pointed-to information if the argument has
6498         already been visited.
6499         (get_tmt_for): Only create a new tag if the pointer didn't
6500         have one already.
6501         (dump_alias_info): Emit more information.
6502         (dump_points_to_info_for): Likewise.
6503         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
6504         try to get the annotation of an SSA_NAME.
6505         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
6506         alias sets when checking is enabled.
6507         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
6508         (eliminate): Mark basic blocks that will need
6509         EH information cleaned up.
6510         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
6511         predecessor.
6512         Initialize need_eh_cleanup.
6513         (fini_pre): Call tree_purge_all_dead_eh_edges and
6514         cleanup_tree_cfg if needed.
6515         Free need_eh_cleanup.
6516         * tree-ssa.c (verify_ssa_name): New function.
6517         (verify_def): Call it.
6518         Re-arrange to avoid printing too many error messages.
6519         (verify_use): Likewise.
6520         (verify_phi_args): Likewise.
6521         (verify_flow_insensitive_alias_info): New function.
6522         (verify_flow_sensitive_alias_info): New function.
6523         (verify_alias_info): New function.
6524         (verify_ssa): Call verify_alias_info.
6525         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
6526         program.
6527         Re-arrange to avoid printing too many error messages.
6528         * tree-ssanames.c (make_ssa_name): Clear
6529         SSA_NAME_IN_FREE_LIST.
6530         (release_ssa_name): Never release a default definition.
6531         (release_defs): New function.
6532         * tree.h: Declare it.
6533         * tree-ssa-dce.c (remove_dead_stmt): Call it.
6535 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
6537         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
6538         If true, do a depth-first search.  Do a breadht-first search,
6539         otherwise.
6540         (walk_use_def_chains): Add new argument IS_DFS.
6541         Update all users.
6542         * tree-flow.h (walk_use_def_chains): Update prototype.
6544 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
6546         * config/cris/cris.md: Tweak formatting.
6547         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
6548         (mover2side, moverside, movemside, movei, op3, andu): Replace
6549         live define_peephole:s with define_peephole2 near-equivalents.
6550         Delete the rest.
6551         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
6552         word-size modes.
6553         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
6554         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
6555         "*mov_sidesi_mem" respectively.
6557 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
6559         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
6560         (gimplify_build1): Move from tree-complex.c do_unop.
6561         (gimplify_build2): Move from tree-complex.c do_binop.
6562         (gimplify_build3): New.
6563         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
6564         Adjust throughout to call the functions above.
6565         * tree-flow.h: Declare the functions above.
6566         * tree-nested.c (gimplify_val): Rename to...
6567         (tsi_gimplify_val): ... this.
6569         * Makefile.in (tree_complex.o): Update dependencies.
6570         (stor-layout.o): Depend on regs.h.
6571         * c-common.c (handle_vector_size_attribute): Update for
6572         vector types without corresponding vector modes.
6573         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
6574         a corresponding vector mode is not available.
6575         * print-tree.c (print_node): Print nunits for vector types
6576         * regclass.c (have_regs_of_mode): New.
6577         (init_reg_sets_1): Initialize it and use it instead
6578         of allocatable_regs_of_mode.
6579         * regs.h (have_regs_of_mode): Declare it.
6580         * stor-layout.c (layout_type): Pick a mode for vector types.
6581         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
6582         build_replicated_const, do_unop, do_binop, do_plus_minus,
6583         do_negate, expand_vector_piecewise, expand_vector_parallel,
6584         expand_vector_addition, expand_vector_operations_1,
6585         expand_vector_operations, tree_lower_operations,
6586         pass_lower_vector_ssa, pass_pre_expand): New.
6587         (expand_complex_operations, pass_lower_complex): Remove.
6588         * tree-optimize.c (init_tree_optimization_passes): Adjust
6589         pass ordering for changes in tree-complex.c.
6590         * tree-pass.h: Declare new passes.
6591         * tree.c (finish_vector_type): Remove.
6592         (make_vector_type): New.
6593         (build_vector_type_for_mode, build_vector_type): Rewritten.
6594         * tree.def (VECTOR_TYPE): Document where the number of
6595         subparts is stored.
6596         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
6597         (make_vector): Remove declaration.
6599 2004-07-21  Richard Henderson  <rth@redhat.com>
6601         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
6602         TREE_THIS_VOLATILE, may_aliases, or optimization level.
6603         (remove_useless_vars): Dump debugging info.
6604         (expand_used_vars): Move ...
6605         * cfgexpand.c (expand_used_vars): ... here.  Make static.
6606         * tree-flow-inline.h (set_is_used): New.
6607         (set_default_def): Use get_var_ann.
6608         * tree-flow.h: Update decls.
6609         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
6610         (create_ssa_var_map): Use it.
6611         * tree-ssa.c (set_is_used): Remove.
6613 2004-07-22  Ben Elliston  <bje@au.ibm.com>
6615         * gdbinit.in: Set a breakpoint on internal_error.
6617 2004-07-21  Richard Henderson  <rth@redhat.com>
6619         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
6620         to create a new basic block.
6622 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6624         PR c/15052
6625         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
6626         return type on function definitions.  Move other warnings for
6627         qualified return type to -Wreturn-type.  Do not condition any such
6628         warnings on -pedantic.  Update comments.
6629         (start_function): Only copy function type from previous prototype
6630         declaration if return types are compatible.
6631         * c-typeck.c (function_types_compatible_p): Don't condition
6632         warning for incompatibility of volatile qualifiers on the return
6633         type on -pedantic.  Update comment.
6634         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
6636 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6638         * c-typeck.c (set_init_index): Require designator to be of integer
6639         type.
6641 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6643         PR c/11250
6644         * c-parse.in (init): Change to exprtype.
6645         (primary): Set original_code for STRING to STRING_CST.
6646         Call maybe_warn_string_init for compound literals.
6647         (initdcl, notype_initdcl): Call maybe_warn_string_init.
6648         (initval): Update.
6649         * c-tree.h (maybe_warn_string_init): New.
6650         (pop_init_level, process_init_element): Use struct c_expr.
6651         (struct c_expr): Update comment.
6652         * c-typeck.c (maybe_warn_string_init): New function.
6653         (digest_init): Call it.  Additional parameter strict_string.  All
6654         callers changed.
6655         (output_init_element): Likewise.
6656         (struct constructor_stack): Use struct c_expr for
6657         replacement_value.
6658         (really_start_incremental_init, push_init_level): Update.
6659         (pop_init_level): Update.  Return struct c_expr.
6660         (process_init_level): Update.  Take struct c_expr argument.
6662 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
6664         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
6665         commit.
6667 2004-07-21  Eric Christopher  <echristo@redhat.com>
6669         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
6670         removal.
6671         * c-decl.c (pop_scope): Ditto.
6672         * calls.c (expand_call): Remove call to current_nesting_level,
6673         update comment accordingly. Remove calls to expand_start_target_temps
6674         and expand_end_target_temps.
6675         * cfgexpand.c (construct_init_block): Remove call to
6676         expand_start_bindings_and_block.
6677         (construct_exit_block): Remove call to expand_end_bindings.
6678         * expr.c (safe_from_p): Remove BIND_EXPR handling.
6679         (expand_expr_real_1): Ditto. Fix formatting.
6680         (expand_vars): Delete.
6681         * stmt.c (POPSTACK): Remove block_stack.
6682         (stmt_status): Remove x_block_stack.
6683         (block_stack): Delete.
6684         (expand_start_bindings_and_block): Ditto.
6685         (expand_start_target_temps): Ditto.
6686         (expand_end_target_temps): Ditto.
6687         (current_nesting_level): Ditto.
6688         (warn_about_unused_variables): Ditto.
6689         (expand_end_bindings): Ditto.
6690         * tree.h: Remove declarations for above.
6692 2004-07-21  Steven Bosscher  <stevenb@suse.de>
6694         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
6695         * rtl.c (note_insn_name): Likewise.
6696         * print-rtl.c (print_rtx): Don't print it.
6697         * cfgrtl.h (can_delete_note_p): Don't handle it.
6698         (rtl_delete_block): Likewise.
6699         * passes.c (rest_of_handle_guess_branch_prob): Remove.
6700         (rest_of_compilation): Don't call it.
6701         * predict.c (process_note_predictions, process_note_prediction,
6702         note_prediction_to_br_prob): Remove.
6703         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
6704         * stmt.c (return_prediction): Remove.
6705         (expand_value_return): Don't call it.  Don't add prediction
6706         notes for return statements.
6708 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
6710         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
6711         once.
6713 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
6715         * c-common.c (vector_types_convertible_p): Use vector types'
6716         TYPE_SIZE and TREE_TYPE instead of their mode.
6717         * convert.c (convert_to_integer): Likewise.
6718         (convert_to_vector): Likewise.
6719         * fold-const.c (fold_convert): Likewise.
6720         * varasm.c (output_constant): Likewise.
6721         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
6722         Allow a VECTOR_TYPE initializer to be made of several vectors.
6723         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
6724         of cleared and need_to_clear, and use fold_convert.
6725         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
6726         integer vectors.
6728 2004-07-20  Richard Henderson  <rth@redhat.com>
6730         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
6731         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
6733 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
6735         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
6736         enormous cost if not TARGET_HARD_MUL.
6738 2004-07-20  Andrew Pinski  <apinski@apple.com>
6740         PR target/16557
6741         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
6742         (ASM_SPEC): here.
6744 2004-07-21  Paul brook  <paul@codesourcery.com>
6746         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
6748 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6750         * fold-const.c (operand_equal_p): Temporarily support NULL args.
6751         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
6752         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
6754 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
6756         * rtl.h (plus_constant): Delete.
6757         (plus_constant_wide): Rename to plus_constant.
6758         (plus_constant_for_output_wide): Delete vestigial prototype.
6759         (GEN_INT): Remove unnecessary cast.
6760         * tree.h (build_int_2, size_int_type): Delete.
6761         (build_int_2_wide): Rename to build_int_2.
6762         (size_int_wide): Rename to size_int_kind.
6763         (size_int_type_wide): Rename to size_int_type.
6764         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
6765         Remove unnecessary cast.
6766         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
6767         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
6768         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
6769         (size_int_type_wide): Rename size_int_type.
6770         (int_const_binop): Use size_int_type.
6771         * c-lex.c (interpret_integer): Use build_int_2.
6772         * final.c (split_double): Remove unnecessary casts.
6773         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
6775 2004-07-20  Richard Henderson  <rth@redhat.com>
6777         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
6778         (gimplify_compound_lval): Use is_gimple_tmp_reg.
6779         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
6780         (is_gimple_tmp_reg): New.
6781         * tree-gimple.h (is_gimple_tmp_reg): Declare.
6783 2004-07-20  Richard Henderson  <rth@redhat.com>
6785         * tree-pretty-print.c (dump_generic_node): Dump
6786         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
6788 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
6790         * tree-mudflap.c (mf_set_options_fndecl): New tree.
6791         (mudflap_init): Set it.
6792         (mudflap_register_call): Remove __mf_init call.
6793         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
6794         to pass "-ignore-reads" option to libmudflap if needed.
6796 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
6798         PR c++/14607
6799         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
6800         (MAKE_DECL_ONE_ONLY): Undefine.
6801         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
6802         readonly_data, one_only_data_section, forget_section): New prototypes.
6803         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
6804         functions.
6805         (pa_select_section): Add one-only (COMDAT) support.
6806         * pa.h (struct machine_function): Define.
6807         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
6808         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
6809         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
6810         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
6811         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
6812         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
6813         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
6814         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
6815         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
6816         for EXTRA_SECTION_FUNCTIONS.
6817         * doc/install.texi: Update binutils requirements.
6819 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
6821         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
6822         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
6823         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
6824         size_t.
6825         (struct VEC): Use unsigned for num and alloc.
6826         * vec.c (struct vec_prefix): Likewise.
6827         (vec_o_reserve): Adjust.
6829         * dbxout.c (dbxout_type): Fix printf format.
6831         * tree.h (binfo_member): Remove.
6832         * tree.c (binfo_member): Remove.
6834 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
6836         * tree.h: Include vec.h
6837         (DEF_VEC_P(tree)): New type.
6838         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
6839         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
6840         (BINFO_LANG_SLOT): Remove.
6841         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
6842         (struct tree_binfo): Turn base_binfos into a trailing
6843         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
6844         (binfo_lang_slots): Remove.
6845         * tree.c (binfo_lang_slots): Remove.
6846         (make_tree_binfo_stat): Take a base binfo count, not a
6847         lang slot count.  Adjust.
6848         * Makefile.in (TREE_H): Add vec.h
6849         * alias.c (record_component_aliases): Adjust BINFO access.
6850         * dbxout.c (dbxout_type): Likewise.
6851         * dwarf2out.c (gen_member_die): Likewise.
6852         * sdbout.c (sdbout_one_type): Likewise.
6853         * tree-dump.c (deque_and_dump): Likewise.
6854         * config/i386/i386.c (classify_argument,
6855         contains_128bit_aligned_vector_p): Likewise.
6856         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
6857         * doc/c-tree.texi (Classes): Update BINFO documentation.
6859 2004-07-20  Steven Bosscher  <stevenb@suse.de>
6861         * c-common.h (check_case_value): Remove prototype.
6862         (c_add_case_label): Adjust prototype.
6863         * c-common.c (check_case_value): Make static.
6864         (check_case_bounds): New function.
6865         (c_add_case_label): Use it.  Take new argument orig_type.
6866         * c-typeck.c (struct c_switch): New orig_type field.
6867         (c_start_case): Set it.
6868         (do_case): Pass it to c_add_case_label.
6869         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
6870         cases from here.  Add the labels in reverse order.
6871         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
6872         (add_case_node): Return nothing, don't check for duplicate cases.
6873         Insert new case nodes in a list, not in an AVL tree.
6874         (expand_end_case_type): Don't turn a case tree into a case list.
6875         (case_tree2list): Remove.
6876         * tree.h (add_case_node): Adjust prototype.
6878 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
6880         * genattr.c (struct range, struct function_unit,
6881         write_units, extend_range, init_range): Remove them.
6882         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
6883         Output "#define INSN_SCHEDULING" here.
6884         * genattrtab.c (struct range, struct function_unit_op,
6885         struct function_unit, struct dimension, enum operator,
6886         operate_exp, expand_units, simplify_knowing,
6887         encode_units_mask, simplify_by_exploding,
6888         find_and_mark_used_attributes, unmark_used_attributes,
6889         add_values_to_cover, increment_current_value,
6890         test_for_current_value, simplify_with_current_value,
6891         simplify_with_current_value_aux, gen_unit,
6892         write_unit_name, write_function_unit_info,
6893         write_complex_function, write_toplevel_expr,
6894         find_single_value, extend_range): Remove.
6895         (write_attr_get): Do not handle common_av->value
6896         being an FFS.
6897         (struct attr_desc): Remove func_units_p and blockage_p.
6898         (write_attr_valueq): Do not handle them.
6899         (find_attr): Do not clear them.
6900         (make_internal_attr): Do not initialize them.
6901         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
6902         * sched-vis.c (init_target_units, insn_print_units,
6903         init_block_visualization, print_block_visualization,
6904         visualize_scheduled_insns, visualize_no_unit,
6905         visualize_stall_cycles, visualize_alloc,
6906         visualize_free, target_units, get_visual_tbl_length,
6907         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
6908         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
6909         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
6910         * haifa-sched.c (blockage_range, clear_units,
6911         schedule_unit, actual_hazard, potential_hazard,
6912         insn_unit, unit_last_insn, unit_tick,
6913         actual_hazard_this_instance, potential_hazard,
6914         schedule_unit, max_insn_queue_index_value): Remove.
6915         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
6916         max_insn_queue_index.
6917         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
6918         * doc/md.texi (Processor pipeline description): Remove
6919         references to old pipeline descriptions.
6920         (Automaton pipeline description): Merge with the above.
6921         (Old pipeline description, Comparison of the two descriptions):
6922         Remove.
6924         * bt-load.c (migrate_btr_def): Remove references to
6925         use_pipeline_interface.
6926         * haifa-sched.c (insn_cost, schedule_insn,
6927         schedule_block, advance_one_cycle, sched_init,
6928         queue_to_ready, sched_finish): Likewise.
6929         * modulo-sched.c (sms_schedule, advance_one_cycle,
6930         ps_has_conflicts): Likewise.
6931         * sched-rgn.c (init_ready): Likewise.
6932         (debug_dependencies): Likewise, and remove an "if (1)".
6933         * target.h (use_dfa_pipeline_interface): Remove.
6934         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6935         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6936         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6937         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6938         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6939         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6940         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6941         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6942         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6943         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6944         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6945         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6946         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6947         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6948         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6949         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6950         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6951         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6952         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6954 2004-07-19  Roger Sayle  <roger@eyesopen.com>
6956         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
6958 2004-07-19  Jeff Law  <law@redhat.com>
6960         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
6961         (get_eq_expr_value): Use it.  Simplify slightly.
6963 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
6965         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
6966         (umulsidi3_32bit_r4000): Likewise.
6968 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
6970         * vec.h: Propagate location information properly.
6971         (VEC_T_iterate): Add result pointer parameter.
6972         (VEC_T_space): New.
6973         (VEC_T_reserve): Use it.
6975 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
6977         * Makefile.in (c-format.o): Depend on c-format.h.
6978         * c-format.h: New file.
6979         (struct format_char_info): Add CHAIN member.
6980         * c-format.c: Move some types and constants to c-format.h.
6981         (format_type_error): Set to -1.
6982         (struct function_format_info): Use an int for format_type.
6983         (decode_format_type): Return an int.  Return format_type_error
6984         on error.
6985         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
6986         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
6987         (scan_char_table, time_char_table, monetary_char_table): Initialize
6988         CHAIN to NULL.
6989         (n_format_types): New variable.
6990         (check_format_info_main): Handle CHAIN in format_char_info.
6991         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
6992         TARGET_N_FORMAT_TYPES.
6993         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
6994         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
6995         * config/sol2-c.c: New file.
6996         * config/t-sol2: New file.
6997         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
6998         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
6999         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
7001         * doc/extend.texi (Target Format Checks): New section.
7002         (Function Attributes): Mention it.
7003         * doc/invoke.texi: Mention target format checks.
7004         * doc/sourcebuild.texi: Mention target format checks.
7005         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
7006         TARGET_FORMAT_TYPES.
7008 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
7010         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
7011         added.
7012         * config/s390/s390.c (regclass_map initializer): Register 35 added to
7013         ADDR_REGS.
7014         (load_multiple_operation, store_multiple_operation): Removed
7015         pointless sanity check.
7016         (s390_decompose_address): Added check for return_address_pointer_rtx.
7017         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
7018         (s390_return_address_offset): New function.
7019         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
7020         (FRAME_REGNO_P): Added check for register 35.
7021         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7022         REG_ALLOC_ORDER): Appended entry for register 35.
7023         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
7024         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
7025         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
7026         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
7027         is eliminable using stack pointer or hard frame pointer.
7028         (REGISTER_NAMES): Added name for register 35.
7029         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
7030         pointless sanity check.
7032 2004-07-19  Roger Sayle  <roger@eyesopen.com>
7034         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
7035         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
7036         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
7037         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
7038         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
7039         (fold_relational_const): Tidy up handling of floating point
7040         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
7041         transformation; fold_relational_const assumes constant operands.
7043 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
7045         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
7046         directory.
7048 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
7050         * c-tree.h (struct c_expr): Define.
7051         (C_SET_EXP_ORIGINAL_CODE): Remove.
7052         (parser_build_binary_op, build_compound_expr): Update prototypes.
7053         * c-parse.in (%union): Add exprtype.
7054         (FUNC_NAME): Mark as ttype.
7055         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
7056         exprtype.
7057         (expr): Update.  Define directly in terms of expr_no_commas
7058         instead of using nonnull_exprlist.
7059         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
7060         offsetof_member_designator, typespec_nonreserved_nonattr, init,
7061         initval, designator, component_declarator,
7062         component_notype_declarator, enumerator, array_declarator,
7063         condition, exexpr, switch_statement, stmt_nocomp, stmt,
7064         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
7065         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
7066         where appropriate.
7067         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
7068         * c-common.c (c_common_truthvalue_conversion): Don't check
7069         C_EXP_ORIGINAL_CODE.
7070         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
7071         Don't use C_EXP_ORIGINAL_CODE.
7072         (default_conversion, default_function_array_conversion): Don't use
7073         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
7074         (internal_build_compound_expr): Merge into build_compound_expr.
7075         (build_compound_expr): Take two operands instead of a TREE_LIST.
7076         * objc/objc-act.c (get_super_receiver): Update calls to
7077         build_compound_expr.
7079 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
7081         * config/sh/sh.c (sh_use_dfa_interface): Remove.
7082         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
7083         hook_int_void_1.
7084         * config/sh/sh.md: Extract pipeline descriptions
7085         into separate files.
7086         * config/sh/sh1.md: New file, extracted from sh.md.
7087         * config/sh/sh4.md: New file, extracted from sh.md.
7088         * config/sh/shmedia.md: New file, extracted from sh.md
7089         and rewritten using new-style pipeline description.
7091 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
7093         * config/pa/pa.md: Delete the two remaining define_peephole
7094         patterns.
7096 2004-07-18  Steven Bosscher  <stevenb@suse.de>
7097             Joseph S. Myers  <jsm@polyomino.org.uk>
7099         * c-common.c (c_common_truthvalue_conversion): Don't warn if
7100         TREE_NO_WARNING is set.
7102 2004-07-18  Roger Sayle  <roger@eyesopen.com>
7104         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
7105         simplify_builtin_strncmp): Delete.
7106         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
7107         Change argument to accept an arglist instead of an "exp".  Assume
7108         that the return type is always integer_type_node.  Copy missing
7109         transformations from their now obsolete simplify_builtin_*
7110         equivalents.
7111         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
7112         fold_builtin_strcmp and fold_builtin_strncmp.
7113         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
7114         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
7115         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
7117 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
7119         * Makefile.in (tree-alias-common.o): Update dependencies.
7121 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
7123         * cfgloop.c (flow_loop_nested_p): Fix comment.
7125 2004-07-17  Jason Merrill  <jason@redhat.com>
7127         PR c++/16115
7128         * stor-layout.c (relayout_decl): New fn.
7129         * tree.h: Declare it.
7130         (DECL_BY_REFERENCE): New macro.
7132 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
7134         * libgcc2.c (__enable_execute_stack): New symbol.
7135         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
7136         and declare __enable_execute_stack.
7137         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
7138         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
7139         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7140         ENABLE_EXECUTE_STACK.
7141         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
7142         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7143         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7144         ENABLE_EXECUTE_STACK.
7145         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7146         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
7147         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7148         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7149         ENABLE_EXECUTE_STACK.
7150         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7151         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7152         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7153         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7154         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
7155         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7156         (sparc64_initialize_trampoline): Likewise.
7157         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
7159 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7161         * langhooks.h (builtin_function): New langhook.
7162         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
7163         (LANG_HOOKS_INITIALIZER): Update.
7164         * tree.h (builtin_function): Remove.
7165         * doc/tm.texi: Update.
7166         * c-tree.h (builtin_function): Declare.
7167         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
7168         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
7169         config/ia64/ia64.c, config/iq2000/iq2000.c,
7170         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
7171         config/stormy16/stormy16.c: All callers of builtin_function
7172         changed.
7174 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
7176         PR target/16556
7177         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7178         Remove white space after the backslash.
7180 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
7182         PR rtl-optimization/16294
7183         * resource.c (return_insn_p): New predicate.
7184         (mark_target_live_regs): Use it.  Special-case return insns.
7185         (init_resource_info): Use it.  Don't scan the epilogue past
7186         a return.
7188 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7190         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
7191         destroy dominance information.
7192         * passes.c (rest_of_handle_loop2):  Free dominance information.
7193         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
7194         jump threading.
7195         (thread_jumps): Update dominance information and remove unreachable
7196         blocks.
7197         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
7198         information and remove the unreachable block.
7200 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
7202         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
7204 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
7206         * doc/sourcebuild.texi: Remove libf2c entry.
7208 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
7210         * config/i386/i386.md (movv16qi_internal): Fix typo.
7212 2004-07-17  Steven Bosscher  <stevenb@suse.de>
7214         * final.c (final_scan_insn): Fix broken commit from previous
7215         patch.
7217 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7219         * c-typeck.c (parser_build_binary_op): Condition warnings for
7220         X<=Y<=Z on -Wparentheses instead of -Wextra.
7221         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
7222         supported for C only.
7224 2004-07-17  Steven Bosscher  <stevenb@suse.de>
7226         * cfgcleanup.c (try_simplify_condjump): Don't remove line
7227         notes to avoid unreachable code warnings.
7228         * toplev.c (backend_init): Don't emit line notes for
7229         unreachable code warnings.
7231         * combine.c (distribute_notes): Don't distribute a
7232         REG_VTABLE_REF note.
7233         * final.c (final_scan_insn): Don't handle it.
7234         * rtl.c (reg_note_name): Remove it.
7235         * rtl.h (enum reg_node): Dito.
7237         * emit-rtl.c (force_line_numbers, restore_line_number_status):
7238         Remove.
7239         * rtl.h (force_line_numbers, restore_line_number_status):
7240         Remove prototypes.
7242         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
7243         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
7244         (using_eh_for_cleanups): Also moved here.
7246         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
7247         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
7248         to expand_start_case and add_case_node.
7249         * stmt.c (struct nesting): Cleanup unused fields condition_code,
7250         last_unconditional_cleanup, nominal_type, printname, and
7251         line_number_status.
7252         (struct fixup_goto): Remove.
7253         (struct stmt_status): Remove x_goto_fixup_chain field.
7254         (goto_fixup_chain): Remove.
7255         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
7256         pushcase, pushcase_range): Remove.
7257         (expand_start_bindings_and_block): Don't set unused fields in
7258         the nesting stack.
7259         (expand_start_case, add_case_node): Cleanup unused formal arguments.
7260         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
7261         instead of emit_jump_if_reachable.
7262         (emit_case_nodes): Likewise.
7263         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
7264         static.
7265         (update_eh_label): Work around left-over exception handing regions.
7266         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
7267         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
7268         (pass_cleanup_cfg_post_optimizing): New pass.
7269         (init_tree_optimization_passes): Run the new pass after all
7270         optimizations.
7271         * tree.h (pushcase, pushcase_range): Remove prototypes.
7272         (expand_start_case, add_case_node): Update prototypes.
7274 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
7276         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
7278 2004-07-16  Richard Henderson  <rth@redhat.com>
7280         * builtins.c (std_expand_builtin_va_arg): Remove.
7281         (expand_builtin_va_arg): Remove.
7282         * expr.h: Don't declare them.
7283         * gimplify.c (mark_decls_volatile_r): Remove.
7284         (copy_if_shared_r): Don't call it.
7285         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
7286         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
7287         * gimple-low.c (lower_stmt): Likewise.
7288         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
7289         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
7290         * tree-ssa-operands.c (get_expr_operands): Likewise.
7291         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
7292         EXPAND_BUILTIN_VA_ARG.
7293         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
7294         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
7295         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
7296         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
7298 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
7300         * tree-ssa-pre.c (insert_aux): Break out if we hit
7301         a critical edge.
7303 2004-07-16  Richard Henderson  <rth@redhat.com>
7305         * basic-block.h (remove_fake_exit_edges): Declare.
7306         * cfganal.c (remove_fake_predecessors): Rename from
7307         remove_fake_successors; iterate over predecessors.
7308         (remove_fake_exit_edges): New.
7309         * cfgcleanup.c (try_optimize_cfg): Use it.
7310         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
7311         * predict.c (estimate_probability): Likewise.
7312         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
7313         * tree-cfg.c (make_edges): Likewise.
7314         * tree-ssa-pre.c (fini_pre): Likewise.
7315         * profile.c (instrument_edges): Don't remove_fake_edges.
7316         (branch_prob): Do it earlier here.
7318 2004-07-16  Richard Henderson  <rth@redhat.com>
7320         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
7321         switchification wrt CONSTRUCTOR.  Document the reason.
7323 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
7325         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
7326         that prevented descriptive __mf_check source location strings.
7328 2004-07-16  Richard Henderson  <rth@redhat.com>
7330         * tree-def (WITH_SIZE_EXPR): New.
7331         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
7332         * expr.c (expand_expr_real_1): Likewise.
7333         * gimplify.c (maybe_with_size_expr): New.
7334         (gimplify_arg, gimplify_modify_expr): Use it.
7335         (gimplify_modify_expr_to_memcpy): Take size parameter.
7336         (gimplify_modify_expr_to_memset): Likewise.
7337         (gimplify_expr): Handle WITH_SIZE_EXPR.
7338         * tree-alias-common.c (find_func_aliases): Likewise.
7339         * tree-eh.c (tree_could_trap_p): Likewise.
7340         (tree_could_throw_p): Likewise.
7341         * tree-gimple.c (is_gimple_lvalue): Likewise.
7342         (get_call_expr_in): Likewise.
7343         * tree-inline.c (estimate_num_insns_1): Likewise.
7344         (expand_calls_inline): Likewise.
7345         * tree-nested.c (convert_call_expr): Likewise.
7346         * tree-pretty-print.c (dump_generic_node): Likewise.
7347         * tree-sra.c (sra_walk_expr): Likewise.
7348         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
7349         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
7350         * tree-ssa-operands.c (get_expr_operands): Likewise.
7351         * tree-tailcall.c (find_tail_calls): Likewise.
7353         * calls.c (expand_call): Reset old_stack_allocated after
7354         calling emit_stack_restore.
7356 2004-07-16  Richard Henderson  <rth@redhat.com>
7358         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
7359         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
7360         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
7361         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
7362         copy_res_decl_for_inlining.
7364         * tree-inline.c (declare_return_variable): New modify_dest argument.
7365         Use it as the return value, when possible or manditory.  Handle
7366         TREE_ADDRESSABLE types.
7367         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
7368         replacement of CALL_EXPR.
7370 2004-07-16  Richard Henderson  <rth@redhat.com>
7372         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
7373         * gimple-low.c (expand_var_p): Don't check it.
7374         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
7375         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
7376         * tree-ssa-operands.c (add_stmt_operand): Likewise.
7377         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
7378         (find_referenced_vars): Don't call them.
7379         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
7381 2004-07-16  Richard Henderson  <rth@redhat.com>
7383         * function.c (pass_by_reference): True for all variable sized types.
7385 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
7387         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
7388         * tree-pretty-print.c: Include tree-chrec.h.
7389         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
7390         and POLYNOMIAL_CHREC nodes.
7392 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
7394         * builtins.c (expand_builtin_stpcpy): Do not create temporary
7395         reg with VOIDmode.
7397 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
7399         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
7401 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
7403         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
7404         to BASE_REGNUM.
7405         * config/s390/s390.c: Likewise.
7406         * config/s390/s390.h: Likewise.
7408 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7410         * config/mips/mips.md (addsi3, adddi3): Remove special handling
7411         of $sp adds.  Remove REGNO checks from mips16 patterns.
7413 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7415         * config/mips/mips.md: Delete outdated comment.
7417 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7419         * config/mips/mips.c (get_float_compare_codes): Delete.
7420         (mips_emit_compare): New function, mostly extracted from
7421         get_float_compare_codes and gen_conditional_branch.
7422         (gen_conditional_branch, gen_conditional_move): Use it.
7424 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
7426         * genautomata.c (add_vect): Speedup by using integers as
7427         bit-vectors for walking through the comb_vect and finding
7428         a match.
7430 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7432         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
7433         operand is an uns_arith_operand; use subtraction otherwise.
7434         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
7435         not just arith_operands.
7437 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7439         * config/mips/mips-protos.h (gen_int_relational): Delete.
7440         (mips_emit_scc): Declare.
7441         * config/mips/mips.c (internal_test): Delete.
7442         (sle_operand, sleu_operand): New functions.
7443         (map_test_to_internal_test, gen_int_relational): Delete.
7444         (mips_emit_binary, mips_relational_operand_ok_p)
7445         (mips_emit_int_relational, mips_zero_if_equal)
7446         (mips_emit_scc): New functions.
7447         (gen_conditional_branch): Rework to use mips_emit_int_relational.
7448         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
7449         sleu_operand.
7450         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
7451         (sltu, sleu): Use mips_emit_scc.
7452         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
7453         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
7454         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
7456 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7458         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
7460 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7462         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
7463         (*sne_[sd]i): Likewise sne_[sd]i_zero.
7464         (*sgt_[sd]i): ...and sgt_[sd]i.
7465         (*slt_[sd]i): ...and slt_[sd]i.
7466         (*sgtu_[sd]i): ...and sgtu_[sd]i.
7467         (*sltu_[sd]i): ...and sltu_[sd]i.
7468         (*sleu_[sd]i): ...and sleu_[sd]i_const.
7469         Name previously unnamed mips16 patterns.  Formatting fixes.
7471 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7473         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
7474         (branch_type): Delete.
7475         (gen_conditional_branch, gen_conditional_move)
7476         (mips_gen_conditional_trap): Update after name change.  Get the
7477         comparison mode from cmp_operands[0].
7478         * config/mips/mips.h (cmp_type, branch_type): Delete.
7479         (cmp_operands): Renamed from branch_cmp.
7480         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
7481         name change.  Don't set branch_type.
7482         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
7483         mode class of cmp_operands[0] rather than branch_type.  Update after
7484         name change.
7486 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7488         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
7489         of 0...255 to 0 when inside a SET.
7491 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7493         * config/mips/mips.md: Remove mips16 define_peepholes.
7495 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
7497         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
7498         (fini_pre): Remove fake edges.
7500 2004-07-15  Richard Henderson  <rth@redhat.com>
7502         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
7503         (get_indirect_ref_operands, get_call_expr_operands): ... these.
7505 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
7507         * vec.h (VEC_address): New function.
7509 2004-07-14  Jason Merrill  <jason@redhat.com>
7511         PR middle-end/15885
7512         * gimplify.c (gimplify_arg): New fn, split out from...
7513         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
7515 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
7517         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
7518         generate code which is generated by pushqi1 now
7519         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
7521 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
7523         * combine.c (simplify_set): match the mode of the constant 0 with
7524         the tested operand to match the compare behaviour and the
7525         simplify_relational_operation() expectation.
7527 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
7529         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
7530         ("bordered"): Same.
7532 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
7534         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
7535         unconditionally.
7536         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
7538 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
7540         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
7541         calls in mips16 code.
7543 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
7545         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
7546         the destination of the li as well as for the neg.
7548 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
7550         g++/15861
7551         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
7552         * cgraph.h: Update declaration.
7553         * c-decl.c (build_cdtor): Update call with default priority.
7554         * coverage.c (create_coverage): Ditto.
7555         * tree-mudflap.c (mf_init_fndecl): New tree.
7556         (mudflap_init): Set it.
7557         (mudflap_register_call): Arrange to call __mf_init before the first
7558         __mf_register call.
7559         (mudflap_finish_file): Mark the mudflap static initializer as extra
7560         high priority, to beat all C++ static constructors.
7562 2004-07-15  Jeff Law  <law@redhat.com>
7564         * loop.c (check_insn_for_givs): Restore check for code labels that was
7565         accidentally deleted by a recent checkin.
7567 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
7569         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
7570         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
7572 2004-07-14  Richard Henderson  <rth@redhat.com>
7574         * print-tree.c (print_node): Fix casts last change.
7576 2004-07-15  Paul Brook  <paul@codesourcery.com>
7578         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
7579         to TARGET_UNWIND_INFO.
7580         * except.c (output_function_exception_table): Ditto.
7581         * except.h: Ditto.
7582         * opts.c (decode_options): Ditto.
7583         * passes.c (rest_of_handle_final): Ditto.
7584         * final.c (final_start_function): Ditto.
7585         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
7586         target hook.
7587         * targhooks.h (default_unwind_emit): Declare.
7588         * targhooks.c (default_unwind_emit): New function.
7589         * target-def.h: Define and use TARGET_UNWIND_EMIT.
7590         * target.h (struct gcc_target): Add unwind_emit.
7591         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
7592         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
7593         Remove IA64_UNWIND_EMIT.
7594         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
7596 2004-07-14  Richard Henderson  <rth@redhat.com>
7598         * print-tree.c (print_node): Handle SSA_NAME.
7600 2004-07-14  James E Wilson  <wilson@specifixinc.com>
7602         PR target/16325
7603         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
7604         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
7606 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
7608         * expr.c (expand_assignment): Reenable bitfield += optimizations.
7609         Use alias set 0 for memory, do proper mode calculations and adjust
7610         address for memories.
7612 2004-07-14  Per Bothner  <per@bothner.com>
7614         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
7615         structure with extra column field.
7616         * tree.c (expand_location):  Also fill in column field.
7617         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
7618         gets confused by the two conditionally-compiled definitions.
7620 2004-07-14  Eric Christopher  <echristo@redhat.com>
7622         * calls.c (expand_call): Fix typo in comment.
7624 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
7626         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
7627         comparision of TFmode.
7629 2004-07-14  Richard Henderson  <rth@redhat.com>
7631         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
7632         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
7633         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
7634         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
7635         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
7636         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7637         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
7638         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
7639         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
7641 2004-07-14  Mike Stump  <mrs@apple.com>
7643         * config/darwin.h (WINT_TYPE): Define to be int to match
7644         system header files.
7646 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
7648         * config/xtensa/xtensa.c (function_arg_advance): Check for args
7649         that must be passed in the stack.
7650         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
7651         arguments if the size is not a constant.
7653 2004-07-14  Per Bothner  <per@bothner.com>
7655         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
7656         instead of EXPR_LOCUS in a boolean context, which is always true
7657         if --enable-mapped-location.
7658         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
7660 2004-07-14  Richard Henderson  <rth@redhat.com>
7662         * dominance.c (struct dom_info): Add fake_exit_edge.
7663         (init_dom_info): Allocate it.
7664         (free_dom_info): Free it.
7665         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
7666         in two passes.
7667         (calc_idoms): Honor fake_exit_edge.
7669 2004-07-13  Jason Merrill  <jason@redhat.com>
7671         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
7672         (rhs_test_for): New fn.
7673         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
7674         * tree-gimple.h: Declare them.
7675         * gimplify.c (gimplify_modify_expr): Use the new fns.
7677 2004-07-14  Richard Henderson  <rth@redhat.com>
7679         * config/arm/arm-protos.h (arm_va_arg): Remove.
7680         * config/arm/arm.c (arm_va_arg): Remove.
7681         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
7682         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
7684 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7686         * pa.c (fix_range): New function to mark a range(s) of registers as
7687         fixed registers.
7688         (override_options): Call fix_range if the -mfixed-range option string
7689         is not empty.
7690         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
7691         * doc/invoke.texi (-mfixed-range): Document new option.
7693 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
7695         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
7696         for TARGET_64BIT.
7697         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
7699 2004-07-14  Roger Sayle  <roger@eyesopen.com>
7701         * expmed.c (expand_sdiv_pow2): New function to expand signed division
7702         by a positive power of two, split out from expand_divmod.  Provide
7703         an alternate implementation when shifts are expensive.  Lower the
7704         threshold for using a branchless implementation to BRANCH_COST >= 2.
7705         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
7707 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7709         * tree-dfa.c (make_rename_temp): *Really* work just
7710         like create_tmp_var if called while outside SSA form.
7712 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
7714         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
7715         for division by zero.
7716         ("umodsi3"): Likewise.
7718 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
7720         * config/mips/mips.c (mips_output_move): When generating mips16 code,
7721         force loads of negative constants to be split.
7722         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
7723         Generalize SImode li/neg splitter to cope with other modes.
7725 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7727         * expmed.c: Remove more references to QUEUED in the comments.
7728         * expr.c: Likewise.
7730 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
7732         Revert:
7733         2004-07-13  Richard Henderson  <rth@redhat.com>
7734         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
7735         correctly.
7737 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7739         * tree-dfa.c (make_rename_temp): Work just like
7740         create_tmp_var if called while outside SSA form.
7742 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7744         * expr.c (enqueue_insn, finish_expr_for_function,
7745         protect_from_queue, queued_subexp_p, mark_queue,
7746         emit_insns_enqueued_after_mark, emit_queue,
7747         expand_increment): Remove.
7748         (store_constructor): Expand increment as an assignment.
7749         (expand_expr_real_1 <case PREINCREMENT_EXPR,
7750         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
7751         case POSTDECREMENT_EXPR>): Abort.
7752         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
7753         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
7754         protect_from_queue, emit_queue, queued_subexp_p): Remove.
7755         * function.h (pending_chain, x_pending_chain): Remove.
7756         * rtl.def (QUEUED): Remove.
7758         * emit-rtl.c (copy_insn_1, copy_most_rtx,
7759         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
7760         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
7761         encode_units_mask): Likewise.
7762         * local-alloc.c (equiv_init_varies_p): Likewise.
7763         * rtl.c (copy_rtx): Likewise.
7764         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
7765         * simplify-rtx.c (simplify_gen_subreg): Likewise.
7766         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
7768         * builtins.c (expand_builtin, expand_builtin_apply,
7769         expand_builtin_mathfn, expand_builtin_mathfn_2,
7770         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
7771         Remove calls to emit_queue and protect_from_queue.
7772         * calls.c (expand_call, precompute_arguments,
7773         precompute_register_parameters, rtx_for_function_call,
7774         store_one_arg): Likewise.
7775         * dojump.c (do_compare_and_jump, do_jump): Likewise.
7776         * explow.c (memory_address): Likewise.
7777         * expmed.c (clear_by_pieces_1, clear_storage,
7778         clear_storage_via_libcall, emit_group_load,
7779         emit_group_store, emit_store_flag,
7780         expand_expr_real_1, store_by_pieces,
7781         store_constructor, store_expr, try_casesi,
7782         try_tablejump): Likewise.
7783         * function.c (expand_pending_sizes): Likewise.
7784         * optabs.c (emit_cmp_and_jump_insns,
7785         emit_conditional_add, emit_conditional_move,
7786         expand_fix, expand_float, prepare_cmp_insn): Likewise.
7787         * stmt.c (emit_case_bit_tests,
7788         expand_asm_expr, expand_computed_goto,
7789         expand_decl_init, expand_end_case_type,
7790         expand_end_stmt_expr, expand_expr_stmt_value,
7791         expand_return, expand_start_case,
7792         optimize_tail_recursion): Likewise.
7793         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
7794         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
7796 2004-07-14  Ben Elliston  <bje@au.ibm.com>
7798         * vec.h: Comment fix.
7800 2004-07-13  Richard Henderson  <rth@redhat.com>
7802         * target.h (struct gcc_target): Add calls.pass_by_reference.
7803         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
7804         * function.c (pass_by_reference): Use the hook.
7805         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
7806         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
7807         (hook_pass_by_reference_must_pass_in_stack): New.
7808         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
7809         (alpha_pass_by_reference): New.
7810         (TARGET_PASS_BY_REFERENCE): New.
7811         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7812         * config/arc/arc.c (arc_pass_by_reference): New.
7813         (TARGET_PASS_BY_REFERENCE): New.
7814         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7815         (FUNCTION_ARG_CALLEE_COPIES): True.
7816         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
7817         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
7818         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
7819         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7820         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7821         * config/cris/cris.c (cris_pass_by_reference): New.
7822         (TARGET_PASS_BY_REFERENCE): New.
7823         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
7824         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
7825         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7826         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
7827         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7828         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
7829         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
7830         (frv_function_arg_pass_by_reference): Remove.
7831         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7832         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
7833         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
7834         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
7835         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7836         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
7837         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
7838         (ia64_pass_by_reference): Rename from
7839         ia64_function_arg_pass_by_reference.
7840         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7841         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7842         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
7843         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
7844         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
7845         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7846         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7847         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
7848         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
7849         (m32r_pass_by_reference): Adjust prototype.  Make static.
7850         Handle mode sizes correctly.
7851         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7852         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
7853         (m68hc11_function_arg_pass_by_reference): Remove.
7854         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7855         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7856         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
7857         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7858         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
7859         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
7860         (mips_va_arg): Use pass_by_reference.
7861         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
7862         Handle mode sizes correctly.
7863         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7864         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7865         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
7866         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
7867         (mmix_pass_by_reference): Rename from
7868         mmix_function_arg_pass_by_reference.
7869         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7870         (FUNCTION_ARG_CALLEE_COPIES): True.
7871         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
7872         (mn10300_pass_by_reference): New.
7873         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7874         (FUNCTION_ARG_CALLEE_COPIES): True.
7875         * config/pa/pa.c (pa_pass_by_reference): New.
7876         (TARGET_PASS_BY_REFERENCE): New.
7877         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7878         (FUNCTION_ARG_CALLEE_COPIES): True.
7879         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
7880         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
7881         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
7882         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7883         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
7884         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
7885         (s390_pass_by_reference): Rename from
7886         s390_function_arg_pass_by_reference.
7887         (s390_function_arg_advance): Don't query pass-by-ref.
7888         (s390_function_arg): Likewise.
7889         (s390_gimplify_va_arg): Use pass_by_reference.
7890         (s390_call_saved_register_used): Likewise.
7891         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7892         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
7893         (shcompact_byref, sh_pass_by_reference): New.
7894         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7895         (SHCOMPACT_BYREF): Remove.
7896         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
7897         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
7898         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
7899         (sparc_gimplify_va_arg): Use pass_by_reference.
7900         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7901         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7902         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
7903         (v850_pass_by_reference): New.
7904         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7905         (FUNCTION_ARG_CALLEE_COPIES): True.
7906         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
7907         FUNCTION_ARG_PASS_BY_REFERENCE docs.
7909 2004-07-14  Richard Henderson  <rth@redhat.com>
7910             Richard Sandiford  <rsandifo@redhat.com>
7912         * config/mips/mips-protos.h (mips_va_arg): Delete.
7913         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
7914         * config/mips/mips.c: Include tree-gimple.h.
7915         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
7916         (mips_arg_info): Remove special handling of must_pass_in_stck args.
7917         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
7918         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
7920 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
7922         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
7923         arguments for COND_EXPR in big-endian adjustment code.
7925 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7927         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
7928         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
7929         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
7930         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
7932 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
7934         PR tree-optimization/16443
7935         * tree-ssa-alias.c: Add more description for
7936         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
7937         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
7938         clobbering of call-clobbered and addressable variables.  If
7939         there are any before aliases have been computed, add them.
7941 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
7943         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
7944         verification.
7946 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
7948         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
7949         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
7950         to the same type.
7952 2004-07-13  Per Bothner  <per@bothner.com>
7954         * collect2.c (main):  Handle --no-demangle and --demangle flags.
7956 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
7958         * Makefile.in (OBJS-common): Add tree-data-ref.o.
7959         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
7960         (tree-data-ref.o): New rule.
7961         * lambda.h: New file.
7962         * tree-data-ref.c: New file.
7963         * tree-data-ref.h: New file.
7964         * tree.c (int_cst_value, tree_fold_gcd): New functions.
7965         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
7967 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7969         PR target/13926
7970         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
7971         * config/sparc/sparc.c (output_ubranch): New function.
7972         * config/sparc/sparc.md (jump pattern): Use it.
7974 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7976         PR target/16494
7977         * config/sparc/sparc.c (output_cbranch): Properly guard
7978         the code handling far branches with TARGET_V9.
7979         * config/sparc/sparc.md (length attribute): Document the
7980         side-effect of having a length greater or equal to 3.
7982 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7983             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
7985         PR target/15186
7986         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
7987         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
7989 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7990             Martin Sebor  <sebor@roguewave.com>
7992         PR target/12602
7993         * doc/invoke.texi (SPARC options): Document -threads
7994         and -pthreads on Solaris.
7996 2004-07-13  Richard Henderson  <rth@redhat.com>
7998         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
7999         by reference.
8000         (ind_gimplify_va_arg_expr): Remove.
8001         * tree.h (ind_gimplify_va_arg_expr): Remove.
8002         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
8003         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
8004         argsp to be null.
8006         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
8007         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
8008         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
8009         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
8010         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
8012 2004-07-13  Richard Henderson  <rth@redhat.com>
8014         * function.c (pass_by_reference): New.
8015         (assign_parm_find_data_types): Use it.
8016         * calls.c (initialize_argument_information): Likewise.
8017         (emit_library_call_value_1): Likewise.
8018         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
8019         * function.h (pass_by_reference): Declare.
8021 2004-07-13  Richard Henderson  <rth@redhat.com>
8023         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
8024         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
8025         * expr.h (MUST_PASS_IN_STACK): Remove.
8026         * system.h (MUST_PASS_IN_STACK): Poison.
8027         * tree.h (must_pass_in_stack_var_size): Declare.
8028         (must_pass_in_stack_var_size_or_pad): Declare.
8029         * calls.c (must_pass_in_stack_var_size): New.
8030         (must_pass_in_stack_var_size_or_pad): Rename from
8031         default_must_pass_in_stack.
8032         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
8033         (TARGET_MUST_PASS_IN_STACK): New.
8034         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
8035         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
8036         (TARGET_MUST_PASS_IN_STACK): New.
8037         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
8038         * config/frv/frv.c (frv_must_pass_in_stack): New.
8039         (TARGET_MUST_PASS_IN_STACK): New.
8040         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
8041         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
8042         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
8043         (ix86_must_pass_in_stack): Make static.
8044         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
8045         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
8046         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
8047         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
8048         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
8049         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
8050         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
8051         (mcore_must_pass_on_stack): Remove.
8052         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
8053         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
8054         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
8055         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
8056         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
8057         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
8058         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
8059         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
8060         (TARGET_MUST_PASS_IN_STACK): New.
8061         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
8062         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
8063         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
8064         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
8065         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
8066         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
8067         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
8068         MUST_PASS_IN_STACK.
8070         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
8071         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
8072         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
8073         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
8074         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
8075         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
8076         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
8077         config/xtensa/xtensa.c: Use target hook.
8079 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
8081         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
8082         * configure: Rebuilt.
8084 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
8086         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
8087         * config/mips/mips.h (mips_reg_names): Don't declare.
8088         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
8089         (TARGET_NAME_REGS): Delete.
8090         (TARGET_SWITCHES): Remove -mrnames.
8091         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
8092         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
8093         in REGISTER_NAMES.
8094         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
8095         (override_options): Remove handling of TARGET_NAME_REGS.
8097 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
8099         * config/mips/mips.h (TARGET_*): Boolify.
8101 2004-07-12  Nick Clifton  <nickc@redhat.com>
8103         * config.gcc: Add sh-*-symbianelf target.
8104         * config/sh/sh.c: Add new target macros:
8105         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
8106         TARGET_CXX_IMPORT_EXPORT_CLASS.
8107         (sh_file_start): Create a definition of the .directive section.
8108         (sh_attribute): Add dllimport and dllexport attributes.
8109         * config/sh/symbian-pre.h: New file.
8110         * config/sh/symbian-post.h: New file.
8111         * config/sh/symbian.c: New file. Contains Symbian specific
8112         functions.
8113         * config/sh/sh-protos.h: Add prototypes for new functions
8114         provided by symbian.c.
8115         * config/sh/t-symbian: New file.
8116         * doc/extend.texi: Document support for dllimport and dllexport
8117         attributes by the sh-symbianelf target.
8119 2004-07-12  James E Wilson  <wilson@specifixinc.com>
8121         * Makefile.in (AR): Use @AR@ not ar.
8122         (NM): New.
8123         (AR_FOR_TARGET): Use $(AR) not ar for native.
8124         (NM_FOR_TARGET): Use $(NM) not nm for native.
8125         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
8126         * configure: Regenerate.
8128 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
8130         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
8131         special case.
8132         (ashldi3_sp64): Likewise.
8134 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8136         PR target/16477
8137         * pa.c (function_arg): Update comment.
8138         * pa.h (BLOCK_REG_PADDING): Define.
8140 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8142         PR tree-optimization/16461
8143         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
8144         arguments of phi nodes.
8146 2004-07-12  Devang Patel  <dpatel@apple.com>
8148         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
8150 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
8152         * function.c (expand_function_start): Ensure r_save is in Pmode.
8153         * calls.c (prepare_call_address): Ensure static_chain_value is
8154         in Pmode.
8155         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
8156         r_save_area are in Pmode.
8157         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
8158         fnaddr, and static_chain are in Pmode.
8160 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
8162         PR target/16445
8163         * config/ia64/ia64.c (bundling): Don't count ignored insns.
8165 2004-07-12  Richard Henderson  <rth@redhat.com>
8167         * target.h (struct gcc_target): Move gimplify_va_arg_expr
8168         next to build_builtin_va_list.
8169         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
8170         * builtins.c (gimplify_va_arg_expr): Likewise.
8171         * gimplify.c (copy_if_shared_r): Likewise.
8173 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
8175         * passes.c (rest_of_decl_compilation): Don't defer call of
8176         assemble_variable if its DECL_RTL is already set.
8178 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
8180         * cfgloop.h (struct loop): Add nb_iterations field.
8181         (current_loops): Declare.
8182         * tree-chrec.c (chrec_not_analyzed_yet,
8183         chrec_dont_know, chrec_known, count_ev_in_wider_type,
8184         chrec_contains_symbols_defined_in_loop): Remove the temporary
8185         hooks.
8186         * tree-flow-inline.h (loop_containing_stmt): New function.
8187         * tree-scalar-evolution.c: Add implementation.
8188         * tree-scalar-evolution.h: Add declarations.
8190 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
8192         PR rtl-optimization/15921
8193         * Makefile.in (global.o): Add recog.h.
8195         * global.c (recog.h): Add the include-clause.
8196         (bb_info): New member earlyclobber.
8197         (allocate_bb_info, free_bb_info): Initialize/finish the new
8198         member.
8199         (earlyclobber_regclass, earlyclobber_regclass_length): The new
8200         global variables.
8201         (check_earlyclobber, regclass_intersect,
8202         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
8203         New functions.
8204         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
8205         (make_accurate_live_analysis): Modify pavin.
8207 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
8209         * tree-cfg.c (find_taken_edge): Statically compute the truth
8210         value of a predicate comparing an SSA_NAME to itself.
8212 2004-07-12  Roger Sayle  <roger@eyesopen.com>
8214         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
8215         rs6000 doesn't have shift-and-add or shift-and-sub instructions
8216         by returning the cost of a multiplication plus an addition.
8218 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
8220         PR tree-optimization/14107
8221         * gimplify.c (gimplify_return_expr): Accept a
8222         RETURN_EXPR with an error argument.
8223         * tree-optimize.c (init_tree_optimization_passes):
8224         Run pass_warn_function_return at -O0.
8226 2004-07-12  Roger Sayle  <roger@eyesopen.com>
8228         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
8229         index entry.
8231 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
8233         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
8234         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8235         * config/mips/3000.md: Add copyright notice.  Remove automota and
8236         function units; use generic ones instead.  Only define reservations
8237         for things that are different from generic.md.  Extend each clause
8238         to include r3900.
8239         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
8240         * config/mips/mips.md: Include them. Remove define_function_units.
8241         (alu, imuldiv): New automata and units.
8243 2004-07-12  Ben Elliston  <bje@au.ibm.com>
8245         * doc/invoke.texi (Optimize Options): Document -frename-registers
8246         not being enabled by default at -O3.
8248 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8250         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
8251         floating point additions, to keep real immediate constant positive.
8252         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
8253         into X + C, and leave positive real constants as X - C.
8255 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8257         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
8259 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8261         PR tree-optimization/15654
8262         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
8264 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8266         * builtins.c (fold_builtin_fputs): Don't bother converting the
8267         return type to integer_type_node, as we've already checked that
8268         the result will be ignored.
8270         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
8271         that signed addition, subtraction, multiplication, division,
8272         remainder, negation and absolute value may potentially trap.
8274         * fold-const.c (fold_ignored_result): New function to strip
8275         non-side-effecting tree nodes from an expression whose result
8276         is ignored.
8277         (fold_convert): Call fold_ignored_result when casting a value
8278         to VOID_TYPE.
8279         (omit_one_operand):  Call fold_ignored_result on the "omitted"
8280         operand when building a COMPOUND_EXPR.
8281         (pedantic_omit_one_operand): Likewise.
8282         * tree.h (fold_ignored_result): Prototype here.
8283         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
8284         when we're going to ignore the result.
8286 2004-07-11  Richard Henderson  <rth@redhat.com>
8288         PR tree-opt/16383
8289         * tree-ssa-ccp.c (fold_stmt_r): Split out...
8290         * tree.c (fields_compatible_p, find_compatible_field): ... new.
8291         * tree.h (fields_compatible_p, find_compatible_field): Declare.
8292         * tree-sra.c (sra_hash_tree): Hash fields by offset.
8293         (sra_elt_eq): Use fields_compatible_p.
8294         (generate_one_element_ref): Use find_compatible_field.
8296 2004-07-11  Richard Henderson  <rth@redhat.com>
8298         PR tree-opt/16422
8299         * tree-sra.c (generate_one_element_init): New.
8300         (generate_element_init): Use it.
8301         (scalarize_init): Push/pop gimplify context around it.
8302         (find_new_referenced_vars_1, find_new_referenced_vars): New.
8303         * gimplify.c (gimplify_expr): Allow SSA_NAME.
8305 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8307         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
8308         combine.c's combine_insn_cost.
8309         * rtl.h (insn_rtx_cost): Prototype here.
8310         * combine.c (combine_insn_cost): Delete function.
8311         (combine_validate_cost): Update callers of combine_insn_cost to
8312         call insn_rtx_cost instead.
8313         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
8314         requesting the rtx_cost of call and/or jump instructions.
8316         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
8317         rtx_cost directly.  Don't request/use the cost of call or jump
8318         instructions.  Return -1 if the cost of any instruction can't be
8319         determined (or the BB contains a function call).
8320         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
8321         -1 (i.e. can't determine the cost of any instruction or the basic
8322         block contains a subroutine call).
8323         (find_if_case_2): Likewise.
8325 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8327         * rs6000.c (struct processor_costs): Change semantics of fields to
8328         include the COST_N_INSNS scaling, and update all initializers.
8329         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
8330         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
8331         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
8332         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
8334 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8336         * LANGUAGES: Remove obsolete information.
8338 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
8340         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
8341         SIGBUS signal frames, the PSW address points *to* the faulting
8342         instruction, not after it.
8344 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
8346         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
8347         added to TLS symbol addresses.
8349 2004-07-11  Richard Henderson  <rth@redhat.com>
8351         * expmed.c (init_expmed): Use stack-local structures for
8352         temporary rtl.  Don't recognize shifts.
8354 2004-07-11  Richard Henderson  <rth@redhat.com>
8356         * expr.c (store_expr): Don't fiddle subreg promotion for types
8357         with precision smaller than the mode.
8359 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8361         * tree.h (all_types_permanent): Remove.
8363 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8365         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
8366         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
8367         * langhooks.c (lhd_clear_binding_stack): Remove.
8368         * langhooks-def.h (lhd_clear_binding_stack,
8369         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
8370         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
8371         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
8372         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
8373         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
8374         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
8375         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
8376         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
8377         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
8378         * tree.h (poplevel): Don't declare.
8379         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
8380         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
8381         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
8382         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
8383         Remove.
8385 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8387         PR tree-optimization/16437
8388         * c-common.c (shorten_compare): Don't mark result of conversion to
8389         narrower signed type as overflowing.
8390         * fold-const.c (decode_field_reference): Determine whether
8391         signedness comes from outer type using precision rather than size.
8393 2004-07-11  Phil Edwards  <phil@codesourcery.com>
8395         * configure.ac:  Alphabetize --enable-checking list, add
8396         missing valgrind entry.
8397         * configure:  Regenerate.
8399 2004-07-11  Phil Edwards  <phil@codesourcery.com>
8401         * doc/install.texi (Testing):  Fix syntax in "make check" example.
8403 2004-07-10  James E Wilson  <wilson@specifixinc.com>
8405         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
8407 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8409         PR rtl-optimization/16001
8410         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
8411         niter_expr.
8413 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
8415         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
8417 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
8418             James Morrison  <phython@gcc.gnu.org>
8420         * doc/contrib.texi (Contributors): Add gfortran contributors and
8421         fix a couple of typos.
8423 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8425         PR rtl-optimization/15387
8426         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
8427         to incoming args space correctly.
8429 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8431         * pa.c (output_indirect_call): Only use %r2 as the link register in
8432         indirect calls with the long PA 2.0 pc-relative branch.
8434 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
8436         * config/i386/i386.c (override_options): Pick a 64-bit CPU
8437         for the default tuning if TARGET_64BIT.
8439 2004-07-10  Richard Henderson  <rth@redhat.com>
8441         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
8442         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
8444 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
8446         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
8447         * expmed.c (store_bit_field, extract_bit_field): Remove last
8448         argument.
8449         * builtins.c (expand_builtin_signbit): Adjust callers.
8450         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
8451         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
8452         * ifcvt.c (noce_emit_move_insn): Likewise.
8453         * stmt.c (expand_return): Likewise.
8454         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
8455         store_field, expand_expr_real_1): Likewise.
8457 2004-07-10  Richard Henderson  <rth@redhat.com>
8459         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
8461 2004-07-09  Mike Stump  <mrs@apple.com>
8463         * config/darwin.c (no_dead_strip): Add.
8464         (HAVE_DEAD_STRIP): Add.
8465         (darwin_emit_unwind_label): Ensure that we don't dead code strip
8466         the .eh label.
8468 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8470         * tree-ssa-loop-im.c: New file.
8471         * Makefile.in (tree-ssa-loop-im.o): Add.
8472         * cfgloop.c (superloop_at_depth): New function.
8473         * cfgloop.h (superloop_at_depth): Declare.
8474         * common.opt (ftree-lim): New flag.
8475         * expr.c (array_ref_up_bound): New function.
8476         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
8477         * timevar.def (TV_LIM): New timevar.
8478         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
8479         computing immediate uses of a phi node.
8480         * tree-flow.h (struct tree_ann_common_d): Add aux field.
8481         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
8482         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
8483         * tree-pass.h (pass_lim): Declare.
8484         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
8485         functions.
8486         (pass_lim): New pass structure.
8487         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
8488         * tree.c (in_array_bounds_p): New function.
8489         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
8490         (in_array_bounds_p, array_ref_up_bound): Declare.
8491         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
8492         * doc/passes.texi (tree-ssa-loop-im.c): Document.
8494 2004-07-09  Richard Henderson  <rth@redhat.com>
8496         * builtins.c (expand_builtin_stpcpy): Don't modify len.
8498         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
8499         with prejudice.
8501 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
8503         * flags.h: Delete redundant prototypes that are being generated
8504         in options.h from common.opt.
8505         * common.opt: Add in the expository comments formerly in flags.h.
8507 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8509         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
8510         available for use only when TARGET_MMX/_SSE is set, and check for
8511         variable argument function if any register count is non-zero.
8512         (function_arg): Correctly suppress repeated warnings for passing SSE
8513         vectors are arguments without SSE enabled.
8514         (ix86_function_arg_boundary): Without SSE enabled, the use of what
8515         would be SSE register modes does no longer influence the alignment.
8517 2004-07-09  Richard Henderson  <rth@redhat.com>
8519         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
8520         Always align upward to arg boundary.  Use size_in_bytes/round_up.
8521         Maintain type-correctness of constants.
8522         * stor-layout.c (round_up, round_down): Special-case powers of 2.
8524 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
8526         * config/sparc/sparc.c (*_costs): Scale instruction costs
8527         by COSTS_N_INSNS.
8528         (sparc_rtx_costs): Adjust as appropriate.
8530 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8532         * config/i386/mm3dnow.h: New.
8533         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
8535 2004-07-09  Richard Henderson  <rth@redhat.com>
8537         * simplify-rtx.c (simplify_const_relational_operation): Only
8538         look at bounds of scalar integers.
8540 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8542         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
8544 2004-07-09  Andrew Pinski  <apinski@apple.com>
8546         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
8547         always referenced.
8548         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
8549         UOBJC_METACLASS_decl.
8551 2004-07-09  James E Wilson  <wilson@specifixinc.com>
8553         PR target/16364
8554         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
8555         do return a parallel if hfa_mode == XFmode and mode == TImode.
8557 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8559         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
8560         permissible for unary plus.
8562 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8564         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
8565         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
8566         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
8567         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
8568         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
8569         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
8570         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
8571         (BUILTIN_xxxIMAX): New.
8572         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
8573         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
8574         BUILT_IN_PARITYIMAX.
8576 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
8578         * config/sparc/sparc.h (processor_costs): Define.
8579         (sparc_costs): Declare.
8580         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
8581         hypersparc_costs, sparclet_costs, ultrasparc_costs,
8582         ultrasparc3_costs): New.
8583         (sparc_override_options): Set sparc_costs as appropriate.
8584         (sparc_rtx_costs): Use sparc_costs instead of messy
8585         conditionals.
8587 2004-07-09  Steven Bosscher  <stevenb@suse.de>
8589         * doc/md.texi (Processor pipeline description): Mention that
8590         the old pipeline description is deprecated.
8592         * config/rs6000/7450.md (automaton ppc7450): Split up, move
8593         mciu_7450 function unit to...
8594         (automaton ppc7450mciu): ...new automaton.
8596         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
8597         (schedule_block): Don't consider inserting bubbles.
8598         (sched_init): Don't initialize DFA bubbles.
8599         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
8600         TARGET_SCHED_DFA_BUBBLE): Remove.
8601         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
8602         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
8603         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
8605         * stmt.c (conditional_context): Remove prototype.
8606         * tree.h (conditional_context): Remove.
8607         * tree-cfg.c (pre_insert_on_edge): Remove.
8609         * c-common.h (c_expand_asm_operands): Remove prototype.
8610         * c-typeck.c (c_expand_asm_operands): Remove.
8612 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8614         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
8615         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
8616         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
8617         and V8QI are class SSE. All sufficiently small remaining vector modes
8618         must be passed in one or two integer registers.
8619         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
8620         returned in memory.
8621         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
8622         __builtin_ia32_pmuludq128 have non-uniform argument and return types
8623         and must thus be handled explicitly.
8624         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
8625         MMX and XMM regs.
8626         (movv8qi_internal, movv4hi_internal, movv2si_internal,
8627         movv2sf_internal): Permit moving between MMX and XMM registers (since
8628         MMX areguments and return values are passed in XMM registers).
8629         (sse2_umulsidi3): Correct type and mode.
8631 2004-07-09  Richard Henderson  <rth@redhat.com>
8633         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
8635 2004-07-09  Eric Christopher  <echristo@redhat.com>
8637         * config/rs6000/40x.md: Split into two automatons.
8639 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
8640             Andrew Pinski  <apinski@apple.com>
8642         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
8643         on when we have more than one input file.
8644         (c_common_parse_file): Restore loop over all input files.
8645         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
8647         * c-decl.c (set_type_context): New function.
8648         (pop_scope): Use it to set context of types.  When we
8649         encounter a TYPE_DECL, set the context of the attached type too.
8650         (pop_file_scope): Don't call cpp_undef_all here.
8651         (diagnose_mismatched_decls): Do not complain about a second
8652         definition of an 'extern inline' function if it's not in the
8653         same translation unit.  Do not complain about inline
8654         declaration after use if the use was in a different
8655         translation unit.
8656         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
8657         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
8658         the external scope.
8659         (pushdecl_top_level): Likewise.
8660         (grokdeclarator): Clarify what is going on with setting
8661         DECL_EXTERNAL on function types, a little.
8662         (c_write_global_declarations): Don't do anything if
8663         -fsyntax-only or errors have been encountered.
8665 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
8667         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
8669 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8671         PR target/16459
8672         * pa.c (output_indirect_call): Use %r2 as the link register when
8673         calling $$dyncall with a pc-relative branch.
8675 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
8677         * doc/install.texi (Binaries): Mention OpenPKG.
8679 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
8681         Fix PR tree-optimization/15555
8682         * tree-dfa.c (dump_variable): If the variable is a pointer
8683         SSA_NAME, also dump its points-to information.
8684         * tree-flow.h (struct ptr_info_def): Add field
8685         is_dereferenced.
8686         (dump_points_to_info_for): Declare.
8687         (debug_points_to_info_for): Declare.
8688         * tree-optimize.c (init_tree_optimization_passes): Add a
8689         second alias analysis pass after DOM2.
8690         Move pass_del_pta to a later spot.
8691         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
8692         create a name tags when we find a dereferenced pointer.  Just
8693         mark the pointer dereferenced.
8694         (collect_points_to_info_for): Move code to clear points-to
8695         information to create_name_tags.
8696         (create_name_tags): New function.
8697         (compute_flow_sensitive_aliasing): Call it.
8698         (setup_pointers_and_addressables): Mark type tags for renaming
8699         here instead of ...
8700         (create_memory_tag): ... here.
8701         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
8702         (dump_points_to_info_for): Declare extern.
8703         (debug_points_to_info_for): New function.
8705 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
8707         * config/arc/arc.md: Switch to DFA-based scheduler description.
8708         * config/arc/arc.c: Switch to DFA-based scheduler description.
8710 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8712         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
8713         pointer.
8715 2004-07-09  Richard Henderson  <rth@redhat.com>
8717         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
8718         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8719         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
8720         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
8722         * config/v850/v850-protos.h (v850_va_arg): Remove.
8723         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8724         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
8725         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
8726         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
8727         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
8729 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8731         PR target/12133
8732         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
8733         and DImode to use +/-4k offset.
8735 2004-07-09  Richard Henderson  <rth@redhat.com>
8737         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
8738         Remove.
8739         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8740         (xstormy16_gimplify_va_arg_expr): Rewrite from
8741         xstormy16_expand_builtin_va_arg.
8742         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
8744         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
8745         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
8747         * config/sh/sh-protos.h (sh_va_arg): Remove.
8748         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8749         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
8750         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
8752         * config/pa/pa-protos.h (hppa_va_arg): Remove.
8753         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8754         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
8755         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
8757         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
8758         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8759         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
8760         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
8762 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8764         * config/sparc/sparc.md (return): Rewrite length formula.
8765         * config/sparc/sparc.c (output_return): Pass 1 as 5th
8766         argument to final_scan_insn when in a delay slot.
8767         (output_sibcall): Likewise.
8769 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8771         * arm.c (arm_cpp_interwork): New variable.
8772         (arm_override_options): Set it if TARGET_INTERWORK was on the command
8773         line.
8774         * arm.h (arm_cpp_interwork): Declare it.
8775         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
8776         __THUMB_INTERWORK__ in the preprocessor.
8778 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
8780         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
8782 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8784         PR target/16416
8785         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
8786         Override default settings to account for -m32 and -m64.
8788 2004-07-08  Randolph Chung  <tausq@debian.org>
8790         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
8792 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
8794         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
8795         before comparing it as such.
8797 2004-07-08  Richard Henderson  <rth@redhat.com>
8799         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
8800         temporary.  Use bit arithmetic to align.
8802 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
8804         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
8805         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
8806         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
8807         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
8808         add_labels_and_missing_jumps, find_jump_block,
8809         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
8810         Likewise.
8811         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
8812         link_btr_uses, move_btr_def): Likewise.
8813         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
8814         expand_builtin_expect_jump): Likewise.
8815         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
8816         * calls.c (expand_call, emit_library_call_value_1): Likewise.
8817         * cfganal.c (forwarder_block_p): Likewise.
8818         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
8819         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
8820         find_bb_boundaries): Likewise.
8821         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8822         merge_blocks_move_predecessor_nojumps,
8823         merge_blocks_move_successor_nojumps, insns_match_p,
8824         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
8825         try_optimize_cfg): Likewise.
8826         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
8827         * cfglayout.c (skip_insns_after_block, label_for_bb,
8828         record_effective_endpoints, insn_locators_initialize,
8829         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
8830         * cfgmainloop.c (create_loop_notes): Likewise.
8831         * cfgrtl.c (delete_insn, delete_insn_chain,
8832         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
8833         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
8834         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
8835         redirect_branch_edge, force_nonfallthru_and_redirect,
8836         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
8837         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
8838         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
8839         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
8840         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
8841         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
8842         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
8843         * combine.c (combine_instructions, can_combine_p, try_combine,
8844         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
8845         distribute_notes, distribute_links, insn_cuid): Likewise.
8846         * cse.c (fold_rtx, cse_insn, cse_around_loop,
8847         invalidate_skipped_block, cse_set_around_loop,
8848         cse_end_of_basic_block, cse_main, cse_basic_block,
8849         cse_condition_code_reg): Likewise.
8850         * cselib.c (cselib_process_insn): Likewise.
8851         * ddg.c (create_ddg): Likewise.
8852         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
8853         Likewise.
8854         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
8855         gen_label_die, dwarf2out_var_location): Likewise.
8856         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
8857         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
8858         last_call_insn, active_insn_p, next_label, prev_label,
8859         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
8860         add_insn_before, remove_insn, add_function_usage_to,
8861         reorder_insns, find_line_note, remove_unnecessary_notes,
8862         emit_insn_after_1, classify_insn): Likewise.
8863         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
8864         connect_post_landing_pads, sjlj_mark_call_sites,
8865         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
8866         can_throw_internal, can_throw_external, set_nothrow_function_flags,
8867         convert_to_eh_region_ranges): Likewise.
8868         * explow.c (optimize_save_area_alloca): Likewise.
8869         * expr.c (expand_expr_real): Likewise.
8870         * final.c (insn_current_reference_address, compute_alignments,
8871         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
8872         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
8873         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
8874         propagate_block_delete_insn, propagate_one_insn,
8875         init_propagate_block_info, propagate_block, libcall_dead_p,
8876         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
8877         Likewise.
8878         * function.c (instantiate_virtual_regs, reorder_blocks_1,
8879         expand_function_start, expand_function_end, contains,
8880         thread_prologue_and_epilogue_insns,
8881         reposition_prologue_and_epilogue_notes): Likewise.
8882         * gcse.c (constprop_register, bypass_conditional_jumps,
8883         insert_insn_end_bb, gcse_after_reload): Likewise.
8884         * genemit.c (gen_expand, gen_split): Likewise.
8885         * genpeep.c (gen_peephole, main): Likewise.
8886         * global.c (build_insn_chain): Likewise.
8887         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
8888         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
8889         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
8890         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
8891         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
8892         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
8893         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
8894         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
8895         dead_or_predicable): Likewise.
8896         * integrate.c (try_constants): Likewise.
8897         * jump.c (rebuild_jump_labels, cleanup_barriers,
8898         purge_line_number_notes, init_label_info, mark_all_labels,
8899         squeeze_notes, get_label_before, get_label_after,
8900         reversed_comparison_code_parts, simplejump_p, pc_set,
8901         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
8902         delete_barrier, delete_prior_computation, delete_computation,
8903         delete_related_insns, delete_for_peephole, redirect_jump):
8904         Likewise.
8905         * lcm.c (optimize_mode_switching): Likewise.
8906         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
8907         Likewise.
8908         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
8909         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
8910         * loop-iv.c (simplify_using_assignment): Likewise.
8911         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
8912         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
8913         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
8914         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
8915         check_insn_for_givs, check_final_value, update_giv_derive,
8916         basic_induction_var, product_cheap_p, check_dbra_loop,
8917         loop_insn_first_p, last_use_this_basic_block,
8918         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
8919         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
8920         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
8921         sms_schedule_by_order): Likewise.
8922         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
8923         * postreload.c (reload_cse_simplify_operands, reload_combine,
8924         reload_cse_move2add): Likewise.
8925         * predict.c (can_predict_insn_p, estimate_probability,
8926         expected_value_to_br_prob, process_note_predictions): Likewise.
8927         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
8928         * profile.c (branch_prob): Likewise.
8929         * ra-build.c (live_out_1, livethrough_conflicts_bb,
8930         detect_webs_set_in_cond_jump): Likewise.
8931         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
8932         ra_print_rtl_with_bb): Likewise.
8933         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
8934         * recog.c (next_insn_tests_no_inequality, find_single_use,
8935         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
8936         * reg-stack.c (next_flags_user, record_label_references,
8937         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
8938         compensate_edge, convert_regs_1): Likewise.
8939         * regclass.c (scan_one_insn): Likewise.
8940         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8941         regmove_optimize, fixup_match_1, single_set_for_csa,
8942         combine_stack_adjustments_for_block): Likewise.
8943         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
8944         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
8945         find_equiv_reg): Likewise.
8946         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
8947         reload_as_needed, emit_input_reload_insns, do_output_reload,
8948         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
8949         Likewise.
8950         * reorg.c (find_end_label, emit_delay_sequence,
8951         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
8952         get_jump_flags, rare_destination, mostly_true_jump,
8953         try_merge_delay_insns, redundant_insn, own_thread_p,
8954         fill_simple_delay_slots, fill_slots_from_thread,
8955         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
8956         dbr_schedule): Likewise.
8957         * resource.c (find_basic_block, next_insn_no_annul,
8958         find_dead_or_set_registers, mark_target_live_regs): Likewise.
8959         * rtl.h (RTX_PREV): Likewise.
8960         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
8961         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
8962         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
8963         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
8964         tablejump_p, computed_jump_p, insns_safe_to_move_p,
8965         find_first_parameter_load, can_hoist_insn_p): Likewise.
8966         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
8967         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
8968         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
8969         schedule_ebbs): Likewise.
8970         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
8971         is_conditionally_protected, can_schedule_ready_p,
8972         add_branch_dependences, debug_dependencies): Likewise.
8973         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
8974         Likewise.
8975         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
8976         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
8977         set_dominates_use, ujump_to_loop_cont): Likewise.
8978         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
8979         * varasm.c (output_constant_pool_1): Likewise.
8981 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8983         * tree-scalar-evolution.c: New file.
8984         * tree-scalar-evolution.h: New file.
8985         * tree-ssa-loop-niter.c: New file.
8986         * Makefile.in (SCEV_H): New.
8987         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
8988         * cfgloop.h (struct loop): Add bounds field.
8989         * tree-flow.h (struct tree_niter_desc): New type.
8990         (number_of_iterations_cond, number_of_iterations_exit,
8991         loop_niter_by_eval, find_loop_niter_by_eval,
8992         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
8993         free_numbers_of_iterations_estimates): Declare.
8994         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
8995         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
8996         * doc/invoke.texi (max-iterations-to-track): Document.
8998 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
9000         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
9001         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
9002         (MODE_AFTER): Add cast appropriately.
9003         * config/sh/sh.md (movdi splitter): Likewise.
9004         (casesi_worker_2): Add const qualifier appropriately.
9005         (eh_return): Remove unused variable.
9006         (insv): Initialize v;
9008 2004-07-08  Richard Henderson  <rth@redhat.com>
9010         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
9011         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9012         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
9013         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
9014         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
9016         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
9017         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9018         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
9019         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
9021         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
9022         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9023         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
9024         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
9026         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
9027         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9028         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
9029         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
9031         * config/i860/i860-protos.h (i860_va_arg): Remove.
9032         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9033         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
9034         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
9036 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9038         * system.h: Prototype getpagesize if missing.
9039         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
9040         * configure: Regenerate.
9041         * config.in: Regenerate.
9043 2004-07-08  Richard Henderson  <rth@redhat.com>
9045         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
9046         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9047         (fr30_gimplify_va_arg_expr): New.
9048         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
9049         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
9051 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
9053         PR target/16414
9054         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
9055         of asm_noperands result.
9057 2004-07-08  Richard Henderson  <rth@redhat.com>
9059         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
9060         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9061         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
9062         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
9064 2004-07-08  Richard Henderson  <rth@redhat.com>
9066         * builtins.c (ind_gimplify_va_arg_expr): New.
9067         * tree.h (ind_gimplify_va_arg_expr): Declare.
9068         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
9070 2004-07-08  Jan Beulich  <jbeulich@novell.com>
9072         * expmed.c (extract_bit_field): Correct condition to use vec_extract
9073         patterns also on vector elements other than the first one.
9074         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
9075         break statements.
9077 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
9079         * config/rs6000/darwin-ldouble.c: Correct reference
9080         to the Linnainmaa paper.
9082 2004-07-08  Richard Henderson  <rth@redhat.com>
9084         * config/arc/arc-protos.h (arc_va_arg): Remove.
9085         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9086         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
9087         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
9089         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
9090         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9091         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
9092         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
9094 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9096         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
9098 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
9100         * c-decl.c (static_ctors, static_dtors): Make static.
9101         (pop_file_scope): Call c_common_write_pch and
9102         cgraph_finalize_compilation_unit here.
9103         (build_cdtor): Moved here from c-objc-common.c; simplify.
9104         (c_write_global_declarations_1): Clarify comment.
9105         (c_write_global_declarations): Close the external scope before
9106         doing anything else.  Call build_cdtor, cgraph_optimize, and
9107         mudflap_finish_file here.
9108         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
9109         Clarify comment.
9110         * c-objc-common.c: No need to include cgraph.h.
9111         (build_cdtor): Moved to c-decl.c.
9112         (c_objc_common_finish_file): Delete.
9113         * c-tree.h: Update to match.
9114         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
9115         (generate_static_references): Set TREE_USED before calling finish_decl.
9116         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
9117         on the static_instances_decl.
9119 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
9121         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
9122         decls when there is only one input translation unit.
9123         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
9124         change of 2004-07-05; do not treat declarations with
9125         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
9126         * opts.c (cur_in_fname): Delete.
9127         * opts.h: Likewise.
9128         * tree.c: Revert changes of 2004-07-05; no special treatment
9129         for TRANSLATION_UNIT_DECLs.
9130         * Makefile.in (tree.o): Update dependencies.
9132 2004-07-08  Roger Sayle  <roger@eyesopen.com>
9134         * builtins.c (fold_builtin_strcpy): Merge functionality from
9135         simplify_builtin_strcpy.  Add additional len argument.  No longer
9136         static.  Remove function prototype.
9137         (fold_builtin_strncpy): Likewise integrate functionality from
9138         simplify_builtin_strncpy.  Add additional slen argument.  No
9139         longer static.  Remove function prototype.
9140         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
9141         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
9142         types of "ignore" and "unlocked" parameters to bool.
9143         (fold_builtin_1):  Add additional ignore argument.  Call renamed
9144         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
9145         builtins.  Update arguments to fold_builtin_strncpy and
9146         fold_builtin_strcpy.  Add function prototype.
9147         (fold_builtin): Add additional Boolean ignore argument to pass
9148         to fold_builtin_1.
9149         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
9150         and fold_builtin_strncpy instead of simplify_builtin_fputs,
9151         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
9153         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
9154         simplify_builtin_strncpy): Delete function prototypes.
9155         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
9156         fold_builtin_strncpy): Add function prototypes here.
9157         (fold_builtin): Update function prototype with new "bool ignore".
9159         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
9160         (ccp_fold_builtin):  Update call to fold_builtin.  Call
9161         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
9162         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
9163         simplify_builtin_strncpy respectively.
9164         * fold-const.c (fold): Update call to fold_builtin.
9166 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
9168         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
9169         to strcpy.
9171         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
9172         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
9173         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
9174         * calls.c: Remove ifdefs of macros above.
9175         * functions.c: Likewise.
9176         * expr.c: Likewise.
9178 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9180         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
9181         (arch attribute): Delete.
9182         (current_function_calls_alloca attribute): Rename into calls_alloca.
9183         (calls_eh_return): New attribute.
9184         (leaf_function): Likewise.
9185         (length attribute): Fix formula for sibcalls.
9186         (return insn): Correctly compute the 'length' attribute.
9187         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
9189 2004-07-08  Richard Henderson  <rth@redhat.com>
9191         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
9192         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
9193         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
9194         * tree-eh.c (lower_eh_constructs_1): Likewise.
9195         * tree-sra.c (sra_walk_modify_expr): Likewise.
9196         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9197         (eliminate_unnecessary_stmts): Likewise.
9198         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
9199         * tree-tailcall.c (optimize_tail_call): Likewise.
9200         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
9202 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9203             Jakub Jelinek  <jakub@redhat.com>
9205         * config/i386/i386.c (override_options): Enable
9206         SSE prefetches with -mtune, as long as we are
9207         compiling for i686 or higher.  All i686 processors
9208         accept SSE prefetches as NOPS, some i586's don't.
9210 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9212         PR target/10567
9213         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
9215 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
9217         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
9218         the handling of clobbering ASM_EXPRs.
9220 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9222         PR target/16430
9223         * config/sparc/sparc.c (function_value): In 64-bit mode,
9224         return the aggregates larger than 16 bytes like unions.
9226 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9228         PR target/16199
9229         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
9230         'temp' is zero, generate new pseudos as needed and emit the
9231         sequence of insns in single-assignment form.  Resync comments
9232         with code.
9233         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
9234         function before reload.
9236 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
9238         * vec.c (vec_assert_fail): Remove duplicate 'function'.
9240         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
9242         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
9243         Allocation is signed.
9244         (VEC_reserve): Return flag, allocation is signed.
9246 2004-07-08  Richard Henderson  <rth@redhat.com>
9248         * tree-ssa-ccp.c (fold_stmt): Get type directly from
9249         OBJ_TYPE_REF_OBJECT.
9251 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9252             Neil Booth  <neil@daikokuya.co.uk>
9254         PR c/2511
9255         PR c/3325
9256         * c-decl.c (finish_struct): Ensure bit-fields are given the
9257         correct type.
9258         * c-common.c (c_common_signed_or_unsigned_type): For C, require
9259         the precision to match as well as the mode.
9260         * expr.c (reduce_to_bit_field_precision): New function.
9261         (expand_expr_real_1): Reduce expressions of bit-field type to
9262         proper precision.
9263         * langhooks.h (reduce_bit_field_operations): New hook.
9264         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9265         Define.
9266         * c-lang.c, objc/objc-lang.c
9267         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
9268         * objc/objc-act.c (check_ivars): Convert types to bit-field types
9269         before checking.
9270         * tree.c (build_nonstandard_integer_type): New function.
9271         * tree.h (build_nonstandard_integer_type): New prototype.
9272         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
9273         conversions between integer and boolean types as useless.
9275 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9277         * c-common.c (c_common_nodes_and_builtins): Do not
9278         create __builtin_ptrdiff_t and __builtin_size_t.
9280 2004-07-08  Andrew Pinski  <apinski@apple.com>
9282         * Makefile.in (libbackend.o): Add -combine to the gcc
9283         command line.
9285 2004-07-08  Nick Clifton  <nickc@redhat.com>
9287         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
9288         Set to -Os.
9290 2004-07-08  Richard Henderson  <rth@redhat.com>
9292         * except.c (expand_eh_region_start, expand_eh_region_end,
9293         expand_eh_handler, expand_eh_region_end_cleanup,
9294         expand_start_all_catch, expand_start_catch, expand_end_catch,
9295         expand_end_all_catch, expand_eh_region_end_allowed,
9296         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
9297         expand_eh_region_end_fixup): Remove.
9298         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
9299         cleanups, outer_cleanups, label_chain, exception_region.
9300         (struct goto_fixup): Remove stack_level, cleanup_list_list.
9301         (struct label_chain): Remove.
9302         (struct stmt_status): Remove x_stack_block_stack.
9303         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
9304         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
9305         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
9306         end_cleanup_deferral, last_cleanup_this_contour,
9307         containing_blocks_have_cleanups_or_stack_level,
9308         any_pending_cleanups): Remove.
9309         (expand_null_return_1): Take no arguments.
9310         (expand_label, expand_naked_return, expand_return,
9311         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
9312         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
9313         expand_end_case_type): Don't use any of them.
9314         * calls.c (expand_call): Likewise.
9315         * dojump.c (do_jump): Likewise.
9316         * function.c (expand_function_end): Likewise.
9317         * expr.c (store_expr, expand_expr_real_1): Likewise.
9318         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
9319         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
9320         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
9321         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
9322         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
9323         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
9324         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
9325         for WITH_CLEANUP_EXPR.
9326         (gimple_push_cleanup): Likewise.
9327         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
9328         * print-tree.c (print_node): Likewise.
9329         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
9330         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
9331         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
9332         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
9333         (GOTO_SUBROUTINE_EXPR): Remove.
9334         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
9335         (DECL_TOO_LATE): Remove.
9336         * except.h, tree.h: Update decls.
9338 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9340         * explow.c (optimize_save_area_alloca): Do not accept parameters.
9341         * passes.c (rest_of_handle_final): Handle symout.
9342         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
9343         Push timevar here.
9344         (rest_of_handle_sched): Break out SMS.  Remove ifs for
9345         flag_schedule_insns and flag_modulo_sched.
9346         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
9347         collect at the end.
9348         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
9349         (rest_of_handle_partition_blocks, rest_of_handle_sms,
9350         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
9351         rest_of_handle_mode_switching, rest_of_handle_jump,
9352         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
9353         rest_of_handle_jump2, rest_of_handle_postreload,
9354         rest_of_handle_flow2, rest_of_clean_state,
9355         rest_of_handle_shorten_branches,
9356         rest_of_handle_prologue_epilogue,
9357         rest_of_handle_branch_target_load_optimize): New.
9358         (rest_of_compilation): Call the above.  Remove ggc_collect
9359         calls moved to rest_of_handle_*.
9360         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
9362         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
9363         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
9364         * except.h (set_nothrow_function_flags): Update comment.
9365         * function.c (current_function_nothrow): Remove.
9366         * output.h (current_function_nothrow): Remove.
9367         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
9368         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
9370 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9372         PR bootstrap/16326
9373         * reorg.c: Revert 2004-06-30 change.
9374         (find_end_label): If HAVE_epilogue and !HAVE_return,
9375         return 0 instead of creating a label at the end of the insn chain.
9376         (optimize_skip): Account for the failure mode of find_end_label.
9377         (fill_simple_delay_slots): Likewise.
9378         (fill_slots_from_thread): Likewise.
9379         (relax_delay_slots): Likewise.
9381 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
9383         * tree-flow.h (addressable_vars): Declare.
9384         * tree-ssa-alias.c (addressable_vars): Define.
9385         (setup_pointers_and_addressables): Add addressable variables
9386         to addressable_vars.
9387         * tree-ssa-operands.c (get_stmt_operands): Move
9388         handling of ASM_EXPRs ...
9389         (get_asm_expr_operands): ... here.
9390         When the ASM_EXPR clobbers memory, also clobber addressable
9391         variables.
9392         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
9393         (delete_tree_ssa): Reset addressable_vars.
9395 2004-07-07  Jan Beulich  <jbeulich@novell.com>
9396             Richard Henderson  <rth@redhat.com>
9398         * varasm.c (assemble_variable): Use assemble_zeros for
9399         zero-initialized variables.
9400         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
9401         for SECCAT_BSS and SECCAT_TBSS.
9403 2004-07-07  Jan Beulich  <jbeulich@novell.com>
9405         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
9407         * expmed.c (emit_store_flag): Also special-case double-word
9408         (in-)equality comparison against -1.
9410         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
9411         passing arguments the containers for which are registers.
9413         * calls.c (emit_library_call_value_1): Use mode of function parameter
9414         rather than that of argument since constants have none.
9416 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
9418         Introduce H8SX support.
9419         * expr.c (expand_strcpy): Renamed and moved to...
9420         * builtins.c (expand_movstr): ... here.  Tweak.
9421         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
9422         computed or has side effects.
9423         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
9424         unused, or if mempcpy fails.  Adjust the return value in the
9425         latter case.  Use movstr if everything else fails.
9426         * doc/md.texi (movstr): Document.
9427         (movmemM, clrmemM): Fix explanation of memory block operands.
9428         * config/h8300/h8300.md (stpcpy): Renamed to...
9429         (movstr): ... this.  Adjust.
9430         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9431         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
9432         movmem* and clrstr* to clrmem*.
9433         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
9434         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
9435         GENERAL_REGS, always.
9436         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
9437         getting the stack pointer as addr.
9438         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
9439         from general_operand_dst.
9440         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
9441         variant of...
9442         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
9443         instead of requiring it to match only before reload.
9444         (stpcpy_internal_normal): New, normal-mode variant of...
9445         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
9446         `D' instead of requiring it to match only before reload.
9447         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
9448         mode argument.
9449         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
9450         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
9451         h8300_get_index.
9452         * config/h8300/h8300.md (attr type): Add call.
9453         (attr can_delay): If type is call, set it no.
9454         (call, call_value): Set type to call.
9455         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
9456         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
9457         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
9458         * tree.c (get_narrower): Don't narrow integral types into
9459         non-integral types.
9460         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
9461         frame_size *before* the first use.
9462         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
9463         on input.
9464         (peephole2): Don't widen instructions that push SP.  Move
9465         decrement of SP to the end of all stm-generating peepholes.
9466         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
9467         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
9468         and OR to set it to all ones.
9469         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
9470         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
9471         (call, call_value): Set can_delay to "no".
9472         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
9473         * config/h8300/h8300.md (extzv): Make subreg check more robust.
9474         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9475         * config/h8300/h8300.md (*brabit): Remove.
9476         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
9477         zero_extract.  Use bit_memory_operand as the predicate for
9478         operand 1 and 'WU' as the constraint.  Check the difference
9479         between the base length and the final one when deciding which
9480         type of branch to use.
9481         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9482         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
9483         Use convert_move to extend the result for TARGET_H8300SX.  Check
9484         for QImode memory references.  Optimize the case where the
9485         destination is a paradoxical subreg.
9486         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9487         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
9488         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
9489         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9490         * config/h8300/h8300.md: Include mova.md
9491         (length_table): Add mova and mova_zero.
9492         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
9493         after all constant addresses for '%R', '%X', '%T' and '%S'.
9494         (h8300_mova_length): New function.
9495         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
9496         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
9497         dependencies for s-config, etc.
9498         * config/h8300/gemova.sh: New file.
9499         * config/h8300/mova.md: Generated.
9500         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
9501         * config/h8300/h8300.c (h8300_bitfield_length): New.
9502         (nibble_operand): Adjust.
9503         (h8300_binary_length): Handle conditional binary op.
9504         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
9505         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
9506         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
9507         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
9508         constraints.  WU is introduced as a variant of U that requires a
9509         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
9510         * config/h8300/h8300.md (attr type): Added bitbranch.
9511         (attr length_table): Added bitfield and bitbranch.
9512         (attr length): Compute bitbranch length.
9513         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
9514         least-significant bit of a byte.
9515         (brabit, brabc, brabs): New.
9516         (insv, extzv): Emit bfst and bfld on H8300SX.
9517         (bfld, bfst, seq, sne): New.
9518         (bstzhireg, cmpstz, bstz, bistz): New.
9519         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
9520         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
9521         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
9522         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
9523         (h8sx_unary_memory_operator): New function.
9524         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
9525         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
9526         * config/h8300/h8300.md: Add peepholes to combine reloads and
9527         arithmetic insns.
9528         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
9529         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
9530         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
9531         (and?i, ior?i, xor?i): Likewise.
9532         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
9533         * config/h8300/h8300.c: Move enums and prototypes to head of file.
9534         Various whitespace fixes.
9535         (h8300_constant_length): New function, split out from...
9536         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
9537         (h8300_classify_operand): Use IN_RANGE.
9538         (h8300_classify_operand): Use h8300_constant_length.
9539         (h8300_short_move_mem_p): Tighten size check.
9540         (h8sx_mergeable_memrefs_p): Tighten equality check.
9541         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
9542         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
9543         for -msx.
9544         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
9545         * config/h8300/crtn.asm: Likewise.
9546         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
9547         if __H8300SX__ is defined.
9548         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
9549         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
9550         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
9551         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
9552         addresses as mode-dependent.
9553         * config/h8300/h8300.c (print_operand_address): Update call to
9554         h8300_get_index.
9555         (h8300_get_index): Take a mode argument.  Rework to fix an
9556         earlier misunderstanding.
9557         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
9558         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
9559         into a register if TARGET_H8300SX.
9560         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
9561         TARGET_H8300SX.  Also disable related define_splits.
9562         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
9563         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
9564         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
9565         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
9566         * config/h8300/h8300.h (OK_FOR_Z): New macro.
9567         (EXTRA_CONSTRAINT_STR): Check it.
9568         * config/h8300/h8300.c (h8300_classify_operand): Accept null
9569         class arguments.
9570         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
9571         * config/h8300/h8300.md (length_table): Add mov_imm4.
9572         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
9573         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
9574         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
9575         be a label.
9576         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
9577         * config/h8300/h8300.c (h8300_reorg): New function.
9578         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9579         * config/h8300/h8300.md (length): Subtract the length of the
9580         delay slot from (pc) when checking the range of forward branches.
9581         (delay_slot, can_delay): New attributes.
9582         (define_delay): Add bra/s handling.
9583         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
9584         (jump): Add delayed-branch handling.
9585         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
9586         * expr.c (expand_strcpy): New function.
9587         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
9588         (expand_builtin_stpcpy): Likewise.
9589         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
9590         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
9591         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
9592         handling to improve register allocation for -fno-omit-frame-pointer.
9593         (h8sx_split_movmd): Delete, moving er6 handling into...
9594         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
9595         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
9596         (movmd): Add calls to copy_rtx.
9597         (movmd_internal): In the second alternative, allow the initial and
9598         final destination registers to be different .  Update the splitter
9599         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
9600         instead of h8sx_split_movmd.
9601         (stpcpy, movsd): New expanders.
9602         (movsd_internal): New define_insn.
9603         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
9604         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
9605         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
9606         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
9607         and DESTINATION_REGS.
9608         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
9609         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
9610         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
9611         (h8300_move_ratio): Declare.
9612         (MOVE_RATIO): Use it.
9613         * config/h8300/h8300.c (h8300_move_ratio): New variable.
9614         (h8300_init_once): Initialize it.
9615         (h8300_reg_class_from_letter): New function.
9616         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
9617         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
9618         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
9619         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
9620         (movstrsi, movmd): New expanders.
9621         (movmd_internal): New insn.
9622         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
9623         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
9624         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
9625         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
9626         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
9627         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9628         * config/h8300/h8300.c (nibble_operand): Fix warning.
9629         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
9630         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
9631         (movsf_h8300h): Disable for TARGET_H8300SX.
9632         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9633         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
9634         h8300_stm_parallel and h8300_return_parallel.
9635         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
9636         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
9637         h8300_stm_parallel, h8300_return_parallel): New functions.
9638         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
9639         if TARGET_H8300SX.  Use h8300_push_pop.
9640         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
9641         and final pop when generating h8sx code.  Always emit some form
9642         of return insn.
9643         * config/h8300/h8300.md: Don't enforce register alignment in
9644         stm peepholes if TARGET_H8300SX.
9645         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
9646         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
9647         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
9648         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9649         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
9650         (MULTILIB_DIRNAMES): Add a directory for it.
9651         (MULTILIB_MATCHES): Delete.
9652         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
9653         * final.c (walk_alter_subreg): Handle addresses with subregs
9654         inside a ZERO_EXTEND or AND.
9655         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
9656         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
9657         if TARGET_H8300SX.
9658         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
9659         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
9660         @(dd,Rn.w) and @(dd,ERn.L).
9661         (h8300_displacement_size): Take the whole address as argument.
9662         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
9663         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
9664         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
9665         (h8sx_mergeable_memrefs_p): Declare.
9666         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
9667         (HAVE_PRE_INCREMENT): Likewise.
9668         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
9669         addresses for TARGET_H8300SX,
9670         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
9671         and POST_DEC.
9672         (movb_length_table, movl_length_table): New tables.
9673         (movw_length_table): Define to movb_length_table.
9674         (h8300_displacement_size): New, split out from...
9675         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
9676         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
9677         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
9678         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
9679         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
9680         (compute_plussi_length, compute_plussi_cc): Update accordingly.
9681         (h8sx_unary_shift_operator): Get the mode from the operator.
9682         (binary_shift_operator): Likewise.
9683         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
9684         a memory reference, check whether the reference is offsettable.
9685         (length_table): Add movb, movw and movl.
9686         (movqi): Add new h8sx pattern.  Don't force one operand to be a
9687         register when generating h8sx code.
9688         (movhi, movsi, movsf): Likewise.
9689         (movstrictqi): Use the length_table attribute.
9690         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
9691         (addqi3): Split into a define_expand and define_insn.  Don't accept
9692         memory operands in the expander.  Use h8300_operands_match_p to
9693         check for matching operands in the define_insn.
9694         (subqi3, negqi2, one_cmplqi2): Likewise.
9695         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
9696         in any patterns that are unused in h8sx code.  In the h8sx patterns,
9697         use h8300_operands_match_p to check whether operands match.
9698         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
9699         one_cmpl[hs]i3): Likewise.
9700         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
9701         in the expander.
9702         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
9703         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
9704         (h8300_insn_length_from_table): Add a second parameter.
9705         (output_h8sx_shift): Declare.
9706         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
9707         (EXTRA_CONSTRAINT): Replace with...
9708         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
9709         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
9710         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
9711         and h8sx_binary_shift_operator.
9712         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
9713         for TARGET_H8300SX.
9714         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
9715         (bit_memory_operand, fix_bit_operand): Likewise.
9716         (h8300_length_table_for_insn): Remove.
9717         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
9718         instructions.
9719         (h8300_short_immediate_length, h8300_binary_length): New functions.
9720         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
9721         (output_plussi): Use sub to add negative constants.
9722         (compute_plussi_length): Adjust accordingly.
9723         (h8sx_single_shift_type): New enum.
9724         (h8sx_single_shift, h8sx_unary_shift_operator,
9725         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
9726         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
9727         single h8sx instruction.  Return false in this case.
9728         * config/h8300/h8300.md (length_table): Add short_immediate.
9729         (length): Pass the operand array to h8300_insn_length_from_table.
9730         (adjust_length): Assume "no" for insns with a length_table attribute.
9731         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
9732         (*addhi3_h8300hs): Don't use for h8sx.
9733         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
9734         and sub.w #xx:3.
9735         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
9736         1's predicate to nonimmediate_operand.  Only skip default expansion
9737         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
9738         for single h8sx shift instructions.
9739         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
9740         * config/h8300/h8300.c (nibble_operand): Split out of...
9741         (reg_or_nibble_operand): ... this.
9742         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
9743         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
9744         umulhisi3): Introduce expand, and introduce separate insns for
9745         sign- or zero-extended REG and already-extended CONST_INT.
9746         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
9747         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
9748         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
9749         (subhi3): Likewise.  Don't accept immediates for operand 1.
9750         Remove the early clobber from second alternative of the h8300s pattern.
9751         (subsi3): Generalize for h8sx.  Force operand 2 into a register
9752         on plain h8300 targets.
9753         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
9754         (subsi3_h8300h): Generalize for h8sx.
9755         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
9756         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
9757         * config/h8300/h8300.c (reg_or_nibble_operand): New.
9758         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
9759         (TARGET_H8300SXMUL): New.
9760         (CONST_OK_FOR_P): New.
9761         (CONST_OK_FOR_LETTER_P): Adjust.
9762         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
9763         umulhisi3): Accept 4-bit immediate on H8SX.
9764         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
9765         (udivsi3, divhi3, udivsi3, divsi3): New.
9766         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
9767         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
9768         * config/h8300/h8300.h (OK_FOR_Q): New macro.
9769         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
9770         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
9771         Add ADDRESSOF to the bit_operand entry.
9772         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
9773         (h8300_src_operand): Likewise.
9774         (bit_operand): Check nonimmediate_operand rather than general_operand.
9775         Accept any nonimmediate_operand in h8sx code.
9776         (h8300_and_costs): Initialize operands[1].
9777         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
9778         (h8300_operand_class): New enum.
9779         (h8300_length_table): New typedef.
9780         (addb_length_table, addw_length_table, addl_length_table,
9781         logicl_length_table): New tables.
9782         (logicb_length_table, logicw_length_table): New macros.
9783         (h8300_classify_operand, h8300_length_from_table,
9784         h8300_length_table_for_insn, h8300_unary_length,
9785         h8300_insn_length_from_table): New functions.
9786         (output_plussi): Only use adds and subs for register destinations.
9787         Disable redundant clause.
9788         (compute_plussi_cc): Likewise.
9789         (compute_plussi_length): Likewise.  Use h8300_length_from_table
9790         to work out the length of an insn.
9791         (output_logical_op): Only use narrower immediate instructions
9792         if the destination is a register.
9793         (compute_logical_op_cc): Likewise.
9794         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
9795         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
9796         * config/h8300/h8300.md (length_table): New attribute.
9797         (length): When an instruction has a length_table attribute, use
9798         h8300_insn_length_from_table to calculate its default length.
9799         (cmpqi): Use h8300_dst_operand for the first operand and
9800         h8300_src_operand for the second.
9801         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
9802         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
9803         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
9804         iorsi3, xorhi3, xorsi3): Likewise.
9805         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
9806         so that it allows any combination of operands for TARGET_H8300SX.
9807         (iorqi3, xorqi3): Likewise.
9808         (cmpqi): Use the length_table attribute.
9809         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
9810         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
9811         (cmpqi): Add 'Q' constraint.
9812         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
9813         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
9814         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
9815         * config/h8300/h8300.h (MASK_H8300SX): New macro.
9816         (TARGET_H8300S): True for both -ms and -msx.
9817         (TARGET_H8300SX): New macro.
9818         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
9819         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
9820         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
9821         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
9822         [Temporary change.]
9823         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
9824         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
9825         16-bit pointers and 32-bit ints.
9826         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
9827         CONST_DOUBLE with mode no wider than SImode.
9828         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
9829         output operand.
9830         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
9831         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
9832         or SUBREG thereof.
9833         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
9834         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
9835         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
9837 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9839         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
9841 2004-07-07  Per Bothner  <per@bothner.com>
9843         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
9845 2004-07-07  Mike Stump  <mrs@apple.com>
9847         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
9848         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
9849         (machopic_finish): Likewise.
9851 2004-07-07  Richard Henderson  <rth@redhat.com>
9853         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
9854         through any value-preserving cast.
9856 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9858         * function.c (assign_parm_find_data_types): Call
9859         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
9861 2004-07-07  Steven Bosscher  <stevenb@suse.de>
9863         * tree-cfg.c (group_case_labels): Remove case labels that have
9864         the same target as the default case.
9866 2004-07-07  Steven Bosscher  <stevenb@suse.de>
9868         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
9869         regardless of DECL_LANG_SPECIFIC being present or not.
9870         * tree.h (DECL_NUM_STMTS): Purge.
9872 2004-07-07  Andrew Pinski  <apinski@apple.com>
9874         * configure: Regenerate with the right autoconf.
9876 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
9878         * ifcvt.c (total_bb_rtx_cost): New function.
9879         (find_if_case_1): Compare rtx_cost of basic block to cost of
9880         BRANCH_COST insns.
9881         (find_if_case_2): Same.
9883 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9885         PR target/10567
9886         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
9887         (output_return): Likewise.
9888         (output_sibcall): Abort if !flag_delayed_branch.
9889         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
9890         (emit_and_preserve): New function.
9891         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
9892         indirect jump to the thunked-to function if !flag_delayed_branch.
9893         * config/sparc/sparc.md (delayed_branch): New attribute.
9894         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
9895         attribute to compute the length of the insn.
9896         (goto_handler_and_restore): Likewise.
9898 2004-07-07  Andrew Pinski  <apinski@apple.com>
9900         PR tree-optimization/15777
9901         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
9903         * expr.c (expand_expr_real_1): Fix formating.
9904         BUFFER_REF and IN_EXPR are dead.
9905         * fold-const.c (non_lvalue): BUFFER_REF is dead.
9906         * tree-inline.c (estimate_num_insns_1): Likewise.
9907         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
9908         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
9909         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
9911 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9913         * collect2.c (dump_file): Don't call cplus_demangle if
9914         HAVE_LD_DEMANGLE is defined.
9915         (main): Pass "--demangle" to ld if no_demangle is not 0 and
9916         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
9917         if HAVE_LD_DEMANGLE is defined.
9919         * configure.ac (--with-demangler-in-ld): Added
9920         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
9921         --with-demangler-in-ld is used.
9922         * config.in: Regenerated.
9923         * configure: Likewise.
9925 2004-07-07  Roger Sayle  <roger@eyesopen.com>
9927         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
9928         for simple floating point operations "fp", double precision
9929         multiplication "dmul", and single and double precision division
9930         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
9931         (ppc630_cost): New table split from ppc620_cost, to distinguish
9932         differences in floating point latencies.
9933         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
9934         (rs6000_rtx_costs): Add support for single and double precision
9935         floating point addition, subtraction, multiplication, division,
9936         fused-multiply-add, fused-multiply-sub, negation, absolute value
9937         and negative absolute value.  Tweak MEM case to use prefered idiom.
9939 2004-07-07  Richard Henderson  <rth@redhat.com>
9941         * tree-flow-inline.h (may_propagate_copy): Move...
9942         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
9943         attempt to copy between types requiring conversion.
9944         * tree-flow.h (may_propagate_copy): Update decl.
9945         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
9947 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
9949         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
9950         from -mtune= option.
9952 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9954         * builtins.c: Rename movstr*, except for movstrict*, to
9955         movmem* and clrstr* to clrmem*.
9956         * expr.c: Likewise.
9957         * expr.h: Likewise.
9958         * genopinit.c: Likewise.
9959         * integrate.c: Likewise.
9960         * local-alloc.c: Likewise.
9961         * optabs.c: Likewise.
9962         * optabs.h: Likewise.
9963         * config/alpha/alpha.h: Likewise.
9964         * config/alpha/alpha.md: Likewise.
9965         * config/arm/arm-protos.h: Likewise.
9966         * config/arm/arm.c: Likewise.
9967         * config/arm/arm.md: Likewise.
9968         * config/avr/avr.md: Likewise.
9969         * config/c4x/c4x.c: Likewise.
9970         * config/c4x/c4x.md: Likewise.
9971         * config/frv/frv.md: Likewise.
9972         * config/i386/i386-protos.h: Likewise.
9973         * config/i386/i386.c: Likewise.
9974         * config/i386/i386.h: Likewise.
9975         * config/i386/i386.md: Likewise.
9976         * config/i860/i860.c: Likewise.
9977         * config/i860/i860.md: Likewise.
9978         * config/ip2k/ip2k.md: Likewise.
9979         * config/ip2k/libgcc.S: Likewise.
9980         * config/ip2k/t-ip2k: Likewise.
9981         * config/m32r/m32r.c: Likewise.
9982         * config/m32r/m32r.md: Likewise.
9983         * config/mcore/mcore.md: Likewise.
9984         * config/mips/mips.c: Likewise.
9985         * config/mips/mips.md: Likewise.
9986         * config/ns32k/ns32k.c: Likewise.
9987         * config/ns32k/ns32k.h: Likewise.
9988         * config/ns32k/ns32k.md: Likewise.
9989         * config/pa/pa.c: Likewise.
9990         * config/pa/pa.md: Likewise.
9991         * config/pdp11/pdp11.h: Likewise.
9992         * config/pdp11/pdp11.md: Likewise.
9993         * config/rs6000/rs6000.c: Likewise.
9994         * config/rs6000/rs6000.md: Likewise.
9995         * config/s390/s390-protos.h: Likewise.
9996         * config/s390/s390.c: Likewise.
9997         * config/s390/s390.md: Likewise.
9998         * config/sh/lib1funcs.asm: Likewise.
9999         * config/sh/sh.c: Likewise.
10000         * config/sh/sh.md: Likewise.
10001         * config/sh/t-sh: Likewise.
10002         * config/sparc/sparc.h: Likewise.
10003         * config/vax/vax.md: Likewise.
10004         * config/xtensa/xtensa.c: Likewise.
10005         * config/xtensa/xtensa.md: Likewise.
10006         * doc/invoke.texi: Likewise.
10007         * doc/md.texi: Likewise.
10008         * doc/rtl.texi: Likewise.
10010 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
10012         PR target/16407
10013         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
10014         * config/mips/mips.c (mips_declare_common_object): New function,
10015         mostly split out from...
10016         (mips_output_aligned_decl_common): ...here.
10017         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
10018         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
10019         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
10020         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
10022 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10024         PR c/16392
10025         * function.c (assign_parms): Fix typo from previous change.
10027 2004-07-07  Jason Merrill  <jason@redhat.com>
10029         PR c++/15815
10030         * doc/extend.texi (C++ Interface): Correct information and
10031         discourage use.
10033 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
10035         PR target/16130
10036         PR target/16142
10037         PR target/16143
10038         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
10039         insn.
10041 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10043         PR target/1679.
10044         * config/m32r/m32r.c (m32r_function_symbol): New function:
10045         Generate a symbol name RTX with the correct m32r specific flags
10046         set.
10047         (block_move_call): Use new function to generate correct symbol.
10048         * config/m32r/m32r-protos.h: Add prototype for new funcion.
10049         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
10050         function.
10052 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
10054         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
10055         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
10056         TYPE_BINFO_BASETYPE): Remove.
10057         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
10058         to ...
10059         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
10060         here.
10061         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
10062         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
10063         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
10064         (struct tree_binfo): Rename base_types to base_binfos.
10065         * alias.c (record_component_aliases): Adjust BINFO macros.
10066         * dbxout.c (dbxout_type): Likewise.
10067         * dwarf2out.c (gen_member_die): Likewise.
10068         * sdbout.c (sdbout_one_type): Likewise.
10069         * tree-dump.c (deque_and_dump): Likewise.
10070         * config/i386/i386.c (classify_argument,
10071         contains_128bit_aligned_vector_p): Likewise.
10073 2004-07-07  Nick Clifton  <nickc@redhat.com>
10075         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
10076         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
10078 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
10080         * vec.h: Fix the example use.
10082 2004-07-06  Richard Henderson  <rth@redhat.com>
10084         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
10085         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
10086         * tree-inline.c (copy_body_r, setup_one_parameter,
10087         initialize_inlined_parameters, expand_call_inline,
10088         declare_inline_vars): Don't check it.
10089         (expand_calls_inline): Remove old version, rename new version
10090         from gimple_expand_calls_inline.
10091         * tree-optimize.c (execute_gimple): Remove.
10092         (pass_gimple): Don't run anything.
10094 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
10096         * doc/sourcebuild.texi: Use semicolons instead of commas in
10097         section title.
10099 2004-07-06  Richard Henderson  <rth@redhat.com>
10101         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
10102         (sra_walk_modify_expr, scan_init): Likewise.
10103         (generate_element_zero): Check visited before scanning children.
10104         (generate_element_init): Set visited on error.
10105         (scalarize_init): Handle generate_element_init failure similar
10106         to use_block_copy.
10108 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
10110         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
10111         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
10113 2004-07-06  Richard Henderson  <rth@redhat.com>
10115         * config/i386/i386.c (legitimize_pic_address): Make static.
10116         (legitimize_address): Handle CONST with TLS operand.
10117         (ix86_expand_move): Don't call legitimize_pic_address directly.
10118         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
10120 2004-07-06  Roger Sayle  <roger@eyesopen.com>
10122         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
10123         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
10124         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
10125         is currently executed unconditionally, i.e. not in "else_bb".
10127 2004-07-06  Steven Bosscher  <stevenb@suse.de>
10129         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
10130         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10131         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
10132         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10133         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
10134         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10135         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
10136         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10137         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
10138         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10139         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
10140         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10141         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
10142         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10143         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
10144         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10146 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
10148         * dojump.c (do_jump): REFERENCE_EXPR is dead.
10149         * expr.c (expand_expr_real_1): Ditto.
10150         * tree-inline.c (estimate_num_insns_1): Ditto.
10151         * tree-pretty-print.c (dump_generic_node): Ditto.
10152         (op_symbol): Ditto.
10153         * tree.def: Ditto.
10155 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
10157         * tree-ssa-pre.c (reference_node_pool): New pool.
10158         (find_or_generate_expression): Class 'r' is okay too.
10159         (create_value_expr_from): Ditto.
10160         (add_to_sets): LHS should not include vuses.
10161         (eliminate): Ditto.
10162         (compute_avail): Reverse ordering of tests.
10163         Valuize INDIRECT_REF as well.
10165 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
10167         PR rtl-optimization/16380
10168         * loop.c (check_dbra_loop): Sink comparison instructions if they
10169         do something other than set cc0.
10171 2004-07-06  James E Wilson  <wilson@specifixinc.com>
10173         * doc/interface.texi (longjmp and automatic variables): Delete
10174         paragraph recommending taking the address of a variable.
10176 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
10178         * vec.h (VEC_embedded_alloc): Remove.
10179         (VEC_embedded_size, VEC_embedded_init): New.
10180         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
10181         MEM_STAT_INFO.
10182         (VEC_truncate): New.
10183         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
10184         (vec_embedded_alloc): Remove.
10185         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
10186         (vec_embedded_alloc): Remove.
10188 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
10190         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
10191         (gt-langhooks.h): Remove.
10193 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
10195         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
10197 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10199         * config/sparc/sparc.c (get_pc_symbol): Rename into
10200         add_pc_to_pic_symbol.
10201         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
10202         (load_pic_register): Account for previous changes.
10203         Use reg_names.  Don't create the label twice.
10204         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
10205         UNSPEC_LOAD_PCREL_SYM.
10206         (get_pc): Rename into load_pcrel_sym.  Add predicate to
10207         operands.  Remove condition.
10209 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
10211         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
10212         RECORD, UNION & QUAL_UNION is actually a binfo.
10214         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
10215         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
10216         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
10217         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
10218         * dwarf2out.c (add_data_member_location_attribute): Likewise.
10219         (gen_inheritance_die): Likewise.
10220         * tree-dump.c (deque_and_dump): Likewise.
10221         * doc/c-tree.texi (Binfos): Add under reconstruction note.
10223 2004-07-06  Steven Bosscher  <stevenb@suse.de>
10225         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
10226         Define.
10227         * config/mcore/mcore.md: Model memory latency with a simple DFA
10228         pipeline description instead of a define_function_unit.
10230 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10232         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
10233         * langhooks.h (var_mod_type_p): Likewise.
10234         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
10235         * expr.c (count_type_elements): Properly handle return from
10236         array_type_nelts and properly test for overflow.
10237         * gimplify.c (gimplify_init_constructor): Properly handle return
10238         from array_type_nelts.
10239         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
10240         * integrate.c (copy_decl_for_inlining): Correct comments.
10241         * tree-inline.c (remap_decl): Update comments, remove dead code,
10242         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
10243         (remap_type): Only remap if variably modified by vars in function
10244         being inlined.
10245         (copy_body_r): Use compatible_type langhooks to see when can fold.
10246         (setup_one_parameter): Don't remap type.
10247         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
10248         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
10249         compute TREE_INVARIANT for decl case.
10250         (find_var_from_fn): New function.
10251         (variably_modified_type_p): Add arg and call new function.
10252         * tree.h (variably_modified_type_p): Add extra arg.
10254 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10256         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
10257         (goto_handler_and_restore_v9): Delete disabled insn.
10258         (goto_handler_and_restore_v9_sp64): Likewise.
10260 2004-07-05  Roger Sayle  <roger@eyesopen.com>
10262         * calls.c (load_register_parameters): Call expand_shift instead
10263         of expand_binop with ashl_optab (or other shift optab) directly.
10264         * expr.c (emit_group_load, emit_group_store): Likewise.
10265         * function.c (assign_parm_setup_block): Likewise.
10266         * stmt.c (shift_return_value): Likewise.
10268 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
10270         * expr.c (expand_assignment): Disable the bitfield += optimizations.
10272 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10274         * doc/sourcebuild.texi: Revert previous patch.
10276 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10278         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
10279         TARGET_MEM_FUNCTIONS.
10280         * system.h: Poison TARGET_MEM_FUNCTIONS.
10281         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
10282         bcmp_libfunc, bzero_libfunc): Remove.
10283         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
10284         bzero_libfunc.
10285         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
10286         * doc/standards.texi: Don't mention calling BSD string functions.
10287         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
10288         * config/vax/t-memfuncs: New.
10289         * config/memcmp.c, config/memcpy.c, config/memmove.c,
10290         config/memset.c: New.
10291         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
10292         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
10293         vax/t-memfuncs.
10294         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
10295         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
10296         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
10297         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
10298         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
10299         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
10300         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
10301         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
10302         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
10303         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
10305 2004-07-05  Richard Henderson  <rth@redhat.com>
10307         * function.c (assign_parm_setup_reg): Properly rename variables in
10308         FUNCTION_ARG_CALLEE_COPIES section.
10310 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
10312         * tree-mudflap.c: Include cgraph.h.
10313         (mf_init_extern_trees): Rename to mudflap_init.  Export.
10314         Rewrite to create synthetic declarations instead of looking
10315         up declarations from mf-runtime.h.
10316         (mf_make_builtin, mf_make_cache_struct_type): New functions.
10317         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
10318         Correct commentary.
10319         (execute_mudflap_function_decls, mudflap_register_call):
10320         Don't call mf_init_extern_trees.
10321         (mudflap_finish_file): Use cgraph_build_static_cdtor.
10323         * tree-mudflap.h: Update prototypes.
10324         * c-mudflap.c: Delete file.
10325         * c-common.c: Include tree-mudflap.h.
10326         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
10327         * Makefile.in: Remove all references to c-mudflap.o.
10328         Update dependencies.
10330 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10332         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
10333         displacements with the spatial-locality cache-control completer.
10335 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
10337         * langhooks.c: Don't include gt-langhooks.h.
10338         (var_labelno): Delete.
10339         (lhd_set_decl_assembler_name): Do not append a distinguishing
10340         number to file-scope internal-linkage declarations for the first
10341         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
10342         the declaration itself (if at block scope), or its containing
10343         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
10344         number.
10346         * opts.c (cur_in_fname): New global.
10347         * opts.h: Declare it.
10348         * tree.c: Include opts.h.
10349         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
10350         DECL_UID equal to cur_in_fname.
10351         (copy_node_stat): Do not change DECL_UID when copying a
10352         TRANSLATION_UNIT_DECL.
10353         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
10354         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
10356         * c-decl.c (c_static_assembler_name): Delete.
10357         * c-tree.h (c_static_assembler_name): Delete prototype.
10358         * c-lang.c, objc/objc-lang.c: Don't override
10359         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
10361         * Makefile.in (tree.o): Update dependencies.
10362         (GTFILES): Remove langhooks.c.
10364 2004-07-05  Roger Sayle  <roger@eyesopen.com>
10366         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
10367         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
10368         Normalize "X % C" as "X % -C" for signed modulus and negative C.
10369         Optimize "X % -Y" as "X % Y" for signed modulus.
10370         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
10371         into "((unsigned) X % Y) == 0".
10373 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10375         * sourcebuild.texi (Config Fragments): Use @comma{} in
10376         cross-reference to section title.
10378 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10380         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
10381         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
10382         (gimplify_target_expr, gimplify_expr): Likewise.
10383         (copy_if_shared_r): No longer need special case for BIND_EXPR.
10384         (unshare_body, unvisit_body): Only look at nested if BODY_P is
10385         whole function.
10386         (gimplify_compound_lval): See if we can strip any useless conversion.
10387         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
10388         from RHS, not LHS.
10389         (gimplify_modify_expr_to_memset): Likewise.
10390         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
10391         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
10392         (declare_inline_vars): Likewise.
10393         (walk_type_fields): New function.
10394         (walk_tree): Use it.
10395         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
10397         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
10398         (sra_walk_modify_expr): Allow init function to fail.
10399         (scan_init): Now returns bool.
10400         (generate_element_init): If can't understand INIT, return false.
10401         (scalarize_init): Return false if generate_element_init does.
10403         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
10404         print bounds.
10406         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
10407         bounds if bounds aren't constant.
10409         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
10411         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
10412         to type hooks; remove bogus PARAMS.
10414 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
10416         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
10417         * dwarf2out.c (add_data_member_location_attribute): Check for
10418         TREE_BINFO.
10419         * tree.c (tree_node_kinds): Add "binfos".
10420         (binfo_lang_slots): New.
10421         (make_node_stat): Add TREE_BINFO.
10422         (make_tree_binfo_stat): New.
10423         (tree_node_structure): Add TREE_BINFO.
10424         * tree.def (TREE_BINFO): New.
10425         * tree.h (REC_OR_UNION_CHECK): Rename to ...
10426         (RECORD_OR_UNION_CHECK): ... here.
10427         (NOT_RECORD_OR_UNION_CHECK): New.
10428         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
10429         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
10430         RECORD_OR_UNION_CHECK.
10431         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
10432         (TYPE_LANG_SLOT_1): New.
10433         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
10434         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
10435         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
10436         (BINFO_ELTS): Remove.
10437         (BINFO_LANG_SLOT): New.
10438         (struct tree_binfo): New.
10439         (binfo_lang_slots): Declare.
10440         (enum tree_node_structure_enum): Add TS_BINFO.
10441         (union tree_node): Add binfo.
10442         (make_tree_binfo_stat): Declare.
10443         (make_tree_binfo): New.
10444         (enum tree_node_kind): Add binfo_kind.
10446         * objc/objc-act.c (start_class, objc_declare_protocols,
10447         start_protocols): Use TYPE_LANG_SLOT_1.
10448         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
10449         to ...
10450         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
10451         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
10452         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
10453         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
10455 2004-07-05  Steven Bosscher  <stevenb@suse.de>
10457         * rtl.h (struct rtx_def): Remove the integrated flag.
10458         Use the return_val flag for MEM_SCALAR_P.
10459         Reshuffle and update flags in CLEAR_RTX_FLAGS.
10461 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
10463         PR target/16357
10464         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
10465         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
10466         move_by_pieces.
10468 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
10470         * var-tracking.c: Fix some comments.
10471         (frame_stack_adjust): New.
10472         (vt_stack_adjustments): Init stack_adjust of entry block to
10473         minus stack adjustment of function prologue.
10474         (adjust_stack_reference): Do not adjust if adjustment == 0.
10475         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
10476         (emit_notes_in_bb): Likewise.
10477         (vt_add_function_parameters): Do not adjust locations of
10478         function arguments.
10479         (vt_initialize): Compute the stack adjustment of function
10480         prologue and offset the initial "location" of frame_base_decl
10481         from the stack pointer after prologue.
10483 2004-07-04  Richard Henderson  <rth@redhat.com>
10485         * function.c (struct assign_parm_data_all): New.
10486         (struct assign_parm_data_one): New.
10487         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
10488         assign_parm_find_data_types, assign_parms_setup_varargs,
10489         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
10490         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
10491         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
10492         assign_parm_setup_block, assign_parm_setup_reg,
10493         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
10494         (assign_parms): ... here.
10496 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
10498         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
10499         now are bitmap_set_t's.
10500         (bitmap_insert_into_set): No point in inserting the value if
10501         it's invariant.
10502         (bitmap_set_contains): New function.
10503         (bitmap_set_replace_value): Add comment on why we do it
10504         this way.
10505         (set_contains): Removed.
10506         (bitmap_set_subtract_from_value_set): New name of
10507         set_subtract now that it's arguments are two different
10508         types of sets.
10509         Update callers.
10510         (bitmap_find_leader): Change algorithm used.
10511         (find_or_generate_expression): Update use of functions for new
10512         bitmap sets.
10513         (create_expression_by_pieces): Ditto.
10514         (insert_aux): Ditto.
10515         (insert): Ditto.
10516         (add_to_sets): Ditto.
10517         (init_pre): Ditto.
10518         (execute_pre): Ditto.
10519         (compute_avail): Ditto.
10520         Also ignore virtual phis.
10522 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
10524         * combine.c (simplify_comparison): Fix comment typo.
10526 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10528         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
10529         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
10530         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
10531         (output_restore): Change parameter from 'insn' to 'pat'.
10532         (output_return): Adjust call to output_restore.
10533         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
10534         Adjust call to output_restore.
10536 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
10538         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
10539         and assert system is bsd.
10541 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
10543         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
10544         (TARGET_SWITCHES): Remove -mdebugc.
10545         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
10546         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
10547         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
10548         (sle_[sd]i_reg): Delete.
10550 2004-07-04  Steven Bosscher  <stevenb@suse.de>
10552         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
10553         Define.
10554         * config/iq2000/iq2000.md: Translate old pipeline description to an
10555         equivalent new one.
10557 2004-07-04  Roger Sayle  <roger@eyesopen.com>
10559         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
10560         Ensure the replacement rhs is valid gimple before performing
10561         the substitution.  Return false if these sanity checks fail.
10562         (fold_stmt): Only set changed to true, if set_rhs returns true.
10563         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
10564         succeeds.
10566 2004-07-04  Richard Henderson  <rth@redhat.com>
10568         PR c/16348
10569         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
10571 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
10573         * configure.ac (ranlib_flags): New variable.
10574         * Makefile.in (RANLIB_FLAGS): New variable.
10575         (libbackend.a): Use it.
10576         * configure: Regenerated.
10578 2004-07-04  Roger Sayle  <roger@eyesopen.com>
10580         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
10581         a "sign mask" instead of using ashr_optab directly.
10583 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
10585         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
10586         * doc/cppopts.texi: Clarify processing of command-line defines.
10588 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
10590         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
10592 2004-07-04  Richard Henderson  <rth@redhat.com>
10594         * rtl.def (ADDRESSOF): Remove.
10595         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
10596         (find_base_term, memrefs_conflict_p): Likewise.
10597         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
10598         (fold_rtx, cse_insn, set_live_p): Likewise.
10599         * dwarf2out.c (mem_loc_descriptor): Likewise.
10600         (add_location_or_const_value_attribute): Likewise.
10601         * emit-rtl.c (copy_insn_1): Likewise.
10602         * explow.c (memory_address): Likewise.
10603         * expmed.c (store_split_bit_field): Likewise.
10604         * expr.c (expand_expr_real_1): Likewise.
10605         * function.c (instantiate_decl
10606         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
10607         * genrecog.c (preds, validate_pattern): Likewise.
10608         * integrate.c (copy_rtx_and_substitute): Likewise.
10609         * recog.c (general_operand, register_operand): Likewise.
10610         (memory_address_p): Likwise.
10611         * reload1.c (eliminate_regs, elimination_effects): Likewise.
10612         * rtl.c (copy_rtx): Likewise.
10613         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
10614         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
10615         * rtlhooks.c (gen_lowpart_general): Likewise.
10616         * stmt.c (expand_asm_operands): Likewise.
10617         * web.c (entry_register, replace_ref, web_main): Likewise.
10618         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
10619         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
10620         * config/arm/arm.c (thumb_rtx_costs): Likewise.
10621         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
10622         * config/frv/frv.c (move_destination_operand, move_source_operand,
10623         condexec_dest_operand, condexec_source_operand,
10624         condexec_memory_operand): Likewise.
10625         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
10626         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
10627         (destination_xfmode_operand): Likewise.
10628         * config/mips/mips.h (PREDICATE_CODES): Likewise.
10629         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
10630         * config/s390/s390.c (general_s_operand): Likewise.
10631         * config/s390/s390.md (mov*): Likewise.
10632         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
10634         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
10635         * expr.c (expand_expr_real_1): Likewise.
10636         * stmt.c (expand_decl): Likewise.
10637         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
10639         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
10640         postponed_insns, put_var_into_stack, put_reg_into_stack,
10641         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
10642         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
10643         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
10644         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
10645         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
10646         purge_bitfield_addressof_replacements, purge_addressof_replacements,
10647         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
10648         struct insns_for_mem_walk_info, insns_for_mem_walk,
10649         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
10650         setjmp_protect_args): Remove.
10651         (push_function_context_to): Don't handle var_refs_queue.
10652         (pop_function_context_from, free_after_compilation): Likewise.
10653         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
10654         (assign_parms, allocate_struct_function): Likewise.
10655         (use_register_for_decl): New.
10656         (expand_function_end): Don't setjmp_protect.
10657         * function.h (struct emit_status): Update commentary.
10658         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
10659         (max_parm_reg, parm_reg_stack_loc): Remove.
10660         * passes.c (DFI_addressof): Remove.
10661         (dump_file_info): Remove addressof.
10662         (rest_of_handle_addressof): Remove.
10663         (rest_of_compilation): Don't call it.
10664         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
10665         * stmt.c (expand_decl): Use use_register_for_decl.
10666         * tree.h: Update decls.
10667         * web.c (mark_addressof): Remove.
10668         * doc/invoke.texi (-dF): Remove.
10670 2004-07-03  Richard Henderson  <rth@redhat.com>
10672         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
10673         instead of gen_mem_addressof.
10674         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
10675         TImode output register.
10677 2004-07-03  Richard Henderson  <rth@redhat.com>
10679         PR tree-optimization/16341
10680         * tree-sra.c (sra_walk_function): Increment to next stmt before
10681         processing the current stmt.
10682         (sra_insert_after): Always use BSI_SAME_STMT.
10684 2004-07-03  Richard Henderson  <rth@redhat.com>
10686         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
10687         fp plus with minus.
10689 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
10691         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
10692         with tree_int_cst_equal.
10694 2004-07-03  Andreas Schwab  <schwab@suse.de>
10696         * config/ia64/ia64.md: Define new attribute "empty".
10697         (prologue_use, nop_x, insn_group_barrier): Set it.
10699         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
10700         skip over "empty" insns.
10702 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10704         * tree-inline.c (initialize_inlined_parameters): Pass proper function
10705         context to gimplify_body.
10706         (walk_tree): Don't walk into types twice.
10707         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
10709         * tree-sra.c (generate_element_init): Remove any useless conversions.
10711         * gimplify.c (gimplify_conversion): Remove stripping useless
10712         conversions from here.
10713         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
10714         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
10715         Unshare before substituting PLACEHOLDER_EXPR.
10716         (gimplify_modify_expr_to_memset): Likewise.
10717         Pass address of TO to memset, not TO itself.
10718         (gimplify_init_constructor): Make copy of OBJECT so we have it each
10719         time we make an expression (to match a PLACEHOLDER_EXPR).
10721         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
10722         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
10723         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
10724         * tree-ssa-dom.c (local_fold): Likewise.
10726         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
10727         * langhooks.h (strct lang_hooks): New field type_max_size.
10728         * function.c (assign_temp): Call it.
10730 2004-07-03  Steven Bosscher  <stevenb@suse.de>
10732         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
10733         * config/sh/sh.md: Convert the SH1 pipeline description to
10734         a DFA model.
10736 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
10738         * c-decl.c (struct c_binding): Remove contour field; add
10739         depth, invisible, nested fields.
10740         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
10741         (B_IN_EXTERNAL_SCOPE): New convenience macros.
10742         (bind): Add invisible and nested arguments. Initialize
10743         new fields of struct c_binding; adjust loop scanning for
10744         insertion point.
10745         (free_binding_and_advance): Clear structure with memset.
10746         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
10747         in file scope, even if it's in external scope too.
10748         (pushdecl): Adjust to match.  Create invisible file-scope
10749         declarations for block-scope forward declarations of static functions.
10750         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
10751         (undeclared_variable, lookup_label, declare_label, define_label)
10752         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
10753         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
10754         (store_parm_decls_oldstyle): Adjust to match.
10755         (diagnose_mismatched_decls): Correct handling of linkage clashes.
10756         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
10758         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
10759         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
10761 2004-07-02  Richard Henderson  <rth@redhat.com>
10763         * c-decl.c (grokdeclarator): Don't frob current_function_decl
10764         around variable_size.
10765         (set_decl_nonlocal): Remove.
10766         (store_parm_decls): Add stmts for pending sizes.
10767         * calls.c (calls_function, calls_function_1): Remove.
10768         (precompute_arguments): Don't call it.
10769         * cfgexpand.c (set_save_expr_context): Remove.
10770         (tree_expand_cfg): Don't call it.
10771         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
10772         (dwarf2out_finish): Likewise.
10773         * expr.c (emit_block_move): Adjust addresses to BLKmode.
10774         (store_constructor): Don't pre-evaluate SAVE_EXPR.
10775         (safe_from_p): Don't queue SAVE_EXPRs.
10776         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
10777         or build plain VAR_DECLs.
10778         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
10779         (fold): Likewise.
10780         (fold_checksum_tree): Don't special-case SAVE_EXPR.
10781         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
10782         (put_var_into_stack): Don't handle SAVE_EXPR.
10783         (gen_mem_addressof): Likewise.
10784         * function.h (struct function): Remove x_save_expr_regs.
10785         (save_expr_regs): Remove.
10786         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
10787         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
10788         * stor-layout.c (variable_size): Don't set it.
10789         (force_type_save_exprs, force_type_save_exprs_1): Remove.
10790         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
10791         all callers.  Don't set SAVE_EXPR_CONTEXT.
10792         * tree-inline.h (remap_save_expr): Update decl.
10793         * tree.c (save_expr): Update build size.
10794         (first_rtl_op): Don't handle SAVE_EXPR.
10795         (unsave_expr_1, contains_placeholder_p): Likewise.
10796         (decl_function_context): Likewise.
10797         * tree.def (SAVE_EXPR): Remove args 1 and 2.
10798         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
10799         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
10801 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
10803         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
10804         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
10805         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
10806         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
10807         some first-person references and patronizing comments.  Based on
10808         printed manual.
10809         * doc/invoke.texi: Don't reference fortran@gnu.org.
10810         * doc/trouble.texi (Warning when a non-void function value is
10811         ignored): Rewrite.  From Russ Allbery and Chris Devers.
10813 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
10815         * tree-ssa-pre.c (bitmap_set_t): New.
10816         (bb_value_sets): avail_out is now a bitmap_set_t.
10817         (bitmap_find_leader): New function.
10818         (bitmap_value_insert_into_set): Ditto.
10819         (bitmap_set_copy): Ditto.
10820         (bitmap_value_replace_in_set): Ditto.
10821         (bitmap_set_contains_value): Ditto.
10822         (bitmap_set_new): Ditto.
10823         (bitmap_set_pool): New pool.
10824         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
10825         (insert_aux): Ditto.
10826         (add_to_sets): Ditto.
10827         (compute_avail): Ditto
10828         (eliminate): Ditto.
10829         (init_pre): Ditto.
10830         (fini_pre): Ditto.
10831         (execute_pre): Ditto.
10833 2004-07-02  Roger Sayle  <roger@eyesopen.com>
10835         * config/rs6000/rs6000.c (struct processor_costs): New structure
10836         used to hold instruction latencies/sizes for processor types.
10837         (rs6000_cost): New global variable pointing to current CPU's costs.
10838         (rs6000_override_options): Initialize rs6000_cost to point to the
10839         appropriate cost table based upon rs6000_cpu and optimize_size.
10840         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
10841         timings inline.
10843 2004-07-02  Richard Henderson  <rth@redhat.com>
10845         * expmed.c (make_tree): Don't use SET_DECL_RTL.
10847 2004-07-02  Steven Bosscher  <stevenb@suse.de>
10849         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
10851 2004-07-01  Richard Henderson  <rth@redhat.com>
10853         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
10854         (alpha_gp_save_rtx): Use assign_stack_local instead of
10855         gen_mem_addressof.
10857 2004-07-01  Richard Henderson  <rth@redhat.com>
10859         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
10860         (alpha_rtx_cost_data): Update to match.
10861         (alpha_rtx_cost_size): New.
10862         (alpha_rtx_costs): Honor optimize_size.
10864 2004-07-01  Richard Henderson  <rth@redhat.com>
10866         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
10867         * cfgexpand.c (tree_expand_cfg): Do it here.
10868         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
10869         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
10870         * config/mips/mips.c (mips_output_mi_thunk): And here.
10871         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
10872         * config/sh/sh.c (sh_output_mi_thunk): And here.
10873         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
10875 2004-07-01  Richard Henderson  <rth@redhat.com>
10877         * tree.def (RTL_EXPR): Remove.
10878         * c-typeck.c (lvalue_p): Don't handle it.
10879         * expr.c (safe_from_p): Likewise.
10880         (expand_expr_real_1): Likewise.
10881         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
10882         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
10883         * gengtype.c (adjust_field_tree_exp): Likewise.
10884         * stmt.c (warn_if_unused_value): Likewise.
10885         * tree-gimple.c (recalculate_side_effects): Likewise.
10886         * tree-pretty-print.c (dump_generic_node): Likewise.
10887         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
10888         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
10889         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
10891         * stmt.c (struct stmt_status): Remove x_last_expr_type,
10892         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
10893         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
10894         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
10895         all the bits that tracked last_expr.
10896         (expand_end_bindings): Don't track last_expr.
10897         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
10898         (clear_last_expr): Remove.
10899         (expand_asm): Don't call it.
10900         (expand_asm_operands, expand_end_cond): Likewise.
10901         (expand_naked_return, expand_null_return_1): Likewise.
10902         * c-typeck.c (c_begin_compound_stmt): Likewise.
10903         * cfgexpand.c (expand_block): Use expand_expr_stmt.
10904         * expr.c (expand_expr_real_1): Likewise.
10905         * tree.h: Update prototypes.
10907         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
10908         (struct emit_status): Remove sequence_rtl_expr.
10909         (struct function): Remove x_rtl_expr_chain.
10910         (seq_rtl_expr, rtl_expr_chain): Remove.
10911         * function.c (struct temp_slot): Remove rtl_expr.
10912         (assign_stack_temp_for_type): Don't set it.
10913         (free_temp_slots, pop_temp_slots): Don't check it.
10914         (free_after_compilation): Don't clear x_rtl_expr_chain.
10915         (fixup_var_refs): Don't search it.
10916         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
10917         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
10918         or seq_rtl_expr.
10919         (push_topmost_sequence): Likewise.
10920         (end_sequence, init_emit): Likewise.
10921         (start_sequence_for_rtl_expr): Remove.
10922         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
10923         * rtl.h (preserve_rtl_expr_result): Remove.
10925 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
10927         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
10928         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
10929         typos.
10931 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
10933         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
10934         (STANDARD_STARTFILE_PREFIX_2): Define.
10935         (standard_startfile_prefix_1): Initialize to
10936         STANDARD_STARTFILE_PREFIX_1.
10937         (standard_startfile_prefix_2): Initialize to
10938         STANDARD_STARTFILE_PREFIX_2.
10939         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
10940         (STANDARD_STARTFILE_PREFIX_1): Define.
10941         (STANDARD_STARTFILE_PREFIX_2): Define.
10942         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
10943         (STANDARD_STARTFILE_PREFIX_2): Document.
10945 2004-07-01  Richard Henderson  <rth@redhat.com>
10947         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
10948         in order to disable scalarization.  Instead set a flag and wait
10949         for a candidate decl.
10951 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
10953         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
10954         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
10955         Use terminology "testsuite" and "enumerated".
10957 2004-07-01  Richard Henderson  <rth@redhat.com>
10959         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
10960         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
10961         (initial_return_save): Likewise.
10962         (flush_queued_reg_saves): Remap register numbers.
10963         (dwarf2out_return_reg): Likewise.
10965 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10967         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
10969         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
10970         access functions for lower bound and element size and only output
10971         if lower bound nonzero or element size not same as that of type.
10972         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
10974 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
10976         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
10978 2004-07-01  Per Bothner  <per@bothner.com>
10980         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
10982 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
10984         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
10985         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
10986         first operand.  Don't optimize if the bitfield is volatile.
10988 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
10990         * c-pretty-print.c (pp_c_postfix_expression): Handle
10991         floating-point comparison operators.
10992         (pp_c_expression): Pass floating-point comparison
10993         operators to pp_c_postfix_expression.
10995 2004-07-01  Roger Sayle  <roger@eyesopen.com>
10997         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
10998         rtx_cost instead of "had_mult" to determine whether the transformed
10999         expression is cheaper than the original.
11001 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
11003         * alias.c (get_alias_set, canon_rtx, get_addr,
11004         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
11005         Use MEM_P.
11006         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
11007         expand_builtin): Likewise.
11008         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
11009         Likewise.
11010         * combine.c (can_combine_p, combinable_i3pat, try_combine,
11011         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
11012         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
11013         record_dead_and_set_regs_1, get_last_value_validate,
11014         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
11015         * cse.c (check_dependence, canon_hash, equiv_constant,
11016         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
11017         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
11018         count_reg_usage): Likewise.
11019         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
11020         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
11021         cselib_record_sets): Likewise.
11022         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
11023         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
11024         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
11025         * df.c (df_uses_record): Likewise.
11026         * dojump (do_jump): Likewise.
11027         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
11028         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
11029         decl_start_label): Likewise.
11030         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
11031         operand_subword, change_address_1, make_safe_from): Likewise.
11032         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
11033         stabilize, force_not_mem): Likewise.
11034         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
11035         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
11036         * expr.c (convert_move, convert_modes, emit_block_move,
11037         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
11038         emit_move_insn_1, expand_assignment, store_expr,
11039         store_constructor_field, store_constructor, store_field,
11040         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
11041         Likewise.
11042         * final.c (cleanup_subreg_operands, alter_subreg,
11043         get_mem_expr_from_op): Likewise.
11044         * flow.c (notice_stack_pointer_modification_1,
11045         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
11046         Likewise.
11047         * function.c (mark_temp_addr_taken, preserve_temp_slots,
11048         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
11049         optimize_bit_field, flush_addressof, purge_addressof_1,
11050         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
11051         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
11052         keep_stack_depressed): Likewise.
11053         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
11054         noce_process_if_block, find_memory): Likewise.
11055         * integrate.c (subst_constants, allocate_initial_values): Likewise.
11056         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
11057         update_equiv_regs): Likewise.
11058         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
11059         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
11060         * optabs.c (expand_abs, emit_unop_insn): Likewise.
11061         * passes.c (rest_of_handle_final): Likewise.
11062         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
11063         move2add_note_store): Likewise.
11064         * ra-build.c (detect_remat_webs): Likewise.
11065         * ra-debug.c (dump_static_insn_cost): Likewise.
11066         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
11067         * recog.c (validate_change, apply_change_group, cancel_changes,
11068         validate_replace_rtx_1, general_operand, register_operand,
11069         nonmemory_operand, push_operand, pop_operand, memory_operand,
11070         indirect_operand, asm_operand_ok, offsettable_memref_p,
11071         offsettable_nonstrict_memref_p, constrain_operands,
11072         store_data_bypass_p): Likewise.
11073         * reg-stack.c (subst_stack_regs_pat): Likewise.
11074         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
11075         copy_cost, reg_scan_mark_refs): Likewise.
11076         * regmove.c (optimize_reg_copy_3, stack_memref_p,
11077         combine_stack_adjustments_for_block): Likewise.
11078         * regrename.c (copyprop_hardreg_forward_1): Likewise.
11079         * reload.c (can_reload_into, push_reload, decompose, immune_p,
11080         find_reloads, find_reloads_address, find_reloads_address_1,
11081         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
11082         find_equiv_reg): Likewise.
11083         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
11084         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
11085         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
11086         delete_address_reloads): Likewise.
11087         * resource.c (mark_referenced_resources): Likewise.
11088         * rtlanal.c (get_jump_table_offset, count_occurrences,
11089         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
11090         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
11091         num_sign_bit_copies1): Likewise.
11092         * rtlhooks.c (gen_lowpart_general): Likewise.
11093         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11094         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
11095         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
11096         sdbout_global_decl): Likewise.
11097         * simplify-rtx.c (simplify_subreg): Likewise.
11098         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
11099         expand_anon_union_decl, expand_end_case_type): Likewise.
11100         * unroll.c (calculate_giv_inc): Likewise.
11101         * var-tracking.c (stack_adjust_offset_pre_post,
11102         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
11103         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
11104         vt_add_function_parameters): Likewise.
11105         * varasm.c (make_var_volatile, notice_global_symbol,
11106         assemble_external, decode_addr_const, mark_weak,
11107         default_encode_section_info): Likewise.
11109 2004-07-01  Steven Bosscher  <stevenb@suse.de>
11111         * stmt.c (check_seenlabel): Remove.
11112         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
11114 2004-07-01  Richard Henderson  <rth@redhat.com>
11116         * function.h (struct function): Remove x_function_call_count.
11117         (function_call_count): Remove.
11118         * calls.c (expand_call): Don't set it.
11119         * integrate.c (copy_rtx_and_substitute): Likewise.
11121         * function.h (struct function): Remove x_cleanup_label.
11122         (cleanup_label): Remove.
11123         * stmt.c (expand_value_return): Don't use it.
11124         * function.c (free_after_compilation): Don't set it.
11125         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
11126         * cfgexpand.c (tree_expand_cfg): Update call.
11127         * tree.h (expand_function_start): Update decl.
11129 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
11131         PR c/1027
11132         * c-lang.c (c_initialize_diagnostics): Move from here ...
11133         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
11134         (c_tree_printer): Use pretty-printer to format %T.
11135         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
11136         before '*' if not C++.
11137         (pp_c_direct_abstract_declarator): Don't try to print array upper
11138         bound for flexible array members.
11139         * c-tree.h: Include "diagnostic.h".
11140         (c_initialize_diagnostics): Declare.
11141         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
11142         * c-format.c (format_type_warning): New function.  Improve
11143         diagnostics for incorrect format argument types.
11144         (check_format_types): Use it.  Add two parameters.  Use the
11145         TYPE_MAIN_VARIANT of wanted_type.
11146         (check_format_info_main): Pass new parameters to
11147         check_format_types.
11148         (struct format_wanted_type): Update comment.
11150 2004-07-01  Nick Clifton  <nickc@redhat.com>
11152         * target.h (struct gcc_target): Add new field to struct cxx:
11153         import_export_class.
11154         * target-def.h (TARGET_CXX): Initialise the new field.
11155         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
11156         the new field.
11157         * doc/tm.texi: Document the new target hook.
11159 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
11161         * builtins.c (fold_builtin_classify): Fix typo.
11163 2004-07-01  Richard Henderson  <rth@redhat.com>
11165         * function.c (identify_blocks, identify_blocks_1): Remove.
11166         * function.h (identify_blocks): Remove.
11167         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
11169 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
11171         * builtins.c (fold_builtin_classify): New.
11172         (fold_builtin_unordered_cmp): Fix commentary.
11173         (fold_builtin): Use it.
11174         * builtins.def: Define builtins for isnan,
11175         isnanf, isnanl, finite, finitef, finitel,
11176         isinf, isinff, isinfl.
11178 2004-07-01  Richard Henderson  <rth@redhat.com>
11180         * function.h (struct function): Remove dont_emit_block_notes.
11181         * gimple-low.c (lower_function_body): Don't set it.
11182         * cfgexpand.c (expand_block): Don't check it.
11183         * cfglayout.c (insn_locators_initialize): Likewise.
11184         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
11185         * passes.c (rest_of_compilation): Likewise.
11186         * stmt.c (expand_start_bindings_and_block): Likewise.
11187         (expand_end_bindings): Likewise.
11189 2004-07-01  Richard Henderson  <rth@redhat.com>
11191         * cgraph.h (cgraph_build_static_cdtor): Declare.
11192         * cgraphunit.c (cgraph_build_static_cdtor): New.
11193         * c-objc-common.c (build_cdtor): Use it.
11194         * coverage.c (create_coverage): Likewise.
11195         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
11196         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
11198 See ChangeLog.11 for earlier changes.