OSDN Git Service

5137c8ce0319f901a545762c703c226fce069961
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
2
3         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
4         (struct kernel_old_ucontext): Delete.
5         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
6         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
7         when IN_LIGGCC2.
8
9 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
10
11         * toplev.c (process_options): Fix typo.
12
13 2004-09-01  Richard Henderson  <rth@redhat.com>
14
15         PR middle-end/17258
16         * calls.c (initialize_argument_information): Tighten pass-through
17         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
18         Use build_fold_addr_expr.
19         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
20         that assumes ADDR_EXPR allocates stack space.
21         * fold-const.c (build_fold_addr_expr_with_type): Look through
22         WITH_SIZE_EXPR.
23
24 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
25
26         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
27         * ggc.h (ggc_alloc_rtx): Delete.
28
29 2004-09-01  Roger Sayle  <roger@eyesopen.com>
30
31         * expmed.c (enum alg_code): Remove long unused enumeration values.
32         (struct mult_cost): New structure to hold the "score" of a synthetic
33         multiply sequence, including both a rtx_cost and a latency field.
34         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
35         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
36         (struct algorithm): Change type of cost field to be mult_cost.
37         (synth_mult): Change type of cost_limit argument to be a
38         pointer to a mult_cost.  Update all cost comparisons to use the
39         new mult_cost infrastructure.  For alg_add_factor and 
40         alg_sub_factor operations, latency is lower than the rtx_cost.
41         (choose_mult_variant):  Update calls to synth_mult.  Perform
42         cost comparisons using the new mult_cost infrastructure.
43         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
44         to optain the total rtx_cost of a synth_mult "algorithm".
45
46 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
47
48         * config/rs6000/power4.md: Increase store latency to 12.
49         * config/rs6000/power5.md: Same.
50
51 2004-09-01  James E Wilson  <wilson@specifixinc.com>
52
53         PR target/14064
54         * config/avr/avr.c (avr_unique_section): Delete prototype and
55         definition.
56         (TARGET_ASM_UNIQUE_SECTION): Delete.
57
58 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
59
60         * c-parse.in (primary): Call objc_build_message_expr(),
61         objc_build_selector_expr(), objc_build_protocol_expr(),
62         objc_build_encode_expr() and objc_build_string_object() instead of
63         build_message_expr(), build_selector_expr(), build_protocol_expr(),
64         build_encode_expr() and build_objc_string_object(), respectively.
65         (component_decl_list2): Call objc_get_class_ivars() instead of
66         get_class_ivars_from_name().
67         (keyworddecl): Call objc_build_keyword_decl() instead of
68         build_keyword_decl().
69         (receiver): Call objc_get_class_reference() instead of
70         get_class_reference().
71         (reswords): Add blank line before @@ifobjc section, for clarity.
72
73 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
74
75         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
76         to Altivec vetors.
77
78 2004-09-01  Wu Yongwei  <adah@sh163.net>
79             Danny Smith  <dannysmith@users.sourceforge.net>
80
81         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
82         not Windows 'DWORD'.
83         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
84         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
85         (__gthr_win32_recursive_mutex_init_function): Add prototype for
86         __GTHREAD_HIDE_WIN32API case..
87         (__gthr_win32_recursive_mutex_lock): Likewise.
88         (__gthr_win32_recursive_mutex_trylock): Likewise.
89         (__gthr_win32_recursive_mutex_unlock): Likewise.
90         (__gthread_recursive_mutex_init_function); Add definition for
91         __GTHREAD_HIDE_WIN32API case.
92         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
93         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
94         call to InterlockedDecrement.
95
96 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
97
98         * tree-tailcall.c (find_tail_calls): Also fail is statement has
99         volatile operands.
100
101         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
102
103         * doc/c-tree.texi: Document new operands for ARRAY_REF and
104         COMPONENT_REF.
105
106 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
107
108         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
109         * common.opt (fspeculative-prefetching): New.
110         * flags.h (flag_speculative_prefetching_set): Declare.
111         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
112         values.
113         * opts.c (flag_sepculative_prefetching_set): New variable.
114         (common_handle_option): Handle -fspeculative-prefetching.
115         * passes.c (rest_of_compilation): Ditto.
116         * profile.c (instrument_values, compute_value_histograms, branch_prob):
117         Use vectors instead of arrays.
118         * toplev.c (process_options): Handle -fspeculative-prefetching.
119         * rtl-profile.c: Include ggc.h.
120         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
121         rtl_gen_one_value_profiler_no_edge_manipulation,
122         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
123         argument changed.
124         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
125         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
126         argument changed.
127         * value-prof.c: Include ggc.h.
128         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
129         macros.
130         (insn_prefetch_values_to_profile, find_mem_reference_1,
131         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
132         speculative_prefetching_transform): New.
133         (value_profile_transformations): Call speculative_prefetching_transform.
134         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
135         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
136         tree_find_values_to_profile, find_values to profile): Use vectors
137         instead of arrays.
138         (free_profiled_values): Removed.
139         * value-prof.h (struct histogram_value): Renamed to
140         struct histogram_value_t.
141         (histogram_value, histogram_values): New types.
142         (find_values_to_profile): Declaration changed.
143         (free_profiled_values): Removed.
144         (struct profile_hooks): Type of argument of the hooks changed to
145         histogram_value.
146         * doc/invoke.texi (-fspeculative-prefetching): Document.
147
148 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
149
150         PR rtl-optimization/16408
151         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
152
153 2004-09-01  Richard Henderson  <rth@redhat.com>
154
155         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
156         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
157
158 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
159
160         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
161
162 2004-09-01  Mike Stump  <mrs@apple.com>
163
164         * config/darwin.c (machopic_symbol_defined_p): In addition to
165         being SYMBOL_REF_LOCAL_P, a symbol must also be
166         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
167         defined in this output file, or translation unit in the case
168         of IMA not being used.
169         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
170         never need .indirect_symbol when indirecting.
171
172 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
173
174         * Makefile.in (bb-reorder.o): Add several dependencies.
175
176 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
177
178         * fold-const.c (operand_equal_p): Require equal sign also for
179         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
180
181 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
182
183         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
184         for use in configargs.h.  Put the cname in a separate variable.  Use
185         that to set target_cpu_default2.
186
187 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
188             Nick Clifton  <nickc@redhat.com>
189
190         * config/sh/sh.md ("length"): Increase branch length when
191         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
192         constant, 2 byte for aligning the constant.
193
194 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
195
196         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
197         CPU.
198         (arm7tdmi-s): New CPU name.
199         * arm/arm.c (ARM_CORE): Update for new format.
200         * arm/arm.h (ARM_CORE): Likewise.
201         * arm/gentune.sh: Update for extra field.
202         * config.gcc: Likewise.
203         * arm/arm-tune.md: Regenerate.
204         * doc/invoke.texi: Document the real processor names for ARM cpus.
205
206 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
207
208         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
209         (floatdidf): New functions.
210         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
211         (floatdisf): New functions.
212         * t-arm-elf: Use them.
213
214 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
215
216         * c-common.h (lookup_interface): Remove prototype.
217         (is_class_name): Rename to objc_is_class_name.
218         (lookup_objc_ivar): Rename to objc_lookup_ivar.
219         (get_current_scope): Rename to objc_get_current_scope.
220         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
221         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
222         (yylexname): Call objc_is_class_name() instead of is_class_name().
223         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
224         instead of lookup_objc_ivar().
225         * stub-objc.c (lookup_interface): Remove stub.
226         (is_class_name): Rename to objc_is_class_name.
227         (lookup_objc_ivar): Rename to objc_lookup_ivar.
228
229 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
230
231         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
232         * config/arm/lib1funcs.asm: Do not include supplemental .S files
233         when compiling for Symbian.
234         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
235         (TARGET_OS_CPP_BUILTINS): Likewise.
236         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
237
238 2004-08-31  Stan Shebs  <shebs@apple.com>
239
240         * toplev.c (process_options): Ensure debug_hooks is initialized.
241
242 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
243
244         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
245         * target.h (cxx): Add export_class_data.
246         * config/arm/arm.c (arm_cxx_export_class_data): New function.
247         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
248         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
249         
250 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
251
252         * config/sh/sh.c (output_branch): Check the insn length possibly
253         in the delayed slot.
254
255 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
256
257         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
258         blank after ')'.
259         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
260
261         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
262         (c_sizeof_of_alignof_type): Likewise.
263         * expr.c (array_ref_element_size): Likewise.
264         (highest_pow2_factor_for_target): Likewise.
265         * gimplify.c (canonicalize_addr_expr): Likewise.
266         (gimplify_compound_lval): Likewise.
267         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
268         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
269         * varasm.c (assemble_variable): Likewise.
270         (output_constant_def_contents): Alignments are unsigned.
271
272 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
273             Jeff Law  <law@redhat.com>
274
275         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
276         gets modified.
277
278 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
279
280         * hooks.c (hook_bool_void_true): New function.
281         * hooks.h (hook_bool_void_true): Declare.
282         * target-def.h (TARGET_CXX): Add
283         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
284         * target.h (struct cxx): Add key_method_may_be_inline.
285         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
286         function.
287         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
288         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
289         __THUMB_INTERWORK.
290         
291 2004-08-31  Denis Chertykov  <denisc@overta.ru>
292
293         PR target/15417
294         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
295         frame pointer register only in Pmode while reload in progress.
296
297 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
298
299         PR target/15334
300         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
301         because it breaks the 32-bit shift patterns that rely on a match_dup.
302
303 2004-08-31  Matt Austern  <austern@apple.com>
304
305         * config/darwin.c (darwin_make_decl_one_only): Allocate section
306         names once per compilation, instead of once per symbol.
307         
308 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
309
310         * Makefile.in (build_subdir): New substitution.
311         (fixinc.sh): Simplify heavily since fixincludes is already built.
312         (stmp-fixinc): Depend on specs.ready.
313         (install-mkheaders): Use new location of fixincludes.
314         (clean): Do not descend into fixinc.
315         (FORBUILD): Replace with ../$(build_subdir).
316         * configure.ac (build_subdir): Substitute.
317         (FORBUILD): Do not set.
318         (all_outputs): Remove fixinc/Makefile.
319         (default commands): Do not create links in fixinc.
320         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
321         the fixincludes configuration steps and substituting
322         @FIXINCL@ in fixinc.in.
323         * fixinc.in: New, from fixinc/fixincl.sh.
324
325         * fixinc/*: Removed.
326         
327 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
328
329         * attribs.c (strip_attrs): Remove.
330         (split_specs_attrs): Move ...
331         * c-decl.c: ... to here.
332         * tree.h (split_specs_attrs, strip_attrs): Remove.
333         * c-tree.h (split_specs_attrs): Declare.
334
335 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
336
337         * read-rtl.c: Disable RTL checking.
338         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
339
340 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
341
342         * config/mips/mips.md (fcond): New code macro and attribute.
343         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
344         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
345         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
346
347 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
348
349         Revert:
350         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
351         PR rtl-optimization/16590
352         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
353
354 2004-08-30  Andrew Pinski  <apinski@apple.com>
355
356         * hard-reg-set.h: 
357         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
358         * ChangeLog: Fix previous ChangeLog entry.
359
360         PR rtl-opt/13987
361         * config.host (use_long_long_for_widest_fast_int): New, default is 
362         off.
363         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
364         * configure.ac: If use_long_long_for_widest_fast_int, then
365         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
366         * configure: Regenerate.
367         * config.in: Regenerate.
368         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
369         New: widest integer type supported efficiently in hardware for the
370         host.
371         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
372         HOST_BITS_PER_WIDEST_FAST_INT.
373         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
374         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on 
375         HOST_WIDEST_FAST_INT
376         instead of HOST_WIDE_INT.
377         (HARD_REG_SET_LONGS): Likewise.
378         (UHOST_BITS_PER_WIDE_INT): Likewise.
379         Change the checks for the fast cases to be based on
380         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
381
382 2004-08-30  Steven Bosscher  <stevenb@suse.de>
383
384         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
385         not the pointers.
386
387 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
388
389         PR 12738
390         PR 17205
391         Radar 3460526
392         Radar 3775729
393         * c-decl.c (grokdeclarator): Produce error for 'static' on local
394         function declaration.
395
396 2004-08-30  Richard Henderson  <rth@redhat.com>
397
398         * expr.c (array_ref_element_size): Force aligned_size back to
399         sizetype.
400         (component_ref_field_offset): Similarly for aligned_offset.
401         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
402         low-bound, element-size, field-offset fields rather than
403         computed values.
404
405 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
406
407         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
408         redundant code.
409
410 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
411
412         * c-tree.h (struct language_function): Add arg_info element.
413         * c-decl.c (current_function_arg_info): New.
414         (grokdeclarator, store_parm_decls): Use it instead of
415         DECL_ARGUMENTS.
416         (c_push_function_context, c_pop_function_context): Save and
417         restore it.
418
419 2004-08-30  Richard Henderson  <rth@redhat.com>
420
421         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a 
422         COMPONENT_REF to pointer arithmetic.
423         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
424         constant "c" as a valid constant initializer.  Allow narrowing of
425         differences against the same base object, for any base object.
426
427 2004-08-30  Richard Henderson  <rth@redhat.com>
428
429         * expr.c (expand_expr_addr_expr): New.
430         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
431
432 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
433
434         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
435         (mips_fp_condition): New enum.
436         (mips_fp_conditions): New array.
437         (print_fcc_operand): Delete.
438         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
439         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
440         (builtin_description): Add "cond" field.
441         (DIRECT_BUILTIN): Initialize it.
442         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
443         into INSN and CODE.  Initialize the "cond" field.
444         (CMP_BUILTINS): Update accordingly.
445         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
446         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
447         mips_fp_condition as argument.  Make it the final operand of the
448         comparison instruction.
449         (mips_expand_builtin): Update accordingly.
450         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
451         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
452         the gaps.
453         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
454         Don't use the 'Q' operand prefix; just print the operand normally.
455         (mips_cabs_*, mips_c_*): Delete, replacing with...
456         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
457         patterns.  Split the 4s versions into 2 ps patterns after reload.
458
459 2004-08-30  Richard Henderson  <rth@redhat.com>
460
461         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
462         assuming an ADDR_EXPR is non-null.
463
464 2004-08-30  Jason Merrill  <jason@redhat.com>
465
466         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
467
468 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
469
470         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
471         * gcov.c (abort): Remove undef.
472
473         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
474         (struct tree_binfo): Remove primary field.
475
476 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
477
478         * fixinc/Makefile.in (machname.h): Remove.
479         (fixincl.x): Do not pass $@ to genfixes.
480         * fixinc/genfixes: Remove code to produce machname.h.
481         * fixinc/fixincl.sh: Move it here instead.
482         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
483         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
484         return a bool indicating whether pz_mn_name_pat is NULL.
485         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
486         Declare extern C variables for the ENV_TABLE.
487         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
488         instead use the result of mn_get_regexps.
489         * fixinc/fixtests.c: Likewise.
490
491 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
492
493         * configure.ac: Do not run fixincludes after stage1 during
494         toplevel bootstrap.
495         * configure: Regenerate.
496
497 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
498
499         * sched-deps.c (get_condition): Partially revert previous, by never
500         trying to extract the condition from a condjump.
501
502 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
503
504         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
505         (handle_visibility_attribute, c_determine_visibility): Likewise.
506         * c-common.h (my_friendly_assert): Remove.
507
508 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
509
510         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
511         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
512         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
513         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
514         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
515
516 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
517
518         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
519         in COMPONENT_REF nodes.
520
521 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
522
523         PR c++/15378
524         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
525         global_dc->warning_as_error_requested.
526         * diagnostic.c (diagnostic_initialize): Tidy.
527         * diagnostic.h (diagnostic_context::x_data): Remove
528         (diagnostic_context::issue_warnings_are_errors_message): Rename
529         from warnings_are_errors_message.
530         (diagnostic_context::warning_as_error_requested): New.
531
532 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
533
534         * sched-deps.c (get_condition): Fix breakage in previous patch.
535
536 2004-08-30  Paul Brook  <paul@codesourcery.com>
537
538         * doc/install.texi: Fix broken mpfr link.
539
540 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
541
542         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
543         other FreeBSD platforms.
544
545 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
546
547         * arm.h (REVERSE_CONDITION): Define.
548         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
549
550 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
551
552         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
553         just the codes, call reversed_comparison_code ().
554         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
555         (not_reg_cond): Use reversed_comparison_code.
556         (and_reg_cond): Likewise.
557         * ifcvt.c (cond_exec_process_if_block): Likewise.
558         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
559
560 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
561
562         * sched-deps.c (get_condition): Rewrite using jump support functions.
563         Use reversed_comparison_code.
564         (conditions_mutex_p): Use reversed_comparison_code.
565
566 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
567
568         * config/mips/mips.c (override_options): Disable hot/cold partitioning
569         for MIPS16.
570
571 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
572
573         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
574         (mips_function_type): Move to mips.c.
575         * config/mips/mips.c (mips_builtin_type): New enum.
576         (builtin_description): Replace code and ftype with builtin_type
577         and function_type.
578         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
579         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
580         (CODE_FOR_mips_abs_ps): Define.
581         (mips_bdesc): Use new macros.
582         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
583         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
584         (mips_expand_builtin_direct): New function.
585         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
586         builtin.  Replace boolean parameter with builtin_type.
587         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
588         (mips_expand_4s_compare_builtin): Delete, replacing with...
589         (mips_expand_builtin_compare): ...this new function.
590
591 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
592
593         PR rtl-optimization/16590
594         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
595
596 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
597
598         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
599         * tree-ssa-propagate.c: Fix documentation.
600
601 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
602
603         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
604         (mov[sd]fcc): Likewise.
605
606 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
607
608         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
609
610 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
611
612         * config/mips/mips.md (divide_condition): New mode attribute.
613         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
614         (sqrt[sd]f3): Redefine using SCALARF.
615         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
616         patterns.
617
618 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
619
620         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
621         (loadx, storex, fmt, UNITMODE): New mode attributes.
622         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
623         (mul[sd]f3): Redefine using :SCALARF.
624         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
625         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
626         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
627         Check TARGET_FUSED_MADD for V2SF too.
628         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
629         were already named.
630         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
631         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
632
633 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
634
635         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
636         V2SF_type_node if it will be needed.
637
638 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
639
640         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
641         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
642         (mips_prepare_builtin_target): New function.
643         (mips_expand_builtin): Use them.  Update calls to subroutines.
644         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
645         cmp_choice with a boolean argument to select between movt and movf.
646         Take the comparison's icode as an argument, not the function's fcode.
647         (mips_expand_compare_builtin): New function.  Rename existing function
648         to mips_expand_scalar_compare_builtin.
649         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
650         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
651         comparison's icode as an argument, not the builtin's fcode.
652
653 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
654
655         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
656         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
657         registers are false and -1 if all registers are true.
658         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
659         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
660         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
661         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
662         (bc1any2t, bc1any2f): Likewise CCV2.
663         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
664
665 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
666
667         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
668         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
669         UNSPEC rather than an IF_THEN_ELSE.
670         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
671         mips_cond_move_tf_ps by name.
672
673 2004-08-29  Chao-ying Fu  <fu@mips.com>
674             James E Wilson  <wilson@specifixinc.com>
675         
676         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
677         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
678         * config/mips/mips-ps-3d.md: New file.
679         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
680         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
681         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
682         (mips_output_move): Emit "mov.ps" for V2SFmode.
683         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
684         MODE_VECTOR_FLOAT.
685         (override_options): Check if TARGET_MIPS3D and there was an explicit
686         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
687         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
688         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
689         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
690         and allow CCV2 and CCV4 to occupy two and four CC registers.
691         (print_fcc_operand): New function.
692         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
693         %Z to call print_fcc_operand.
694         (mips_function_value): Handle MODE_VECTOR_FLOAT.
695         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
696         (mips_vector_mode_supported_p): New function.
697         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
698         (builtin_description): New struct.
699         (mips_bdesc): New array of struct builtin_description.
700         (mips_expand_builtin, mips_init_builtins,
701         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
702         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
703         functions.
704         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
705         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
706         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
707         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
708         "-mips3d", and "-mno-mips3d".
709         (ASM_SPEC): Map -mips3d to -mips3d in gas.
710         (EXTRA_CONSTRAINT_Y): New macro.
711         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
712         multi-letter constraint 'Y'.
713         (CONSTRAINT_LEN): New macro.
714         (enum mips_builtins): New for MIPS builtin functions.
715         (enum mips_function_type): New for the types of MIPS builtin functions.
716         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
717         * config/mips/mips.md: New constants for paired single and MIPS-3D 
718         instructions.  Include the new mips-ps-3d.md file.
719         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
720         movv2sf_hardfloat_64bit): New named patterns.
721         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
722         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
723         sdxc1_v2sf_di): New unnamed patterns.
724         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
725         const_vector support.
726         (const_0_or_1_operand): New predicate.
727         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
728
729 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
730
731         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
732         (tree-ssa-propagate.o): New rule.
733         (GTFILES): Add tree-ssa-propagate.c.
734         * tree-flow.h (struct stmt_ann_d): Remove field
735         in_ccp_worklist.
736         * tree-ssa-propagate.c: New file.
737         * tree-ssa-propagate.h: New file.
738         * tree-ssa-ccp.c: Re-write to use the routines from
739         tree-ssa-propagate.c.
740
741 2004-08-28  Andrew Pinski  <apinski@apple.com>
742
743         * tree-ssa-loop.c: Remove extra include of basic-block.h.
744
745 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
746
747         * c-common.h: Update comments about ObjC/ObjC++ entry points.
748         (objc_is_reserved_word): New prototype.
749         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
750         separate section; these are call-backs.
751         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
752         ObjC/ObjC++ "@" keywords.
753         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
754         prototypes; they already live in c-common.h.
755         * stub-objc.c: Update copyright notice.
756         (objc_is_reserved_word): New stub.
757
758 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
759
760         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
761         even when not checking.
762
763 2004-08-27  Jason Merrill  <jason@redhat.com>
764
765         PR c++/13684
766         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
767         (gimple_push_cleanup): Add eh_only parm.
768         (gimplify_target_expr): Pass it.
769         * c.opt (-fno-threadsafe-statics): New option.
770         * c-opts.c (c_common_handle_option): Handle it.
771         * c-common.h (flag_threadsafe_statics): Declare it.
772         * c-common.c (flag_threadsafe_statics): Record it.
773         * doc/invoke.texi: Document it.
774         * tsystem.h (_GNU_SOURCE): Define.
775         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
776         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
777         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
778         (__gthread_recursive_mutex_init_function): New fn.
779         (__gthread_recursive_mutex_lock): New fn.
780         (__gthread_recursive_mutex_trylock): New fn.
781         (__gthread_recursive_mutex_unlock): New fn.
782         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
783         * gthr-win32.h, gthr-vxworks.h: Likewise.
784         * gthr.h: Document.
785
786 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
787
788         * config/rs6000/rs6000.c (rs6000_override_options): Increase
789         maximum skip to 15.  Set function alignment, jump alignment, and
790         loop alignment to 16 for processors that form dispatch groups.
791         (rs6000_rtx_costs): outer_code is used.
792
793 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
794
795         * stor-layout.c (sizetype_set): Remove.
796         (set_sizetype): Don't test or set it.
797
798         * tree.h (size_int_type): Remove.
799         * fold-const.c: Do not #include gt-fold-const.h.
800         (size_htab_hash, size_htab_eq): Remove.
801         (size_int_kind): Use build_int_cst.
802         (new_const, size_htab): Remove.
803         (size_int_type): Remove.
804         (round_up): Use build_int_cst.
805         (round_down): Likewise. Remove spurious constant build.
806
807 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
808
809         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
810         Add is_release variable, use it for --enable-werror and
811         --enable-checking defaults.
812         * system.h (gcc_assert, gcc_unreachable): New.
813         * doc/install.texi (--enable-checking): Update.
814         * configure, config.in: Rebuilt.
815
816 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
817
818         * rtl.h (read_rtx): Change prototype.
819         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
820         line number.  Return true on success.
821         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
822         callers accordingly.
823
824 2004-08-26  Richard Henderson  <rth@redhat.com>
825
826         * c-typeck.c (build_offsetof): Remove.
827         * c-tree.h (build_offsetof): Remove.
828         * c-common.c (fold_offsetof_1, fold_offsetof): New.
829         * c-common.h (fold_offsetof): Declare.
830         * c-parse.in (offsetof_base): New.
831         (offsetof_member_designator): Use it.  Build references, not just
832         a tree list.
833         (primary): Use fold_offsetof, not build_offsetof.
834
835 2004-08-26  Richard Henderson  <rth@redhat.com>
836
837         * tree.c (staticp): Return the static object.
838         * tree.h (staticp): Update decl.
839         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
840         * langhooks.c (lhd_staticp): Return NULL_TREE.
841         * langhooks-def.h (lhd_staticp): Update decl.
842         * c-common.c (c_staticp): Return the static object.
843         * c-common.h (c_staticp): Update decl.
844
845 2004-08-26  Richard Henderson  <rth@redhat.com>
846
847         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
848         modes.
849
850 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
851
852         PR c/13801
853         * c-decl.c (struct c_binding): Add type and inner_comp fields.
854         (bind): Set type and inner_comp fields.
855         (pop_scope): Restore type of decl to the correct type from an
856         outer scope.  Give error when popping file scope for incomplete
857         arrays completed incompatibly with default initialization in an
858         inner scope.
859         (diagnose_mismatched_decls): Handle externs with initializers at
860         block scope.
861         (pushdecl): Set type of external declaration at block scope based
862         only on the visible declarations.  Save type when changing the
863         type of a declaration.  Merge an external declaration at block
864         scope with a visible static declaration at file scope.
865         (implicitly_declare): Give recycled old declaration the new type
866         except for incompatible declarations of built-in functions, saving
867         the old type.
868
869 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
870
871         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
872
873 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
874
875         * tree-alias-common.c (gate_pta): New function.
876         (pass_build_pta): Use it.
877         (pass_del_pta): Use it.
878         (delete_alias_vars): Don't check flag_tree_points_to.
879
880 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
881
882         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added 
883         TFmode as additional register mode cloberred by call.
884
885 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
886
887         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
888         parallel pattern for library call returning DImode in
889         mixed mode.
890
891 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
892
893         * config/rs6000/rs6000.c (function_arg): Generate parallel
894         pattern for more split args.
895
896 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
897
898         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
899         either gen_movdi_di_update or gen_movdi_si_update depending on
900         target mode.
901         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
902         to generate two versions.
903  
904 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
905
906         * Makefile.in (lambda-code.o): New.
907         (lambda-trans.o): Ditto.
908         (TREE_DATA_REF_H): Ditto.
909         (LAMBDA_H): Ditto.
910         (lambda-mat.o): Use LAMBDA_H.
911         (tree-data-ref.o): Ditto.
912         * lambda-code.c: New file.  Lambda code generation algorithm.
913         * lambda-trans.c: Ditto. Lambda transformation matrix support.
914         * lambda.h: Add lambda loop structures.
915         Add lambda loopnest structures.
916         Add lambda body vector structure.
917         Add lambda linear expression structures.
918         Add prototypes for functions in new files.
919         * lambda-mat.c: Include tree.h
920
921 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
922             Sebastian Pop  <pop@cri.ensmp.fr>   
923         
924         * tree-data-ref.h: Include lambda.h     
925         (free_dependence_relation): Declared here.
926         (free_dependence_relations): Ditto.     
927         (free_data_refs): Ditto.
928         * tree-data-ref.c (free_dependence_relation): New function.
929         (free_dependence_relations): Ditto.
930         (free_data_refs): Ditot.
931         (analyze_all_data_dependences): Free datarefs and dependence_relations.
932         (build_classic_dist_vector): Store in the dependence_relations the
933         information. Each arc in the dependence_relations graph is labelled
934         with the distance and direction vectors.
935         (build_classic_dir_vector): Ditto.
936         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
937         Now computes again the whole dependence graph including read-read
938         relations.
939         (compute_data_dependences_for_loop): Now dependence_relations contains
940         all the data, and thus it doesn't need to initialize the classic_dir
941         and classic_dist vectors.
942         (analyze_all_data_dependences): Adjusted for using the new interface of
943         compute_data_dependences_for_loop.  Remove the statistics dump.
944         
945 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
946
947         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
948         (xtensa_expand_block_move): Update comment.
949         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
950
951 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
952
953         PR target/13506
954         * toplev.c (crash_signal): If we crashed while emitting
955         a user asm, then die more gracefully.
956
957 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
958
959         PR target/17119.
960         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
961         checking for a valid constant, regardless of sign.
962
963 2004-08-25  Richard Henderson  <rth@redhat.com>
964
965         PR target/16974
966         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
967         if the constant satisfies add_operand.
968
969 2004-08-25  Richard Henderson  <rth@redhat.com>
970  
971         PR debug/10695
972         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
973         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
974         unwind info for >16-bit frames.
975
976 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
977
978         PR target/17171
979         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
980
981 2004-08-25  Richard Henderson  <rth@redhat.com>
982
983         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
984         (TARGET_CANNOT_FORCE_CONST_MEM): New.
985
986 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
987
988         * doc/tree-ssa.texi: Document new operand iterator.
989
990 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
991
992         PR target/16480
993         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
994         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
995         as PLUS base regs.
996
997 2005-08-28  Paul Brook  <paul@codesourcery.com>
998
999         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
1000         -mfpu=vfp -march=armv5t
1001         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
1002
1003 2004-08-25  Richard Henderson  <rth@redhat.com>
1004
1005         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1006         * target.h (struct gcc_target): Add scalar_mode_supported_p.
1007         * targhooks.c (default_scalar_mode_supported_p): New.
1008         * targhooks.h (default_scalar_mode_supported_p): Declare.
1009         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
1010
1011         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
1012         before attempting to create types.  Tidy.
1013         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
1014
1015         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1016         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1017
1018 2004-08-25  Richard Henderson  <rth@redhat.com>
1019
1020         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1021         set REAL_MODE_FORMAT for TFmode.
1022
1023 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1024
1025         * c-decl.c (grokparm): New function.
1026         * c-tree.h (grokparm): New prototype.
1027
1028 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1029
1030         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
1031         iterator controlling structure.
1032         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
1033         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
1034         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
1035         iterator flags.
1036         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
1037         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
1038         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
1039         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
1040         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New. 
1041         Empty operand pointers.
1042         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
1043         (op_iter_next_use): New.  Return next use_operand_p.
1044         (op_iter_next_def): New.  Return next def_operand_p.
1045         (op_iter_next_tree): New.  Return next operands as a tree.
1046         (op_iter_init): New.  Initialize an iterator structure.
1047         (op_iter_init_use): New.  Initialize structure and get the first use.
1048         (op_iter_init_def): New.  Initialize structure and get the first def.
1049         (op_iter_init_tree): New.  Initialize structure and get the first tree.
1050         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
1051         (op_iter_init_maydef): New.  Initialize structure and get the first 
1052         V_MAY_DEF operands.
1053         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
1054         * tree-dfa.c (compute_immediate_uses_for_stmt, 
1055         redirect_immediate_uses): Use new operand iterator.
1056         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
1057         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
1058         operands instead of using *_disappeared_p routines.
1059         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
1060         ssa_rewrite_stmt): Use new operand iterator.
1061         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1062         rewrite_trees): Use new operand iterator.
1063         * tree-pretty-print.c (dump_vops): Use new operand iterator.
1064         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
1065         * tree-ssa-alias.c (compute_points_to_and_addr_escape, 
1066         dump_points_to_info): Use new operand iterator.
1067         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize, 
1068         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new 
1069         operand iterator.
1070         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary, 
1071         propagate_necessity): Use new operand iterator.
1072         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
1073         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
1074         a parameter instead of a stmt_ann_t.
1075         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
1076         build_tree_conflict_graph): Use new operand iterator.
1077         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
1078         rewrite_mem_refs): Use new operand iterator.
1079         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, 
1080         check_loop_closed_ssa_use): Use new operand iterator.
1081         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
1082         * tree-ssanames.c (release_defs): Use new operand iterator.
1083         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
1084
1085 2004-08-25  Adam Nemet  <anemet@lnxw.com>
1086
1087         * tlink.c (initial_cwd): New variable.
1088         (tlink_init): Initialize it.
1089         (recompile_files): Use tlink_execute() instead of system().  Don't
1090         duplicate verbose output of collect_execute.  Restore initial_cwd.
1091         Update comment before the function.
1092
1093 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1094
1095         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
1096         accept) a cast from one Objective-C pointer type to another.
1097
1098 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1099
1100         * doc/install.texi: Document that libstdc++-v3 requires
1101         now automake 1.9.1.
1102
1103 2004-08-25  Caroline Tice  <ctice@apple.com>
1104
1105         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
1106         to comments at start of function.
1107         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
1108         comment.
1109         * cfgcleanup.c (try_simplify_condjump, try_forward_edges, 
1110         merge_blocks_move_predecessor_nojumps, 
1111         merge_blocks_move_successor_nojumps, merge_blocks_move, 
1112         try_crossjump_to_edge, try_crossjump_bb): Likewise.
1113         * cfglayout.c (fixup_reorder_chain): Likewise.
1114         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1115         cfg_layout_can_merge_blocks_p):  Likewise.
1116         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
1117         * passes.c (rest_of_compilation): Update comments for calling 
1118         optimization that partitions hot/cold basic blocks.
1119         * doc/invoke.texi:  Update documentation of 
1120         freorder-blocks-and-partition flag.
1121         
1122 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1123
1124         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1125         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
1126
1127 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1128
1129         * config/mips/mips.md (any_shift): New code macro.
1130         (optab, insn): New code attributes.
1131         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
1132         Use the standard rather than internal patterns for the MIPS16
1133         double-shift optimization.
1134         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
1135         Redefine using :GPR and any_shift.
1136         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
1137         to cover all three shifts.
1138         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
1139         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
1140         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
1141
1142 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
1143
1144         * gimplify.c (lookup_tmp_var): Separate temporaries when not
1145         optimizing.
1146
1147 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1148
1149         PR libstdc++/17005 (fix for HP-UX 11.11)
1150         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
1151         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
1152         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.  
1153         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
1154         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
1155         (LINK_SPEC): Handle march=1.0 option.
1156         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1157         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
1158         (SUBTARGET_OPTIONS): New define.
1159         (LINK_SPEC): Handle march=1.0 option.
1160         (STARTFILE_SPEC): New define.
1161         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1162         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
1163         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
1164         (SUBTARGET_OPTIONS): New define.
1165         (LINK_SPEC): Handle march=1.0 option.
1166         (STARTFILE_SPEC): New define.
1167         * config/pa/pa.c (override_options): Add code to process -munix= option.
1168         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
1169         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
1170         defines.
1171         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
1172         (SUBTARGET_OPTIONS): Provide default define.
1173         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
1174         STANDARD_STARTFILE_PREFIX_2): New defines.
1175         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
1176         (ENDFILE_SPEC): Use %O.
1177         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
1178         Mention issue caused by changing namespace and runtime to UNIX 95/98.
1179         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
1180         Document -munix=std option.
1181
1182 2004-08-25  Steven Bosscher  <stevenb@suse.de>
1183
1184         * cse.c (cse_around_loop, cse_check_loop_start,
1185         cse_set_around_loop): Remove.
1186         (cse_basic_block): Remove the around_loop argument.
1187         (cse_end_of_basic_block): Remove the after_loop argument.
1188         (cse_main): Likewise.
1189         * rtl.h (cse_main): Update prototype.
1190         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
1191         rest_of_handle_gcse): Update cse_main calls.
1192
1193 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1194
1195         * tree.h  (build_int_cst): New, sign extended constant.
1196         (build_int_cstu): New, zero extended constant.
1197         (build_int_cst_wide): Renamed from build_int_cst.
1198         * tree.c (build_int_cst, build_int_cstu): New.
1199         (build_int_cst_wide): Renamed from build_int_cst.
1200         (make_vector_type, build_common_tree_nodes,
1201         build_common_tree_nodes_2): Adjust build_int_cst calls.
1202         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1203         expand_builtin_strpbrk, expand_builtin_fputs,
1204         build_string_literal, expand_builtin_printf,
1205         expand_builtin_sprintf, fold_builtin_classify_type,
1206         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
1207         fold_builtin_toascii, fold_builtin_isdigit,
1208         simplify_builtin_strstr, simplify_builtin_strpbrk,
1209         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
1210         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
1211         DEF_ATTR_INT): Likewise.
1212         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
1213         Likewise.
1214         * c-lex.c (interpret_integer, lex_charconst): Likewise.
1215         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
1216         * c-pretty-print.c (pp_c_integer_constant): Likewise.
1217         * c-typeck.c (really_start_incremental_init, push_init_level,
1218         set_nonincremental_init_from_string): Likewise.
1219         * calls.c (load_register_parameters): Likewise.
1220         convert.c (convert_to_pointer): Likewise.
1221         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1222         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
1223         build_gcov_info): Likewise.
1224         * except.c (init_eh, assign_filter_values): Likewise.
1225         * expmed.c (store_fixed_bit_field, extract_bit_field,
1226         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1227         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1228         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1229         * expr.c (convert_move, emit_group_load, emit_group_store,
1230         expand_assignment, store_constructor, store_field,
1231         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1232         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1233         invert_truthvalue, optimize_bit_field_compare,
1234         decode_field_reference, all_ones_mask_p, constant_boolean_node,
1235         fold_div_compare, fold, fold_read_from_constant_string,
1236         fold_negate_const, fold_abs_const, fold_not_const, round_up,
1237         round_down): Likewise.
1238         * function.c (assign_parm_setup_block): Likewise.
1239         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
1240         Likewise.
1241         * stor-layout.c (layout_type, initialize_sizetypes,
1242         set_min_and_max_values_for_integral_type): Likewise.
1243         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1244         reset_evolution_in_loop): Likewise.
1245         * tree-chrec.h (build_polynomial_chrec): Likewise.
1246         * tree-complex.c (build_replicated_const): Likewise.
1247         * tree-eh.c (honor_protect_cleanup_actions,
1248         lower_try_finally_onedest, lower_try_finally_copy,
1249         lower_try_finally_switch): Likewise.
1250         * tree-mudflap.c (mf_build_string, mx_register_decls,
1251         mudflap_register_call, mudflap_enqueue_constant): Likewise.
1252         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1253         * tree-pretty-print.c (dump_generic_node): Likewise.
1254         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1255         Likewise.
1256         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1257         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1258         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1259         Likewise.
1260         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
1261         canonicalize_loop_induction_variables): Likewise.
1262         * tree-vectorizer.c (vect_create_index_for_array_ref,
1263         vect_transform_loop_bound, vect_compute_data_ref_alignment):
1264         Likewise.
1265
1266         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
1267         alpha_gimplify_va_arg_1): Likewise.
1268         * config/arm/arm.c (arm_get_cookie_size): Likewise.
1269         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1270         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1271         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1272         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1273         mips_gimplify_va_arg_expr): Likewise.
1274         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1275         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1276         add_compiler_branch_island): Likewise.
1277         * config/s390/s390.c (s390_va_start): Likewise.
1278         * config/sh/sh.c (sh_va_start): Likewise.
1279         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1280         Likewise.
1281         * config/xtensa/xtensa.c (xtensa_va_start,
1282         xtensa_gimplify_va_arg_expr): Likewise.
1283         
1284         * objc/objc-act.c (build_objc_string_object,
1285         build_objc_symtab_template, init_def_list, init_objc_symtab,
1286         init_module_descriptor, generate_static_references,
1287         build_selector_translation_table, get_proto_encoding,
1288         build_typed_selector_reference, build_selector_reference,
1289         build_next_objc_exception_stuff,
1290         build_method_prototype_list_template, generate_descriptor_table,
1291         generate_protocols, build_protocol_initializer,
1292         build_ivar_list_template, build_method_list_template,
1293         build_ivar_list_initializer, generate_ivars_list,
1294         generate_dispatch_table, generate_protocol_list,
1295         build_category_initializer, build_shared_structure_initializer,
1296         generate_shared_structures, handle_impent,
1297         generate_objc_image_info): Likewise.
1298
1299 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1300
1301         * cfglayout.c (duplicate_insn_chain): Remove references to
1302         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
1303         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
1304         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
1305         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
1306         and NOTE_INSN_LOOP_CONT.
1307         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
1308         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
1309         and NOTE_INSN_LOOP_CONT.
1310         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
1311         check_dbra_loop, loop_dump_aux): Remove references to removed notes
1312         and fields.
1313         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
1314         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
1315         references to removed notes and fields.
1316         (subtract_reg_term, ujump_to_loop_cont): Remove.
1317
1318 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1319
1320         * doc/install.texi: Document that libcpp does not require
1321         Automake any longer.  Document that Automake 1.9.1 should
1322         work everywhere.
1323
1324 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1325
1326         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
1327         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
1328         DWARF_DEBUGGING_INFO from choice-of-definition chain;
1329         restructure using C89 features (#elif, #error).
1330         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
1331         * config/sh/sh.h: Remove references to DWARF_DEBUG.
1332         * doc/invoke.texi: Remove references to DWARF version 1;
1333         clarify why -gdwarf-2<n> doesn't work.
1334
1335 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1336
1337         * basic-block.h (BB_SET_PARTITION): Clear old value first.
1338         * cfg.c (clear_bb_flags): Don't clear partition setting.
1339         * ifcvt.c (find_if_case_1): Remove ??? comment.
1340
1341 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
1342
1343         PR target/17052
1344         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
1345         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
1346         current_function_stdarg in place of sysv_varargs_p.
1347         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
1348         sysv_varargs_p.
1349
1350 2004-08-24  Richard Henderson  <rth@redhat.com>
1351
1352         PR target/16298
1353         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
1354         random codes within CONST.
1355
1356 2004-08-24  James E Wilson  <wilson@specifixinc.com>
1357
1358         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
1359         -freorder-blocks-and-partition.
1360
1361 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1362
1363         PR middle-end/17044
1364         * tree-ssa-threadupdate.c (redirection_data): Make static.
1365         (thread_block): Use ggc_alloc_cleared to allocate struct
1366         redirection_data.  Don't free elements in redirection_data.
1367
1368 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1369
1370         * config/mips/predicates.md (small_data_pattern): Match prefetches.
1371
1372 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1373
1374         PR tree-optimization/17016
1375         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1376         number_of_iterations_exit): Use POINTER_TYPE_P instead
1377         of testing for POINTER_TYPE.
1378
1379 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1380
1381         * tree-ssa-loop-ivcanon.c: New file.
1382         * tree-ssa-loop-manip.c (create_iv): New function.
1383         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
1384         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
1385         * cfgloop.c (mark_single_exit_loops): New function.
1386         (verify_loop_structure): Verify single-exit loops.
1387         * cfgloop.h (struct loop): Add single_exit field.
1388         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
1389         (mark_single_exit_loops): Declare.
1390         (tree_num_loop_insns): Declare.
1391         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
1392         (duplicate_loop_to_header_edge): Use it.
1393         * common.opt (fivcanon): New flag.
1394         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
1395         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
1396         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
1397         (bsi_insert_on_edge_immediate): New function.
1398         * tree-flow.h (bsi_insert_on_edge_immediate,
1399         canonicalize_induction_variables, tree_unroll_loops_completely,
1400         create_iv): Declare.
1401         * tree-optimize.c (init_tree_optimization_passes): Add
1402         pass_iv_canon and pass_complete_unroll.
1403         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
1404         * tree-scalar-evolution.c (get_loop_exit_condition,
1405         get_exit_conditions_rec, number_of_iterations_in_loop,
1406         scev_initialize): Use single_exit information.
1407         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
1408         missing assumptions.
1409         (loop_niter_by_eval):  Return number of iterations as unsigned
1410         int.
1411         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
1412         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
1413         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
1414         New passes.
1415         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
1416         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
1417         the defining statement is ready.
1418         * tree-vectorizer.c (vect_create_iv_simple): Removed.
1419         (vect_create_index_for_array_ref, vect_transform_loop_bound):
1420         Use create_iv.
1421         (vect_transform_loop_bound): Use single_exit information.
1422         (vect_analyze_loop_form): Cleanup bogus tests.
1423         (vectorize_loops): Do not call flow_loop_scan.
1424         * tree.h (may_negate_without_overflow_p): Declare.
1425         * fold-const.c (may_negate_without_overflow_p): Split out from ...
1426         (negate_expr_p): ... this function.
1427         (tree_expr_nonzero_p): Handle overflowed constants correctly.
1428         * doc/invoke.texi (-fivcanon): Document.
1429         * doc/passes.texi: Document canonical induction variable creation.
1430
1431 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1432
1433         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
1434         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
1435         using the mode of the operand to decide between them.
1436         * config/mips/mips.md (MOVECC): New mode macro.
1437         (ccreg): New mode attribute.
1438         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
1439         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
1440         (mov[sd]icc): Redefine using :GPR.
1441
1442 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1443
1444         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
1445         (mips_prefetch_cookie): New function.
1446         * config/mips/mips.c (print_operand_address): Fix handling of
1447         ADDRESS_CONST_INT.
1448         (mips_emit_prefetch): Delete.
1449         (mips_prefetch_cookie): New function.
1450         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
1451         mode of QImode for the address_operand.  Use mips_prefetch_cookie
1452         to calculate the first "pref" operand.
1453         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
1454         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
1455
1456 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
1457
1458         * arm.md: Include predicates.md.
1459         * predicates.md: New file.
1460         * arm.c (s_register_operand, arm_hard_register_operand)
1461         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
1462         (arm_immediate_operand, arm_neg_immediate_operand)
1463         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
1464         (arm_add_operand, arm_addimm_operand, arm_not_operand)
1465         (offsettable_memory_operand, alignable_memory_operand)
1466         (arm_reload_memory_operand, arm_float_rhs_operand)
1467         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
1468         (index_operand, shiftable_operator, logical_binary_operator)
1469         (shift_operator, equality_operator, arm_comparison_operator)
1470         (minmax_operator, cc_register, dominant_cc_register)
1471         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
1472         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
1473         (const_shift_operand, load_multiple_operation)
1474         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
1475         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
1476         (cirrus_register_operand, cirrus_fp_register)
1477         (cirrus_shift_const): Delete, replaced with equivalents in
1478         predicates.md.
1479         (shift_op): Handle ROTATE.
1480         * arm-protos.h: Delete declarations for above.
1481         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1482         * t-arm (MD_INCLUDES): Add predicates.md.
1483         (s-preds): Depends on MD_INCLUDES.
1484
1485 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1486
1487         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
1488         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
1489         patterns.  Redefine using :GPR.  Give the match_operator a mode.
1490         Use '%2' rather than '%z2' for operand 2.
1491
1492 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1493
1494         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
1495         attribute.
1496
1497 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1498
1499         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
1500         of internal patterns.
1501         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
1502         Redefine using :P.
1503         (tablejump): Use expand_binop to calculate address.  Adjust names
1504         of internal patterns.
1505         (tablejump[sd]i): Renamed from tablejump_internal[12].
1506         Redefine using :P.
1507         (tablejump_mips16[12]): Delete.
1508
1509 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1510
1511         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
1512         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
1513         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
1514         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
1515         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
1516
1517 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1518
1519         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
1520         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
1521         using :GPR.
1522         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
1523         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
1524         (*branch_equality[sd]i_inverted): Likewise
1525         branch_equality{,_di}_inverted.
1526         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
1527         Redefine using :GPR.
1528
1529 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1530
1531         * rtl.def: Reorganize, placing all codes used only in machine
1532         descriptions at the end.
1533
1534         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
1535         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
1536         rtx_name, rtx_format arrays by direct reference to rtl.def,
1537         first undefining GENERATOR_FILE.  Define enum insn_note and
1538         note_insn_name array by direct reference to insn-notes.def.
1539         (adjust_field_rtx_def): Remove local definition of rtx_name.
1540         Use symbolic names for insn notes.
1541         * Makefile.in (gengtype.o): Update dependencies.
1542
1543 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1544
1545         * basic-block.h (struct basic_block_def): Reorder fields to
1546         eliminate interior padding.  Remove 'partition' field.
1547         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
1548         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
1549         (BB_COPY_PARTITION): New macros.
1550         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
1551         Replace all references to the 'partition' field of a basic
1552         block with new macros.
1553
1554         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1555         * final.c (final_scan_insn): Don't handle it.
1556         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
1557         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
1558         * sched-rgn.c (sched_is_disabled_for_current_region_p):
1559         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
1560
1561 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1562
1563         * c-decl.c (c_init_decl_processing): Adjust
1564         build_common_tree_nodes call.
1565         * expmed.c (const_mult_add_overflow_p): Use
1566         build_distinct_type_copy.
1567         * stor-layout.c (early_type_list): Remove.
1568         (layout_type): Don't append to early_type_list.
1569         (initialize_sizetypes): Add signed_p argument.
1570         (set_sizetype): Overwrite the stub type nodes directly.
1571         * tree.c (copy_node_stat): Clear a type's value cache here ...
1572         (build_distinct_type): ... not here.
1573         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
1574         * tree.h (initialize_sizetypes): Add signed_p argument.
1575         (build_common_tree_nodes): Likewise.
1576
1577         * objc/objc-act.c (get_static_reference): Use
1578         build_variant_type_copy.
1579         (get_protocol_reference): Likewise.
1580         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
1581
1582 2004-08-24  Richard Henderson  <rth@redhat.com>
1583             Andrew Pinski  <apinski@apple.com>
1584
1585         * gimplify.c (gimplify_array_ref_to_plus): Delete.
1586         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
1587         for ARRAY_REF.
1588
1589         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
1590         ARRAY_REF also to get to the STRING_CST.
1591
1592 2004-08-24  Paul Brook  <paul@codesourcery.com>
1593
1594         * config/arm/arm.c (arm_override_options): Update error message.
1595         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
1596         TARGET_HARD_FLOAT_ABI.
1597         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
1598         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
1599
1600 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1601
1602         PR target/17093
1603         * config/m32r.md (movsi_sda): Add SI mode specification to
1604         UNSPEC.
1605
1606 2004-08-24  Nick Clifton  <nickc@redhat.com>
1607
1608         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
1609         of seth_add3_operand.
1610
1611 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1612
1613         * Makefile.in (PROTO_OBJS): Add errors.o.
1614         * protoize.c (fancy_abort): Remove.
1615         * mips-tfile.c (fancy_abort): Add parameters.
1616
1617 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
1618
1619         * doc/trouble.texi (C++ misunderstandings): Fix example code.
1620
1621 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
1622
1623         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
1624         (host-default.o): Add dependency on HOOKS_H.
1625         * config/x-linux: Likewise.
1626         * config/x-solaris: Likewise.
1627         * config/i386/x-mingw32: Likewise.
1628         * config/rs6000/x-darwin: Likewise.
1629
1630 2004-08-23  James E Wilson  <wilson@specifixinc.com>
1631
1632         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
1633         DEF_REG_NOTE.
1634
1635 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
1636
1637         PR c/14492
1638         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
1639
1640 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
1641
1642         * cfg.c (check_bb_profile): Fix typos.
1643         * function.c (assign_parm_is_stack_parm): Likewise.
1644         * tree-nested.c: Likewise.
1645
1646 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
1647
1648         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
1649         Remove TYPECODE.
1650         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
1651
1652 2004-08-23  Eric Christopher  <echristo@redhat.com>
1653
1654         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
1655         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
1656         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
1657         * target.h: Ditto.
1658         * hooks.h: Include machmode.h.
1659         (hook_bool_mode_false): Declare.
1660         * hooks.c (hook_bool_mode_false): Define.
1661         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
1662         * stor-layout.c (layout_type): Ditto.
1663         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
1664         Define to target macro.
1665         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
1666         * config/arm/arm.c: Ditto. Use.
1667         * config/arm/arm.h: Ditto.
1668         * config/arm/arm-protos.h: Ditto.
1669         * config/i386/i386.c: Ditto.
1670         * config/i386/i386.h: Ditto.
1671         * config/rs6000/rs6000.c: Ditto.
1672         * config/rs6000/rs6000.h: Ditto.
1673         * config/sh/sh.c: Ditto.
1674         * config/sh/sh.h: Ditto.
1675         * config/sh/sh-protos.h: Ditto.
1676         * config/sh/sh.md: Use.
1677         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
1678         to TARGET_VECTOR_MODE_SUPPORTED_P.
1679
1680 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1681
1682         * Makefile.in (BUILD_ERRORS): Set to build-errors.
1683         (errors.o): New target for host.
1684         (build-errors.o): New target for build.
1685         (genobjs): Replace errors.o with build-errors.
1686         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
1687         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
1688         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
1689         (fix-header.o): Add errors.h
1690         * collect2.c (fancy_abort): Add parameters.
1691         * collect2.h (fancy_abort): Don't declare.
1692         * errors.h (fancy_abort): Don't declare.
1693         * errors.c: Include either bconfig.h or config.h.
1694         (fancy_abort): Trim filename.
1695         * fix-header.c (v_fatal, fatal): Remove.
1696         (progname): Remove definition.
1697         (main): Set progname here.
1698         * gcc.c (fancy_abort): Add parameters.
1699         * gcc.h (fancy_abort): Remove declaration.
1700         * gcov.c (fancy_abort): Remove.
1701         * rtl.h (fancy_abort): Don't declare.
1702         (abort): Don't define.
1703         * tree.h (fancy_abort): Don't declare.
1704         (abort): Don't define.
1705         * system.h (fancy_abort): Declare.
1706         (abort): Define to fancy_abort.
1707         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
1708
1709         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
1710         (usize_type, ubitsizetype): Remove.
1711         * stor-layout.c (set_sizetype): Don't initialize usizetype,
1712         ubitsizetype.
1713         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
1714
1715         * tree.h (build_distinct_type_copy): New.
1716         (build_type_copy): ... here.  Rename to ...
1717         (build_variant_type_copy): ... here.
1718         * tree.c (build_qualified_type): Rename build_type_copy call.
1719         (build_distinct_type_copy): New, broken out of ...
1720         (build_type_copy): ... here.  Rename to ...
1721         (build_variant_type_copy): ... here.  Use
1722         build_distinct_type_copy.
1723         (build_common_tree_nodes_2): Rename build_type_copy call.
1724         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
1725         call.
1726         (handle_packed_attribute, handle_unused_attribute,
1727         handle_transparanet_union_attribute, handle_aligned_attribute,
1728         handle_deprecated_attribute): Likewise.
1729         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
1730         Likewise.
1731         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
1732         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
1733         build_distinct_type_copy.
1734
1735 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1736
1737         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
1738         attribute.
1739
1740 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1741
1742         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
1743         loads and stores.
1744         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
1745         formerly unnamed patterns.  Redefine using :P for the address.  Remove
1746         explicit length attributes.
1747
1748 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1749
1750         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
1751         New functions.
1752         (single_reachable_address): Use them.
1753         (schedule_sm): Add dump.
1754         (is_call_clobbered_ref): New function.
1755         (determine_lsm_reg): Check whether the reference is call clobbered.
1756         Only work for gimple_reg_type values.
1757
1758 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1759
1760         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
1761         $31 store insns.  Redefine using :GPR.
1762
1763 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1764
1765         * config/mips/mips.md (P): New mode macro.
1766         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
1767         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
1768         Add mode attributes.
1769
1770 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1771
1772         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
1773         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
1774         later constants to cover the gap.
1775         (load, store): New mode attributes.
1776         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
1777         Use new unspec constants.
1778
1779 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1780
1781         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
1782         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
1783         to use register_operand rather than uns_arith_operand as the predicate
1784         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
1785         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
1786         Redefine using :GPR.  Make same predicate change here.  Extend the
1787         commutativity of operands 1 and 2 from the SImode version to the
1788         DImode one.
1789         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
1790         but with no predicate changes.
1791         (*nor[sd]i3): Redefine using :GPR.
1792
1793 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1794
1795         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
1796         noreturn functions.
1797
1798 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1799
1800         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
1801         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
1802         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
1803         rather than "%z2" (with a fake const0_rtx for operand 2).
1804         (ffs[sd]i2): Redefine using :GPR.
1805         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
1806
1807 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1808
1809         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
1810
1811 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1812
1813         * config/mips/mips.md (any_extend): New code macro.
1814         (u, su): New code attributes.
1815         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
1816         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
1817         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
1818         (*{s,u}mul_acc_di): Redefine using any_extend.
1819         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
1820         to reflect real insn names.
1821         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
1822         with an any_extend template.
1823         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
1824         Add '*' to name.
1825
1826 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1827
1828         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
1829         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
1830         (mul[sd]i3_r4000): Redefine using :GPR.
1831         (mulsi3_mult3): Don't check TARGET_MAD separately.
1832         (muldi3_mult3): Moved after mulsi_mult3.
1833
1834 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1835
1836         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
1837         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
1838         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
1839         (TARGET_GAS, TARGET_MIPS_AS): Delete.
1840         (TARGET_GPWORD): Define to true for n32 on IRIX.
1841         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
1842         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
1843         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
1844         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
1845         (MDEBUG_ASM_SPEC): Delete, folding into...
1846         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
1847         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
1848         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
1849         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
1850         to define asm_abi_default_spec.
1851         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
1852         (TARGET_ASM_SELECT_SECTION): Delete.
1853         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
1854         for non-mips16 code, removing previous workaround for SGI assemblers.
1855         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
1856         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
1857         (override_options): Remove !TARGET_GAS and !have_named_sections code.
1858         (print_operand): Fold TARGET_GAS conditionals into asm strings.
1859         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
1860         ASM_STABS_OP and ASM_STABN_OP.
1861         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
1862         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
1863         (mips_output_function_prologue): Remove !TARGET_GAS code.
1864         (mips_select_rtx_section): Remove !have_named_sections code.
1865         (mips_select_section): Delete.
1866         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
1867         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
1868         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
1869         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
1870         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
1871         * config/mips/windiss.h (ASM_SPEC): Likewise.
1872
1873 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1874
1875         * read-rtl.c (map_value, mapping, macro_group): New structures.
1876         (BELLWETHER_CODE): New macro.
1877         (modes, codes, bellwether_codes): New variables.
1878         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
1879         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
1880         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
1881         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
1882         (add_map_value, initialize_macros): New functions.
1883         (def_hash, def_hash_eq_p): Generalize to anything that points to,
1884         or starts with, a char * field.
1885         (find_macro, read_mapping, check_code_macro): New functions.
1886         (read_rtx_1): New, split out from read_rtx.  Handle the new
1887         define_{mode,code}_{macro,attr} constructs.  Use find_macro
1888         to parse the name of a code or mode.  Use BELLWETHER_CODE to
1889         extract the format and to choose a suitable code for rtx_alloc.
1890         Modify recursive invocations to use read_rtx_1.
1891         (read_rtx): Call initialize_macros.  Apply code and mode macros
1892         to the rtx returned by read_rtx_1.  Cache everything after the
1893         first macro expansion for subsequent read_rtx calls.
1894         * doc/md.texi: Document new .md constructs.
1895         * config/mips/mips.md (GPR): New mode macro.
1896         (d, si8_di5): New mode attributes.
1897         (any_cond): New code macro.
1898         (add[sd]i3): Redefine using :GPR.
1899         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
1900         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
1901         previously unnamed MIPS16 patterns.
1902         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
1903         lines.  Don't match (plus (const_int 0) ...).
1904         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
1905         Use a define_split to generate the addition.
1906         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
1907         (subsi3_internal): Delete.
1908         (*subsi3_extended): Renamed from subsi3_internal_2.
1909         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
1910         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
1911         using an any_cond template.
1912
1913 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1914
1915         * read-rtl.c (read_rtx): Tidy use of format_ptr.
1916
1917 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
1918
1919         * read-rtl.c (string_obstack): New file-scope variable.
1920         (read_string, read_quoted_string, read_braced_string)
1921         (read_escape): Remove obstack parameter and use string_obstack instead.
1922         (read_rtx): Remove function-local rtl_obstack and initialize
1923         string_obstack instead.  Update call to read_string.
1924
1925 2004-08-22  Andrew Pinski  <apinski@apple.com>
1926
1927         PR c/15262
1928         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
1929         expression is not constant.
1930         (c_finish_return): Do not go through INDIRECT_REF when looking
1931         for the inner expression of an ADDR_EXPR for warning about.
1932
1933 2004-08-22  Richard Henderson  <rth@redhat.com>
1934
1935         PR 17075
1936         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
1937         create new blocks and fall through.
1938         (expand_gimple_basic_block): Update to match.
1939
1940 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
1941
1942         * reload.c (find_reloads_address): Make return value tri-state.
1943         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
1944         (find_reloads): Assume that reloaded addresses match 'o' or
1945         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
1946         returned 1 (not -1).  Omit optional reloads for address operands
1947         only if find_reloads_address returned 1 (not -1).
1948
1949         * config/s390/s390.c (legitimize_reload_address): New function.
1950         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
1951         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
1952         legitimize_reload_address.
1953
1954 2004-08-22  Richard Hendersion  <rth@redhat.com>
1955
1956         * tree.h (SAVE_EXPR_RESOLVED_P): New.
1957         * gimplify.c (gimplify_save_expr): Use it.
1958         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
1959         on the temporary variable.
1960
1961 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1962
1963         * fold-const.c (rtl_expr_nonnegative_p): Delete.
1964         * tree.h (rtl_expr_nonnegative_p): Remove.
1965
1966 2004-08-22  Steven Bosscher  <stevenb@suse.de>
1967
1968         * config/i386/ppro.md (ppro_complex_insn): Add missing check
1969         for cpu==pentiumpro.
1970
1971         * combine.c (struct reg_stat): Fix comment typo.
1972
1973 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1974
1975         * c-tree.h (c_sizeof_nowarn): Remove.
1976
1977 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1978
1979         * c-decl.c (set_array_declarator_type): Rename to
1980         set_array_declarator_inner.
1981         (build_c_parm, build_attrs_declarator, build_function_declarator):
1982         New functions.
1983         (make_pointer_declarator): Call build_attrs_declarator.
1984         * c-tree.h (set_array_declarator_type): Rename to
1985         set_array_declarator_inner.
1986         (build_c_parm, build_attrs_declarator, build_function_declarator):
1987         New prototypes.
1988         * c-parse.in (after_type_declarator,
1989         parm_declarator_starttypename, parm_declarator_nostarttypename,
1990         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
1991         firstparm): Use these functions
1992
1993 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1994
1995         * c-decl.c (build_array_declarator, set_array_declarator_type,
1996         start_decl, grokdeclarator, grokparms): Change boolean parameters
1997         to type bool.
1998         * c-tree.h (build_array_declarator, set_array_declarator_type,
1999         start_decl): Update prototypes.
2000         * c-decl.c, c-parse.in: All callers changed.
2001
2002 2004-08-21  Mike Stump  <mrs@apple.com>
2003
2004         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
2005         (darwin_fix_and_continue): Likewise.
2006         (darwin_fix_and_continue_switch): Likewise.
2007         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
2008         (darwin_fix_and_continue): Likewise.
2009         (darwin_fix_and_continue_switch): Likewise.
2010
2011 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
2012
2013         PR  c++/16030
2014         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
2015         Remove, merging into ...
2016         (gen_stdcall_or_fastcall_suffix): New function, returning tree
2017         rather than const char*, and accepting additional parameter.
2018         Don't add suffix to '*'-prefixed symbols or variadic functions.
2019         (i386_pe_encode_section_info): Adjust for call to new function.
2020         Call change_decl_assembler_name.
2021
2022 2004-08-20  Mike Stump  <mrs@apple.com>
2023
2024         * config/darwin.c (machopic_indirect_data_reference): Mark
2025         stubs as defined.
2026         * config/386/386.c (darwin_local_data_pic): Add.
2027         (legitimate_constant_p): Reorder so that PLUS handling runs
2028         before darwin_local_data_pic to match the ordering in
2029         legitimate_pic_address_disp_p and so that MINUS runs after
2030         darwin_local_data_pic as otherwise the darwin_local_data_pic
2031         logic can be skipped, which would be very bad.
2032         (legitimate_pic_address_disp_p): Move from from here to
2033         darwin_local_data_pic so it can be reused.
2034
2035 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
2036
2037         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
2038         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
2039         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
2040         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
2041         (RS6000_ABI_NAME): Define as "linux".
2042         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
2043         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
2044         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
2045         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
2046         * config/rs6000/rs6000.c (dot_symbols): New global var.
2047         (rs6000_output_function_entry): New function, modified for
2048         !DOT_SYMBOLS..
2049         (print_operand <case 'z'>): ..extracted from here.
2050         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
2051         (rs6000_output_function_epilogue): Likewise.
2052         (rs6000_elf_declare_function_name): Likewise.
2053         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
2054         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
2055         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
2056         * configure: Regenerate.
2057         * config.in: Regenerate.
2058
2059 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2060
2061         * reload.c (find_reloads_address): Fix thinko in previous change.
2062
2063         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2064         a CONST_INT.
2065
2066 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
2067
2068         PR rtl-optimization/17099
2069         * combine.c (force_to_mode): Check if inner_mask has any bits set
2070         outside of GET_MODE (x) instead of op_mode.
2071
2072 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2073
2074         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
2075         fragment.
2076         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
2077         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
2078         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
2079         architecture.
2080         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2081         configurations.
2082         * config/arm/t-symbian: New file.
2083
2084 2004-08-20  Andrew Pinski  <apinski@apple.com>
2085
2086         * regrename.c (kill_value_regno): ANSIfy.
2087
2088 2004-08-20  Dale Johannesen  <dalej@apple.com>
2089
2090         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2091
2092 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
2093
2094         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
2095         (kill_value_regno): New function, derived from kill_value.
2096         (kill_value): Update.
2097         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
2098
2099 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
2100
2101         Fix PR tree-optimization/17111
2102         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
2103         of non-value_handles.
2104         (bitmap_set_contains): All constants are in every set.
2105
2106 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2107
2108         * fold-const.c (round_up, round_down): Use build_int_cst.
2109         Optimize common case.
2110
2111 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
2112             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2113
2114         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
2115         one_only_data_section): Rename to som_readonly_data_section,
2116         som_one_only_readonly_data_section and som_one_only_data_section.
2117         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
2118         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
2119         conditional defines.
2120         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
2121         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
2122         string values.
2123         (pa_select_section): Use renamed section functions.
2124         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2125         SOM_READONLY_DATA_SECTION_FUNCTION,
2126         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2127         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
2128         Define here ...
2129         * config/pa/som.h: ... not here.
2130         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2131         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
2132         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2133         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
2134         (READONLY_DATA_SECTION): Use som_readonly_data_section.
2135
2136 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2137
2138         * fold-const.c (int_const_binop): Don't generate non-overflowing
2139         size-types specially.
2140         (fold_convert_const): Likewise.
2141
2142         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2143         clear cache on copied sizetype.
2144
2145 2004-08-20  Ben Elliston  <bje@au.ibm.com>
2146
2147         * configure.ac: Don't escape apostrophe in --enable-coverage help.
2148         * configure: Regenerate.
2149
2150 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2151
2152         PR 5620
2153         * gcc.c (struct stat input_stat): Don't define if
2154         HOST_LACKS_INODE_NUMBERS
2155         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
2156         than stat to determine if temp file is same as input file.
2157         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
2158         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
2159
2160 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
2161
2162         * configure.ac (mips*-*-*): Print an error if not using GAS.
2163         * configure: Regenerated.
2164         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
2165         comments about buggy MIPSpro assemblers.
2166         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
2167         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
2168         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
2169         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
2170         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
2171         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
2172         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
2173         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
2174         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
2175         of more general IRIX 6 definitions.
2176         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
2177         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
2178         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
2179         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
2180         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2181         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
2182         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
2183         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
2184         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
2185         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
2186         (LINK_SPEC): Move most of definition to iris.h.
2187         (SUBTARGET_LINK_SPEC): New macro.
2188         (IRIX_STARTFILE_SPEC): Fold into...
2189         (STARTFILE_SPEC): ...here.
2190         (IRIX_ENDFILE_SPEC): Fold into...
2191         (ENDFILE_SPEC): ...here.
2192         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
2193         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
2194         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
2195         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
2196         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
2197         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
2198         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
2199         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2200         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
2201         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
2202         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
2203         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
2204         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
2205         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
2206         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
2207         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
2208         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
2209         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
2210         (TARGET_IRIX6): Define to 1.
2211         (DRIVER_SELF_SPECS): Define.
2212         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
2213         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
2214         (SUBTARGET_LINK_SPEC): New macro.
2215         (IRIX_STARTFILE_SPEC): Fold into...
2216         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
2217         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
2218         (LIB_SPEC, LIBGCC_SPEC): Use them.
2219         (LIB_SPEC): Remove !mabi=* case.
2220         (IRIX_ENDFILE_SPEC): Fold into...
2221         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
2222         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
2223         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
2224         (TARGET_IRIX6): New macro.
2225         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
2226         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
2227         (LABEL_AFTER_LOC): Delete.
2228         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
2229         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
2230         (mips_build_builtin_va_list): Check TARGET_IRIX6.
2231         (override_options): Remove TARGET_SGI_O32_AS-related code.
2232         (irix_output_external_libcall): Make static.
2233         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
2234         LABEL_AFTER_LOC.
2235         (mips_file_start): Tidy guard for ABI sections.  Remove use of
2236         ABICALLS_ASM_OP; use .abicalls instead.
2237         (mips_output_aligned_decl_common, mips_declare_object_name)
2238         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
2239         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
2240         .globl foo .text directives.
2241         (irix_asm_named_section_1, irix_asm_named_section)
2242         (irix_section_align_entry, irix_section_align_htab)
2243         (irix_orig_asm_out_file, irix_section_align_entry_eq)
2244         (irix_section_align_entry_hash, irix_asm_output_align)
2245         (irix_file_start, irix_section_align_1, copy_file_data)
2246         (irix_file_end, irix_section_type_flags): Delete.
2247         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
2248         Use standard section syntax.  Remove protective "jr $31".
2249         (__gcc_fini): Likewise .gcc_fini.
2250         * config/mips/irix-crtn.asm: Adjust sections accordingly.
2251         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
2252         iris5gas.h.
2253         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
2254         from t-irix-gld.
2255         (EXTRA_MULTILIB_PARTS): Define.
2256         * config/mips/t-iris6: Remove bogus comment.
2257         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
2258         * config/mips/iris5gas.h, config/mips/iris5gld.h,
2259         config/mips/iris6gas.h, config/mips/iris6gld.h,
2260         config/mips/t-iris5-as, config/mips/t-iris5-gas
2261         config/mips/t-irix-gld: Delete.
2262         * config/mips/iris.h: New file.
2263         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
2264
2265 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
2266
2267         * postreload.c (reload_cse_move2add): Allow any condjump, but check
2268         that the implicit set isn't clobbered in the jump insn.
2269
2270 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2271
2272         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
2273         * optabs.c (init_optabs): Don't check it.
2274         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
2275         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
2276
2277 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2278
2279         * config/s390/s390.md (s390_warn_framesize_string)
2280         (s390_warn_dynamic_string, s390_stack_size_string)
2281         (s390_stack_guard_string): New global string variables.
2282         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
2283         (s390_stack_guard): New global variables.
2284         (override_options): Added checks for the new options.
2285         (s390_emit_prologue): Emit stack check and trap code and perform
2286         compile time stack size checking.
2287
2288         * config/s390/s390.h (TARGET_OPTIONS): Added new options
2289         "warn-framesize", "warn-dynamicstack", "stack-size" and
2290         "stack-guard".
2291
2292         * doc/invoke.texi: Added documentation for the new options.
2293
2294 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2295
2296         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
2297         to eliminate warning.
2298         (linear_search_fdes): Declare p as unsigned.
2299         (binary_search_mixed_encoding_fdes): Likewise.
2300         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
2301         to eliminate warning.
2302         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
2303         type cast.
2304
2305 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2306
2307         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
2308         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
2309         instead of one.  Check for strictly legitimate address.
2310         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
2311         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
2312
2313 2004-08-19  Eric Christopher  <echristo@redhat.com>
2314
2315         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
2316         * langhooks.h (unsave_expr_now): Ditto.
2317         * tree.h (unsave_expr_1): Remove prototype.
2318         (lhd_unsave_expr_now): Rename to unsave_expr_now.
2319         * tree-inline.c (unsave_expr_1): Move here
2320         from tree.c. Make static.
2321         (unsave_expr_now): Rename from lhd_unsave_expr_now.
2322         * tree-sra.c: Fix up for rename.
2323         * tree-ssa-copy.c: Ditto.
2324         * tree-eh.c: Ditto.
2325         * tree.c (unsave_expr_1): Move to tree-inline.c.
2326
2327 2004-08-19  Caroline Tice  <ctice@apple.com>
2328
2329         * config/i386/cygming.h (switch_to_section):  Fix typo (change
2330         in_unlikely_text_section to in_unlikely_executed_text).
2331
2332 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
2333
2334         * vec.h (VEC_lower_bound): New macro.
2335
2336 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
2337
2338         PR target/16446
2339         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
2340         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
2341         treat each ABI separately.  Deal with n32/n64 complex float arguments.
2342         (function_arg): Add associated complex handling here.
2343
2344 2004-08-19  Richard Henderson  <rth@redhat.com>
2345
2346         * config/arm/arm.c (arm_gen_load_multiple): Use
2347         adjust_automodify_address.  Take base memory and offset instead
2348         of unchanging/struct/scalar bits.
2349         (arm_gen_store_multiple): Likewise.
2350         (arm_gen_movmemqi): Use adjust_automodify_address.
2351         * config/arm/arm-protos.h: Update decls.
2352         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
2353         (store_multiple): Similarly.
2354
2355 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
2356
2357         * regclass.c (globalize_reg): Update call_really_used_regs.
2358
2359 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2360
2361         * doc/invoke.texi (integer-share-limit): Document.
2362
2363         * tree.h (TYPE_CACHED_VALUES_P): New.
2364         (TYPE_CACHED_VALUES): New.
2365         (TYPE_ORIG_SIZE_TYPE): Adjust.
2366         * tree.def (INTEGER_CST): Update documentation.
2367         * tree.c: Inlcude params.h.
2368         (build_int_cst): Cache small values.
2369         (build_type_copy): Do not copy the value cache.
2370         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
2371         unneeded zeroing.
2372         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
2373         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
2374         cache.
2375         * fold-const.c (force_fit_type): Copy value when setting
2376         overflows.
2377         (int_const_binop): Likewise.
2378         * stor-layout.c: Include params.h
2379         (set_sizetype): Create values cache.
2380         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
2381         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
2382         * params.h (INTEGER_SHARE_LIMIT): New.
2383         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
2384
2385 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
2386
2387         * gimplify.c (gimplify_minimax_expr): Remove.
2388         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
2389
2390 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
2391
2392         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2393         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
2394
2395 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2396
2397         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
2398
2399 2004-08-18  Andrew Pinski  <apinski@apple.com>
2400
2401         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
2402
2403 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
2404
2405         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
2406         (__aeabi_ul2f): Likewise.
2407
2408 2004-08-18  Richard Henderson  <rth@redhat.com>
2409
2410         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
2411         move to rtl completely.
2412         (struct meminsnbuf, xtensa_emit_block_move): Remove.
2413         (xtensa_find_mode_for_size): Remove.
2414         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
2415         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
2416
2417 2004-08-18  Richard Henderson  <rth@redhat.com>
2418
2419         * config/mcore/mcore.c (mode_from_align): Remove DImode.
2420         (block_move_sequence): Rewrite to use adjust_address.
2421         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
2422         Return boolean indicating success/failure.
2423         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
2424         * config/mcore/mcore.md (movmemsi): Update to match.
2425
2426 2004-08-18  Mike Stump  <mrs@apple.com>
2427
2428         * doc/invoke.texi (-mfix-and-continue): Add support for
2429         fast turn around debugging.
2430         (-ffix-and-continue): Likewise.
2431         (-mindirect-data): Likewise.
2432         (-findirect-data): Likewise.
2433         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
2434         (indirect_data): Likewise.
2435         (machopic_data_defined_p): Likewise.
2436         (machopic_output_indirection): Likewise.
2437         (darwin_encode_section_info): Likewise.
2438         (darwin_fix_and_continue): Likewise.
2439         (darwin_fix_and_continue_switch): Likewise.
2440         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
2441         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
2442         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
2443         (SUBTARGET_OPTIONS): Likewise.
2444         (darwin_fix_and_continue): Likewise.
2445         (darwin_fix_and_continue_switch): Likewise.
2446         (TARGET_FIX_AND_CONTINUE): Likewise.
2447         * config/rs6000.c (rs6000_emit_prologue): Likewise.
2448
2449 2004-08-19  Steven Bosscher  <stevenb@suse.de>
2450
2451         * basic-block.h (struct edge_def): Remove crossing_edge.
2452         (EDGE_CROSSING): New define.
2453         (EDGE_ALL_FLAGS): Update.
2454         * bb-reorder.c (find_traces_1_round, better_edge_p,
2455         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
2456         find_jump_block, fix_crossing_conditional_branches,
2457         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
2458         Replace all occurences of crossing_edge with an edge flag check
2459         or set/reset.
2460         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2461         try_crossjump_bb): Likewise.
2462         * cfglayout.c (fixup_reorder_chain): Likewise.
2463         * cfgrtl.c (force_nonfallthru_and_redirect,
2464         commit_one_edge_insertion): Likewise.
2465
2466         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
2467         * tree-flow.h (compute_dominance_frontiers): Move prototype...
2468         * basic-block.h:  ...here.
2469         * tree-cfg.c (compute_dominance_frontiers_1,
2470         compute_dominance_frontiers): Move from here...
2471         * cfganal.c: ...to here.  Include timevar.h.
2472
2473 2004-08-18  James E Wilson  <wilson@specifixinc.com>
2474
2475         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
2476         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
2477
2478         * config/mips/mips.md (type): Add frdiv.
2479         (divsf3+1, divsf3+2): Change type to frdiv.
2480         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
2481         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
2482
2483         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
2484         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
2485         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
2486         * config/mips/5000.md (r5k_fdiv_single): Likewise.
2487         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
2488         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
2489         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
2490         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
2491         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
2492         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
2493         Likewise.
2494         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
2495
2496 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
2497
2498         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
2499         get regression tester working again.
2500
2501 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2502
2503         * insn-notes.def, reg-notes.def: New files.
2504         * rtl.h: Use them to define enum insn_note and enum reg_note.
2505         * rtl.c: Use them to define note_insn_name and reg_note_name.
2506         * Makefile.in (RTL_BASE_H): Update.
2507
2508         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
2509         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2510
2511 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2512
2513         * arm.c (arm_size_rtx_costs): New function.
2514         (arm_override_options): Use it if optimizing for space.
2515
2516 2004-08-18  Richard Henderson  <rth@redhat.com>
2517
2518         * emit-rtl.c (gen_const_mem): New.
2519         * rtl.h (gen_const_mem): Declare.
2520         * expr.c (do_tablejump): Use it.
2521         * varasm.c (force_const_mem): Likewise.
2522         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2523         (machopic_legitimize_pic_address): Likewise.
2524         * config/arm/arm.c (legitimize_pic_address): Likewise.
2525         * config/i386/i386.c (legitimize_pic_address): Likewise.
2526         (legitimize_tls_address): Likewise.
2527         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2528         * config/ia64/ia64.md (load_fptr): Likewise.
2529         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
2530         * config/pa/pa.c (legitimize_pic_address): Likewise.
2531         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2532         (rs6000_emit_move): Likewise.
2533         * config/s390/s390.c (legitimize_pic_address): Likewise.
2534         (legitimize_tls_address): Likewise.
2535         * config/s390/s390.md (casesi): Likewise.
2536         * config/sh/sh.c (sh_reorg): Likewise.
2537         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
2538         * config/v850/v850.md (casesi): Likewise.
2539
2540         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
2541         * config/sh/sh.c (prepare_move_operands): Remove incorrect
2542         use of MEM_READONLY_P.
2543
2544 2004-08-18  Steven Bosscher  <stevenb@suse.de>
2545
2546         * Makefile.in (OBJS-common): Add postreload-gcse.c.
2547         Add new postreload-gcse.o.
2548         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
2549         (lookup_as_function, insert, rehash_using_reg, use_related_value,
2550         equiv_constant): Use SAFE_HASH instead of safe_hash.
2551         (exp_equiv_p): Export.  Add for_gcse argument when comparing
2552         for GCSE.
2553         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
2554         find_comparison_args, fold_rtx, cse_insn): Update callers.
2555         (hash_rtx): New function derived from old canon_hash and bits
2556         from gcse.c hash_expr_1.
2557         (canon_hash_string): Rename to hash_rtx_string.
2558         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
2559         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
2560         (cselib_lookup): Update this caller.
2561         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
2562         Make static.
2563         (hash_expr): Call hash_rtx.
2564         (ldst_entry): Likewise.
2565         (expr_equiv_p): Call exp_equiv_p.
2566         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
2567         reg_used_on_edge, reg_set_between_after_reload_p,
2568         reg_used_between_after_reload_p, get_avail_load_store_reg,
2569         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
2570         get_bb_avail_insn, hash_scan_set_after_reload,
2571         compute_hash_table_after_reload,
2572         eliminate_partially_redundant_loads, gcse_after_reload,
2573         get_bb_avail_insn, gcse_after_reload_main): Remove.
2574         * postreload-gcse.c: New file, reincarnating most of the above.
2575         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
2576         (gcse_after_reload_main): Update prototype.
2577         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
2578         * passes.c (rest_of_handle_gcse2): Use it.
2579
2580 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2581
2582         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
2583         (pass_loop_done): Likewise.
2584
2585 2004-08-18  Andrew Pinski  <apinski@apple.com>
2586
2587         * config/rs6000/darwin.md: Delete the altivec patterns which are
2588         handled differently now.
2589         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
2590         (macho_correct_pic_di): Likewise.
2591         (call_indirect_nonlocal_darwin64): Likewise.
2592         Delete the save world/saveFP/saveVec patterns.
2593
2594         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
2595         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
2596         * config/rs6000/rs6000.md: Include darwin.md.
2597         (builtin_setjmp_receiver): Add DImode case.
2598         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
2599         Darwin bits.
2600
2601 2004-08-18  Matt Austern  <austern@apple.com>
2602
2603         Dead code stripping
2604         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
2605         * darwin.c (darwin_file_end): Mark file as potentially strippable.
2606
2607 2004-08-18  Richard Henderson  <rth@redhat.com>
2608
2609         * alias.c (readonly_fields_p): Remove.
2610         (objects_must_conflict_p): Don't call it.
2611         * tree.h (readonly_fields_p): Remove.
2612         * langhooks.h (struct lang_hooks): Remove honor_readonly.
2613         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
2614
2615 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2616
2617         * tree-dfa.c (add_referenced_var): Only global variables are
2618         call-clobbered.
2619         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
2620         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
2621         all pointers dereferenced if the statement dereferences them.
2622         (create_name_tags): Do not create memory tags for pointers
2623         that have PT_ANYTHING set.
2624         Also check if PT_VARS is not empty before creating a name tag.
2625         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
2626         variables that share the same alias set with a pointer that
2627         may point anywhere.
2628         (add_may_alias): Add FIXME comment to remove clobbering
2629         aliased variables and tags.
2630         (replace_may_alias): Likewise.
2631         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
2632         (merge_pointed_to_info): If the original variable has not
2633         points-to information, call set_pt_anything.
2634         (add_pointed_to_var): Do not prevent adding a pointed-to
2635         variable if the pointers is PT_ANYTHING.
2636         If the variable is a global, set PT_GLOBAL_MEM.
2637         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
2638         pointer type only come in PTR+OFFSET flavours.
2639         Always call merge_pointed_to_info on PHI arguments that are
2640         SSA_NAMEs.
2641         (get_nmt_for): Mark call-clobbered tags whose pointer points
2642         to global memory.
2643         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
2644         values.
2645         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
2646         FLAGS.
2647         (add_stmt_operand): Abort if the caller tried to add a killing
2648         definition for a memory tag.
2649         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
2650         unnecessary checks.
2651
2652 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
2653
2654         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
2655         from call_used_regs.  Update call_really_used_regs.
2656         (CALL_REALLY_USED_REGISTERS): Define.
2657         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
2658         Replace call_used_regs with call_really_used_regs.
2659         (calc_live_regs, sh_media_register_for_return): Likewise.
2660         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
2661         * sh.md (return_media): Likewise.
2662
2663 2004-08-18  Andrew Pinski  <apinski@apple.com>
2664
2665         * config/darwin.c (machopic_legitimize_pic_address): Only set
2666         MEM_READONLY_P in the non TARGET_TOC case.
2667
2668 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2669
2670         * rtl.def (NIL): Delete.
2671         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
2672         Tighten the syntax a little.
2673
2674         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
2675         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
2676         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
2677         * config/i386/predicates.md, config/m32r/m32r.h
2678         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
2679         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
2680         * config/sparc/sparc.h, doc/tm.texi:
2681         Replace all occurrences of NIL with UNKNOWN.
2682
2683 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2684
2685         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
2686         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
2687         sequence inline.  Move drop_through_label code into this
2688         block, being the only place it is used.  Adjust comments.
2689
2690 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
2691
2692         * config/rs6000/altivec.md: Add new patterns for calls to
2693         save_world/rest_world functions.
2694
2695         * config/rs6000/rs6000-protos.h: (save_world_operation,
2696         restore_world_operation) new declarations.
2697
2698         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
2699         field added.
2700         (rs6000_stack_info): Set world_save_p field.
2701         (save_world_operation): New function.
2702         (restore_world_operation): New function.
2703         (compute_save_world_info): New function.
2704         (rs6000_stack_info): Call compute_save_world_info.
2705         (rs6000_emit_prologue): Check for world_save_p and generate
2706         pattern to call save_world for saving all non-volatile and
2707         special registers.
2708         (rs6000_emit_epilogue): Check for world_save_p and generate
2709         pattern to call rest_world to restore saved registers.
2710
2711         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
2712         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
2713         (rs6000_reg_names): New entries added for save_world_operation and
2714         restore_world_operation.
2715
2716 2004-08-18  Caroline Tice  <ctice@apple.com>
2717
2718         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
2719         "-freorder-blocks-and-partition" to the flags used in second
2720         stage of profiledbootstrap.
2721         * bb-reorder.c (push_to_next_round_p): Add new variable,
2722         next_round_is_last; set and use variable to make sure, when
2723         partitioning, that the last trace construction round consists
2724         of all (and only) cold basic blocks.
2725         (rotate_loop): Don't copy blocks that end in a section
2726         crossing jump.
2727         (copy_bb): Correctly initialize "partition" of duplicated bb.
2728         (add_unlikely_executed_notes): Add a comment.
2729         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
2730         to make sure, if function contains hot blocks, that the
2731         successors of ENTRY_BLOCK_PTR are hot; also, only look for
2732         crossing edges if the architecture supports named sections.
2733         (mark_bb_for_unlikely_executed_section): Modify to always
2734         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
2735         the basic block note insn.
2736         (fix_crossing_unconditional_branches): Remove extra space.
2737         (fix_edges_for_rarely_executed_code): Modify to only do
2738         partitioning work if the architecture supports named sections.
2739         (reorder_basic_blocks): Modify to only add
2740         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
2741         supports named sections.
2742         * c-common.c (handle_section_attribute): Initialize new global
2743         variable, user_defined_section_attribute, to true if user has
2744         specified one.
2745         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
2746         forward edges that cross section boundaries.
2747         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
2748         partitioning information if the architecture supports named
2749         sections.
2750         * cfgrtl.c (target.h): Add statement to include this.
2751         (rtl_split_block): Make sure newly created bb gets correct
2752         partition.
2753         (try_redirect_by_replacing_jump): Make sure redirection isn't
2754         attempting to cross section boundaries.
2755         (force_nonfallthru_and_redirect): Only do partition fix up if
2756         architecture supports named sections.
2757         (rtl_split_edge): Make sure newly created bb ends up in
2758         correct partition.
2759         (commit_one_edge_insertion): Remove code that incorrectly
2760         updated basic block partition; Make sure partition fix up only
2761         happens if architecture supports named sections and it's not
2762         already done.
2763         (rtl_verify_flow_info_1): Fix if-condition on test/error
2764         condition that fallthru edges are not allowed to cross section
2765         boundaries.
2766         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
2767         * final.c (final_scan_insn): Remove redundant test from if-statement;
2768         change calls to text_section into calls to function_section; add code
2769         to only to partitioning fix up if architecture supports named
2770         sections.
2771         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
2772         partition.
2773         (if_convert): Add targetm.have_named_sections to test.
2774         * output.h (unlikely_section_label): Extern declaration for new global
2775         variable.
2776         (unlikely_text_section_name): Likewise.
2777         * opts.c (decode_options): If both partitioning and DWARF debugging
2778         are turned on, issue a warning that this doesn't work, and change
2779         partitiong to basic block reordering (without hot/cold partitions).
2780         * passes.c (rest_of_handle_final): Re-set new global variable,
2781         user_defined_section_attribute, to false.
2782         (rest_of_compilation): Change options for calling partitioning
2783         function: Don't call if the user defined the section attribute, and
2784         don't call if DECL_ONE_ONLY is true for the current function.
2785         * predict.c (choose_function_section): Return immediately if we
2786         are doing hot/cold partitioning (i.e. let the basic block partitioning
2787         determine where the function belongs).
2788         * reg-stack.c (emit_swap_insn): Add condition to step over
2789         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
2790         * toplev.c (user_defined_section_attribute): New global variable.
2791         * toplev.h (user_defined_section_attribute): Extern declaration
2792         for new global variable.
2793         * varasm.c (unlikely_section_label): New global variable.
2794         (unlikely_text_section_name): New global variable.
2795         (unlikely_text_section): Add code to initialize
2796         unlikely_text_section_name if necessary; modify to use
2797         unlikely_text_section_name and unlikely_section_label; also to use
2798         named_section properly.
2799         (in_unlikely_text_section):  Modify to work correctly with
2800         named_section and to use unlikely_text_section_name.
2801         (named_section):  Add code to work properly with cold section.
2802         (function_section): Clean up if-statement.
2803         * config/darwin.c (darwin_asm_named_section): Return to original
2804         code, removing use of SECTION_FORMAT_STRING.
2805         * config/arm/pe.h (switch_to_section):  Add case for
2806         in_unlikely_executed_text to switch statement.
2807         * config/i386/cygming.h (switch_to_section): Likewise.
2808         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
2809         (SECTION_FORMAT_STRING): Likewise.
2810         * config/mcore/mcore.h (switch_to_section): Likewise.
2811         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
2812         (SECTION_FORMAT_STRING): Remove.
2813
2814 2004-08-18  Roger Sayle  <roger@eyesopen.com>
2815
2816         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
2817         -ffixed-reg safe, by preserving the meanings of zero and one.
2818         (CALL_USED_REGISTERS): Likewise.
2819         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
2820
2821 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2822
2823         * config/sh/sh.c (split_branches): Check the result of
2824         next_active_insn.
2825         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
2826         Call rtl_register_cfg_hooks.
2827
2828 2004-08-18  Richard Henderson  <rth@redhat.com>
2829
2830         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
2831         * alias.c (true_dependence): Update to match new semantics.
2832         (canon_true_dependence, write_dependence_p): Likewise.
2833         (anti_dependence, output_dependence): Update write_dependence_p args.
2834         (unchanging_anti_dependence): Remove.
2835         * calls.c (purge_mem_unchanging_flag): Remove.
2836         (fixup_tail_calls): Don't call it.
2837         (expand_call): Don't add unchanging memory to function usage.
2838         * expr.c (emit_block_move_via_libcall): Likewise.
2839         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
2840         (get_subtarget): Don't use RTX_UNCHANGING_P.
2841         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
2842         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
2843         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
2844         * cse.c (insert): Don't use RTX_UNCHANGING_P.
2845         (cse_insn, canon_hash): Use MEM_READONLY_P.
2846         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
2847         instead of RTX_UNCHANGING_P.
2848         * explow.c (maybe_set_unchanging): Remove.
2849         * expr.h (maybe_set_unchanging): Remove.
2850         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
2851         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
2852         (assign_parm_setup_reg, expand_function_start): Likewise.
2853         * integrate.c (copy_rtx_and_substitute): Likewise.
2854         * ra-rewrite.c (emit_colors): Likewise.
2855         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
2856         (fixup_match_1): Likewise.
2857         * reload1.c (reload, alter_reg): Likewise.
2858         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
2859         not RTX_UNCHANGING_P.
2860         (equiv_init_varies_p): Likewise.
2861         * loop-invariant.c (check_maybe_invariant): Likewise.
2862         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
2863         * loop.c (note_addr_stored): Likewise.
2864         (prescan_loop): Likewise. Don't check function usage for clobbered
2865         unchanging memory.
2866         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
2867         not RTX_UNCHANGING_P.
2868         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
2869         * varasm.c (force_const_mem): Likewise.
2870         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
2871         * web.c (entry_register): Likewise.
2872         * tree-gimple.h (get_base_address): Move decl ...
2873         * tree.h: ... here.
2874         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
2875
2876         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
2877         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
2878         (alpha_set_memflags): Update to match.
2879
2880         * config/darwin.c (machopic_indirect_data_reference): Set
2881         MEM_READONLY_P instead of RTX_UNCHANGING_P.
2882         (machopic_indirect_call_target): Likewise.
2883         (machopic_legitimize_pic_address): Likewise.
2884         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
2885         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
2886         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
2887         * config/frv/frv.md (symGOT2reg): Likewise.
2888         * config/i386/i386.c (legitimize_pic_address,
2889         legitimize_tls_address, ix86_split_to_parts): Likewise.
2890         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2891         * config/ia64/ia64.md (load_fptr): Likewise.
2892         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
2893         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
2894         * config/mcore/mcore.c (block_move_sequence): Likewise.
2895         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
2896         * config/pa/pa.c (legitimize_pic_address): Likewise.
2897         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2898         (rs6000_emit_move): Likewise.
2899         * config/s390/s390.c (legitimize_pic_address): Likewise.
2900         (legitimize_tls_address): Likewise.
2901         * config/s390/s390.md (casesi): Likewise.
2902         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
2903         * config/sh/sh.md (symGOT2reg): Likewise.
2904         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
2905         * config/v850/v850.md (casesi): Likewise.
2906
2907         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
2908         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
2909         * config/mips/mips.c (mips_restore_gp): Likewise.
2910         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
2911         * config/sh/sh.c (sh_reorg): Likewise.
2912
2913 2004-08-18  Richard Henderson  <rth@redhat.com>
2914
2915         * tree.h (struct tree_decl): Add gimple_formal_temp.
2916         (DECL_GIMPLE_FORMAL_TEMP_P): New.
2917         * gimplify.c (pop_gimplify_context): Clear it.
2918         (lookup_tmp_var): Set it, if is_formal.
2919         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
2920         Use is_gimple_val for VECTOR.  Simplify return value.
2921         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
2922         (gimplify_expr): Likewise.
2923         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
2924         is_gimple_tmp_rhs for clarity.  Update all callers.
2925         (is_gimple_reg_rhs): Simplify logic.
2926         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
2927         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
2928         (is_gimple_formal_tmp_reg): Similarly.
2929         * tree-gimple.h: Update decls.
2930         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
2931         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
2932         * tree-ssa-live.c (var_union, type_var_init): Likewise.
2933
2934 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
2935
2936         * c4x.c (legitimize_operands): Remove calls to
2937         preserve_subexpressions_p.
2938
2939 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
2940
2941         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
2942         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
2943
2944 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
2945
2946         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
2947         Objective-C++ extensions.
2948         * gengtype.c (get_file_basename): Match entire subdirectory name
2949         ('cp', 'objc', 'objcp') rather than just its suffix.
2950         (get_base_file_bitmap): Allow for files to belong to more than one
2951         language.
2952         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
2953         used by more than one front-end.
2954
2955 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2956
2957         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
2958         avoid use of preserve_subexpressions_p.
2959
2960 2004-08-17  Richard Henderson  <rth@redhat.com>
2961
2962         PR 17051
2963         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
2964
2965 2004-08-17  DJ Delorie  <dj@redhat.com>
2966
2967         * doc/extend.texi: Document new xstormy16 attribute.
2968
2969         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
2970         (xstormy16_splittable_below100_or_register): New.
2971         (combine_bnp): New.
2972         (xstormy16_reorg): New.
2973         (TARGET_MACHINE_DEPENDENT_REORG): Define.
2974
2975         * config/stormy16/stormy16.md (movqi_internal): Make name public.
2976         (movhi_internal): Likewise.
2977         (cbhranchhi): Likewise.
2978         (cbhranchhi_neg): Likewise.
2979         (andhi3): Only allow splittable below100 operands.
2980         (iorhi3): Likewise.
2981         (peephole2): New and/zero_extend->and peephole.
2982         (peephole2): New load/ior/save->set1 peephole.
2983         (peephole2): New load/and/save->clr1 peephole.
2984         (bclrx, bclrx2, bclr7, bclr15): New.
2985         (bsetx, bsetx2, bset7, bset15): New.
2986
2987         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
2988         liberal about acceptable 'B' masks.
2989
2990         * config/stormy16/stormy16-protos.h
2991         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
2992         xstormy16_below100_operand, xstormy16_below100_or_register,
2993         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
2994         (PREDICATE_CODES): Add new predicates.
2995
2996         * config/stormy16/stormy16.c
2997         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
2998         xstormy16_below100_operand, xstormy16_below100_or_register,
2999         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
3000         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
3001         (xstormy16_legitimate_address_p): Allow below100 symbols.
3002         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
3003         (xstormy16_expand_move): Leave below100 operands as-is.
3004         (xstormy16_encode_section_info): Encode below100 symbols.
3005         (xstormy16_strip_name_encoding): New.
3006         (xstormy16_print_operand): Print 'b' as shift mask.
3007         (xstormy16_attribute_table): Add below100 attributes.
3008         (xstormy16_handle_below100_attribute): New.
3009
3010         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
3011         (XSTORMY16_SECTION_FUNCTION): New.
3012         (EXTRA_SECTION_FUNCTIONS): Define using the above.
3013         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
3014         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
3015         (ASM_OUTPUT_LABELREF): Define.
3016
3017         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
3018         (movhi_internal): Add below100 support.
3019         (andhi3): Add below100 support.
3020         (iorhi3): Add below100 support.
3021         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
3022
3023 2004-08-17  James E Wilson  <wilson@specifixinc.com>
3024
3025         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
3026         of VOIDmode for comparison code mode.
3027         * config/mips/mips.md: For conditional move patterns, use mode of
3028         first compare operand for comparison mode, instead of VOIDmode.
3029
3030         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
3031         normal and -ffast-math code.
3032
3033 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
3034
3035         PR c++/15871
3036         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
3037
3038 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
3039
3040         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
3041
3042 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
3043
3044         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
3045         for non Darwin targets.
3046         (*call_value_nonlocal_darwin64): Likewise.
3047
3048 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
3049
3050         * config/rs6000/rs6000.c (rs6000_function_value): Check for
3051         altivec mode for altivec return register.
3052
3053 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
3054
3055         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
3056         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3057         * config/rs6000/rs6000.md: Include darwin.md.
3058         (builtin_setjmp_receiver): Add DImode case.
3059         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
3060         Darwin bits.
3061
3062 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
3063
3064         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
3065         trees.
3066         * tree-vectorizer.h: New File: Same.
3067         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
3068         * common.opt (ftree-vectorize): New flag to enable vectorization.
3069         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
3070         vectorization pass.
3071         * tree-data-ref.h (init_data_ref): Additional argument.
3072         (array_base_name_differ_p): Moved to tree-data-ref.c.
3073         * tree-data-ref.c (array_base_name_differ_p): Revised.
3074         (initialize_data_dependence_relation): Call array_base_name_differ_p
3075         with an extra argument.
3076         (analyze_all_data_dependences): Same.
3077         (init_data_ref): Additional argument is_read to set DR_IS_READ.
3078         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
3079         file.
3080         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
3081         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
3082         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
3083         vectorization pass.
3084         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
3085         (tree_ssa_loop_done): Call scev_finalize.
3086         (tree_vectorize): Define the new vectorization pass.
3087         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
3088         size of the vector they support (until support for multiple vector
3089         sizes is added to the vectorizer).
3090         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
3091         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
3092         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
3093         documentation.
3094
3095 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
3096
3097         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
3098         usage.
3099         (generate_protocol_list, handle_impent): Likewise.
3100
3101 2004-08-17  Roger Sayle  <roger@eyesopen.com>
3102
3103         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
3104         ensure that call_used_regs is a superset of both fixed_regs and
3105         call_really_used_regs.
3106
3107 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
3108
3109         PR target/17019
3110         * arm.md (addsi3_cbranch_scratch): Correct case labels.
3111
3112 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
3113
3114         PR middle-end/17036
3115         * fold-const.c (fold): Check for integer operand when
3116         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
3117         Pinski  <pinskia@physics.uc.edu>.
3118
3119 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
3120
3121         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
3122         No need to check if in a cross configuration.
3123         * configure: Regenerate.
3124
3125         * calls.c (precompute_register_parameters):
3126         Inline preserve_subexpressions_p ().
3127         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
3128         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
3129         Likewise.
3130         * expr.c (get_subtarget): Likewise.
3131         * rtl.h (preserve_subexpressions_p): Remove.
3132         * stmt.c (preserve_subexpressions_p): Remove.
3133
3134         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
3135         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
3136         Abort on gimplified cases.
3137
3138 2004-08-16  James E Wilson  <wilson@specifixinc.com>
3139
3140         * tree.h (VECTOR_FLOAT_TYPE_P): New.
3141         (FLOAT_TYPE_P): Use it.
3142         * c-typeck.c (build_binary_op): After convert calls, check for
3143         check for ERROR_MARK operands.
3144
3145 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
3146
3147         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
3148         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
3149         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
3150         (genobjs static pattern rule): Remove %.c dependency.
3151         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
3152         Rename rules; delete commands; fix dependencies.
3153         (mostlyclean): Do not delete temporary source copies.
3154         * configure.ac: Delete all references to BUILD_PREFIX and
3155         BUILD_PREFIX_1.
3156         * configure: Regenerate.
3157
3158         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
3159         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
3160         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
3161         with #ifndef GENERATOR_FILE so that nothing from those headers
3162         is used.
3163
3164         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
3165
3166 2004-08-16  Adam Nemet  <anemet@lnxw.com>
3167
3168         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
3169
3170 2004-08-16  Andrew Pinski  <apinski@apple.com>
3171
3172         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
3173         extraneous semicolon.
3174
3175 2004-08-16  Devang Patel  <dpatel@apple.com>
3176
3177         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
3178         * print-tree.c (print_node): Print DECL_PRESERVE_P.
3179         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
3180         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
3181         * target.h (struct gcc_target): New member, mark_decl_preserved.
3182         * hooks.c (hook_void_charptr): Rename to ...
3183         (hook_void_constcharptr): ... new name.
3184         * hooks.h (hook_void_charptr): Rename to ..
3185         (hook_void_constcharptr): ... new name.
3186         * tree.h (DECL_PRESERVE_P): New #define.
3187         (struct tree_decl): New member, preserve_flag.
3188         * varasm.c (assemble_start_function): Mark decl preserved.
3189         (assemble_variable): Same.
3190         * darwin.c (darwin_mark_decl_preserved): New function.
3191         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
3192         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
3193         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
3194
3195 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
3196
3197         * c-decl.c (grokdeclarator): Allow for function definition where
3198         innermost declarator has attributes.
3199
3200 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
3201
3202         * except.c (get_exception_filter, build_post_landing_pads,
3203         dw2_build_landing_pads): Use target-specific mode for 'filter'.
3204         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
3205         * target.h (eh_return_filter_mode): New field added.
3206         * targhooks.c (default_eh_return_filter_mode): Defined.
3207         * targhooks.h (default_eh_return_filter_mode): Declared.
3208         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
3209
3210 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3211
3212         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
3213         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
3214         * configure: Regenerate.
3215
3216 2004-08-16  Stan Shebs  <shebs@apple.com>
3217
3218         Basic support for 64-bit Darwin.
3219         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3220         (machopic_legitimize_pic_address): Similarly, plus use Pmode
3221         instead of SImode.
3222         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
3223         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
3224         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
3225         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
3226         (PROCESSOR_DEFAULT64): Define.
3227         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
3228         Darwin.
3229         * config/rs6000/rs6000.md: Include darwin.md.
3230         (builtin_setjmp_receiver): Add DImode case.
3231         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
3232         Darwin.
3233         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
3234         (rs6000_emit_move): Add DImode case to Darwin bits.
3235         (machopic_output_stub): Use .quad if 64-bit.
3236         * invoke.texi: Document -m32 and -m64.
3237
3238 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
3239
3240         * doc/extend.texi (AltiVec builtins): Document additional differences
3241         from the Motorola AltiVec PIM.
3242
3243 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
3244
3245         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
3246         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
3247         (struct tree_common): Update public_flag documentation.
3248
3249 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
3250
3251         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3252         Check for artificial variables, not is_gimple_tmp_var.
3253         * tree-ssa-live.c (var_union): Likewise.
3254
3255 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
3256
3257         * calls.c (load_register_parameters): Remove spurious FIXME token.
3258
3259 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
3260
3261         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
3262         (c-lang.o): Depend on c-objc-common.h.
3263         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
3264         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
3265         * c-lang.c: Include c-objc-common.h.
3266         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
3267         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
3268         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
3269         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
3270         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
3271         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
3272         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
3273         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
3274         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
3275         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
3276         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
3277         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3278         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
3279         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
3280         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
3281         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
3282         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
3283         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
3284         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
3285         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
3286         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
3287         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
3288         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
3289         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
3290         Move to c-objc-common.h.
3291         * c-objc-common.c: Include c-objc-common.h.
3292         * c-objc-common.h: New file.
3293
3294 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
3295             Andrew Pinski  <pinskia@physics.uc.edu>
3296
3297         PR target/14931
3298         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
3299         style.
3300
3301 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
3302
3303         * tree.h (build_int_cst): New.
3304         (build_int_2): Remove.
3305         * tree.c (build_int_2): Remove.
3306         (build_int_cst): New.
3307         (make_vector_type, build_common_tree_nodes,
3308         build_common_tree_nodes_2): Use build_int_cst.
3309         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
3310         expand_builtin_strpbrk, expand_builtin_fputs,
3311         build_string_literal, expand_builtin_printf,
3312         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
3313         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
3314         fold_builtin_isdigit, simplify_builtin_strstr,
3315         simplify_builtin_strpbrk, fold_builtin_fputs,
3316         simplify_builtin_sprintf): Use build_int_cst.
3317         * c-common.c (start_fname_decls, fix_string_type,
3318         c_common_nodes_and_builtins, c_init_attributes,
3319         shorten_compare): Likewise.
3320         * c-decl.c (complete_array_type,
3321         check_bitfield_type_and_width): Likewise.
3322         * c-lex.c (interpret_integer, lex_charconst): Likewise.
3323         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
3324         * c-pretty-print.c (pp_c_integer_constant): Likewise.
3325         * c-typeck.c (really_start_incremental_init, push_init_level,
3326         set_nonincremental_init_from_string): Likewise.
3327         * calls.c (load_register_parameters): Likewise.
3328         * convert.c (convert_to_pointer): Likewise.
3329         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
3330         build_fn_info_type, build_ctr_info_value, build_gcov_info):
3331         Likewise.
3332         * except.c (init_eh, assign_filter_values, assign_filter_values):
3333         Likewise.
3334         * expmed.c (store_fixed_bit_field, extract_bit_field,
3335         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
3336         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
3337         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
3338         * expr.c (convert_move, emit_group_load, emit_group_store,
3339         expand_assignment, store_constructor, store_field,
3340         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
3341         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
3342         invert_truthvalue, optimize_bit_field_compare,
3343         decode_field_reference, all_ones_mask_p, constant_boolean_node,
3344         fold_div_compare, fold, fold_read_from_constant_string,
3345         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
3346         * function.c (assign_parm_setup_block): Likewise.
3347         * stmt.c (shift_return_value, expand_end_case_type,
3348         estimate_case_costs): Likewise.
3349         * stor-layout.c (layout_type, initialize_sizetypes,
3350         set_min_and_max_values_for_integral_type): Likewise.
3351         * tree-chrec.c (chrec_fold_multiply_poly_poly,
3352         reset_evolution_in_loop): Likewise.
3353         * tree-chrec.h (build_polynomial_chrec): Likewise.
3354         * tree-complex.c (build_replicated_const): Likewise.
3355         * tree-eh.c (honor_protect_cleanup_actions,
3356         lower_try_finally_onedest, lower_try_finally_copy,
3357         lower_try_finally_switch): Likewise.
3358         * tree-mudflap.c (mf_build_string, mx_register_decls,
3359         mudflap_register_call, mudflap_enqueue_constant): Likewise.
3360         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
3361         * tree-pretty-print.c (dump_generic_node): Likewise.
3362         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
3363         Likewise.
3364         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
3365         * tree-ssa-loop-niter.c (number_of_iterations_cond,
3366         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
3367         Likewise.
3368
3369         * config/alpha/alpha.c (alpha_initialize_trampoline,
3370         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
3371         * config/arm/arm.c (arm_get_cookie_size): Likewise.
3372         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
3373         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
3374         * config/i860/i860.c (i860_va_start): Likewise.
3375         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3376         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
3377         mips_gimplify_va_arg_expr): Likewise.
3378         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3379         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
3380         add_compiler_branch_island): Likewise.
3381         * config/s390/s390.c (s390_va_start): Likewise.
3382         * config/sh/sh.c (sh_va_start): Likewise.
3383         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3384         Likewise.
3385         * config/xtensa/xtensa.c (xtensa_va_start,
3386         xtensa_gimplify_va_arg_expr): Likewise.
3387
3388         * objc/objc-act.c (build_objc_string_object,
3389         build_objc_symtab_template, init_def_list, init_objc_symtab,
3390         init_module_descriptor, generate_static_references,
3391         build_selector_translation_table, get_proto_encoding,
3392         build_typed_selector_reference, build_selector_reference,
3393         build_next_objc_exception_stuff,
3394         build_method_prototype_list_template, generate_descriptor_table,
3395         generate_protocols, build_protocol_initializer,
3396         build_ivar_list_template, build_method_list_template,
3397         build_ivar_list_initializer, generate_ivars_list,
3398         generate_dispatch_table, generate_protocol_list,
3399         build_category_initializer, build_shared_structure_initializer,
3400         generate_shared_structures, handle_impent,
3401         generate_objc_image_info): Use build_int_cst.
3402
3403 2004-08-15  Ben Elliston  <bje@au.ibm.com>
3404
3405         * vec.h: Comment improvements.
3406
3407 2004-08-14  Roger Sayle  <roger@eyesopen.com>
3408
3409         * c-common.c (shorten_compare, pointer_int_sum,
3410         c_common_truthvalue_conversion, boolean_increment): Replace calls
3411         to build with calls to buildN.
3412         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
3413         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
3414         gimplify_switch_stmt): Likewise.
3415         * c-typeck.c (default_function_array_conversion,
3416         build_component_ref, build_array_ref, build_function_call,
3417         pointer_diff, build_unary_op, build_conditional_expr,
3418         build_compound_expr, build_modify_expr, c_finish_goto_label,
3419         c_finish_goto_ptr, c_finish_return, c_finish_loop,
3420         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
3421         build_binary_op): Likewise.
3422
3423 2004-08-15  Steven Bosscher  <stevenb@suse.de>
3424
3425         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
3426
3427 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3428
3429         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
3430         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
3431         * fixinc/fixincl.x: Rebuilt.
3432
3433 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
3434
3435         * config/mips/mips-protos.h (mips_symbolic_constant_p)
3436         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
3437         (mips_small_data_pattern_p): Declare.
3438         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
3439         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
3440         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
3441         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
3442         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
3443         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
3444         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
3445         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
3446         (pc_or_label_operand, call_insn_operand, move_operand)
3447         (consttable_operand, symbolic_operand, general_symbolic_operand)
3448         (global_got_operand, local_got_operand, stack_operand)
3449         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
3450         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
3451         (mips_small_data_pattern_p): Replace previous small_data_pattern
3452         predicate.  Turn into a bool () (rtx) function.
3453         * config/mips/predicates.md: New file.
3454         * config/mips/mips.md: Include it.  Use the target-independent
3455         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
3456         trap_comparison_operator and equality_op to equality_operator.
3457         Replace uses of small_int with the equivalent const_arith_operand.
3458         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
3459         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
3460         to fcc_reload_operand.
3461         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
3462
3463 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3464
3465         PR libstdc++/17005 partial fix.
3466         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
3467         except when generating ANSI/C89 code.
3468
3469 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
3470
3471         * c-common.c (shorten_compare): Use force_fit_type directly.
3472
3473 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
3474             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
3475             Dave Korn  <dk@artimi.com>
3476
3477         * doc/install.texi (Building): Avoid duplicate reference to GNU
3478         make requirement.
3479         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
3480
3481 2004-08-14  Richard Henderson  <rth@redhat.com>
3482
3483         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
3484         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
3485
3486 2004-08-13  Richard Henderson  <rth@redhat.com>
3487
3488         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
3489         for constant_call_address_operand.
3490         (call_value_pop_1, call_value_1): Likewise.
3491         (sibcall_value_1, call_value_1_rex64): Likewise.
3492
3493 2004-08-13  James E Wilson  <wilson@specifixinc.com>
3494
3495         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
3496         Correct mode from SFmode to DFmode.
3497
3498 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
3499
3500         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
3501         __cstring_object and __image_info sections with the no_dead_strip
3502         attribute.
3503
3504 2004-08-13  Roger Sayle  <roger@eyesopen.com>
3505             David Billinghurst  <David.Billinghurst@riotinto.com>
3506
3507         PR libgfortran/15930
3508         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
3509         * fixinc/fixincl.x: Regenerate.
3510         * fixinc/tests/base/internal/math_core.h: New file.
3511
3512 2004-08-13  Richard Henderson  <rth@redhat.com>
3513
3514         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
3515         (dbxout_function_end): Remove ifdefs for it.
3516         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
3517
3518 2004-08-13  Richard Henderson  <rth@redhat.com>
3519
3520         * Makefile.in (insn-preds.o): Depend on TREE_H.
3521         * genpreds.c (write_insn_preds_c): Include tree.h.
3522         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
3523         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
3524         const48_operand, and_operand, or_operand, mode_width_operand,
3525         mode_mask_operand, mul8_operand, const0_operand,
3526         hard_fp_register_operand, hard_int_register_operand,
3527         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
3528         samegp_function_operand, direct_call_operand, small_symbolic_operand,
3529         global_symbolic_operand, call_operand, symbolic_operand,
3530         dtp16_symbolic_operand, dtp32_symbolic_operand,
3531         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
3532         gottp_symbolic_operand, alpha_comparison_operator,
3533         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
3534         signed_comparison_operator, alpha_fp_comparison_operator,
3535         divmod_operator, fix_operator, aligned_memory_operand,
3536         unaligned_memory_operand, reg_or_unaligned_mem_operand,
3537         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
3538         reg_no_subreg_operand, addition_operation): Move to predicates.md.
3539         (reg_or_const_int_operand): Remove.  Replace all users with
3540         reg_or_cint_operand.
3541         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
3542         (resolve_reload_operand): Split out of aligned_memory_operand.
3543         * config/alpha/alpha-protos.h: Update for exports.
3544         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
3545         * config/alpha/alpha.md: Include predicates.md.
3546         * config/alpha/predicates.md: New file.
3547
3548 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
3549
3550         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
3551         fields with a pointer to the instruction definition.
3552         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
3553         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
3554         (write_attr_case, write_const_num_delay_slots): Update accordingly.
3555         (write_attr_case, write_const_num_delay_slots): Write the name of
3556         an insn next to its case statement.
3557         * genoutput.c (data): Add a filename field.
3558         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
3559         (output_insn_data): Print the location of each insn definition.
3560         * genrecog.c (write_action): Print the name of an insn above
3561         the statement that returns its code.
3562
3563 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
3564
3565         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
3566         * config/libgloss.h: Likewise.
3567         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
3568         * c4x/c4x-modes.def: Likewise.
3569         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
3570         (c4x_rptb_nop_p): Likewise.
3571         (c4x_rptb_valid_p): Likewise.
3572         (c4x_rptb_insert): Likewise.
3573         (c4x_address_conflict): Likewise.
3574         * config/c4x/c4x.md: Likewise.
3575         * config/frv/frv.md: Likewise.
3576         * config/i386/athlon.md: Likewise.
3577         * config/i386/i386.md: Likewise.
3578         * config/i386/predicates.md: Likewise.
3579         * config/ia64/ia64.c: Likewise.
3580         * config/ia64/itanium1.md: Likewise.
3581         * config/ia64/itanium2.md: Likewise.
3582         * config/iq2000/iq2000.md: Likewise.
3583         * config/mcore/mcore.c: Likewise.
3584         * config/mips/mips.c: Likewise.
3585         * config/mips/r3900.h: Likewise.
3586         * config/mips/sb1.md: Likewise.
3587         * config/pa/milli64.S: Likewise.
3588         * config/pa/pa.c: Likewise.
3589         * config/pa/pa.h: Likewise.
3590         * config/rs6000/8540.md: Likewise.
3591
3592 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
3593
3594         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
3595
3596 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
3597
3598         * sh.md (cbranch define_delay) Use cond_delay_slot for
3599         non-anulled condition too.
3600
3601 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3602
3603         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
3604         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
3605         any_parallel_operand, lmw_operation, stmw_operation,
3606         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
3607         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
3608         any_parallel_operand.
3609         (return_and_restore_fpregs_{si,di}): Same.
3610
3611 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3612
3613         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
3614         if pred->singleton != PARALLEL, issue a warning and pretend it was.
3615         Also issue a warning for any predicate we don't know about.
3616
3617 2004-08-12  Richard Henderson  <rth@redhat.com>
3618
3619         * config/i386/i386.c (internal_label_prefix): Export.
3620         (internal_label_prefix_len, struct ix86_address,
3621         ix86_decompose_address, maybe_get_pool_constant,
3622         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
3623         memory_address_length): Export.
3624         (any_fp_register_operand, fp_register_operand,
3625         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
3626         x86_64_general_operand, x86_64_szext_general_operand,
3627         x86_64_nonmemory_operand, x86_64_movabs_operand,
3628         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
3629         x86_64_zext_immediate_operand, const_int_1_31_operand,
3630         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
3631         tls_symbolic_operand, global_dynamic_symbolic_operand,
3632         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
3633         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
3634         constant_call_address_operand, const0_operand, const1_operand,
3635         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
3636         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
3637         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
3638         general_no_elim_operand, nonmemory_no_elim_operand,
3639         index_register_operand, q_regs_operand, flags_reg_operand,
3640         non_q_regs_operand, zero_extended_scalar_load_operand,
3641         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
3642         ix86_comparison_operator, ix86_carry_flag_operator,
3643         fcmov_comparison_operator, promotable_binary_operator,
3644         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
3645         mult_operator, div_operator, arith_or_logical_operator,
3646         memory_displacement_operand, cmpsi_operand, long_memory_operand,
3647         aligned_operand): Move to predicates.md as define_predicates.
3648         (tls_symbolic_operand_1): Remove.
3649         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
3650         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
3651         (legitimize_address): Merge tls_symbolic_operand contents.
3652         (ix86_expand_move): Likewise.
3653         * config/i386/i386-protos.h: Update for exports.
3654         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
3655         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
3656         * config/i386/i386.md: Include predicates.md.
3657         * config/i386/predicates.md: New file.
3658
3659 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
3660
3661         PR c++/16924
3662         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
3663         SYMBOL_REF_DECL.
3664         (i386_pe_mark_dllimport): Likewise.
3665         (i386_pe_encode_section_info): Likewise, when overriding
3666         dllimport attribute.
3667
3668 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
3669
3670         * configure.ac: When testing for flex, nm, ar, and bison, check
3671         that they will actually be built.
3672         * configure: Regenerate.
3673
3674 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
3675
3676         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
3677         (MOVE_MAX_PIECES): Define.
3678
3679 2004-08-12  Devang patel  <dpatel@apple.com>
3680
3681         * dbxout.c (dbxout_begin_prologue): New function.
3682         (dbx_debug_hooks): Use new begin prologue hook.
3683         (dbxout_function_end): Emit N_ENSYM.
3684         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
3685
3686 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
3687
3688         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
3689         argument is float*.
3690
3691         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
3692         for vec_dss.
3693
3694         * doc/extend.texi (AltiVec builtins): Fix description for recent
3695         changes.  Update operation list to match current support.
3696
3697 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3698
3699         * config/s390/s390.c (struct s390_frame_layout): New struct as element
3700         of struct machine_function.
3701         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
3702         changed all uses.
3703         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
3704         changed all uses.
3705         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
3706         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
3707         (s390_frame_area, s390_register_info): New functions.
3708         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
3709         for base register.
3710         (s390_return_addr_rtx, s390_return_address_offset)
3711         (s390_va_start, s390_gimplify_va_arg)
3712         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
3713         layouts.
3714         (s390_frame_info): Functionality partly moved to s390_register_info.
3715         Made adaptions for new stack layout.
3716         (save_gprs, restore_gprs): Changed meaning of second parameter and
3717         adapted all callers.
3718
3719         * config/s390/s390.h (s390_backchain_string): New global variable.
3720         (MASK_BACKCHAIN): Removed definition.
3721         (TARGET_BACKCHAIN): Changed check.
3722         (TARGET_KERNEL_BACKCHAIN): New macro.
3723         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
3724         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
3725         "kernel-backchain".
3726         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
3727
3728         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
3729         as condition.  Adjusted for new stack layout.
3730
3731         * doc/invoke.texi: Added documentation for new option
3732         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
3733         "-mno-backchain".
3734
3735 2004-08-12  Paul Brook  <paul@codesourcery.com>
3736
3737         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
3738         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
3739
3740 2004-08-12  David Daney  <ddaney@avtrex.com>
3741
3742         * java/gcj.texi:  Add subsection on signal usage.
3743
3744 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
3745
3746         * expr.c (move_by_pieces): Set alignment for move to minimum of
3747         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
3748         alignment, but not less than the original alignment.
3749         (move_by_pieces_ninsns): Same.
3750         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
3751         (store_by_pieces_1): Same.
3752
3753 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
3754
3755         PR tree-optimization/16867
3756         * tree.c (is_global_var): New function.
3757         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
3758         Call is_global_var.
3759         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
3760         Update all users.
3761         (is_global_var): Declare.
3762         * tree-dfa.c (dump_variable): Display global and addressable
3763         attributes.
3764         (add_referenced_var): Clarify documentation when marking
3765         variables call-clobbered.
3766         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
3767         instead of needs_to_live_in_memory.
3768         (mark_call_clobbered): If the variable is a tag, mark it
3769         DECL_EXTERNAL.
3770         * tree-gimple.c (is_gimple_reg): Don't check for
3771         TREE_ADDRESSABLE.
3772         (is_gimple_non_addressable): Likewise.
3773         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
3774         needs to be marked call-clobbered.
3775         (setup_pointers_and_addressables): Call is_global_var instead
3776         of needs_to_live_in_memory.
3777         * tree-ssa-dce.c (need_to_preserve_store): Remove.
3778         Update all users with is_global_var.
3779         (mark_stmt_if_obviously_necessary): Fix processing of aliased
3780         stores.  Don't check the virtual definitions.  Rather, check
3781         whether the store is going into global memory.
3782         (find_obviously_necessary_stmts): Get the symbol from the PHI
3783         result.
3784         * tree-ssa-operands.c (get_call_expr_operands): Do not add
3785         clobbering may-defs if the call does not have side effects.
3786
3787 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
3788
3789         PR c++/16276
3790         * output.h (default_function_rodata_section,
3791         default_no_function_rodata_section): New prototypes.
3792         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
3793         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3794         (TARGET_ASM_OUT): Add it.
3795         * varasm.c (default_function_rodata_section,
3796         default_no_function_rodata_section): New functions.
3797         * final.c (final_scan_insn): Call
3798         targetm.asm_out.function_rodata_section instead of
3799         readonly_data_section.
3800         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
3801         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3802         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3803         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3804         Likewise.
3805         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3806         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3807         Likewise.
3808         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
3809         Likewise.
3810         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3811         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
3812         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
3813
3814 2004-08-12  Paul Brook  <paul@codesourcery.com>
3815
3816         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
3817         frame info.
3818         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
3819         DWARF2_UNWIND_INFO.
3820
3821 2004-08-12  Ben Elliston  <bje@au.ibm.com>
3822
3823         PR target/16286
3824         * config/rs6000/altivec.h: Change vector to __vector throughout.
3825         (Except for the `vector' macro itself).
3826
3827 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
3828
3829         * genpreds.c: Add capability to generate predicate bodies as
3830         well as function prototypes.  Write function prototypes for
3831         the generic predicates too.
3832         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
3833         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
3834         (write_match_code, write_predicate_expr, write_one_predicate_function)
3835         (parse_option): New functions.
3836         (output_predicate_decls): Delete.
3837         (main): Read the machine description, process DEFINE_PREDICATE or
3838         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
3839         as appropriate.
3840
3841         * genrecog.c (struct decision_test): Replace index with
3842         struct pred_data pointer.
3843         (next_index): Remove, unused.
3844         (pred_table, preds, special_mode_pred_table): Delete.
3845         (compute_predicate_codes, process_define_predicate): New functions.
3846         (validate_pattern, add_to_sequence, write_switch): Update for
3847         new data structures.
3848         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3849         Check both error_count and have_error.
3850
3851         * gensupport.c (in_fname, first_predicate): New globals.
3852         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
3853         (predicate_table, last_predicate, old_pred_table)
3854         (old_special_pred_table): New statics.
3855         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
3856         (add_predicate, init_predicate_table): New functions.
3857         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
3858         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
3859         it or max_include_len.  Call init_predicate_table.
3860         (read_rtx): Run the predicate queue after the attribute queue
3861         but before all the others.
3862         * gensupport.h (in_fname, struct pred_data, first_predicate)
3863         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
3864         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
3865         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
3866         * dummy-conditions.c: Don't include bconfig.h, system.h,
3867         coretypes.h, tm.h, or system.h.  Do include stddef.h.
3868         Duplicate declaration of struct c_test from gensupport.h.
3869
3870         * Makefile.in (OBJS-common): Add insn-preds.o.
3871         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
3872         (insn-preds.c, insn-preds.o): New rules.
3873         (s-preds): Also generate insn-preds.c.
3874         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
3875         Update dependencies.
3876         (print-rtl.o, print-rtl1.o): Correct dependencies.
3877
3878         * recog.h: Delete prototypes of predicate functions.
3879
3880         * doc/md.texi (Predicates): New section with complete
3881         documentation of operand/operator predicates.  Remove some
3882         incomplete documentation of predicates from other places.
3883         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
3884         PREDICATE_CODES; indicate that both are deprecated in favor
3885         of define_predicate/define_special_predicate.
3886
3887         * config/ia64/ia64.c: All predicate function definitions moved
3888         to ia64.md, except
3889         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
3890         (ia64_expand_load_address, ia64_expand_move):
3891         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
3892
3893         * config/ia64/ia64.md: All predicates now defined here.
3894         (symbolic_operand): Is now a special predicate.
3895
3896         * config/ia64/ia64.h: Declare ia64_section_threshold.
3897         (PREDICATE_CODES): Delete.
3898
3899 2004-08-12  Richard Henderson  <rth@redhat.com>
3900
3901         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
3902         * c-semantics.c (add_stmt): Set it.
3903         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
3904         before instantiating a variable sized type.
3905
3906 2004-08-12  Richard Henderson  <rth@redhat.com>
3907
3908         * stor-layout.c (round_up, round_down): Move ...
3909         * fold-const.c (round_up, round_down): ... here.  Use
3910         multiple_of_p to avoid any arithmetic at all.
3911
3912 2004-08-12  Richard Henderson  <rth@redhat.com>
3913
3914         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
3915         (gimplify_init_ctor_preeval_1): New.
3916         (gimplify_init_ctor_preeval): New.
3917         (gimplify_init_ctor_eval): New.
3918         (gimplify_init_constructor): Use them.  Always gimplify the LHS
3919         object first.
3920
3921 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
3922
3923         (This patch is part of merge of objc-improvements-branch
3924         into mainline.)
3925
3926         * doc/frontends.texi: Mention Objective-C++ in addition to
3927         Objective-C.
3928         * doc/install.texi: Add 'obj-c++' to list of configurable
3929         languages.
3930         * doc/invoke.texi: Rename Objective-C option headings to
3931         indicate they also apply to Objective-C++.  List file
3932         extensions for Objective-C++ sources.  Mention that
3933         ObjC and ObjC++ compilations may also use C and C++ options,
3934         respectively.  Point users to doc/standards.texi for
3935         further info on ObjC and ObjC++.
3936         * doc/sourcebuild.texi: Mention the objcp/ directory and
3937         the Objective-C++ sources it contains.
3938         * doc/standards.texi: Update link to Apple ObjC site;
3939         add link to gcc readings.html WWW doc.
3940
3941 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
3942
3943         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
3944         and 2004-07-14 changes.
3945
3946 2004-08-12  Paul Brook  <paul@codesourcery.com>
3947
3948         * doc/invoke.texi: Fix typo.
3949
3950 2004-08-11 Devang Patel  <dpatel@apple.com>
3951
3952         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
3953         and -no_dead_strip_inits_and_terms.
3954         (LINK_SPEC): Same.
3955         * doc/invoke.texi (Darwin Options): Document -dead_strip and
3956         -no_dead_strip_inits_and_terms.
3957
3958 2004-08-11  Paul Brook  <paul@codesourcery.com>
3959
3960         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
3961         (arm_load_pic_register): ... to this.
3962         * config/arm/arm.c (arm_finalize_pic): Rename ...
3963         (arm_load_pic_register): ... to this.  Always output insns at the
3964         current location.  Load via low reg in thumb mode.
3965         (arm_expand_prologue): Call arm_load_pic_register.
3966         (thumb_expand_prologue): Ditto.
3967         * config/arm/arm.h (FINALIZE_PIC): Remove.
3968         * config/arm/arm.md (builtin_setjmp_receiver): Call
3969         arm_load_pic_register.
3970
3971 2004-08-11  Paul Brook  <paul@codesourcery.com>
3972
3973         * arm.c (thumb_force_lr_save): Add prototype.
3974         (thumb_compute_save_reg_mask): New function.
3975         (thumb_find_work_register): New function.
3976         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
3977         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
3978         Don't clobber r3 when removing pretend args.
3979         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
3980         (thumb_output_function_prologue): Use new functions.
3981         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
3982         * arm.h (THUMB_REG_PUSHED_P): Remove.
3983
3984 2004-08-11  James E Wilson  <wilson@specifixinc.com>
3985
3986         PR rtl-optimization/16490
3987         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
3988         global_live_at_end for new basic block if already set for other blocks.
3989
3990 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
3991
3992         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
3993
3994         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
3995         (mfcr rlwinm rlwinm patterns): Set length to 12.
3996
3997 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
3998
3999         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
4000         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
4001         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
4002         (start_ssa_stmt_operands): Delete.
4003         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
4004         struct stmt_operands_d.
4005         (build_ssa_operands): New extern entry point.
4006         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
4007         building code, replace with create_ssa_artficial_load_stmt().
4008         * tree-ssa-operands.c (struct voperands_d): Delete.
4009         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
4010         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
4011         (free_uses, free_defs, free_vuses, free_v_may_defs,
4012         free_v_must_defs): Remove dealloc parameter.
4013         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
4014         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
4015         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
4016         vector comparisons, ssa_name reuse, and allocations here.
4017         (verify_start_operands): Delete.
4018         (finalize_ssa_stmt_operands): Set new operands by calling finalize
4019         routines.
4020         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
4021         (append_def, append_usei): Simplify to simple accumulation.
4022         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
4023         duplicates and simple accumulation.
4024         (free_ssa_operands): Free vectors in a stmt_operand structure.
4025         (build_ssa_operands): New. Create a new stmt_operand structure from
4026         a stmt and an old set of stmt_operands.
4027         (get_stmt_operands): Simplify and call build_ssa_operands.
4028         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
4029         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
4030         add_call_read_ops): Don't pass prev_vops around anymore.
4031         (note_addressable): Return if no stmt annotation.
4032         (copy_virtual_operands): Access v_may_def operands through a struct.
4033         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
4034         hash tables without treating the stmt as a real stmt.
4035         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
4036         v_may_def def and use through a struct instead of 2 array elements.
4037         (struct v_may_def_optype_d): Use v_may_def_operand_type.
4038         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
4039
4040 2004-08-11  Nick Clifton  <nickc@redhat.com>
4041
4042         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
4043         this funciton's behaviour.  Return true when the current function
4044         has a section attribute and -mlong-calls is in effect.
4045         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
4046         short-call marker when -mlong-calls is in effect and the function
4047         has a section attribute.
4048
4049 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
4050
4051         * stmt.c (expand_return): If asked to return the RESULT_DECL,
4052         just call expand_value_return on result_rtl.
4053
4054 2004-08-10  Richard Henderson  <rth@redhat.com>
4055
4056         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
4057         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
4058         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
4059         (add_location_or_const_value_attribute): ... not here.  Use
4060         loc_descriptor_from_tree if possible.
4061         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
4062         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
4063         values specially.
4064         (loc_descriptor_from_tree): New.  Update callers.
4065         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
4066         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
4067         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
4068         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
4069         and BUILT_IN_STACK_RESTORE.
4070         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
4071         * stmt.c (expand_stack_alloc): Remove.
4072         * tree-mudflap.c (mx_register_decls): Don't look for
4073         BUILT_IN_STACK_ALLOC.
4074         * tree-nested.c (convert_local_reference): Likewise.
4075         * tree.h (DECL_VALUE_EXPR): New.
4076
4077 2004-08-10  Richard Henderson  <rth@redhat.com>
4078
4079         * stor-layout.c (round_up): Check for 0/1 before dividing.
4080         (round_down): Likewise.
4081
4082         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
4083
4084 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
4085
4086         * config.gcc (arm*-*-eabi*): New target.
4087         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
4088         (TARGET_LIB_INT_CMP_BIASED): Likewise.
4089         * expmed.c (expand_divmod): Try a two-valued divmod function as a
4090         last resort.
4091         * gthr.h: Remove bogus tokens at end of #pragma.
4092         * optabs.c (expand_twoval_binop_libfunc): New function.
4093         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
4094         (prepare_float_lib_cmp): Try reversing the condition.
4095         (debug_optab_libfuncs): New function.
4096         * optabs.h (expand_twoval_binop_libfunc): Declare.
4097         * config/arm/arm.c (arm_init_libfuncs): New function.
4098         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
4099         (TARGET_INIT_LIBFUNCS): Define it.
4100         * config/arm/arm.h (TARGET_BPABI): New macro.
4101         * config/arm/arm-protos.h
4102         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
4103         * config/arm/bpabi.S: New file.
4104         * config/arm/bpabi.c: Likewise.
4105         * config/arm/bpabi.h: Likewise.
4106         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
4107         (__aeabi_drsub): Likewise.
4108         (__aeabi_dsub): Likewise.
4109         (__aeabi_dadd): Likewise.
4110         (__aeabi_ui2d): Likewise.
4111         (__aeabi_i2d): Likewise.
4112         (__aeabi_f2d): Likewise.
4113         (__aeabi_dmul): Likewise.
4114         (__aeabi_ddiv): Likewise.
4115         (__aeabi_cdrcmple): Likewise.
4116         (__aeabi_cdcmpeq): Likewise.
4117         (__aeabi_cdcmple): Likewise.
4118         (__aeabi_dcmpeq): Likewise.
4119         (__aeabi_dcmplt): Likewise.
4120         (__aeabi_dcmple): Likewise.
4121         (__aeabi_dcmpge): Likewise.
4122         (__aeabi_dcmpgt): Likewise.
4123         (__aeabi_dcmpun): Likewise.
4124         (__aeabi_d2iz): Likewise.
4125         (__aeabi_d2uiz): Likewise.
4126         (__aeabi_d2f): Likewise.
4127         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
4128         (__aeabi_frsub): Likewise.
4129         (__aeabi_fsub): Likewise.
4130         (__aeabi_fadd): Likewise.
4131         (__aeabi_ui2f): Likewise.
4132         (__aeabi_i2f): Likewise.
4133         (__aeabi_fmul): Likewise.
4134         (__aeabi_fdiv): Likewise.
4135         (__aeabi_cfrcmple): Likewise.
4136         (__aeabi_cfcmpeq): Likewise.
4137         (__aeabi_cfcmple): Likewise.
4138         (__aeabi_fcmpeq): Likewise.
4139         (__aeabi_fcmplt): Likewise.
4140         (__aeabi_fcmple): Likewise.
4141         (__aeabi_fcmpge): Likewise.
4142         (__aeabi_fcmpgt): Likewise.
4143         (__aeabi_fcmpun): Likewise.
4144         (__aeabi_f2iz): Likewise.
4145         (__aeabi_f2uiz): Likewise.
4146         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
4147         (__aeabi_uidivmod): New function or alias.
4148         (__aeabi_idivmod): Likewise.
4149         (__aeabi_idiv0): Likewise.
4150         (__aeabi_ldiv0): Likewise.
4151         (__aeabi_llsr): Likewise.
4152         (__aeabi_lasr): Likewise.
4153         (__aeabi_llsl): Likewise.
4154         (bpabi.S): Include it.
4155         * config/arm/libgcc-bpabi.ver: New file.
4156         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
4157         (LINK_SPEC): Remove.
4158         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
4159         __aeabi_ulcmp.
4160         * config/arm/t-bpabi: New file.
4161         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
4162         (TARGET_LIB_INT_CMP_BIASED): Likewise.
4163
4164 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
4165
4166         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
4167         * config/rs6000/rs6000.md (clrmemsi): New pattern.
4168         * config/rs6000/rs6000.c (expand_block_clear): New function.
4169         (expand_block_move): Convert alignment to bits.  Use SImode and
4170         HImode for unaligned addresses if not STRICT_ALIGNMENT.
4171
4172 2004-08-10  Caroline Tice  <ctice@apple.com>
4173
4174         * varasm.c (unlikely_section_label): New global variable.
4175         (unlikely_text_section_name): New global variable.
4176         (text_section):  Remove alignment statement.
4177         (unlikely_text_section): Remove alignment statement; use
4178         unlikely_section_label rather than hard-coded string.
4179         (assemble_start_function): Initialize unlikely_section_label and
4180         unlikely_text_section_name;  make sure cold section is properly
4181         aligned at start of function; output unlikely_section_label if
4182         appropriate.
4183
4184 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
4185
4186         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
4187         * config/s390/s390.c (s390_canonicalize_comparison): New function.
4188         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
4189         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
4190         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
4191         ("*tmqi_mem"): Remove SUBREG from pattern.
4192         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
4193         ("*andsi3_cconly"): Likewise.
4194
4195 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
4196
4197         PR target/16909
4198         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
4199
4200 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
4201
4202         * doc/sourcebuild.texi (compat testing): Document available test
4203         framework commands.  Use the preferred spelling of DejaGnu.
4204
4205 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
4206
4207         * lambda.h: Add matrix type, and prototypes for remainder of
4208         matrix and vector functions.
4209         (lambda_vector_mult_const): New function.
4210         (lambda_vector_negate): Ditto.
4211         (lambda_vector_add): Ditto.
4212         (lambda_vector_add_mc): Ditto.
4213         (lambda_vector_copy): Ditto.
4214         (lambda_vector_zerop): Ditto.
4215         (lambda_vector_equal): Ditto.
4216         (lambda_vector_min_nz): Ditto.
4217         (lambda_vector_first_nz): Ditto.
4218         (lambda_vector_matrix_mult): Ditto.
4219         * lambda-mat.c: New file.
4220         * Makefile.in (lambda-mat.o): New.
4221
4222 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
4223
4224         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
4225         after linking stmt into the program.
4226         (bsi_remove): Don't call modify_stmt.
4227         * tree-complex.c (update_complex_assignment,
4228         expand_complex_comparison): Call modify_stmt after changing the stmt.
4229         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
4230         removing the stmt.
4231         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
4232         the stmt, and only if needed.
4233         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
4234         expression.
4235         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
4236         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
4237         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
4238         (eliminate_redundant_computations): Don't pass an annotation. Call
4239         modify_stmt rather than setting the annotation directly.
4240         (record_equivalences_from_stmt): Remove unused local 'j'.
4241         (cprop_operand): Take a stmt rather than an annotation as a parameter.
4242         Call modify_stmt.
4243         (cprop_into_stmt): Pass stmt rather than annotation.
4244         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
4245         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
4246         modify_stmt.
4247         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
4248
4249 2004-08-10  Jason Merrill  <jason@redhat.com>
4250
4251         PR middle-end/16948
4252         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
4253         the RESULT_DECL.
4254
4255 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
4256
4257         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
4258         hash function.
4259
4260 2004-08-10  Roger Sayle  <roger@eyesopen.com>
4261
4262         * config/mips/mips.md: New reciprocal square root patterns that
4263         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
4264
4265 2004-08-10  Paul Brook  <paul@codesourcery.com>
4266
4267         * config/arm/arm-protos.h (arm_set_return_address,
4268         thumb_set_return_address): Add prototypes.
4269         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
4270         * config/arm/arm.c (arm_compute_func_type,
4271         use_return_insn, arm_compute_save_reg0_reg12_mask,
4272         arm_compute_save_reg_mask, arm_output_function_prologue,
4273         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
4274         current_function_calls_eh_return.
4275         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
4276         old eh code.
4277         (arm_set_return_address, thumb_set_return_address): New functions.
4278         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
4279         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
4280         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
4281         (epilogue): Use the stackadj register.
4282         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
4283
4284 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
4285
4286         PR target/3144
4287         * expr.c (move_by_pieces_ninsns): Add max_size argument.
4288         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
4289         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
4290         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
4291         but using MOVE_RATIO.
4292         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
4293         (can_store_by_pieces): Change max_size type to unsigned int.
4294         (store_by_pieces_1): Likewise.  Pass max_size to
4295         move_by_pieces_ninsns.
4296         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
4297         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
4298         to move_by_pieces_ninsns.
4299         (STORE_BY_PIECES_P): Define.
4300         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
4301         to move_by_pieces_ninsns.
4302         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
4303
4304         * config/i386/i386.h (CLEAR_RATIO): Define.
4305
4306 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4307
4308         * expr.c (expand_expr_real_1): Add back code that was not dead.
4309
4310 2004-08-09  Andrew Pinski  <apinski@apple.com>
4311
4312         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
4313         which is found to be compatible before returning the aliasing set.
4314
4315 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
4316
4317         * ggc-zone.c (struct alloc_zone): Add statistics counters.
4318         (always_collect): New flag.
4319         (ggc_alloc_zone_1): Update statistics support.  Don't include
4320         overhead in allocated counter.
4321         (sweep_pages): Update allocated counter for large pages.  Don'y
4322         include overhead.
4323         (ggc_collect_1): Always collect.
4324         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
4325         whether to collect.
4326         (SCALE, LABEL): New macros.
4327         (ggc_print_statistics): Add statistics support.
4328
4329 2004-08-09  Roger Sayle  <roger@eyesopen.com>
4330
4331         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
4332         (init_expmed): Fix potential overrun problem with "all.reg".
4333         (expand_sdiv2_pow2): Add an alternate implementation for signed
4334         division, if the target provides a suitable conditional move insn.
4335
4336 2004-08-09  Paul Brook  <paul@codesourcery.com>
4337         Richard Henderson  <rth@redhat.com>
4338
4339         * unwind-dw2.c (uw_install_context_1): Update target saved stack
4340         pointer.
4341
4342 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
4343
4344         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
4345         Check DATA limit only if there's no AS limit.  Ignore insanely
4346         low DATA limits.
4347         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
4348         but take care that the AS limit isn't overrun.
4349         * doc/invoke.texi: Update documentation of min-heapsize parameter.
4350
4351 2004-08-09  Jeff Law  <law@redhat.com>
4352
4353         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
4354         (tree-ssa-threadupdate.o): Add dependencies.
4355         * tree-ssa-threadupdate.c: New file.
4356         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
4357         (rewrite_vars_out_of_ssa): Remove prototype.
4358         (cleanup_tree_cfg): Returns a bool.
4359         * tree.h (thread_through_all_blocks): Prototype.
4360         * tree-outof-ssa.c  (SSANORM_*): Move into here.
4361         (remove_ssa_form): Now static.
4362         (rewrite_vars_out_of_ssa): Kill.
4363         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
4364         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
4365         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
4366         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
4367         anything was changed.
4368         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
4369         from the PHI's annotation rather than the edge associated with
4370         the new argument.
4371         * tree-ssa-dom.c (redirection_edges): Kill.
4372         (redirect_edges_and_update_ssa_graph): Kill.
4373         (tree_ssa_dominator_optimize): Do not reset forwardable flag
4374         for blocks anymore.  Do not initialize redirection_edges.
4375         Call thread_through_all_blocks.  Simplify code for cleanup
4376         of the CFG and iterating.  No longer call cleanup_tree_cfg
4377         outside the iteration loop.
4378         (thread_across_edge): No longer mess with forwardable blocks.
4379
4380 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
4381
4382         * explow.c (memory_address): Use memory_address_p.
4383         * recog.c (general_operand): Likewise.
4384         * regrename.c: No need to define REG_OK_STRICT.
4385
4386 2004-08-09  Steven Bosscher  <stevenb@suse.de>
4387
4388         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
4389         New timers.
4390         * gcse.c: Include timevar.h.
4391         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
4392         and global_copy_prop_count.
4393         (local_const_prop_count, local_copy_prop_count): New static globals.
4394         (gcse_main): Set the right timevar for each pass.
4395         (cprop_jump): Increment global_const_prop_count when a constant is
4396         propagated.  Add "GLOBAL" to dump output.
4397         (cprop_insn): Increment global_const_prop_count when a constant is
4398         propagated, or global_copy_prop_count when a copy is propagated.
4399         (do_local_cprop): Likewise for local_const_prop_count and
4400         local_copy_prop_count.
4401         (one_cprop_pass): Initialize const/cprop counters to zero.
4402         Print out results of local and global const/cprop separately.
4403         (bypass_block): Break over-length line.
4404         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
4405         for bb-reorder.o and tracer.o.
4406
4407 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4408
4409         * Makefile.in (GTFILES): Remove stmt.c
4410         (stmt.o): Do not depend on gt-stmt.h.
4411         * emit-rtl.c (emit_line_note): Do not call
4412         set_file_and_line_for_stmt.
4413         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
4414         do everything.
4415         * function.c (free_after_parsing): Do not free STMT field.
4416         (allocate_struct_function): Do not call init_stmt_for_function.
4417         (assign_stack_temp_for_type): Do not accept values of keep
4418         other than 0 or 1.
4419         (init_temp_slots): Do not initialize removed variables.
4420         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
4421         and X_VAR_TEMP_SLOT_LEVEL fields.
4422         * rtl.h (set_file_and_line_for_stmt): Remove.
4423         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
4424         struct stmt_status, cond_stack, case_stack, nesting_stack,
4425         nesting_depth, emit_locus, set_file_and_line_for_stmt,
4426         same_case_target_p, init_stmt_for_function, emit_nop,
4427         expand_start_cond, expand_start_elseif, expand_start_else,
4428         expand_elseif, expand_end_cond): Remove.
4429         (preserve_subexpressions_p): Remove references to CFUN->STMT.
4430         (expand_start_case, expand_end_case_type): Remove, merge into...
4431         (expand_case): ... this one, including other bits from
4432         expand_expr_real_1.  Inline same_case_target_p.  Turn members
4433         of CASE_STACK into local variables.
4434         (emit_case_bit_tests): Inline same_case_target_p.
4435         (add_case_node): Add HEAD argument, return new head of the list,
4436         do not handle default label here.
4437         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
4438         expand_start_elseif, current_nesting_level, expand_start_case,
4439         expand_end_case_type, expand_end_case, add_case_node,
4440         init_stmt_for_function, expand_elseif): Remove prototypes.
4441         (expand_case): Add prototype.
4442
4443 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4444
4445         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
4446
4447 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
4448
4449         * expr.c (var_rtx): Remove.
4450         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
4451         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
4452         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
4453         Abort.
4454         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
4455         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
4456         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
4457
4458 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
4459         Ayal Zaks <zaks@il.ibm.com>
4460
4461         * common.opt (freschedule-modulo-scheduled-loops): New flag.
4462         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
4463         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
4464         when -freschedule-modulo-scheduled-loops flag is not specified.
4465         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
4466         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
4467         More accurate placing of insn in row of partial schedule.
4468         (ps_insn_find_column): New function.
4469         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
4470         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
4471         (schedule_region): Use sched_is_disabled_for_current_region_p.
4472         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
4473
4474 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
4475
4476         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
4477         change.
4478
4479 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
4480
4481         * config/i386/i386.c (ix86_expand_clrmem): Properly call
4482         gen_strset for 64bit target.
4483
4484 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
4485
4486         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
4487
4488 2004-08-07  Jason Merrill  <jason@redhat.com>
4489
4490         Make return in memory explicit.
4491         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
4492         (assign_parm_find_data_types): Remove code for old front end
4493         invisible reference handling.
4494         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
4495         (expand_function_end): Likewise.
4496         * gimplify.c (gimplify_return_expr): Handle a dereferenced
4497         RESULT_DECL.
4498         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
4499         (declare_return_variable): Handle DECL_BY_REFERENCE.
4500         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
4501         (cp_genericize_r): Use convert_from_reference.
4502         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
4503         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
4504
4505         * c-common.c (c_warn_unused_result): Check TREE_USED before
4506         warning about a CALL_EXPR with an unused value.
4507
4508 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
4509
4510         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
4511         to the compiler.  Use -fshort-wchar by default.
4512
4513 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
4514
4515         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
4516         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
4517         threshhold.
4518         * doc/invoke.texi (param): Document min-crossjump-insns.
4519
4520 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
4521
4522         PR c/13282
4523         * c.opt (Wmissing-field-initializers): New option.
4524         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
4525         * c-typeck.c (pop_init_level): Guard the missing field warning with
4526         warn_missing_field_initializers rather than extra_warnings.
4527         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
4528         some of the explanation from...
4529         (-Wextra): ...here.  Say that the missing field warning can be
4530         seperately controlled by -Wmissing-field-initializers.
4531
4532 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
4533
4534         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
4535         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
4536         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
4537         * tree.def (ENTRY_VALUE_EXPR): Remove.
4538
4539 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
4540
4541         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
4542         the places where it is actually needed.  Don't use repz; stosb
4543         for -Os with sufficiently small constant sizes.
4544         For sufficiently small repz; stos{l,q} repeat counts use a sequence
4545         of stos{l,q} instructions instead.
4546
4547 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4548
4549         PR tree-optimization/16807
4550         * loop-iv.c (dump_iv_info): Dump invariants correctly.
4551         (iv_subreg, iv_extend): Express value of invariant purely in
4552         base field.
4553
4554 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
4555
4556         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
4557         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
4558
4559 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
4560
4561         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
4562         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
4563         pre_dec_operand.
4564         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
4565         pattern until reload is finished to allow better code generation
4566         and split them completely into separate instrunctions.
4567         (*andsi3_split): New pattern.
4568
4569 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
4570
4571         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
4572         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
4573         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4574         * tree.h (handle_dll_attribute): Declare.  Test
4575         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4576         * c-common.h (c_determine_visibility): Declare.
4577         * c-common.c (c_determine_visibility): New function.
4578         * c-decl.c (finish_decl): Use it.
4579         (finish_function): Likewise.
4580         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
4581         zero, by default.  Use #if, not #ifdef, to test it.
4582         * config/arm/arm.c (arm_attribute_table): Use
4583         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
4584         #if.
4585         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
4586         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4587         to 1.
4588         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
4589         * config/i386/i386.c (ix86_attribute_table): Use
4590         handle_dll_attribute for dllimport/dllexport.  Test
4591         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
4592         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
4593         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4594         it to 1.
4595         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
4596         with #if.
4597         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
4598         it to 1.
4599         * doc/extend.texi (dllexport): Clarify and correct documentation.
4600         (dllimport): Likewise.
4601         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
4602         handle_dll_attribute.
4603
4604 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4605
4606         * tree-ssa-loop-manip.c: New file.
4607         * Makefile.in (tree-ssa-loop-manip.o): Add.
4608         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
4609         Declare.
4610         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
4611         form.
4612         (tree_ssa_loop_done): Verify loop closed ssa form.
4613         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
4614
4615 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4616
4617         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
4618         pa_asm_output_aligned_local): New functions.
4619         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
4620         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
4621         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
4622         pa_asm_output_aligned_common.
4623         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4624         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
4625         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
4626         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4627         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
4628         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
4629         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
4630         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
4631         common data.
4632
4633 2004-08-05  Andrew Pinski  <apinski@apple.com>
4634
4635         * objc/objc-act.c (build_objc_string_object): Mark the address
4636         expression as constant.
4637
4638 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
4639
4640         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
4641         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
4642         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
4643
4644 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4645
4646         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
4647         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
4648         out, and associated obsolete comments.
4649
4650 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
4651
4652         * tree.h (force_fit_type): Return a tree, take three flags.
4653         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
4654         TREE_CONSTANT_OVERFLOW here.
4655         (int_const_binop, const_binop): Adjust.
4656         (size_int_type): Do sign extension here.
4657         (fold_convert_const, optimize_bit_field_compare,
4658         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
4659         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
4660         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
4661
4662 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4663
4664         PR tree-optimization/16864
4665         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
4666         for ssa names without default_def.
4667
4668 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
4669
4670         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
4671         frame pointer, restore eax with an ebp-relative address.
4672
4673 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
4674
4675         PR 14516
4676         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
4677         * c-common.h (make_rtl_for_local_static): Delete.
4678         * c-decl.c (shadow_tag_warned): Clean up comment.
4679         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
4680         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
4681         * c-semantics.c (make_rtl_for_local_static): Delete.
4682         * expr.c (init_block_move_fn): Use set_user_assembler_name.
4683         (init_block_clear_fn): Likewise.
4684         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
4685         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
4686         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
4687         * tree.h (make_decl_rtl): Remove second parameter.
4688         (set_user_assembler_name): New.
4689         * varasm.c (set_user_assembler_name): New.
4690         (make_decl_rtl): Remove second parameter.  Update callers in many
4691         files.
4692
4693 2004-08-05  Adam Nemet  <anemet@lnxw.com>
4694
4695         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
4696         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
4697         to LynxOS 4.0.
4698         * gthr-lynx.h: New file.
4699         * config/lynx-ng.h: Remove file.
4700         * config/lynx.h: Update to LynxOS 4.0.
4701         * config/t-lynx: New file.
4702         * config/i386/lynx-ng.h: Remove file.
4703         * config/i386/lynx.h: Update to LynxOS 4.0.
4704         * config/rs6000/lynxbase.h: Remove file.
4705         * config/rs6000/lynx.h: Update to LynxOS 4.0.
4706         * config/rs6000/t-lynx: New file.
4707         * doc/install.texi (Options specification): Remove reference to
4708         LynxOS from systems where --with-gnu-as makes a difference.
4709
4710 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
4711
4712         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
4713         __UINTMAX_TYPE__.
4714         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
4715         __INTMAX_MAX__.
4716         (c_cpp_builtins): Call it.
4717         * doc/cpp.texi: Update.
4718
4719 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
4720
4721         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
4722         cost.
4723
4724 2004-08-04  Jan Hubicka  <jh@suse.cz>
4725
4726         * basic-block.h (profile_staus): New global variable.
4727         * cfg.c (profile_status): Declare.
4728         (check_bb_profile): Break out from ....; use profile_status
4729         (dump_flow_info): ... here.
4730         * cfgbuild.c (find_basic_blocks): Set profile_status.
4731         * cfgexpand.c (tree_expand_cfg): Likewise.
4732         * predict.c (estimate_probability): Likewise.
4733         * profile.c (branch_prob): Likewise.
4734         * tree-cfg.c (build_tree_cfg): Likewise.
4735         (dump_function_to_file): Use check_bb_profile.
4736         * tree-pretty-print (dump_bb_header): Likewise.
4737         * tree-profile.c (do_tree_profiling): Cleanup.
4738
4739 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
4740
4741         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
4742         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
4743         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
4744         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
4745         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
4746         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
4747         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
4748         (ggc-none.o, errors.o): Move rule to generators section;
4749         correct dependencies.
4750         (min-insn-modes.o): Move rule to generators section; remove
4751         unnecessary explicit command; correct dependencies.
4752         (print-rtl.o, print-rtl1.o): Correct dependencies.
4753         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
4754         (mostlyclean): Update.
4755
4756         * errors.c: Include bconfig.h not config.h.  Correct comment.
4757         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
4758         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
4759         * print-rtl.c: Don't include tm_p.h.
4760
4761         * rtl.h: Move forward-decl of struct function down where it's
4762         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
4763         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
4764
4765 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4766             Jeff Law  <law@redhat.com>
4767
4768         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
4769         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
4770         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
4771         manipulate the duplicated ssa names.
4772         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
4773         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
4774         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
4775         New functions.
4776         (release_ssa_name): Do not release ssa names that may have multiple
4777         definitions.
4778         * tree.h (release_ssa_name_force, mark_for_rewrite,
4779         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
4780         marked_ssa_names): Declare.
4781         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
4782         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
4783         Update call to rewrite_ssa_into_ssa.
4784
4785 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
4786
4787         * defaults.h (TARGET_DECLSPEC): New macro.
4788         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
4789         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
4790         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
4791         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
4792         __declspec support.
4793         (TARGET_DECLSPEC): Define.
4794         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
4795         __declspec support.
4796         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
4797         __declspec support.
4798         (TARGET_DECLSPEC): Define.
4799         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
4800         __declspec support.
4801         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
4802         support.
4803         * doc/tm.texi (TARGET_DECLSPEC): Document.
4804
4805         * doc/extend.texi: Fix typo in comment.
4806
4807 2004-08-04  Paul Brook  <paul@codesourcery.com>
4808
4809         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
4810         (TARGET_CXX): Use it.
4811         * target.h (struct gcc_target): Add cdtor_returns_this.
4812         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
4813         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
4814         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
4815
4816 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
4817
4818         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
4819         low/high pair. Do range checking directly.
4820         (interpret_integer): Adjust.
4821
4822 2004-08-04  Nick Clifton  <nickc@redhat.com>
4823
4824         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
4825         GCC ABI.
4826         * doc/invoke.texi: Document this new switch and also the -mrenesas
4827         switch.
4828
4829 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
4830
4831         * cfglayout.c (insn_locators_initialize): Update the current
4832         location before initializing a location.
4833
4834 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4835
4836         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
4837         (dbxout_function_end): Return after emitting the "Lscope" symbol
4838         under the same conditions that this function formerly wasn't called.
4839         Add explanatory comments.
4840
4841         PR 14860
4842         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
4843         on the new decl.
4844
4845         PR 13956
4846         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
4847         functions, broken out of dbxout_block.
4848         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
4849         stabs too, if it contains symbols.  Use the begin_label and
4850         the Lscope label (emitted by dbxout_function_end) for the
4851         range of this block.
4852
4853 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
4854
4855         * doc/install.texi: Update autoconf version requirements.
4856
4857 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4858
4859         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
4860         * recog.c (general_operand, immediate_operand, nonmemory_operand)
4861         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
4862         * regclass.c (record_reg_classes): Likewise.
4863         * reload.c (find_reloads): Likewise.
4864         * reload1.c (reload): Likewise.
4865
4866 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
4867
4868         * gensupport.c (init_md_reader_args_cb): Renamed from
4869         init_md_reader_args.  Add third option, callback function for
4870         parsing program-specific options.  Add diagnosis of incorrect
4871         number of input files.
4872         (init_md_reader): Fold into init_md_reader_args_cb.
4873         (init_md_reader_args): Now a thin wrapper around
4874         init_md_reader_args_cb.
4875         * gensupport.h: Update prototypes.
4876
4877         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
4878         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
4879         * genrecog.c: No need to diagnose lack of an input file;
4880         init_md_reader_args will handle it.
4881         * genconditions.c: Likewise, and use init_md_reader_args.
4882         * genconstants.c: Likewise, and no need to call read_md_rtx.
4883
4884 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
4885
4886         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
4887         declarations.
4888
4889 2004-08-03  Mike Stump  <mrs@apple.com>
4890
4891         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
4892         for frameworks.
4893         * doc/invoke.texi (Darwin Options): Update to reflect above.
4894
4895 2004-08-03  Roger Sayle  <roger@eyesopen.com>
4896
4897         PR middle-end/16790
4898         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
4899         truncations, not just global truncations.
4900
4901 2004-08-03  Andrew Pinski  <apinski@apple.com>
4902
4903         PR bootstrap/16865
4904         * loop-iv.c (simplify_using_assignment): Initialize lhs.
4905
4906 2004-08-03  Paul Brook  <paul@codesourcery.com>
4907
4908         * gcc/doc/install.texi: Document MPFR requirement.
4909
4910 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
4911
4912         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
4913         and mmap() explicitly instead of relying on preset autoconf cache
4914         variables.
4915         * configure: Regenerate.
4916
4917 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
4918
4919         PR target/16570
4920         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
4921         to tmake_file.
4922         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
4923         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
4924         to tmake_file.
4925
4926         * config/i386/t-gmm_malloc: New file.
4927         * config/i386/t-pmm_malloc: Likewise.
4928
4929         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
4930
4931 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
4932             Tanguy Fautrà <tfautre@pandora.be>
4933
4934         * config/i386/pmm_malloc.h: New file.
4935
4936 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
4937
4938         * config/i386/gmm_malloc.h: New file.
4939
4940 2004-08-03  Dale Johannesen  <dalej@apple.com>
4941
4942         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
4943         * c-common.c: Include opts.h.
4944         (c_common_get_alias_set): Fix check for a single input file.
4945         * toplev.c: Remove current_file_decl.
4946         * tree.h: Ditto.
4947
4948 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
4949
4950         * config.gcc (arm*-*-symbianelf*): New target.
4951         * config/arm/symbian.h: New file.
4952
4953         * gthr-gnat.c: Add visibility #pragmas.
4954         * gthr-gnat.h : Likewise.
4955         * gthr.h: Likewise.
4956         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
4957         (__ffsDI2): Likewise.
4958         (__clzSI2): Likewise.
4959         (__ctzSI2): Likewise.
4960         (__ctzDI2): Likewise.
4961         (__popcountSI2): Likewise.
4962         (__popcountDI2): Likewise.
4963         (__paritySI2): Likewise.
4964         (__parityDI2): Likewise.
4965         * libgcc2.h: Add visibility #pragmas.
4966         (__clzDI2): Add prototype.
4967         (__clzSI2): Likewise.
4968         (__ctzSI2): Likewise.
4969         (__ffsDI2): Likewise.
4970         (__ffsSI2): Likewise.
4971         (__ctzDI2): Likewise.
4972         (__popcountSI2): Likewise.
4973         (__popcountDI2): Likewise.
4974         (__paritySI2): Likewise.
4975         (__parityDI2): Likewise.
4976         * unwind-dw2-fde.h: Add visibility #pragmas.
4977         * unwind.h: Likewise.
4978
4979 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
4980             Dale Johannesen  <dalej@apple.com>
4981             Roger Sayle  <roger@eyesopen.com>
4982
4983         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
4984         constants more accurately.  Adjust costs for FMA instructions.
4985         Add cases for most logical and float operations.  Recurse into
4986         most operands.
4987
4988 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
4989
4990         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
4991
4992 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
4993
4994         * ra-build.c (conflicts_between_webs): For webs that cross a call add
4995         conflicts to regs_invalidated_by_call.
4996
4997 2004-08-03  Paul Brook  <paul@codesourcery.com>
4998
4999         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
5000
5001 2004-08-03  Jan Hubicka  <jh@suse.cz>
5002
5003         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
5004         ARRAY_REF argument.
5005
5006 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
5007
5008         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
5009         arm968es, arm10e, arm1020e, arm1022e.
5010         * invoke.texi: Update list of ARM cores.
5011         * arm-tune.md: Regenerate.
5012
5013 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
5014
5015         * arm/gentune.sh: New file.
5016         * arm/t-arm: New file.
5017         * arm/arm-tune.md: New file (autogenerated).
5018         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
5019         * arm.md (attribute tune): Delete.  Include arm-tune.md.
5020
5021 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
5022
5023         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
5024         penultimate parameter.  All callers adjusted.
5025         (struct prefix_list): Remove used_flag_ptr.
5026         (find_a_file): Do not set *pl->used_flag_ptr.
5027         (warn_B, warn_std_ptr): Remove.
5028
5029 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
5030             Mostafa Hagog <mustafa@il.ibm.com>
5031
5032         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
5033
5034 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
5035
5036         * dwarf2out.c (output_call_frame_info): Don't change data format
5037         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
5038         label.  Use 'true' not '1'.
5039         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
5040         required.
5041
5042 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
5043
5044         * gdbinit.in: Reflect previous changes to rtunion_def.
5045
5046 2004-08-02  Roger Sayle  <roger@eyesopen.com>
5047
5048         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
5049         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
5050
5051 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5052
5053         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
5054         vec_p_reserve.
5055         * langhooks.h (lang_hooks::builtin_function): Rename parameter
5056         from "class" to "bt_class".
5057
5058 2004-08-02  Paul Brook  <paul@codesourcery.com>
5059
5060         PR rtl-optimization/15068
5061         * flow.c (init_propagate_block_info): Check condition is reversible.
5062
5063 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5064
5065         * gengtype.h (options::info): Change type to const char *.
5066         (enum gc_used_enum): Move out of struct type scope.
5067         * gengtype.c (create_option): Convert initializer for option::info to
5068         appropiate type.
5069         (adjust_field_type, walk_type, write_func_for_structure,
5070         write_root, write_roots): Remove pointless cast.
5071
5072 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
5073
5074         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
5075
5076 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5077
5078         * rtl.h (union rtunion_def): Have all members  start with the
5079         prefix "rt_".
5080         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
5081         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
5082         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
5083         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
5084         access.
5085         * gengtype.c (adjust_field_rtx_def): Likewise.
5086         * rtlanal.c (loc_mentioned_in_p): Likewise.
5087
5088 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
5089
5090         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
5091         Replace uses of mips/elf64.h with mips/elf.h
5092         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
5093         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
5094         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
5095         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
5096         (HANDLE_SYSV_PRAGMA): Delete.
5097         (ASM_OUTPUT_DEF): Fix formatting.
5098         * config/mips/elf64.h: Delete.
5099
5100 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
5101
5102         * config/ia64/ia64.c (got_symbolic_operand): Do require a
5103         symbol+offset operand to have its offset be zero mod 0x3fff
5104         when GOT entries are in use.  Clarify logic in SYMBOL_REF
5105         case.  Clarify comments.
5106         (ia64_expand_load_address): Split a symbol+offset load when
5107         the offset is nonzero mod 0x3fff, not 0x1fff.
5108
5109 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
5110
5111         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
5112         if trying to *store* to a non-offsettable address.
5113         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
5114         a nonoffsettable address.
5115         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
5116         Clean up.
5117         (movti_string): Don't move GPRs to a nonoffsettable address.
5118         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
5119
5120 2004-08-02  Ben Elliston  <bje@au.ibm.com>
5121
5122         PR target/16155
5123         * config/rs6000/altivec.h: Replace typeof with __typeof__.
5124
5125 2004-08-01  Richard Henderson  <rth@redhat.com>
5126
5127         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
5128         variable sized types.
5129
5130 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5131
5132         * doc/invoke.texi: In the MIPS options section, remove the passage
5133         saying that -mexplicit-relocs is usually disabled for -mabicalls
5134         -fno-unit-at-a-time.
5135         * config/mips/mips.c (override_options): Remove the code that enforced
5136         this rule.
5137
5138 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5139
5140         * config/mips/mips.md (cprestore): Provide two alternatives, one for
5141         an in-range offset and one for an out-of-range offset.  Wrap the latter
5142         in .set macro/.set nomacro if it's inside a .set nomacro block.
5143
5144 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
5145
5146         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
5147         (mips_restore_gp): Declare.
5148         * config/mips/mips.c (mips_add_offset): Add a scratch register
5149         argument.  Reimplement in rtl only, reusing MIPS16 logic from
5150         mips_output_mi_thunk.
5151         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
5152         to mips_add_offset.
5153         (mips_gp_save_slot): Delete.
5154         (mips_restore_gp): New function.
5155         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
5156         * config/mips/mips.md (exception_receiver): Turn into a
5157         define_insn_and_split.  Use mips_restore_gp to do the split.
5158         (call_internal, call_value_internal, call_value_multiple_internal): Use
5159         mips_restore_gp to restore $gp.
5160
5161 2004-07-31  Andrew Pinski  <apinski@apple.com>
5162
5163         PR other/16842
5164         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
5165
5166 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
5167
5168         * c-decl.c (diagnose_mismatched_decls): Give error for external
5169         redeclaration of identifier declared with no linkage, not just
5170         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
5171         error for redeclaration with no linkage.
5172
5173 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
5174             Fariborz Jahanian <fjahanian@apple.com>
5175
5176         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
5177         non-offsettable addresses even for DImode.
5178         (rs6000_split_multireg_move): Cope with non-offsettable addresses
5179         being moved into multiple GPRs.
5180
5181         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
5182         to 64.
5183         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
5184         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
5185         to 128.
5186         * config/rs6000/darwin-ldouble.c (isless): New macro.
5187         (inf): New macro.
5188         (nonfinite): New macro.
5189         (FPKINF): Delete.
5190         (_xlqadd): Completely rewrite.
5191         (_xlqmul): Correct overflow handling.
5192         (_xlqdiv): Correct overflow handling.
5193         * config/rs6000/darwin-ldouble-format: New file.
5194
5195 2004-07-30  Roger Sayle  <roger@eyesopen.com>
5196             Richard Henderson  <rth@redhat.com>
5197
5198         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
5199         9 into the equivalent lea instruction.
5200
5201 2004-07-30  Richard Henderson  <rth@redhat.com>
5202
5203         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
5204         with DECL_INITIAL if fb_lvalue.
5205         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
5206         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
5207         with <Cxxx>.
5208         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
5209
5210 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
5211
5212         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
5213         pointer escapes through a function call, assume that the
5214         callee will dereference it.
5215         (add_pointed_to_var): Assume that VALUE is always an
5216         ADDR_EXPR.
5217         (collect_points_to_info_r): Only call add_pointed_to_var if
5218         the value is an ADDR_EXPR.
5219
5220 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
5221
5222         * tree-ssa-alias.c (create_alias_map_for): Do not get the
5223         alias set of the inner type of ARRAY_TYPEs.
5224
5225 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5226
5227         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
5228         setting a non-register to UNDEFINED right before the call to
5229         set_lattice_value.
5230
5231 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5232
5233         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
5234
5235 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5236
5237         * tree-ssa.c (verify_flow_sensitive_alias_info): When
5238         comparing points-to sets of different pointers, make sure the
5239         second pointer is actually referenced in the code.
5240
5241 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
5242
5243         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
5244         (got_symbolic_operand): Remove unreachable code.
5245         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
5246         setjmp_operand; add entry for tls_symbolic_operand.
5247         * config/ia64/ia64-protos.h: Remove all prototypes of
5248         predicate functions.
5249
5250 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
5251
5252         * c-common.h (lang_post_pch_load): New variable.
5253         * c-pch.c (lang_post_pch_load): Define it.
5254         (c_common_read_pch): Use it.
5255         * cgraphunit.c (record_call_1): Give the front end a chance to
5256         record additional needed entities when a variable is marked as
5257         needed.
5258         * tlink.c (recompile_files): Robustify.
5259         (scan_linker_output): If a symbol is assigned to a file,
5260         but after recompilation is not present there, issue an error
5261         message.
5262
5263 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5264
5265         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
5266         Take orig_loop argument and pass it to set_level.
5267         (schedule_sm): Pass the correct orig_loop to force_move_till.
5268
5269 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5270
5271         * cfgloop.c (update_latch_info): Update dominator of the new block.
5272         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
5273         info.
5274         * dominance.c (verify_dominators): Check that the dominance tree is
5275         connected.
5276         (recount_dominator): Ignore unreachable blocks.
5277         (iterate_fix_dominators): Cleanup old dominance information before
5278         recomputing it.
5279
5280 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
5281
5282         * tree-ssa-operands.c (get_expr_operands): Revert changes
5283         to ADDR_EXPR processing introduced by:
5284             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5285             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
5286
5287 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
5288
5289         * doc/implement-c.texi: Add C90 subclause references.  Point to
5290         preprocessor documentation instead of duplicating it.  Add points
5291         only present in C90.  Fill in documentation for all points.
5292
5293 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5294
5295         * pa.c (output_movb): Correct typo.
5296
5297 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
5298
5299         * ra.h (single_reg_in_regclass): Declare.
5300         * ra.c (single_reg_in_regclass): Define.
5301         (first_hard_reg): New.
5302         (init_ra): Initialize single_reg_in_regclass.
5303         * ra-colorize.c (ok_class): New.
5304         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
5305
5306 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
5307
5308         * gcov-io.h: Allow zero tag as EOF indicator.
5309         (gcov_is_eof): Remove.
5310         (gcov_truncate): Remove.
5311         * gcov-io.c (gcov_seek): Always SEEK_SET.
5312         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
5313         EOF tag.
5314         * coverage.c (read_counts_file): Don't use gcov_is_eof.
5315         * gcov-dump.c (dump_file): Likewise.
5316         * gcov.c (read_graph_file, read_count_file): Likewise.
5317
5318         * c-decl.c (complete_array_type): Don't gratuitously copy
5319         maxindex.  Check it always has a type.
5320
5321 2004-07-29  Steven Bosscher  <stevenb@suse.de>
5322
5323         * rtl.c (currently_expanding_to_rtl): New.
5324         * rtl.h (currently_expanding_to_rtl): Export it.
5325         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
5326
5327         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
5328         inliner hack.
5329         * config/sh/sh.c: Replace rtx_equal_function_value_matters
5330         with currently_expanding_to_rtl.
5331         * config/sh/sh.md: Likewise.
5332         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
5333
5334 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
5335
5336         Introduce sh2a support.
5337         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
5338         * config.gcc: Build multilibs for sh2a and sh2a-single by
5339         default.
5340         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
5341         default.  Split their tests out of the corresponding SH4
5342         multilibs.
5343         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
5344         multilibs for SH2a.
5345         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5346         * config.gcc: Handle sh2a multilibs and cpu selection.
5347         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
5348         * config/sh/t-mlib-sh2a: New.
5349         * config/sh/t-mlib-sh2a-nofpu: New.
5350         * config/sh/t-mlib-sh2a-single: New.
5351         * config/sh/t-mlib-sh2a-single-only: New.
5352         2004-07-09  Nick Clifton  <nickc@redhat.com>
5353         Issue 43400
5354         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
5355         -ml and -m2a are used together.
5356         2004-03-23  DJ Delorie  <dj@redhat.com>
5357         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
5358         when we have a double-sized FPU.
5359         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
5360         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
5361         is set.
5362         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
5363         -msh2a-single and -msh2a-single-only
5364         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
5365         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
5366         is set.
5367         2004-02-20  DJ Delorie  <dj@delorie.com>
5368         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
5369         2004-02-20  Fred Fish <fnf@redhat.com>,
5370         Corinna Vinschen <vinschen@redhat.com>
5371         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
5372         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
5373         2004-02-18  DJ Delorie  <dj@redhat.com>
5374         * config/sh/sh.c (broken_move): Add support for movi20.
5375         * config/sh/sh.h: Likewise.
5376         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
5377         * config/sh/sh.md (udivsi3_sh2a): New.
5378         (udivsi3): Call it.
5379         (divsi3_sh2a): New.
5380         (divsi3): Call it.
5381         (mul_r): New.
5382         (ashlsi3_sh2a): New.
5383         (ashrsi3_sh2a): New.
5384         (lshrsi3_sh2a): New.
5385         (movsi_i): Disable for sh2a.
5386         (movsi_ie): Add movi20.
5387         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
5388         sh2a, for -m2a-nofpu mode.
5389         2004-02-13  DJ Delorie  <dj@redhat.com>
5390         * config/sh/lib1funcs.asm: Handle double vs single better.
5391         * config/sh/sh.h: Likewise.
5392         2004-02-09  DJ Delorie  <dj@redhat.com>
5393         * config/sh/crt1.asm: Add support for sh2a.
5394         * config/sh/elf.h: Likewise.
5395         * config/sh/lib1funcs.asm: Likewise.
5396         * config/sh/sh.c: Likewise.
5397         * config/sh/sh.md: Likewise.
5398         * config/sh/sh.h: Likewise.
5399         * config/sh/t-sh: Likewise.
5400
5401 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5402
5403         * config/frv/frv.md (movqi_internal, movhi_internal,
5404         movsi_internal): Add backup alternatives for memory inputs.
5405
5406 2004-07-28  Matt Austern  <austern@apple.com>
5407
5408         * config/darwin.c (darwin_one_byte_bool): New global variable.
5409         * config/darwin.h (darwin_one_byte_bool): Declare.
5410         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
5411         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
5412         value of darwin_one_byte_bool.
5413         * doc/invoke.texi: Document -mone-byte-bool flag.
5414
5415 2004-07-28  Eric Christopher  <echristo@redhat.com>
5416
5417         * c-common.c (c_common_unsafe_for_reeval): Delete.
5418         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
5419         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
5420         * calls.c (fix_unsafe_tree): Delete.
5421         (expand_call): Delete code which used above.
5422         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
5423         * expr.c (expand_expr_real_1): Ditto.
5424         * fold-const.c (non_lvalue): Ditto.
5425         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5426         (lhd_unsafe_for_reeval): Ditto.
5427         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
5428         * langhooks.h (unsafe_for_reeval): Ditto.
5429         (unsave_expr_now): Adjust comment.
5430         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
5431         (estimate_num_insns_1): Ditto.
5432         * tree-pretty-print.c (dump_generic_node): Ditto.
5433         * tree.c (expr_align): Ditto.
5434         (unsave_expr): Delete.
5435         (unsafe_for_reeval): Ditto.
5436         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
5437         * tree.def (UNSAVE_EXPR): Delete.
5438         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
5439
5440 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
5441
5442         * tree.h (enum tls_model): Move ...
5443         * coretypes.h: ... here.
5444
5445 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
5446
5447         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
5448
5449 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
5450
5451         * cse.c (validate_canon_reg): New function, split out from...
5452         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
5453
5454 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5455
5456         * tree-ssa-alias.c (maybe_create_global_var): Don't just
5457         return if .GLOBAL_VAR has been created.
5458
5459 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5460
5461         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
5462         every variable that may have aliases, not just tags.
5463
5464 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
5465
5466         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
5467         move_from_CR_eq_bit.
5468         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
5469
5470
5471         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
5472         e500_flip_eq_bit.
5473
5474         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
5475         output_e500_flip_eq_bit.
5476
5477         * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
5478         output_e500_flip_eq_bit.
5479         (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
5480         output_e500_flip_eq_bit.
5481         Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
5482         (print_operand): case D.  Get to EQ bit.
5483
5484 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
5485
5486         * gcov.c (function_summary): Add missing \n.
5487
5488 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
5489
5490         Introduce sh4a support.
5491         * config.gcc: Handle sh4a multilibs and cpu selection.
5492         * config/sh/sh.h: Likewise.  Handle sh4a command line flags.
5493         * config/sh/t-mlib-sh4a: New.
5494         * config/sh/t-mlib-sh4al: New.
5495         * config/sh/t-mlib-sh4a-nofpu: New.
5496         * config/sh/t-mlib-sh4a-single: New.
5497         * config/sh/t-mlib-sh4a-single-only: New.
5498         2004-02-20  DJ Delorie  <dj@redhat.com>
5499         * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
5500         * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
5501         2003-08-22  Eric Christopher  <echristo@redhat.com>
5502         * config/sh/sh4a.md: Update for chip errata.
5503         2003-08-07  Eric Christopher  <echristo@redhat.com>
5504         * config/sh/sh4a.md: New file. sh4a processor description.
5505         2003-07-08  Alexandre Oliva  <aoliva@redhat.com>
5506         * config/sh/sh.h (TARGET_SWITCHES): Added 4al.  Adjust description
5507         of -m4a-nofpu.
5508         (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
5509         * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
5510         * doc/invoke.texi (SH Options): Document -m4al.
5511         2003-07-03  Alexandre Oliva  <aoliva@redhat.com>
5512         * config/sh/sh.c (expand_block_move): Remove commented-out code
5513         checked in by mistake.
5514         (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
5515         single elements from SFmode vectors.
5516         * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
5517         register.
5518         (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
5519         2003-07-01  Alexandre Oliva  <aoliva@redhat.com>
5520         * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
5521         sh_fsca_int2sf): Remove variable declarations.
5522         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
5523         sh_fsca_int2sf): New functions.
5524         (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
5525         sh_fsca_int2sf_rtx): New static variables.
5526         * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
5527         sh_fsca_int2sf): Declare.
5528         * config/sh/sh.md: Adjust.
5529         * doc/invoke.texi (SH Options): Document new options.
5530         * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
5531         compatibility from SH4 code.
5532         2003-06-27  Alexandre Oliva  <aoliva@redhat.com>
5533         * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
5534         early.
5535         (memory_movsrc_operand): Renamed to...
5536         (unaligned_load_operand): ... this.  Simplified.
5537         * config/sh/sh.h (PREDICATE_CODES): Adjust.
5538         * config/sh/sh.md (movua, extv, extzv): Likewise.  Change movua's
5539         input operand to SImode, and adjust the others.  Introduce
5540         post-increment by peephole.
5541         * config/sh/sh.c (expand_block_move): Give the target address the
5542         same mode as the temp reg.
5543         * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
5544         copying.
5545         2003-06-26  Alexandre Oliva  <aoliva@redhat.com>
5546         Introduce support for SH4a.
5547         * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
5548         __SH4A__.  Emit 4 4kb blocks and touch all of them otherwise.
5549         * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
5550         sh_fsca_int2sf): New.
5551         (sh_init_builtins): Initialize them.
5552         (print_operand): Support `d'.
5553         (expand_block_move): Use movua if src is misaligned.
5554         (memory_movsrc_operand): New.
5555         * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
5556         and one of the SH4 macros.
5557         (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
5558         SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
5559         SELECT_SH4A_SINGLE): New.
5560         (TARGET_NONE): Add SH4A_BIT.
5561         (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
5562         (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
5563         (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
5564         (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
5565         (enum processor_type): Added PROCESSOR_SH4A.
5566         (PREDICATE_CODES): Add memory_movsrc_operand.
5567         * config/sh/sh.md: Removed unused variables.
5568         (attr cpu): Add sh4a.
5569         (attr type): Add movua, fsrra and fsca.
5570         (prefetch): New, for SH4.
5571         (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
5572         (toggle_sz): Set type to fp.
5573         (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
5574         (movua, extv, extzv): New.
5575         * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
5576         and 4a-single-only.
5577
5578 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5579
5580         * tree-optimize.c (init_tree_optimization_passes): Schedule
5581         pass_may_alias right after the program is renamed into SSA.
5582         * tree-pass.h (PROP_alias): Define.
5583         * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
5584         * tree-sra.c (pass_sra): Likewise.
5585         * tree-ssa-ccp.c (pass_ccp): Likewise.
5586         * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
5587         * tree-ssa-dce.c (pass_dce): Likewise.
5588         * tree-ssa-dom.c (pass_dominator): Likewise.
5589         * tree-ssa-dse.c (pass_dse): Likewise.
5590         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
5591         * tree-ssa-loop-ch.c (pass_ch): Likewise.
5592         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
5593         * tree-ssa-pre.c (pass_pre): Likewise.
5594         * tree-tailcall.c (pass_tail_recursion): Likewise.
5595         * tree-ssa.c (pass_redundant_phi): Likewise.
5596         * tree-ssa-alias.c (aliases_computed_p): Remove.
5597         Update all users.
5598         (init_alias_info): Do not mark all type tags for renaming
5599         unconditionally.
5600         Clear may_aliases from every symbol.
5601         (setup_pointers_and_addressables): If a pointer has not been
5602         dereferenced and it had a type tag, clear it and mark the old
5603         tag for renaming.
5604
5605 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
5606
5607         PR tree-optimization/16705
5608         * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
5609         .GLOBAL_VAR.
5610
5611 2004-07-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5612
5613         * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
5614         check.
5615
5616         * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
5617         don't make another one.
5618
5619         PR optimization/15077
5620         * function.h (struct function): Add field saved_static_chain_decl.
5621         Fix comment for static_chain_decl.
5622         * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
5623         * tree-inline.h (save_body): Add new arg.
5624         * tree-optimize.c (tree_rest_of_compilation): Handle saving
5625         static_chain_decl.
5626
5627 2004-07-27  Richard Henderson  <rth@redhat.com>
5628
5629         * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
5630         (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
5631         is_gimple_addressable.
5632         * tree-gimple.c (is_gimple_addressable): Rename from
5633         is_gimple_addr_expr_arg; accept INDIRECT_REF.
5634         (is_gimple_lvalue): Don't test INDIRECT_REF directly.
5635         * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
5636         rename to is_gimple_addressable.
5637
5638 2004-07-28  Alan Modra  <amodra@bigpond.net.au>
5639
5640         * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
5641
5642 2004-07-27  Richard Henderson  <rth@redhat.com>
5643
5644         * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
5645         before rounding.
5646
5647 2004-07-27  Zack Weinberg  <zack@codesourcery.com>
5648
5649         * libgcc2.c: Change all conditionals testing
5650         LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
5651         * libgcc2.h: Likewise.
5652         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
5653         TYPE_PRECISION of float80_type to 80.
5654         * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
5655         of fpreg_type and float80_type to 80.
5656         * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
5657         * config/m68k/netbsd-elf.h:
5658         Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
5659         to evaluate to 80 whenever they would formerly have evaluated to 96.
5660         * config/i386/sco5.h: Remove unnecessary redefinition of
5661         LONG_DOUBLE_TYPE_SIZE.
5662         * doc/rtl.texi: Clarify uses of XFmode and TFmode.
5663         * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
5664         XFmode, with a bitsize of 80.  Update commentary.
5665         * config/ia64/ia64-modes.def: Likewise.
5666         * config/m68k/m68k-modes.def: Likewise.
5667
5668 2004-07-27  Steven Bosscher  <stevenb@suse.de>
5669
5670         * cfgexpand.c (tree_expand_cfg): Fix comment.
5671
5672         * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
5673         * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
5674         Remove.
5675         (prepare_function_start): Don't set rtx_equal_function_value_matters.
5676         * integrate.c (copy_rtx_and_substitute): Don't test for it.
5677         * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
5678         Don't set rtx_equal_function_value_matters.  Don't register RTL hooks
5679         here again.  Update leading comment.
5680         * rtl.c (rtx_equal_function_value_matters): Remove.
5681         (rtx_equal_p): Don't test for it.
5682         * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
5683         Likewise.
5684
5685         * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
5686         * rtl.c (note_insn_name): Likewise.
5687         * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
5688         * final.c (final_scan_insn): Likewise.
5689
5690         * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
5691         * passes.c (rest_of_handle_eh): Do it here.
5692
5693         * stmt.c (struct nesting): Remove struct nesting block member.
5694         (struct stmt_status): Remove x_block_start_count field.
5695         (current_block_start_count): Remove.
5696
5697 2004-07-27  Brian Booth  <bbooth@redhat.com>
5698
5699         * tree-optimize.c (register_one_dump_file): Update condition that uses
5700         static_pass_number.
5701         (dup_pass_1): Replace with...
5702         (next_pass_1): This.
5703         (NEXT_PASS): Call next_pass_1.
5704         (DUP_PASS): Remove.
5705         (init_tree_optimization_passes): Remove uses of DUP_PASS.
5706         (execute_one_pass): Update condition that uses
5707         static_pass_number.
5708         * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
5709         integer.
5710
5711 2004-07-27  Nick Clifton  <nickc@redhat.com>
5712
5713         * config/m32r/m32r.c: Include integrate.h in order to get the
5714         prototype for get_hard_reg_initial_val().
5715
5716         * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
5717         and tidy up indentation.
5718         (final_presence_set): Use absence_set instead, so that if there is
5719         nothing in the "o" pipe the "s" pipe can be scheduled.
5720
5721 2004-07-27  Diego Novillo  <dnovillo@redhat.com>
5722
5723         * tree-ssa-alias.c (create_name_tags): Ignore pointers that
5724         don't have PT_VARS nor PT_MALLOC set.
5725         Clear name tag from pointers that have not been dereferenced.
5726         (set_pt_anything, set_pt_malloc): Forward declare.
5727         * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
5728         not type compatibility when determining if a pointer can be
5729         copy propagated.
5730
5731 2004-07-27  Richard Sandiford  <rsandifo@redhat.com>
5732
5733         * expr.h (canonicalize_condition, get_condition): Add an int argument.
5734         * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
5735         it to check whether the condition is still valid at the jump insn.
5736         * ifcvt.c (noce_get_condition): Likewise.
5737         (noce_get_alt_condition): Update call to canonicalize_condition.
5738         * loop-iv.c (simplify_using_initial_values): Update call to
5739         get_condition.  Remove FIXME.
5740         (check_simple_exit): Update call to get_condition.
5741         * loop-unswitch.c (may_unswitch_on): Likewise.
5742         * loop.c (check_dbra_loop): Likewise.
5743         (canonicalize_condition, get_condition): Add an argument to say whether
5744         the condition must still be valid at INSN.
5745         (get_condition_for_loop): Update call to get_condition.  Require that
5746         the condition be valid at INSN.
5747         * predict.c (estimate_probability): Update call to get_condition.
5748         Remove unused earliest parameter.
5749         (expected_value_to_br_prob): Update call to canonicalize_condition.
5750
5751 2004-07-26  Eric Christopher  <echristo@redhat.com>
5752
5753         * tree-dfa.c (add_referenced_var): Register initializers of global
5754         variables.
5755
5756 2004-07-26  Paolo Bonzini  <bonzini@gnu.org>
5757
5758         * config/i386/i386.c (function_arg): Always treat 8-
5759         and 16-byte wide vectors the same, even if MMX/SSE
5760         are disabled.
5761         (contains_128bit_aligned_vector_p): Add comment.
5762
5763 2004-07-26  J"orn Rennecke <joern.rennecke@superh.com>
5764
5765         * ra.h (enum node_type): Rename to:
5766         (enum ra_node_type).
5767         * ra-colorize.c: Likewise.
5768
5769 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
5770
5771         * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
5772         after simplifying the jump.
5773
5774 2004-06-26  Richard Henderson  <rth@redhat.com>
5775
5776         * calls.c (combine_pending_stack_adjustment_and_call): Make
5777         preferred_unit_stack_boundary argument unsigned.  Make
5778         unadjusted_alignment unsigned.
5779         (expand_call): Make preferred_stack_boundary and
5780         preferred_unit_stack_boundary variables unsigned.
5781         * function.c (assign_stack_local_1): Make alignment unsigned.
5782         * function.h (struct function): Make stack_alignment_needed,
5783         preferred_stack_boundary unsigned.
5784         * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
5785         (ix86_compute_frame_layout): Make stack_alignment_needed,
5786         preferred_alignment variables unsigned.
5787         * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
5788
5789 2004-07-26  Tom Tromey  <tromey@redhat.com>
5790
5791         * tree.h: Fix typo in comment.
5792
5793 2004-07-26  Daniel Jacobowitz  <dan@debian.org>
5794
5795         PR bootstrap/12804
5796         * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
5797         (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
5798         (ggc_free): Remove incorrect freeing.
5799         (sweep_pages): Advance PP for large pages.  Fix indentation.
5800
5801 2004-07-26  Richard Sandiford  <rsandifo@redhat.com>
5802
5803         PR rtl-optimization/16643
5804         * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
5805         * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
5806         * basic-block.h (reorder_basic_blocks): Add a flags parameter.
5807         * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
5808         (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
5809         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5810         * rtl.h (tracer): Add a flags parameter.
5811         * tracer.c (tracer): Pass it to cfg_layout_initialise.
5812         * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
5813         (rest_of_handle_reorder_blocks): Update calls to tracer and
5814         reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
5815         (rest_of_handle_tracer): Pass 0 to tracer.
5816         (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
5817
5818 2004-07-25  David Edelsohn  <edelsohn@gnu.org>
5819
5820         PR target/16239
5821         * config/rs6000/rs6000.md (movdi_internal64): Further disparage
5822         f->f.
5823
5824 2004-07-24  Nathan Sidwell  <nathan@codesourcery.com>
5825
5826         * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
5827         (BINFO_BASE_ACCESS): Adjust.
5828         (BINFO_BASE_ACCESS_APPEND): New.
5829         (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
5830         * dbxout.c (dbxout_type): Adjust binfo access accessing.
5831         * dwarf2out.c (gen_member_die): Likewise.
5832         * tree-dump.c (deque_and_dump): Likewise.
5833
5834 2004-07-26  Falk Hueffner  <falk@debian.org>
5835
5836         * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
5837         costs.
5838
5839 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5840
5841         * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
5842         value off of the stack if TARGET_USE_FFREEP.
5843
5844 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5845
5846         * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
5847         * gengtype-yacc.y: Likewise.  Replace free() with XDELETE ().
5848         * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
5849         check on invocation of XRESIZEVEC ().
5850
5851 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5852
5853         * c-common.c (disable_builtin_function): Rename variable n to
5854         new_disabled_builtin.
5855         * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
5856         Rename local variable old to old_decl.
5857         * gensupport.c (shift_output_template): Rename parameter old to src.
5858         * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
5859         old_rtx and newx to new_rtx.
5860
5861 2004-07-26  Bernardo Innocenti  <bernie@develer.com>
5862
5863         * Makefile.in (C_PRAGMA_H): New variable to track dependencies
5864         of c-pragma.h.
5865         * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
5866         enum cpp_ttype.
5867         * c-lex.c: Likewise.
5868
5869 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5870
5871         * fold-const.c (constant_boolean_node): Make extern.
5872         (make_range): Wrap long lines.
5873         (fold_cond_expr_with_comparison): Remove unnecessary call to
5874         pedantic_non_lvalue.  Add missing calls to fold_convert.
5875         (fold_truthop): Add missing calls to fold_convert.
5876         (fold): Likewise.
5877         * tree.h (constant_boolean_node): Add prototype here.
5878         * builtins.c (expand_builtin_strncmp): Add missing calls to
5879         fold_convert.
5880         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
5881         Call fold_convert and constant_boolean_node to correct types.
5882         * tree-ssa-forwprop.c (substitute_single_use_vars): Add
5883         missing call to fold_convert to correct types.
5884
5885 2004-07-26  Niall Douglas  <s_fsfeurope2@nedprod.com>
5886             Brian Ryner  <bryner@brianryner.com>
5887
5888         PR c++/9283
5889         PR c++/15000
5890         * c-common.c (c_common_attribute_table): Allow
5891         handle_visibility_attribute to be called for types.
5892         (handle_visibility_attribute) When given a type, set the visibility
5893         bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
5894         so that we can check later whether the attribute was present. Added
5895         warning if attribute applied to non class type.
5896         * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
5897         decls and checking that they are consistent.
5898         * common.opt: Added -fvisibility.
5899         * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
5900         * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
5901         * flags.h, tree.h: Added assorted support defines for overall patch
5902         * opts.c: Added parsing support for -fvisibility.
5903         * tree.c (build_decl): Set visibility for all decls to be whatever
5904         is in force at that time.
5905         * varasm.c (default_binds_local_p_1): Reworked logic determining
5906         when to make a symbol locally bound.
5907         * doc/invoke.texi: Added documentation for -fvisibility and
5908         -fvisibility-inlines-hidden.
5909
5910 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5911
5912         * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
5913         * c-common.c: Add missing casts from void * to other types.
5914         * c-decl.c: Likewise.
5915         * c-format.c: Likewise.
5916         * c-lex.c: Likewise.
5917         * c-pragma.c: Likewise.
5918         * c-typeck.c: Likewise.
5919         * defaults.h: Likewise.
5920         * genconstants.c: Likewise.
5921         * gengtype-lex.l: Likewise.
5922         * genmodes.c: Likewise.
5923         * read-rtl.c: Likewise.
5924         * rtl.c: Likewise.
5925
5926 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5927
5928         * bitmap.c: Use type-safe memory allocation macros from libiberty.
5929         * c-common.c: Likewise.
5930         * c-decl.c: Likewise.
5931         * c-lang.c: Likewise.
5932         * c-lex.c: Likewise.
5933         * c-opts.c: Likewise.
5934         * c-parse.in: Likewise.
5935         * c-typeck.c: Likewise.
5936         * genconditions.c: Likewise.
5937         * gengtype-lex.l: Likewise.
5938         * gengtype-yacc.y: Likewise.
5939         * gengtype.c: Likewise.
5940         * genmodes.c: Likewise.
5941         * gensupport.c: Likewise.
5942         * read-rtl.c: Likewise.
5943         * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
5944         htab_find_slot().
5945
5946 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5947
5948         * c-decl.c (groktypename, groktypename_in_param_context): Rename
5949         variable typename to type_name.
5950         * c-lex.c (interpret_float): Likewise.
5951
5952 2004-07-25  Roger Sayle  <roger@eyesopen.com>
5953
5954         * convert.c (convert_to_real, convert_to_integer,
5955         convert_to_complex): Replace calls to build with calls to buildN.
5956         * coverage.c (tree_coverage_counter_ref): Likewise.
5957         * dojump.c (do_jump): Likewise.
5958         * dwarf2out.c (loc_descriptor_from_tree): Likewise.
5959         * emit-rtl.c (component_ref_for_mem_expr,
5960         set_mem_attributes_minus_bitpos): Likewise.
5961         * explow.c (update_nonlocal_goto_save_area): Likewise.
5962         * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
5963         expand_mult_add): Likewise.
5964         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
5965         store_constructor, get_inner_reference, expand_expr_real_1,
5966         try_casesi, try_tablejump): Likewise.
5967         * function.c (expand_function_start): Likewise.
5968         * stmt.c (emit_case_bit_tests, expand_end_case_type,
5969         node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
5970         * stor-layout.c (place_union_field, layout_type): Likewise.
5971         * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
5972         * varasm.c (copy_constant): Likewise.
5973
5974 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
5975
5976         * c-common.c: Rename all identifiers named `new'.
5977         * c-decl.c: Likewise.
5978         * gensupport.c: Likewise.
5979         * simplify-rtx.c: Likewise.
5980         * c-common.c (disable_builtin_function): Replace a call to xmalloc()
5981         with XNEW().
5982         * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
5983         with XNEWVEC().
5984
5985 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
5986
5987         PR c/15360
5988         * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
5989         declarations until after calling pushdecl.
5990         (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
5991         "extern" and not on whether the declaration is initialized.
5992
5993 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
5994
5995         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
5996         (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
5997         * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
5998         "cpplib.h", "c-pragma.h", "c-common.h".
5999         (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
6000         (solaris_register_pragmas): New functions.
6001         * config/sol2-protos.h: New file.
6002         * config/sol2.c: New file.
6003         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
6004         (REGISTER_TARGET_PRAGMAS): New macros.
6005         (solaris_pending_aligns, solaris_pending_inits)
6006         (solaris_pending_finis): New variables.
6007         * config/t-sol2 (sol2-c.o): Update dependencies.
6008         (sol2.o): New rule.
6009         * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
6010         SUBTARGET_INSERT_ATTRIBUTES.
6011         (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
6012         * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
6013         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
6014         * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
6015         * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
6016         * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
6017         (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
6018         * config/sparc/sparc.c (sparc_attribute_table): New.
6019         (TARGET_INSERT_ATTRIBUTES): Define in terms of
6020         SUBTARGET_INSERT_ATTRIBUTES.
6021         (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
6022         is defined.
6023         * doc/extend.texi (Solaris Pragmas): New section.
6024
6025 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6026
6027         * c-common.c: Rename all identifiers named `class' to `cl'.
6028         * c-common.h: Likewise.
6029         * c-parse.in: Likewise.
6030         * c-typeck.c: Likewise.
6031         * genmodes.c: Likewise.
6032         * real.c: Likewise.
6033         * real.h: Likewise.
6034         * recog.c: Likewise.
6035         * recog.h: Likewise.
6036         * regrename.c: Likewise.
6037         * tree.h: Likewise.
6038         * c-common.c (builtin_function_2): Change type of 5th parameter from
6039         int to enum built_in_function. Change type of 8th parameter from int
6040         to bool.
6041         * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
6042         with GGC_CNEW().
6043         * c-typeck.c (convert_arguments): Change type of formal_prec from
6044         int to unsigned int.
6045         * genmodes.c (blank_mode): Make a few negative constants unsigned.
6046         (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
6047         emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
6048         emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
6049         emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
6050         iterator to for_all_modes () instead of an enum because enums can't
6051         be incremented in C++.
6052
6053
6054 2004-07-25  Daniel Jacobowitz  <dan@debian.org>
6055
6056         * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
6057         hard registers.
6058
6059 2004-07-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6060
6061         * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
6062         Handle ARRAY_RANGE_REF like ARRAY_REF.
6063
6064 2004-07-25  Joseph S. Myers  <jsm@polyomino.org.uk>
6065
6066         * c-typeck.c (digest_init): Don't allow arrays of signed or
6067         unsigned variants of wchar_t to be initialized by wide string
6068         constants.  Do allow arrays of enumerated types compatible with
6069         wchar_t to be initialized by wide string constants.  Refine tests
6070         distinguishing wide and narrow strings and arrays.  Give specific
6071         error for arrays of other integer types initialized by string
6072         constants.
6073         (output_init_element, process_init_element): Check for
6074         INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
6075         initializing with string constants.
6076
6077 2004-07-25  Richard Henderson  <rth@redhat.com>
6078
6079         * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
6080         on the RESULT_DECL.
6081         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6082         * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
6083         DECL_IGNORED_P to new decl.
6084
6085 2004-07-24  Zack Weinberg  <zack@codesourcery.com>
6086
6087         * config/ia64/ia64.c (general_xfmode_operand)
6088         (destination_xfmode_operand): Delete.
6089         * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
6090         * config/ia64/ia64.md (*movxf_internal): Use general_operand
6091         and destination_operand.
6092
6093 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
6094
6095         * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
6096         (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
6097
6098 2004-07-24  Alexander Kabaev  <kan@freebsd.org>
6099             Zack Weinberg  <zack@codesourcery.com
6100
6101         PR 16684
6102         * c-decl.c (diagnose_mismatched_decls): Don't issue a
6103         redundant-declaration warning the first time a builtin is
6104         declared explicitly.
6105
6106 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6107
6108         * tree.h (staticp): Change return type to bool.
6109
6110 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6111
6112         * c-common.c (c_staticp): Last episode of the staticp saga.
6113
6114 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6115
6116         * c-common.h (c_staticp): Change return type from int to bool.
6117         * tree.c (staticp): Likewise.
6118         * langhooks.h (staticp): Likewise.
6119
6120 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6121
6122         * langhooks-def.h (lhd_staticp): Change return type from int to
6123         bool in prototype to match definition.
6124
6125 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6126
6127         * system.h (bool, true, false): Don't redefine as preprocessor macros
6128         in C++.
6129
6130 2004-07-24  Roger Sayle  <roger@eyesopen.com>
6131
6132         * expmed.c (init_expmed): A signed modulus by a power of two is
6133         considered cheap if its less than or equal to four instructions.
6134
6135 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6136
6137         * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
6138         GGC_CNEWVAR): New macros.
6139
6140 2004-07-25  Bernardo Innocenti  <bernie@develer.com>
6141
6142         * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
6143         lists.
6144         * c-decl.c: Likewise.
6145         * c-format.c: Likewise.
6146         * c-lex.c: Likewise.
6147         * c-opts.c: Likewise.
6148         * c-pragma.c: Likewise.
6149         * c-typeck.c: Likewise.
6150         * gencheck.c: Likewise.
6151         * genconditions.c: Likewise.
6152         * genconfig.c: Likewise.
6153         * genflags.c: Likewise.
6154         * gengtype.c: Likewise.
6155         * gensupport.c: Likewise.
6156         * ggc-none.c: Likewise.
6157         * langhooks.c: Likewise.
6158         * statistics.h: Likewise.
6159         * stub-objc.c: Likewise.
6160         * java/decl.c: Likewise.
6161
6162 2004-07-24  Roman Zippel  <zippel@linux-m68k.org>
6163
6164         * config/m68k/m68k.c (output_scc_di): Fix coding style.
6165         (symbolic_operand): Fix prototype.
6166         * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
6167         * config/m68k/m68k.md: Add constants for registers a0 and sp and
6168         use them, change from the "{...}" syntax to the simpler {...}
6169         syntax.
6170         (*cfv4_extendqisi2): Fix destination predicate.
6171         * config/m68k/m68k-protos.h: Remove various declarations also
6172         generated via PREDICATE_CODES.
6173
6174 2004-07-23  Mike Stump  <mrs@apple.com>
6175
6176         * c-typeck.c (convert_for_assignment): Tightened up pointer
6177         converstions that differ in signedness.
6178
6179 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
6180
6181         * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
6182
6183 2004-07-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6184
6185         * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
6186         * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
6187
6188         * gimplify.c (gimplify_compound_lval): Check for no handled
6189         operations, rather than checking for explicit list of nodes.
6190         (is_gimple_addr_expr_arg_or_indirect): New function.
6191         (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
6192         redundant setting of TREE_INVARIANT.
6193         (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
6194         * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
6195
6196 2004-07-23  Diego Novillo  <dnovillo@redhat.com>
6197
6198         PR tree-optimization/16688
6199         PR tree-optimization/16689
6200         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
6201         unnecessary initialization of 'tag'.
6202         (get_tmt_for): Check that the new type tag has the same alias
6203         set as the pointed-to type.
6204         (group_aliases): Only regular variables need to be removed
6205         from the alias set of a name tag.
6206         * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
6207         propagation if the two types are not compatible.
6208         (merge_alias_info): Rename from replace_ssa_names_ann.
6209         Add more checking.
6210         (replace_exp_1): If both arguments are SSA_NAMEs, check that
6211         the propagation can be done.
6212         Only call merge_alias_info on pointers.
6213         (propagate_value): Likewise.
6214         * tree-ssa-copyrename.c: Include langhooks.h.
6215         (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
6216         to do the merging.
6217         Do not coalesce variables with incompatible types.
6218         (rename_ssa_copies): Call replace_ssa_name_symbol.
6219         * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
6220         the same type as the underlying _DECL.
6221         * tree-ssanames.c (replace_ssa_name_symbol): New function.
6222         * tree.h (replace_ssa_name_symbol): Declare.
6223
6224 2004-07-23  Richard Henderson  <rth@redhat.com>
6225
6226         PR c++/16277
6227         * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
6228         unshare it properly.
6229         (gimplify_modify_expr_rhs): Push assignment from a conditional into
6230         the conditional for all non-register types.
6231
6232 2004-07-23  Richard Henderson  <rth@redhat.com>
6233
6234         * expr.c (expand_expr_real_1): Don't handle non-local variables.
6235         * expr.h (fix_lexical_addr): Remove.
6236         * function.c (NEED_SEPARATE_AP): Remove.
6237         (fix_lexical_addr): Remove.
6238         * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
6239         not null decl_function_context.
6240         (create_alias_vars): Likewise.
6241         * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
6242         (simple_goto_p): Likewise.
6243         * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
6244         * tree-ssa-ccp.c (get_default_value): Likewise.
6245         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6246         * tree.c (needs_to_live_in_memory): Likewise.
6247         * tree-flow-inline.h (may_be_aliased): Move...
6248         * tree-ssa-alias.c (may_be_aliased): ... here.  Enhance check for
6249         when TREE_STATIC variables may be addressable.
6250
6251 2004-07-24  Jakub Jelinek  <jakub@redhat.com>
6252
6253         * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
6254
6255 2004-07-23  Zack Weinberg  <zack@codesourcery.com>
6256
6257         * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
6258         bitmap contents if GENERATOR_FILE is defined.
6259         * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
6260         ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
6261
6262 2004-07-23  Joseph S. Myers  <jsm@polyomino.org.uk>
6263
6264         * c-decl.c (start_function): Form composite type of function types
6265         rather than copying type from previous prototype declaration.
6266
6267 2004-07-23  Janis Johnson  <janis187@us.ibm.com>
6268
6269         * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
6270         the const qualifier for the second argument in the C++ functions.
6271
6272         * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
6273         specific pointer types.
6274
6275         * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
6276         vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
6277         for vector bool and/or vector pixel, add C++ and C missing support.
6278         (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
6279         vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
6280         vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
6281         vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
6282         vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
6283         missing C++ and C support for vector bool and/or vector pixel.
6284         (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
6285         vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
6286         vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
6287         vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
6288         vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
6289         C++ and C types used for vector bool and/or vector pixel.
6290         (vec_st, vec_stl): Add C++ support for vector pixel.
6291         (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
6292         (vec_all_ne): Add C++ support for vector pixel.
6293
6294         * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
6295         (vec_vmulesb): Add missing C++ function.
6296         (vec_perm): Fix type of third argument in C++ function.
6297         (vec_vsum4shs): Fix C++ function name.
6298         (vec_any_ge): Remove C++ functions for unsupported arg combinations.
6299         (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
6300         argument passed to the error handler in C macro.
6301         (vec_nmsub): Remove extra parens around argument names in C macro.
6302         (vec_packpx): Add missing parens in C macro.
6303
6304 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
6305
6306         * machmode.def: Remove vector modes.
6307         * config/alpha/alpha-modes.def: Add supported vector modes.
6308         * config/arm/arm-modes.def: Likewise.
6309         * config/frv/frv-modes.def: Likewise.
6310         * config/i386/i386-modes.def: Likewise.
6311         * config/rs6000/rs6000-modes.def: Likewise.
6312         * config/sh/sh-modes.def: Likewise.
6313
6314 2004-07-23  Matthias Klose  <doko@debian.org>
6315
6316         * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
6317         * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
6318         * config.h: Regenerate.
6319         * configure: Likewise.
6320
6321 2004-07-22  Mark Mitchell  <mark@codesourcery.com>
6322
6323         * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
6324         generated SYMBOL_REFs for labels.
6325         * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
6326         Change prototype.
6327         (machopic_stub_name): Remove.
6328         (machopic_indirection_name): New function.
6329         (machopic_mcount_stub_name): Likewise.
6330         (machopic_classify_name): Remove.
6331         (machopic_function_base_sym): New function.
6332         (machpoic_classify_symbol): Likewise.
6333         (machopic_classify_ident): Remove.
6334         (machopic_define_ident): Likewise.
6335         (machopic_define_name): Likewise.
6336         (machopic_name_defined_p): Likewise.
6337         (machopic_ident_defined_p): Likewise.
6338         (darwin_strip_name_encoding): Likewise.
6339         (machopic_define_symbol): New function.
6340         * config/darwin.c (hashtab.h): Include.
6341         (machopic_defined_list): Remove.
6342         (machopic_classify_ident): Likewise.
6343         (machopic_classify_name): Likewise.
6344         (machopic_ident_defined_p): Likewise.
6345         (machopic_define_ident): Likewise.
6346         (machopic_define_name): Likewise.
6347         (machopic_symbol_defined_p): New function.
6348         (machopic_classify_symbol): Likewise.
6349         (machopic_data_defined_p): Use machopic_classify_symbol.
6350         (machopic_define_symbol): New function.
6351         (machopic_function_base_sym): New function.
6352         (machopic_non_lazy_pointers): Remove.
6353         (machopic_non_lazy_ptr_name): Likewise.
6354         (machopic_stubs): Likewise.
6355         (machopic_stub_name): Likewise.
6356         (NON_LAZY_POINTER_SUFFIX): New macro.
6357         (STUB_SUFFIX): Likewise.
6358         (machopic_indirection): New structure.
6359         (machopic_indirections): New variable.
6360         (machopic_indirection_hash): New function.
6361         (machopic_indirection_eq): Likewise.
6362         (machopic_indirection_name): Likewise.
6363         (machopic_mcount_stub_name): New function.
6364         (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
6365         hash table.
6366         (machopic_indirect_data_reference): Rework to use new functions.
6367         (machopic_indirect_call_target): Likewise.
6368         (machopic_legitimize_pic_address): Likewise.
6369         (machopic_output_indirection): New function.
6370         (machopic_finish): Use it.
6371         (machopic_operand_p): Rework to use new functions.
6372         (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
6373         (darwin_strip_name_encoding): Remove.
6374         (update_non_lazy_ptrs): Remove.
6375         (update_stubs): Likewise.
6376         (darwin_non_lazy_pcrel): Use new functions.
6377         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
6378         (ASM_OUTPUT_LABELREF): Likewise.
6379         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
6380         (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
6381         (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
6382         (TARGET_STRIP_NAME_ENCODING): Do not use
6383         darwin_strip_name_encoding.
6384         (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
6385         darwin_strip_name_encoding.
6386         * config/i386/darwin.h (FUNCTION_PROFILER): Use
6387         machopic_mcount_stub_name.
6388         * config/i386/i386.c (x86_output_mi_thunk): Use
6389         machopic_indirection_name, not machopic_stub_name.
6390         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
6391         machopic_function_base_sym.
6392         (print_operand): Use machopic_classify_symbol.
6393         (rs6000_emit_prologue): Use machopic_function_base_sym.
6394         (output_profile_hook): Do not use machopic_stub_name.
6395         (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
6396
6397 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6398
6399         PR c/7284
6400         * fold-const.c (extract_muldiv_1): Do not treat signed left shift
6401         as multiplication.
6402
6403 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6404
6405         * doc/implement-c.texi: New file.
6406         * doc/extend.texi (C Implementation): Move to there.
6407         * doc/gcc.texi: Include implement-c.texi.
6408         * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
6409
6410 2004-07-22  Jason Merrill  <jason@redhat.com>
6411
6412         * integrate.c (copy_decl_for_inlining): Remove invisible reference
6413         handling.
6414         * tree-inline.c (setup_one_parameter): Likewise.
6415
6416 2004-07-22  Brian Booth  <bbooth@redhat.com>
6417
6418         * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
6419         (substitute_and_fold): Propigate into VUSE operands when possible.
6420         (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
6421         (cp_lattice_meet): Handle merging of latticevalues when
6422         UNKNOWN_VAL is present.
6423         (visit_stmt): Visit assignments with V_MUST_DEFs.
6424         (visit_assignment): Gather ccp information for V_MUST_DEF operands.
6425         (ccp_fold): Deal with RHS' that are constant and virtual.
6426         (evaluate_stmt): Handle UNKNOWN_VAL likely values.
6427         (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
6428         (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
6429         V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
6430         computing immediate uses.
6431         (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
6432         transition.
6433         (replace_vuse_in): New function.
6434         (likely_value): Add check of vuse operands.
6435         (get_default_value): Set the default value of virtually defined
6436         variables to UKNOWN_VAL instead of VARYING.
6437
6438 2004-07-22  Richard Henderson  <rth@redhat.com>
6439
6440         * expr.c (emit_push_insn): Don't use set_mem_attributes.
6441
6442 2004-07-22  Richard Henderson  <rth@redhat.com>
6443
6444         * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
6445         variables due to conditional compilation.
6446
6447 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
6448
6449         * tree-into-ssa.c (set_livein_block): Fix typo in comment.
6450         (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
6451         Release SSA names that have been re-renamed.
6452         * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
6453         variable.
6454         * tree-ssa-alias.c (init_alias_info): If aliases have been
6455         computed before, clear existing alias information.
6456         (create_name_tags): Do no fixup PT_ANYTHING pointers.
6457         If the new name tag for a pointer is different than the one it
6458         had before, mark the old tag for renaming.
6459         (replace_may_alias): New function.
6460         (group_aliases): Call it.
6461         (setup_pointers_and_addressables): Always call get_tmt_for.
6462         (maybe_create_global_var): Don't create .GLOBAL_VAR more than
6463         once.
6464         (set_pt_anything): New local function.
6465         (set_pt_malloc): New local function.
6466         (merge_pointed_to_info): Don't merge pointed-to variables from
6467         the original pointer if the destination is pointing to an
6468         unknown location.
6469         (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
6470         (add_pointed_to_var): Do not add a variable to the points-to
6471         set if the pointer is already pointing to anywhere.
6472         (collect_points_to_info_r): If the defining statement is a PHI
6473         node, only merge pointed-to information if the argument has
6474         already been visited.
6475         (get_tmt_for): Only create a new tag if the pointer didn't
6476         have one already.
6477         (dump_alias_info): Emit more information.
6478         (dump_points_to_info_for): Likewise.
6479         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
6480         try to get the annotation of an SSA_NAME.
6481         * tree-ssa-operands.c (add_stmt_operand): Only check for empty
6482         alias sets when checking is enabled.
6483         * tree-ssa-pre.c (need_eh_cleanup): New local variable.
6484         (eliminate): Mark basic blocks that will need
6485         EH information cleaned up.
6486         (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
6487         predecessor.
6488         Initialize need_eh_cleanup.
6489         (fini_pre): Call tree_purge_all_dead_eh_edges and
6490         cleanup_tree_cfg if needed.
6491         Free need_eh_cleanup.
6492         * tree-ssa.c (verify_ssa_name): New function.
6493         (verify_def): Call it.
6494         Re-arrange to avoid printing too many error messages.
6495         (verify_use): Likewise.
6496         (verify_phi_args): Likewise.
6497         (verify_flow_insensitive_alias_info): New function.
6498         (verify_flow_sensitive_alias_info): New function.
6499         (verify_alias_info): New function.
6500         (verify_ssa): Call verify_alias_info.
6501         Clear TREE_VISITED on all the SSA_NAMEs before scanning the
6502         program.
6503         Re-arrange to avoid printing too many error messages.
6504         * tree-ssanames.c (make_ssa_name): Clear
6505         SSA_NAME_IN_FREE_LIST.
6506         (release_ssa_name): Never release a default definition.
6507         (release_defs): New function.
6508         * tree.h: Declare it.
6509         * tree-ssa-dce.c (remove_dead_stmt): Call it.
6510
6511 2004-07-22  Diego Novillo  <dnovillo@redhat.com>
6512
6513         * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
6514         If true, do a depth-first search.  Do a breadht-first search,
6515         otherwise.
6516         (walk_use_def_chains): Add new argument IS_DFS.
6517         Update all users.
6518         * tree-flow.h (walk_use_def_chains): Update prototype.
6519
6520 2004-07-22  Hans-Peter Nilsson  <hp@axis.com>
6521
6522         * config/cris/cris.md: Tweak formatting.
6523         (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
6524         (mover2side, moverside, movemside, movei, op3, andu): Replace
6525         live define_peephole:s with define_peephole2 near-equivalents.
6526         Delete the rest.
6527         ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap".  Match all
6528         word-size modes.
6529         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
6530         Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
6531         "*mov_sidesi_mem" respectively.
6532
6533 2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
6534
6535         * tree-cfg.c (gimplify_val): Move from tree-complex.c.
6536         (gimplify_build1): Move from tree-complex.c do_unop.
6537         (gimplify_build2): Move from tree-complex.c do_binop.
6538         (gimplify_build3): New.
6539         * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
6540         Adjust throughout to call the functions above.
6541         * tree-flow.h: Declare the functions above.
6542         * tree-nested.c (gimplify_val): Rename to...
6543         (tsi_gimplify_val): ... this.
6544
6545         * Makefile.in (tree_complex.o): Update dependencies.
6546         (stor-layout.o): Depend on regs.h.
6547         * c-common.c (handle_vector_size_attribute): Update for
6548         vector types without corresponding vector modes.
6549         * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
6550         a corresponding vector mode is not available.
6551         * print-tree.c (print_node): Print nunits for vector types
6552         * regclass.c (have_regs_of_mode): New.
6553         (init_reg_sets_1): Initialize it and use it instead
6554         of allocatable_regs_of_mode.
6555         * regs.h (have_regs_of_mode): Declare it.
6556         * stor-layout.c (layout_type): Pick a mode for vector types.
6557         * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
6558         build_replicated_const, do_unop, do_binop, do_plus_minus,
6559         do_negate, expand_vector_piecewise, expand_vector_parallel,
6560         expand_vector_addition, expand_vector_operations_1,
6561         expand_vector_operations, tree_lower_operations,
6562         pass_lower_vector_ssa, pass_pre_expand): New.
6563         (expand_complex_operations, pass_lower_complex): Remove.
6564         * tree-optimize.c (init_tree_optimization_passes): Adjust
6565         pass ordering for changes in tree-complex.c.
6566         * tree-pass.h: Declare new passes.
6567         * tree.c (finish_vector_type): Remove.
6568         (make_vector_type): New.
6569         (build_vector_type_for_mode, build_vector_type): Rewritten.
6570         * tree.def (VECTOR_TYPE): Document where the number of
6571         subparts is stored.
6572         * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
6573         (make_vector): Remove declaration.
6574
6575 2004-07-21  Richard Henderson  <rth@redhat.com>
6576
6577         * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,
6578         TREE_THIS_VOLATILE, may_aliases, or optimization level.
6579         (remove_useless_vars): Dump debugging info.
6580         (expand_used_vars): Move ...
6581         * cfgexpand.c (expand_used_vars): ... here.  Make static.
6582         * tree-flow-inline.h (set_is_used): New.
6583         (set_default_def): Use get_var_ann.
6584         * tree-flow.h: Update decls.
6585         * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New.
6586         (create_ssa_var_map): Use it.
6587         * tree-ssa.c (set_is_used): Remove.
6588
6589 2004-07-22  Ben Elliston  <bje@au.ibm.com>
6590
6591         * gdbinit.in: Set a breakpoint on internal_error.
6592
6593 2004-07-21  Richard Henderson  <rth@redhat.com>
6594
6595         * cfgexpand.c (expand_gimple_tailcall): Fix case where we need
6596         to create a new basic block.
6597
6598 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6599
6600         PR c/15052
6601         * c-decl.c (grokdeclarator): Only pedwarn for qualified void
6602         return type on function definitions.  Move other warnings for
6603         qualified return type to -Wreturn-type.  Do not condition any such
6604         warnings on -pedantic.  Update comments.
6605         (start_function): Only copy function type from previous prototype
6606         declaration if return types are compatible.
6607         * c-typeck.c (function_types_compatible_p): Don't condition
6608         warning for incompatibility of volatile qualifiers on the return
6609         type on -pedantic.  Update comment.
6610         * doc/invoke.texi (-Wreturn-type, -Wextra): Update.
6611
6612 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6613
6614         * c-typeck.c (set_init_index): Require designator to be of integer
6615         type.
6616
6617 2004-07-22  Joseph S. Myers  <jsm@polyomino.org.uk>
6618
6619         PR c/11250
6620         * c-parse.in (init): Change to exprtype.
6621         (primary): Set original_code for STRING to STRING_CST.
6622         Call maybe_warn_string_init for compound literals.
6623         (initdcl, notype_initdcl): Call maybe_warn_string_init.
6624         (initval): Update.
6625         * c-tree.h (maybe_warn_string_init): New.
6626         (pop_init_level, process_init_element): Use struct c_expr.
6627         (struct c_expr): Update comment.
6628         * c-typeck.c (maybe_warn_string_init): New function.
6629         (digest_init): Call it.  Additional parameter strict_string.  All
6630         callers changed.
6631         (output_init_element): Likewise.
6632         (struct constructor_stack): Use struct c_expr for
6633         replacement_value.
6634         (really_start_incremental_init, push_init_level): Update.
6635         (pop_init_level): Update.  Return struct c_expr.
6636         (process_init_level): Update.  Take struct c_expr argument.
6637
6638 2004-07-21  David S. Miller  <davem@nuts.davemloft.net>
6639
6640         * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous
6641         commit.
6642
6643 2004-07-21  Eric Christopher  <echristo@redhat.com>
6644
6645         * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code
6646         removal.
6647         * c-decl.c (pop_scope): Ditto.
6648         * calls.c (expand_call): Remove call to current_nesting_level,
6649         update comment accordingly. Remove calls to expand_start_target_temps
6650         and expand_end_target_temps.
6651         * cfgexpand.c (construct_init_block): Remove call to
6652         expand_start_bindings_and_block.
6653         (construct_exit_block): Remove call to expand_end_bindings.
6654         * expr.c (safe_from_p): Remove BIND_EXPR handling.
6655         (expand_expr_real_1): Ditto. Fix formatting.
6656         (expand_vars): Delete.
6657         * stmt.c (POPSTACK): Remove block_stack.
6658         (stmt_status): Remove x_block_stack.
6659         (block_stack): Delete.
6660         (expand_start_bindings_and_block): Ditto.
6661         (expand_start_target_temps): Ditto.
6662         (expand_end_target_temps): Ditto.
6663         (current_nesting_level): Ditto.
6664         (warn_about_unused_variables): Ditto.
6665         (expand_end_bindings): Ditto.
6666         * tree.h: Remove declarations for above.
6667
6668 2004-07-21  Steven Bosscher  <stevenb@suse.de>
6669
6670         * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION.
6671         * rtl.c (note_insn_name): Likewise.
6672         * print-rtl.c (print_rtx): Don't print it.
6673         * cfgrtl.h (can_delete_note_p): Don't handle it.
6674         (rtl_delete_block): Likewise.
6675         * passes.c (rest_of_handle_guess_branch_prob): Remove.
6676         (rest_of_compilation): Don't call it.
6677         * predict.c (process_note_predictions, process_note_prediction,
6678         note_prediction_to_br_prob): Remove.
6679         * basic-block.c (note_prediction_to_br_prob): Remove prototype.
6680         * stmt.c (return_prediction): Remove.
6681         (expand_value_return): Don't call it.  Don't add prediction
6682         notes for return statements.
6683
6684 2004-07-21  Josef Zlomek  <zlomekj@suse.cz>
6685
6686         * var-tracking.c (vt_find_locations): Set the in_pending bitmap at
6687         once.
6688
6689 2004-07-21  Paolo Bonzini  <bonzini@gnu.org>
6690
6691         * c-common.c (vector_types_convertible_p): Use vector types'
6692         TYPE_SIZE and TREE_TYPE instead of their mode.
6693         * convert.c (convert_to_integer): Likewise.
6694         (convert_to_vector): Likewise.
6695         * fold-const.c (fold_convert): Likewise.
6696         * varasm.c (output_constant): Likewise.
6697         * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE.
6698         Allow a VECTOR_TYPE initializer to be made of several vectors.
6699         For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling
6700         of cleared and need_to_clear, and use fold_convert.
6701         * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for
6702         integer vectors.
6703
6704 2004-07-20  Richard Henderson  <rth@redhat.com>
6705
6706         * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split,
6707         (expand_gimple_basic_block): out from here.  Renamed from expand_block.
6708
6709 2004-07-20  David S. Miller  <davem@nuts.davemloft.net>
6710
6711         * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit
6712         enormous cost if not TARGET_HARD_MUL.
6713
6714 2004-07-20  Andrew Pinski  <apinski@apple.com>
6715
6716         PR target/16557
6717         * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ...
6718         (ASM_SPEC): here.
6719
6720 2004-07-21  Paul brook  <paul@codesourcery.com>
6721
6722         * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT.
6723
6724 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6725
6726         * fold-const.c (operand_equal_p): Temporarily support NULL args.
6727         (operand_equal_p, case ARRAY_REF): Compare args 2 and 3.
6728         (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2.
6729
6730 2004-07-20  Zack Weinberg  <zack@codesourcery.com>
6731
6732         * rtl.h (plus_constant): Delete.
6733         (plus_constant_wide): Rename to plus_constant.
6734         (plus_constant_for_output_wide): Delete vestigial prototype.
6735         (GEN_INT): Remove unnecessary cast.
6736         * tree.h (build_int_2, size_int_type): Delete.
6737         (build_int_2_wide): Rename to build_int_2.
6738         (size_int_wide): Rename to size_int_kind.
6739         (size_int_type_wide): Rename to size_int_type.
6740         (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind.
6741         Remove unnecessary cast.
6742         * tree.c (build_int_2_wide): Rename build_int_2; update comment.
6743         * explow.c (plus_constant_wide): Rename plus_constant; update comment.
6744         * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type.
6745         (size_int_type_wide): Rename size_int_type.
6746         (int_const_binop): Use size_int_type.
6747         * c-lex.c (interpret_integer): Use build_int_2.
6748         * final.c (split_double): Remove unnecessary casts.
6749         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2.
6750
6751 2004-07-20  Richard Henderson  <rth@redhat.com>
6752
6753         * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c.
6754         (gimplify_compound_lval): Use is_gimple_tmp_reg.
6755         * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c.
6756         (is_gimple_tmp_reg): New.
6757         * tree-gimple.h (is_gimple_tmp_reg): Declare.
6758
6759 2004-07-20  Richard Henderson  <rth@redhat.com>
6760
6761         * tree-pretty-print.c (dump_generic_node): Dump
6762         CALL_EXPR_HAS_RETURN_SLOT_ADDR.
6763
6764 2004-07-20  Frank Ch. Eigler  <fche@redhat.com>
6765
6766         * tree-mudflap.c (mf_set_options_fndecl): New tree.
6767         (mudflap_init): Set it.
6768         (mudflap_register_call): Remove __mf_init call.
6769         (mudflap_finish_file): Emit call to __mf_init here.  Emit a call to
6770         to pass "-ignore-reads" option to libmudflap if needed.
6771
6772 2004-07-20  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
6773
6774         PR c++/14607
6775         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define.
6776         (MAKE_DECL_ONE_ONLY): Undefine.
6777         * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section,
6778         readonly_data, one_only_data_section, forget_section): New prototypes.
6779         * pa.c (pa_init_machine_status, som_text_section_asm_op): New
6780         functions.
6781         (pa_select_section): Add one-only (COMDAT) support.
6782         * pa.h (struct machine_function): Define.
6783         * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete.
6784         (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op.
6785         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
6786         ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
6787         ONE_ONLY_DATA_SECTION_ASM_OP): New defines.
6788         (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data.
6789         (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros.
6790         (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
6791         ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines
6792         for EXTRA_SECTION_FUNCTIONS.
6793         * doc/install.texi: Update binutils requirements.
6794
6795 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
6796
6797         * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate,
6798         VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert,
6799         VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not
6800         size_t.
6801         (struct VEC): Use unsigned for num and alloc.
6802         * vec.c (struct vec_prefix): Likewise.
6803         (vec_o_reserve): Adjust.
6804
6805         * dbxout.c (dbxout_type): Fix printf format.
6806
6807         * tree.h (binfo_member): Remove.
6808         * tree.c (binfo_member): Remove.
6809
6810 2004-07-20  Nathan Sidwell  <nathan@codesourcery.com>
6811
6812         * tree.h: Include vec.h
6813         (DEF_VEC_P(tree)): New type.
6814         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust.
6815         (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New.
6816         (BINFO_LANG_SLOT): Remove.
6817         (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New.
6818         (struct tree_binfo): Turn base_binfos into a trailing
6819         VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields.
6820         (binfo_lang_slots): Remove.
6821         * tree.c (binfo_lang_slots): Remove.
6822         (make_tree_binfo_stat): Take a base binfo count, not a
6823         lang slot count.  Adjust.
6824         * Makefile.in (TREE_H): Add vec.h
6825         * alias.c (record_component_aliases): Adjust BINFO access.
6826         * dbxout.c (dbxout_type): Likewise.
6827         * dwarf2out.c (gen_member_die): Likewise.
6828         * sdbout.c (sdbout_one_type): Likewise.
6829         * tree-dump.c (deque_and_dump): Likewise.
6830         * config/i386/i386.c (classify_argument,
6831         contains_128bit_aligned_vector_p): Likewise.
6832         * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise.
6833         * doc/c-tree.texi (Classes): Update BINFO documentation.
6834
6835 2004-07-20  Steven Bosscher  <stevenb@suse.de>
6836
6837         * c-common.h (check_case_value): Remove prototype.
6838         (c_add_case_label): Adjust prototype.
6839         * c-common.c (check_case_value): Make static.
6840         (check_case_bounds): New function.
6841         (c_add_case_label): Use it.  Take new argument orig_type.
6842         * c-typeck.c (struct c_switch): New orig_type field.
6843         (c_start_case): Set it.
6844         (do_case): Pass it to c_add_case_label.
6845         * expr.c (expand_expr_real_1): Don't warn for out-of-bounds
6846         cases from here.  Add the labels in reverse order.
6847         * stmt.c (struct case_node): Adjust comment.  Remove balance field.
6848         (add_case_node): Return nothing, don't check for duplicate cases.
6849         Insert new case nodes in a list, not in an AVL tree.
6850         (expand_end_case_type): Don't turn a case tree into a case list.
6851         (case_tree2list): Remove.
6852         * tree.h (add_case_node): Adjust prototype.
6853
6854 2004-07-19  Paolo Bonzini  <bonzini@gnu.org>
6855
6856         * genattr.c (struct range, struct function_unit,
6857         write_units, extend_range, init_range): Remove them.
6858         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
6859         Output "#define INSN_SCHEDULING" here.
6860         * genattrtab.c (struct range, struct function_unit_op,
6861         struct function_unit, struct dimension, enum operator,
6862         operate_exp, expand_units, simplify_knowing,
6863         encode_units_mask, simplify_by_exploding,
6864         find_and_mark_used_attributes, unmark_used_attributes,
6865         add_values_to_cover, increment_current_value,
6866         test_for_current_value, simplify_with_current_value,
6867         simplify_with_current_value_aux, gen_unit,
6868         write_unit_name, write_function_unit_info,
6869         write_complex_function, write_toplevel_expr,
6870         find_single_value, extend_range): Remove.
6871         (write_attr_get): Do not handle common_av->value
6872         being an FFS.
6873         (struct attr_desc): Remove func_units_p and blockage_p.
6874         (write_attr_valueq): Do not handle them.
6875         (find_attr): Do not clear them.
6876         (make_internal_attr): Do not initialize them.
6877         (main): Remove code dealing with DEFINE_FUNCTION_UNIT.
6878         * sched-vis.c (init_target_units, insn_print_units,
6879         init_block_visualization, print_block_visualization,
6880         visualize_scheduled_insns, visualize_no_unit,
6881         visualize_stall_cycles, visualize_alloc,
6882         visualize_free, target_units, get_visual_tbl_length,
6883         MAX_VISUAL_LINES, INSN_LEN, n_visual_lines,
6884         visual_tbl_line_length, visual_tbl, n_vis_no_unit,
6885         MAX_VISUAL_NO_UNIT, vis_no_unit): Remove.
6886         * haifa-sched.c (blockage_range, clear_units,
6887         schedule_unit, actual_hazard, potential_hazard,
6888         insn_unit, unit_last_insn, unit_tick,
6889         actual_hazard_this_instance, potential_hazard,
6890         schedule_unit, max_insn_queue_index_value): Remove.
6891         (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to
6892         max_insn_queue_index.
6893         * rtl.def (DEFINE_FUNCTION_UNIT): Remove.
6894         * doc/md.texi (Processor pipeline description): Remove
6895         references to old pipeline descriptions.
6896         (Automaton pipeline description): Merge with the above.
6897         (Old pipeline description, Comparison of the two descriptions):
6898         Remove.
6899
6900         * bt-load.c (migrate_btr_def): Remove references to
6901         use_pipeline_interface.
6902         * haifa-sched.c (insn_cost, schedule_insn,
6903         schedule_block, advance_one_cycle, sched_init,
6904         queue_to_ready, sched_finish): Likewise.
6905         * modulo-sched.c (sms_schedule, advance_one_cycle,
6906         ps_has_conflicts): Likewise.
6907         * sched-rgn.c (init_ready): Likewise.
6908         (debug_dependencies): Likewise, and remove an "if (1)".
6909         * target.h (use_dfa_pipeline_interface): Remove.
6910         * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6911         * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6912         * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6913         * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6914         * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6915         * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6916         * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6917         * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6918         * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6919         * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6920         * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6921         * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6922         * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6923         * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6924         * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6925         * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6926         * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6927         * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6928         * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove.
6929
6930 2004-07-19  Roger Sayle  <roger@eyesopen.com>
6931
6932         * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call.
6933
6934 2004-07-19  Jeff Law  <law@redhat.com>
6935
6936         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New.
6937         (get_eq_expr_value): Use it.  Simplify slightly.
6938
6939 2004-07-19  Maciej W. Rozycki  <macro@linux-mips.org>
6940
6941         * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list.
6942         (umulsidi3_32bit_r4000): Likewise.
6943
6944 2004-07-19  Nathan Sidwell  <nathan@codesourcery.com>
6945
6946         * vec.h: Propagate location information properly.
6947         (VEC_T_iterate): Add result pointer parameter.
6948         (VEC_T_space): New.
6949         (VEC_T_reserve): Use it.
6950
6951 2004-07-19  Daniel Jacobowitz  <dan@debian.org>
6952
6953         * Makefile.in (c-format.o): Depend on c-format.h.
6954         * c-format.h: New file.
6955         (struct format_char_info): Add CHAIN member.
6956         * c-format.c: Move some types and constants to c-format.h.
6957         (format_type_error): Set to -1.
6958         (struct function_format_info): Use an int for format_type.
6959         (decode_format_type): Return an int.  Return format_type_error
6960         on error.
6961         (print_char_table, asm_fprintf_char_table, gcc_diag_char_table)
6962         (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table)
6963         (scan_char_table, time_char_table, monetary_char_table): Initialize
6964         CHAIN to NULL.
6965         (n_format_types): New variable.
6966         (check_format_info_main): Handle CHAIN in format_char_info.
6967         (handle_format_attribute): Handle TARGET_FORMAT_TYPES and
6968         TARGET_N_FORMAT_TYPES.
6969         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
6970         (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c.
6971         * config/sol2-c.c: New file.
6972         * config/t-sol2: New file.
6973         * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define.
6974         * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine
6975         TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES.
6976
6977         * doc/extend.texi (Target Format Checks): New section.
6978         (Function Attributes): Mention it.
6979         * doc/invoke.texi: Mention target format checks.
6980         * doc/sourcebuild.texi: Mention target format checks.
6981         * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and
6982         TARGET_FORMAT_TYPES.
6983
6984 2004-07-19  Andreas Krebbel  <krebbel1@de.ibm.com>
6985
6986         * config/s390/s390-protos.h (s390_return_address_offset): Prototype
6987         added.
6988         * config/s390/s390.c (regclass_map initializer): Register 35 added to
6989         ADDR_REGS.
6990         (load_multiple_operation, store_multiple_operation): Removed
6991         pointless sanity check.
6992         (s390_decompose_address): Added check for return_address_pointer_rtx.
6993         (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0.
6994         (s390_return_address_offset): New function.
6995         * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36.
6996         (FRAME_REGNO_P): Added check for register 35.
6997         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
6998         REG_ALLOC_ORDER): Appended entry for register 35.
6999         (REG_CLASS_CONTENTS): Adjusted class masks for register 35.
7000         (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx.
7001         (RETURN_ADDRESS_POINTER_REGNUM): New macro.
7002         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer
7003         is eliminable using stack pointer or hard frame pointer.
7004         (REGISTER_NAMES): Added name for register 35.
7005         * config/s390/s390.md ("load_multiple", "store_multiple"): Removed
7006         pointless sanity check.
7007
7008 2004-07-19  Roger Sayle  <roger@eyesopen.com>
7009
7010         * fold-const.c (tree_expr_nonzero_p): Add function prototype.
7011         (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from
7012         fold_relational_const to here, i.e. "(x | 5) == 0" -> false.
7013         (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons
7014         of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT.
7015         (fold_relational_const): Tidy up handling of floating point
7016         comparisons by calling real_compare.  Remove tree_expr_nonzero_p
7017         transformation; fold_relational_const assumes constant operands.
7018
7019 2004-07-19  Gabriel Dos Reis  <gdr@integrable-solution.net>
7020
7021         * doc/sourcebuild.texi: Add libcpp, now that CPP has its own
7022         directory.
7023
7024 2004-07-19  Joseph S. Myers  <jsm@polyomino.org.uk>
7025
7026         * c-tree.h (struct c_expr): Define.
7027         (C_SET_EXP_ORIGINAL_CODE): Remove.
7028         (parser_build_binary_op, build_compound_expr): Update prototypes.
7029         * c-parse.in (%union): Add exprtype.
7030         (FUNC_NAME): Mark as ttype.
7031         (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
7032         exprtype.
7033         (expr): Update.  Define directly in terms of expr_no_commas
7034         instead of using nonnull_exprlist.
7035         (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
7036         offsetof_member_designator, typespec_nonreserved_nonattr, init,
7037         initval, designator, component_declarator,
7038         component_notype_declarator, enumerator, array_declarator,
7039         condition, exexpr, switch_statement, stmt_nocomp, stmt,
7040         nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
7041         set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
7042         where appropriate.
7043         * c-common.h (C_EXP_ORIGINAL_CODE): Remove.
7044         * c-common.c (c_common_truthvalue_conversion): Don't check
7045         C_EXP_ORIGINAL_CODE.
7046         * c-typeck.c (parser_build_binary_op): Use c_expr structures.
7047         Don't use C_EXP_ORIGINAL_CODE.
7048         (default_conversion, default_function_array_conversion): Don't use
7049         C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
7050         (internal_build_compound_expr): Merge into build_compound_expr.
7051         (build_compound_expr): Take two operands instead of a TREE_LIST.
7052         * objc/objc-act.c (get_super_receiver): Update calls to
7053         build_compound_expr.
7054
7055 2004-07-18  Paolo Bonzini  <bonzini@gnu.org>
7056
7057         * config/sh/sh.c (sh_use_dfa_interface): Remove.
7058         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to
7059         hook_int_void_1.
7060         * config/sh/sh.md: Extract pipeline descriptions
7061         into separate files.
7062         * config/sh/sh1.md: New file, extracted from sh.md.
7063         * config/sh/sh4.md: New file, extracted from sh.md.
7064         * config/sh/shmedia.md: New file, extracted from sh.md
7065         and rewritten using new-style pipeline description.
7066
7067 2004-07-18  Zack Weinberg  <zack@codesourcery.com>
7068
7069         * config/pa/pa.md: Delete the two remaining define_peephole
7070         patterns.
7071
7072 2004-07-18  Steven Bosscher  <stevenb@suse.de>
7073             Joseph S. Myers  <jsm@polyomino.org.uk>
7074
7075         * c-common.c (c_common_truthvalue_conversion): Don't warn if
7076         TREE_NO_WARNING is set.
7077
7078 2004-07-18  Roger Sayle  <roger@eyesopen.com>
7079
7080         * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
7081         simplify_builtin_strncmp): Delete.
7082         (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp):
7083         Change argument to accept an arglist instead of an "exp".  Assume
7084         that the return type is always integer_type_node.  Copy missing
7085         transformations from their now obsolete simplify_builtin_*
7086         equivalents.
7087         (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp,
7088         fold_builtin_strcmp and fold_builtin_strncmp.
7089         (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp
7090         and fold_builtin_strncmp instead of simplify_builtin_memcmp,
7091         simplify_builtin_strcmp and simplify_builtin_strncmp respectively.
7092
7093 2004-07-18  Daniel Jacobowitz  <dan@debian.org>
7094
7095         * Makefile.in (tree-alias-common.o): Update dependencies.
7096
7097 2004-07-17  Sebastian Pop  <pop@cri.ensmp.fr>
7098
7099         * cfgloop.c (flow_loop_nested_p): Fix comment.
7100
7101 2004-07-17  Jason Merrill  <jason@redhat.com>
7102
7103         PR c++/16115
7104         * stor-layout.c (relayout_decl): New fn.
7105         * tree.h: Declare it.
7106         (DECL_BY_REFERENCE): New macro.
7107
7108 2004-07-17  Eric Botcazou  <ebotcazou@act-europe.fr>
7109
7110         * libgcc2.c (__enable_execute_stack): New symbol.
7111         * libgcc-std.ver (GCC_3.4.2): New version.  Inherit from GCC_3.4
7112         and declare __enable_execute_stack.
7113         * mklibgcc.in (lib2funcs): Add _enable_execute_stack.
7114         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
7115         * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7116         ENABLE_EXECUTE_STACK.
7117         * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
7118         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7119         * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7120         ENABLE_EXECUTE_STACK.
7121         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7122         * config/i386/i386.c (x86_initialize_trampoline): Conditionalize
7123         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7124         * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
7125         ENABLE_EXECUTE_STACK.
7126         * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7127         * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7128         * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7129         * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
7130         * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
7131         on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
7132         (sparc64_initialize_trampoline): Likewise.
7133         * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
7134
7135 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7136
7137         * langhooks.h (builtin_function): New langhook.
7138         * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New.
7139         (LANG_HOOKS_INITIALIZER): Update.
7140         * tree.h (builtin_function): Remove.
7141         * doc/tm.texi: Update.
7142         * c-tree.h (builtin_function): Declare.
7143         * c-common.c, config/alpha/alpha.c, config/arm/arm.c,
7144         config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c,
7145         config/ia64/ia64.c, config/iq2000/iq2000.c,
7146         config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
7147         config/stormy16/stormy16.c: All callers of builtin_function
7148         changed.
7149
7150 2004-07-17  Andrew Pinski  <pinskia@physics.uc.edu>
7151
7152         PR target/16556
7153         * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7154         Remove white space after the backslash.
7155
7156 2004-07-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
7157
7158         PR rtl-optimization/16294
7159         * resource.c (return_insn_p): New predicate.
7160         (mark_target_live_regs): Use it.  Special-case return insns.
7161         (init_resource_info): Use it.  Don't scan the epilogue past
7162         a return.
7163
7164 2004-07-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7165
7166         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not
7167         destroy dominance information.
7168         * passes.c (rest_of_handle_loop2):  Free dominance information.
7169         * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before
7170         jump threading.
7171         (thread_jumps): Update dominance information and remove unreachable
7172         blocks.
7173         * tree-ssa-phiopt.c (replace_phi_with_stmt):  Update dominance
7174         information and remove the unreachable block.
7175
7176 2004-07-17  Graham Stott  <graham.stott@btinternet.com>
7177
7178         * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn.
7179
7180 2004-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
7181
7182         * doc/sourcebuild.texi: Remove libf2c entry.
7183
7184 2004-07-17  Paolo Bonzini  <bonzini@gnu.org>
7185
7186         * config/i386/i386.md (movv16qi_internal): Fix typo.
7187
7188 2004-07-17  Steven Bosscher  <stevenb@suse.de>
7189
7190         * final.c (final_scan_insn): Fix broken commit from previous
7191         patch.
7192
7193 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
7194
7195         * c-typeck.c (parser_build_binary_op): Condition warnings for
7196         X<=Y<=Z on -Wparentheses instead of -Wextra.
7197         * doc/invoke.texi: Update.  Document that most of -Wparentheses is
7198         supported for C only.
7199
7200 2004-07-17  Steven Bosscher  <stevenb@suse.de>
7201
7202         * cfgcleanup.c (try_simplify_condjump): Don't remove line
7203         notes to avoid unreachable code warnings.
7204         * toplev.c (backend_init): Don't emit line notes for
7205         unreachable code warnings.
7206
7207         * combine.c (distribute_notes): Don't distribute a
7208         REG_VTABLE_REF note.
7209         * final.c (final_scan_insn): Don't handle it.
7210         * rtl.c (reg_note_name): Remove it.
7211         * rtl.h (enum reg_node): Dito.
7212
7213         * emit-rtl.c (force_line_numbers, restore_line_number_status):
7214         Remove.
7215         * rtl.h (force_line_numbers, restore_line_number_status):
7216         Remove prototypes.
7217
7218         * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move...
7219         * tree-eh.c (using_eh_for_cleanups_p): ...here.  Make static.
7220         (using_eh_for_cleanups): Also moved here.
7221
7222         * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one.
7223         <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY.  Update calls
7224         to expand_start_case and add_case_node.
7225         * stmt.c (struct nesting): Cleanup unused fields condition_code,
7226         last_unconditional_cleanup, nominal_type, printname, and
7227         line_number_status.
7228         (struct fixup_goto): Remove.
7229         (struct stmt_status): Remove x_goto_fixup_chain field.
7230         (goto_fixup_chain): Remove.
7231         (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable,
7232         pushcase, pushcase_range): Remove.
7233         (expand_start_bindings_and_block): Don't set unused fields in
7234         the nesting stack.
7235         (expand_start_case, add_case_node): Cleanup unused formal arguments.
7236         (expand_end_case_type): Don't simplify the case-list.  Use emit_jump
7237         instead of emit_jump_if_reachable.
7238         (emit_case_nodes): Likewise.
7239         * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer
7240         static.
7241         (update_eh_label): Work around left-over exception handing regions.
7242         * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos.
7243         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function.
7244         (pass_cleanup_cfg_post_optimizing): New pass.
7245         (init_tree_optimization_passes): Run the new pass after all
7246         optimizations.
7247         * tree.h (pushcase, pushcase_range): Remove prototypes.
7248         (expand_start_case, add_case_node): Update prototypes.
7249
7250 2004-07-16  Krister Walfridsson  <cato@df.lth.se>
7251
7252         * tree-inline.c (estimate_num_insns_1): Correct increase of count.
7253
7254 2004-07-16  Richard Henderson  <rth@redhat.com>
7255
7256         * builtins.c (std_expand_builtin_va_arg): Remove.
7257         (expand_builtin_va_arg): Remove.
7258         * expr.h: Don't declare them.
7259         * gimplify.c (mark_decls_volatile_r): Remove.
7260         (copy_if_shared_r): Don't call it.
7261         * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG.
7262         * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR.
7263         * gimple-low.c (lower_stmt): Likewise.
7264         * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise.
7265         * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise.
7266         * tree-ssa-operands.c (get_expr_operands): Likewise.
7267         * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention
7268         EXPAND_BUILTIN_VA_ARG.
7269         * system.h (EXPAND_BUILTIN_VA_ARG): Poison.
7270         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h,
7271         config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h,
7272         config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove.
7273
7274 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
7275
7276         * tree-ssa-pre.c (insert_aux): Break out if we hit
7277         a critical edge.
7278
7279 2004-07-16  Richard Henderson  <rth@redhat.com>
7280
7281         * basic-block.h (remove_fake_exit_edges): Declare.
7282         * cfganal.c (remove_fake_predecessors): Rename from
7283         remove_fake_successors; iterate over predecessors.
7284         (remove_fake_exit_edges): New.
7285         * cfgcleanup.c (try_optimize_cfg): Use it.
7286         * gcse.c (one_pre_gcse_pass, store_motion): Likewise.
7287         * predict.c (estimate_probability): Likewise.
7288         (tree_estimate_probability, note_prediction_to_br_prob): Likewise.
7289         * tree-cfg.c (make_edges): Likewise.
7290         * tree-ssa-pre.c (fini_pre): Likewise.
7291         * profile.c (instrument_edges): Don't remove_fake_edges.
7292         (branch_prob): Do it earlier here.
7293
7294 2004-07-16  Richard Henderson  <rth@redhat.com>
7295
7296         * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15
7297         switchification wrt CONSTRUCTOR.  Document the reason.
7298
7299 2004-07-16  Frank Ch. Eigler  <fche@redhat.com>
7300
7301         * tree-mudflap.c (mf_file_function_line_tree): Correct typo
7302         that prevented descriptive __mf_check source location strings.
7303
7304 2004-07-16  Richard Henderson  <rth@redhat.com>
7305
7306         * tree-def (WITH_SIZE_EXPR): New.
7307         * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR.
7308         * expr.c (expand_expr_real_1): Likewise.
7309         * gimplify.c (maybe_with_size_expr): New.
7310         (gimplify_arg, gimplify_modify_expr): Use it.
7311         (gimplify_modify_expr_to_memcpy): Take size parameter.
7312         (gimplify_modify_expr_to_memset): Likewise.
7313         (gimplify_expr): Handle WITH_SIZE_EXPR.
7314         * tree-alias-common.c (find_func_aliases): Likewise.
7315         * tree-eh.c (tree_could_trap_p): Likewise.
7316         (tree_could_throw_p): Likewise.
7317         * tree-gimple.c (is_gimple_lvalue): Likewise.
7318         (get_call_expr_in): Likewise.
7319         * tree-inline.c (estimate_num_insns_1): Likewise.
7320         (expand_calls_inline): Likewise.
7321         * tree-nested.c (convert_call_expr): Likewise.
7322         * tree-pretty-print.c (dump_generic_node): Likewise.
7323         * tree-sra.c (sra_walk_expr): Likewise.
7324         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
7325         * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise.
7326         * tree-ssa-operands.c (get_expr_operands): Likewise.
7327         * tree-tailcall.c (find_tail_calls): Likewise.
7328
7329         * calls.c (expand_call): Reset old_stack_allocated after
7330         calling emit_stack_restore.
7331
7332 2004-07-16  Richard Henderson  <rth@redhat.com>
7333
7334         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING,
7335         lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
7336         * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove.
7337         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
7338         copy_res_decl_for_inlining.
7339
7340         * tree-inline.c (declare_return_variable): New modify_dest argument.
7341         Use it as the return value, when possible or manditory.  Handle
7342         TREE_ADDRESSABLE types.
7343         (expand_call_inline): Extract MODIFY_EXPR lhs for call.  Simplify
7344         replacement of CALL_EXPR.
7345
7346 2004-07-16  Richard Henderson  <rth@redhat.com>
7347
7348         * tree-flow.h (struct var_ann_d): Remove has_hidden_use.
7349         * gimple-low.c (expand_var_p): Don't check it.
7350         * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise.
7351         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
7352         * tree-ssa-operands.c (add_stmt_operand): Likewise.
7353         * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill.
7354         (find_referenced_vars): Don't call them.
7355         * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill.
7356
7357 2004-07-16  Richard Henderson  <rth@redhat.com>
7358
7359         * function.c (pass_by_reference): True for all variable sized types.
7360
7361 2004-07-16  Sebastian Pop  <pop@cri.ensmp.fr>
7362
7363         * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h.
7364         * tree-pretty-print.c: Include tree-chrec.h.
7365         (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN
7366         and POLYNOMIAL_CHREC nodes.
7367
7368 2004-07-16  Steve Ellcey  <sje@cup.hp.com>
7369
7370         * builtins.c (expand_builtin_stpcpy): Do not create temporary
7371         reg with VOIDmode.
7372
7373 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
7374
7375         * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi).
7376
7377 2004-07-16  Andreas Krebbel  <krebbel1@de.ibm.com>
7378
7379         * config/s390/s390.md: Changed every occurence of BASE_REGISTER
7380         to BASE_REGNUM.
7381         * config/s390/s390.c: Likewise.
7382         * config/s390/s390.h: Likewise.
7383
7384 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7385
7386         * config/mips/mips.md (addsi3, adddi3): Remove special handling
7387         of $sp adds.  Remove REGNO checks from mips16 patterns.
7388
7389 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7390
7391         * config/mips/mips.md: Delete outdated comment.
7392
7393 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7394
7395         * config/mips/mips.c (get_float_compare_codes): Delete.
7396         (mips_emit_compare): New function, mostly extracted from
7397         get_float_compare_codes and gen_conditional_branch.
7398         (gen_conditional_branch, gen_conditional_move): Use it.
7399
7400 2004-07-16  Segher Boessenkool  <segher@kernel.crashing.org>
7401
7402         * genautomata.c (add_vect): Speedup by using integers as
7403         bit-vectors for walking through the comb_vect and finding
7404         a match.
7405
7406 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7407
7408         * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second
7409         operand is an uns_arith_operand; use subtraction otherwise.
7410         * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand,
7411         not just arith_operands.
7412
7413 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7414
7415         * config/mips/mips-protos.h (gen_int_relational): Delete.
7416         (mips_emit_scc): Declare.
7417         * config/mips/mips.c (internal_test): Delete.
7418         (sle_operand, sleu_operand): New functions.
7419         (map_test_to_internal_test, gen_int_relational): Delete.
7420         (mips_emit_binary, mips_relational_operand_ok_p)
7421         (mips_emit_int_relational, mips_zero_if_equal)
7422         (mips_emit_scc): New functions.
7423         (gen_conditional_branch): Rework to use mips_emit_int_relational.
7424         * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and
7425         sleu_operand.
7426         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
7427         (sltu, sleu): Use mips_emit_scc.
7428         (*sge_[sd]i, *sgeu_[sd]i): New patterns.
7429         (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand.
7430         (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand.
7431
7432 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7433
7434         * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint.
7435
7436 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7437
7438         * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero.
7439         (*sne_[sd]i): Likewise sne_[sd]i_zero.
7440         (*sgt_[sd]i): ...and sgt_[sd]i.
7441         (*slt_[sd]i): ...and slt_[sd]i.
7442         (*sgtu_[sd]i): ...and sgtu_[sd]i.
7443         (*sltu_[sd]i): ...and sltu_[sd]i.
7444         (*sleu_[sd]i): ...and sleu_[sd]i_const.
7445         Name previously unnamed mips16 patterns.  Formatting fixes.
7446
7447 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7448
7449         * config/mips/mips.c (cmp_operands): Renamed from branch_cmp.
7450         (branch_type): Delete.
7451         (gen_conditional_branch, gen_conditional_move)
7452         (mips_gen_conditional_trap): Update after name change.  Get the
7453         comparison mode from cmp_operands[0].
7454         * config/mips/mips.h (cmp_type, branch_type): Delete.
7455         (cmp_operands): Renamed from branch_cmp.
7456         * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after
7457         name change.  Don't set branch_type.
7458         (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the
7459         mode class of cmp_operands[0] rather than branch_type.  Update after
7460         name change.
7461
7462 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7463
7464         * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost
7465         of 0...255 to 0 when inside a SET.
7466
7467 2004-07-16  Richard Sandiford  <rsandifo@redhat.com>
7468
7469         * config/mips/mips.md: Remove mips16 define_peepholes.
7470
7471 2004-07-16  Daniel Berlin  <dberlin@dberlin.org>
7472
7473         * tree-ssa-pre.c (init_pre): Connect infinite loops to exit.
7474         (fini_pre): Remove fake edges.
7475
7476 2004-07-15  Richard Henderson  <rth@redhat.com>
7477
7478         * tree-ssa-operands.c (get_expr_operands): Use a switch.  Split out...
7479         (get_indirect_ref_operands, get_call_expr_operands): ... these.
7480
7481 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
7482
7483         * vec.h (VEC_address): New function.
7484
7485 2004-07-14  Jason Merrill  <jason@redhat.com>
7486
7487         PR middle-end/15885
7488         * gimplify.c (gimplify_arg): New fn, split out from...
7489         (gimplify_call_expr): Here.  Special-case BUILT_IN_VA_START.
7490
7491 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
7492
7493         * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to
7494         generate code which is generated by pushqi1 now
7495         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove.
7496
7497 2004-07-15  Roman Zippel  <zippel@linux-m68k.org>
7498
7499         * combine.c (simplify_set): match the mode of the constant 0 with
7500         the tested operand to match the compare behaviour and the
7501         simplify_relational_operation() expectation.
7502
7503 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
7504
7505         * config/rs6000/rs6000.md ("bunordered"): Disable for e500.
7506         ("bordered"): Same.
7507
7508 2004-07-15  Aldy Hernandez  <aldyh@redhat.com>
7509
7510         * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow
7511         unconditionally.
7512         * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove.
7513
7514 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
7515
7516         * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
7517         calls in mips16 code.
7518
7519 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
7520
7521         * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
7522         the destination of the li as well as for the neg.
7523
7524 2004-07-15  Frank Ch. Eigler  <fche@redhat.com>
7525
7526         g++/15861
7527         * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument.
7528         * cgraph.h: Update declaration.
7529         * c-decl.c (build_cdtor): Update call with default priority.
7530         * coverage.c (create_coverage): Ditto.
7531         * tree-mudflap.c (mf_init_fndecl): New tree.
7532         (mudflap_init): Set it.
7533         (mudflap_register_call): Arrange to call __mf_init before the first
7534         __mf_register call.
7535         (mudflap_finish_file): Mark the mudflap static initializer as extra
7536         high priority, to beat all C++ static constructors.
7537
7538 2004-07-15  Jeff Law  <law@redhat.com>
7539
7540         * loop.c (check_insn_for_givs): Restore check for code labels that was
7541         accidentally deleted by a recent checkin.
7542
7543 2004-07-15  Nathan Sidwell  <nathan@codesourcery.com>
7544
7545         * vec.h (VEC_T_truncate): Allow truncation of an empty vector.
7546         (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko.
7547
7548 2004-07-14  Richard Henderson  <rth@redhat.com>
7549
7550         * print-tree.c (print_node): Fix casts last change.
7551
7552 2004-07-15  Paul Brook  <paul@codesourcery.com>
7553
7554         * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
7555         to TARGET_UNWIND_INFO.
7556         * except.c (output_function_exception_table): Ditto.
7557         * except.h: Ditto.
7558         * opts.c (decode_options): Ditto.
7559         * passes.c (rest_of_handle_final): Ditto.
7560         * final.c (final_start_function): Ditto.
7561         (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
7562         target hook.
7563         * targhooks.h (default_unwind_emit): Declare.
7564         * targhooks.c (default_unwind_emit): New function.
7565         * target-def.h: Define and use TARGET_UNWIND_EMIT.
7566         * target.h (struct gcc_target): Add unwind_emit.
7567         * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
7568         * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
7569         Remove IA64_UNWIND_EMIT.
7570         * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
7571
7572 2004-07-14  Richard Henderson  <rth@redhat.com>
7573
7574         * print-tree.c (print_node): Handle SSA_NAME.
7575
7576 2004-07-14  James E Wilson  <wilson@specifixinc.com>
7577
7578         PR target/16325
7579         * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value
7580         and ! TARGET_64BIT, include REG_PARM_STACK_SPACE.
7581
7582 2004-07-15  Jakub Jelinek  <jakub@redhat.com>
7583
7584         * expr.c (expand_assignment): Reenable bitfield += optimizations.
7585         Use alias set 0 for memory, do proper mode calculations and adjust
7586         address for memories.
7587
7588 2004-07-14  Per Bothner  <per@bothner.com>
7589
7590         * input.h:  If USE_MAPPED_LOCATION, define separate expanded_location
7591         structure with extra column field.
7592         * tree.c (expand_location):  Also fill in column field.
7593         * gengtype-lex.l:  Ignore expanded_location typedef, sinze gengtype
7594         gets confused by the two conditionally-compiled definitions.
7595
7596 2004-07-14  Eric Christopher  <echristo@redhat.com>
7597
7598         * calls.c (expand_call): Fix typo in comment.
7599
7600 2004-07-14  Steve Ellcey  <sje@cup.hp.com>
7601
7602         * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED
7603         comparision of TFmode.
7604
7605 2004-07-14  Richard Henderson  <rth@redhat.com>
7606
7607         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ...
7608         (alpha_gimplify_va_arg): ... handling here.  Use pass_by_reference.
7609         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference.
7610         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
7611         * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise.
7612         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
7613         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
7614         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
7615         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
7616
7617 2004-07-14  Mike Stump  <mrs@apple.com>
7618
7619         * config/darwin.h (WINT_TYPE): Define to be int to match
7620         system header files.
7621
7622 2004-07-14  Bob Wilson  <bob.wilson@acm.org>
7623
7624         * config/xtensa/xtensa.c (function_arg_advance): Check for args
7625         that must be passed in the stack.
7626         (xtensa_gimplify_va_arg_expr): Skip special-case padding for small
7627         arguments if the size is not a constant.
7628
7629 2004-07-14  Per Bothner  <per@bothner.com>
7630
7631         * c-typeck.c (emit_side_effect_warnings):  Use EXPR_HAS_LOCATION
7632         instead of EXPR_LOCUS in a boolean context, which is always true
7633         if --enable-mapped-location.
7634         * stmt.c (warn_if_unused_value):  Likewise.  Also use EXPR_LOCATION.
7635
7636 2004-07-14  Richard Henderson  <rth@redhat.com>
7637
7638         * dominance.c (struct dom_info): Add fake_exit_edge.
7639         (init_dom_info): Allocate it.
7640         (free_dom_info): Free it.
7641         (calc_dfs_tree): Set it.  Handle noreturn and infinite loops
7642         in two passes.
7643         (calc_idoms): Honor fake_exit_edge.
7644
7645 2004-07-13  Jason Merrill  <jason@redhat.com>
7646
7647         * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns.
7648         (rhs_test_for): New fn.
7649         (is_gimple_tmp_rhs): Rename from is_gimple_rhs.
7650         * tree-gimple.h: Declare them.
7651         * gimplify.c (gimplify_modify_expr): Use the new fns.
7652
7653 2004-07-14  Richard Henderson  <rth@redhat.com>
7654
7655         * config/arm/arm-protos.h (arm_va_arg): Remove.
7656         * config/arm/arm.c (arm_va_arg): Remove.
7657         (arm_init_expanders): Fix alignment of arg_pointer_rtx.
7658         * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove.
7659
7660 2004-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7661
7662         * pa.c (fix_range): New function to mark a range(s) of registers as
7663         fixed registers.
7664         (override_options): Call fix_range if the -mfixed-range option string
7665         is not empty.
7666         * pa.h (TARGET_OPTIONS): Add -mfixed-range option.
7667         * doc/invoke.texi (-mfixed-range): Document new option.
7668
7669 2004-07-14  David Edelsohn  <edelsohn@gnu.org>
7670
7671         * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode
7672         for TARGET_64BIT.
7673         (rs6000_gimplify_va_arg): Use size_int instead of build_int_2.
7674
7675 2004-07-14  Roger Sayle  <roger@eyesopen.com>
7676
7677         * expmed.c (expand_sdiv_pow2): New function to expand signed division
7678         by a positive power of two, split out from expand_divmod.  Provide
7679         an alternate implementation when shifts are expensive.  Lower the
7680         threshold for using a branchless implementation to BRANCH_COST >= 2.
7681         (expand_divmod): Call expand_sdiv_pow2 for suitable divisions.
7682
7683 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7684
7685         * tree-dfa.c (make_rename_temp): *Really* work just
7686         like create_tmp_var if called while outside SSA form.
7687
7688 2004-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
7689
7690         * config/s390/s390.md ("udivsi3"): Ensure trap is generated
7691         for division by zero.
7692         ("umodsi3"): Likewise.
7693
7694 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
7695
7696         * config/mips/mips.c (mips_output_move): When generating mips16 code,
7697         force loads of negative constants to be split.
7698         * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise.
7699         Generalize SImode li/neg splitter to cope with other modes.
7700
7701 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7702
7703         * expmed.c: Remove more references to QUEUED in the comments.
7704         * expr.c: Likewise.
7705
7706 2004-07-14  Richard Sandiford  <rsandifo@redhat.com>
7707
7708         Revert:
7709         2004-07-13  Richard Henderson  <rth@redhat.com>
7710         * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes
7711         correctly.
7712
7713 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7714
7715         * tree-dfa.c (make_rename_temp): Work just like
7716         create_tmp_var if called while outside SSA form.
7717
7718 2004-07-14  Paolo Bonzini  <bonzini@gnu.org>
7719
7720         * expr.c (enqueue_insn, finish_expr_for_function,
7721         protect_from_queue, queued_subexp_p, mark_queue,
7722         emit_insns_enqueued_after_mark, emit_queue,
7723         expand_increment): Remove.
7724         (store_constructor): Expand increment as an assignment.
7725         (expand_expr_real_1 <case PREINCREMENT_EXPR,
7726         case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR,
7727         case POSTDECREMENT_EXPR>): Abort.
7728         * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY,
7729         QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function,
7730         protect_from_queue, emit_queue, queued_subexp_p): Remove.
7731         * function.h (pending_chain, x_pending_chain): Remove.
7732         * rtl.def (QUEUED): Remove.
7733
7734         * emit-rtl.c (copy_insn_1, copy_most_rtx,
7735         set_used_flags, verify_rtx_sharing): Remove references to QUEUED.
7736         * genattrtab.c (attr_copy_rtx, clear_struct_flag,
7737         encode_units_mask): Likewise.
7738         * local-alloc.c (equiv_init_varies_p): Likewise.
7739         * rtl.c (copy_rtx): Likewise.
7740         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
7741         * simplify-rtx.c (simplify_gen_subreg): Likewise.
7742         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise.
7743
7744         * builtins.c (expand_builtin, expand_builtin_apply,
7745         expand_builtin_mathfn, expand_builtin_mathfn_2,
7746         expand_builtin_mathfn_3, expand_builtin_setjmp_setup):
7747         Remove calls to emit_queue and protect_from_queue.
7748         * calls.c (expand_call, precompute_arguments,
7749         precompute_register_parameters, rtx_for_function_call,
7750         store_one_arg): Likewise.
7751         * dojump.c (do_compare_and_jump, do_jump): Likewise.
7752         * explow.c (memory_address): Likewise.
7753         * expmed.c (clear_by_pieces_1, clear_storage,
7754         clear_storage_via_libcall, emit_group_load,
7755         emit_group_store, emit_store_flag,
7756         expand_expr_real_1, store_by_pieces,
7757         store_constructor, store_expr, try_casesi,
7758         try_tablejump): Likewise.
7759         * function.c (expand_pending_sizes): Likewise.
7760         * optabs.c (emit_cmp_and_jump_insns,
7761         emit_conditional_add, emit_conditional_move,
7762         expand_fix, expand_float, prepare_cmp_insn): Likewise.
7763         * stmt.c (emit_case_bit_tests,
7764         expand_asm_expr, expand_computed_goto,
7765         expand_decl_init, expand_end_case_type,
7766         expand_end_stmt_expr, expand_expr_stmt_value,
7767         expand_return, expand_start_case,
7768         optimize_tail_recursion): Likewise.
7769         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
7770         * config/s390/s390.c (s390_expand_cmpmem): Likewise.
7771
7772 2004-07-14  Ben Elliston  <bje@au.ibm.com>
7773
7774         * vec.h: Comment fix.
7775
7776 2004-07-13  Richard Henderson  <rth@redhat.com>
7777
7778         * target.h (struct gcc_target): Add calls.pass_by_reference.
7779         * target-def.h (TARGET_PASS_BY_REFERENCE): New.
7780         * function.c (pass_by_reference): Use the hook.
7781         * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison.
7782         * targhooks.c, targhooks.h (hook_pass_by_reference_false): New.
7783         (hook_pass_by_reference_must_pass_in_stack): New.
7784         * config/alpha/alpha.c (function_arg): Don't query pass-by-ref.
7785         (alpha_pass_by_reference): New.
7786         (TARGET_PASS_BY_REFERENCE): New.
7787         * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7788         * config/arc/arc.c (arc_pass_by_reference): New.
7789         (TARGET_PASS_BY_REFERENCE): New.
7790         * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7791         (FUNCTION_ARG_CALLEE_COPIES): True.
7792         * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove.
7793         * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New.
7794         (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference.
7795         * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7796         * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7797         * config/cris/cris.c (cris_pass_by_reference): New.
7798         (TARGET_PASS_BY_REFERENCE): New.
7799         * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref.
7800         (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise.
7801         (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7802         * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New.
7803         * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7804         * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill.
7805         * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New.
7806         (frv_function_arg_pass_by_reference): Remove.
7807         * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7808         * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove.
7809         * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New.
7810         (ix86_pass_by_reference): Rename from function_arg_pass_by_reference.
7811         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7812         * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill.
7813         * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New.
7814         (ia64_pass_by_reference): Rename from
7815         ia64_function_arg_pass_by_reference.
7816         * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7817         * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7818         * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill.
7819         * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New.
7820         (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference.
7821         * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7822         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7823         * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove.
7824         * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New.
7825         (m32r_pass_by_reference): Adjust prototype.  Make static.
7826         Handle mode sizes correctly.
7827         * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7828         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c
7829         (m68hc11_function_arg_pass_by_reference): Remove.
7830         * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7831         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7832         * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New.
7833         * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7834         * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove.
7835         * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New.
7836         (mips_va_arg): Use pass_by_reference.
7837         (mips_pass_by_reference): Rename from function_arg_pass_by_reference.
7838         Handle mode sizes correctly.
7839         * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7840         (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref.
7841         * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill.
7842         * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New.
7843         (mmix_pass_by_reference): Rename from
7844         mmix_function_arg_pass_by_reference.
7845         * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7846         (FUNCTION_ARG_CALLEE_COPIES): True.
7847         * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New.
7848         (mn10300_pass_by_reference): New.
7849         * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7850         (FUNCTION_ARG_CALLEE_COPIES): True.
7851         * config/pa/pa.c (pa_pass_by_reference): New.
7852         (TARGET_PASS_BY_REFERENCE): New.
7853         * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7854         (FUNCTION_ARG_CALLEE_COPIES): True.
7855         * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill.
7856         * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New.
7857         (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference.
7858         * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7859         * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill.
7860         * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New.
7861         (s390_pass_by_reference): Rename from
7862         s390_function_arg_pass_by_reference.
7863         (s390_function_arg_advance): Don't query pass-by-ref.
7864         (s390_function_arg): Likewise.
7865         (s390_gimplify_va_arg): Use pass_by_reference.
7866         (s390_call_saved_register_used): Likewise.
7867         * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7868         * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New.
7869         (shcompact_byref, sh_pass_by_reference): New.
7870         * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7871         (SHCOMPACT_BYREF): Remove.
7872         * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill.
7873         * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New.
7874         (sparc_pass_by_reference): Rename from function_arg_pass_by_reference.
7875         (sparc_gimplify_va_arg): Use pass_by_reference.
7876         * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7877         * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7878         * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New.
7879         (v850_pass_by_reference): New.
7880         * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7881         (FUNCTION_ARG_CALLEE_COPIES): True.
7882         * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from
7883         FUNCTION_ARG_PASS_BY_REFERENCE docs.
7884
7885 2004-07-14  Richard Henderson  <rth@redhat.com>
7886             Richard Sandiford  <rsandifo@redhat.com>
7887
7888         * config/mips/mips-protos.h (mips_va_arg): Delete.
7889         * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete.
7890         * config/mips/mips.c: Include tree-gimple.h.
7891         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
7892         (mips_arg_info): Remove special handling of must_pass_in_stck args.
7893         (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg.
7894         (function_arg_pass_by_reference): Return true if must_pass_in_stack.
7895
7896 2004-07-13  Bob Wilson  <bob.wilson@acm.org>
7897
7898         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap
7899         arguments for COND_EXPR in big-endian adjustment code.
7900
7901 2004-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7902
7903         * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete.
7904         * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64.
7905         * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers.
7906         * pa64-regs.h (REG_ALLOC_ORDER): Likewise.
7907
7908 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
7909
7910         PR tree-optimization/16443
7911         * tree-ssa-alias.c: Add more description for
7912         CALL_CLOBBERED_VARS and ADDRESSABLE_VARS.
7913         * tree-ssa-operands.c (get_asm_expr_operands): Re-order the
7914         clobbering of call-clobbered and addressable variables.  If
7915         there are any before aliases have been computed, add them.
7916
7917 2004-07-13  Diego Novillo  <dnovillo@redhat.com>
7918
7919         * tree-optimize.c (execute_todo): Flush DUMP_FILE before
7920         verification.
7921
7922 2004-07-13  Ulrich Weigand  <uweigand@de.ibm.com>
7923
7924         * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead
7925         of build_int_2.  Convert both operands of PLUS_EXPR and MULT_EXPR
7926         to the same type.
7927
7928 2004-07-13  Per Bothner  <per@bothner.com>
7929
7930         * collect2.c (main):  Handle --no-demangle and --demangle flags.
7931
7932 2004-07-13  Sebastian Pop  <pop@cri.ensmp.fr>
7933
7934         * Makefile.in (OBJS-common): Add tree-data-ref.o.
7935         (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h.
7936         (tree-data-ref.o): New rule.
7937         * lambda.h: New file.
7938         * tree-data-ref.c: New file.
7939         * tree-data-ref.h: New file.
7940         * tree.c (int_cst_value, tree_fold_gcd): New functions.
7941         * tree.h (int_cst_value, tree_fold_gcd): Declared here.
7942
7943 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7944
7945         PR target/13926
7946         * config/sparc/sparc-protos.h (output_ubranch): New prototype.
7947         * config/sparc/sparc.c (output_ubranch): New function.
7948         * config/sparc/sparc.md (jump pattern): Use it.
7949
7950 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7951
7952         PR target/16494
7953         * config/sparc/sparc.c (output_cbranch): Properly guard
7954         the code handling far branches with TARGET_V9.
7955         * config/sparc/sparc.md (length attribute): Document the
7956         side-effect of having a length greater or equal to 3.
7957
7958 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7959             Lloyd Parkes  <lloyd@must-have-coffee.gen.nz>
7960
7961         PR target/15186
7962         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass
7963         /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified.
7964
7965 2004-07-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7966             Martin Sebor  <sebor@roguewave.com>
7967
7968         PR target/12602
7969         * doc/invoke.texi (SPARC options): Document -threads
7970         and -pthreads on Solaris.
7971
7972 2004-07-13  Richard Henderson  <rth@redhat.com>
7973
7974         * builtins.c (std_gimplify_va_arg_expr): Handle types passed
7975         by reference.
7976         (ind_gimplify_va_arg_expr): Remove.
7977         * tree.h (ind_gimplify_va_arg_expr): Remove.
7978         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it.
7979         * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow
7980         argsp to be null.
7981
7982         * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove.
7983         (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove.
7984         * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c,
7985         config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c,
7986         config/mn10300/mn10300.c, config/v850/v850.c: Similarly.
7987
7988 2004-07-13  Richard Henderson  <rth@redhat.com>
7989
7990         * function.c (pass_by_reference): New.
7991         (assign_parm_find_data_types): Use it.
7992         * calls.c (initialize_argument_information): Likewise.
7993         (emit_library_call_value_1): Likewise.
7994         * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove.
7995         * function.h (pass_by_reference): Declare.
7996
7997 2004-07-13  Richard Henderson  <rth@redhat.com>
7998
7999         * target-def.h (TARGET_MUST_PASS_IN_STACK): New.
8000         * target.h (struct gcc_target): Add calls.must_pass_in_stack.
8001         * expr.h (MUST_PASS_IN_STACK): Remove.
8002         * system.h (MUST_PASS_IN_STACK): Poison.
8003         * tree.h (must_pass_in_stack_var_size): Declare.
8004         (must_pass_in_stack_var_size_or_pad): Declare.
8005         * calls.c (must_pass_in_stack_var_size): New.
8006         (must_pass_in_stack_var_size_or_pad): Rename from
8007         default_must_pass_in_stack.
8008         * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New.
8009         (TARGET_MUST_PASS_IN_STACK): New.
8010         * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove.
8011         * config/fr30/fr30.c (fr30_must_pass_in_stack): New.
8012         (TARGET_MUST_PASS_IN_STACK): New.
8013         * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove.
8014         * config/frv/frv.c (frv_must_pass_in_stack): New.
8015         (TARGET_MUST_PASS_IN_STACK): New.
8016         * config/frv/frv.h (MUST_PASS_IN_STACK): Remove.
8017         * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove.
8018         * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New.
8019         (ix86_must_pass_in_stack): Make static.
8020         * config/i386/i386.h (MUST_PASS_IN_STACK): Remove.
8021         * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New.
8022         * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove.
8023         * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New.
8024         * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove.
8025         * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove.
8026         * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New.
8027         (mcore_must_pass_on_stack): Remove.
8028         * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove.
8029         * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New.
8030         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove.
8031         * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New.
8032         * config/pa/pa.h (MUST_PASS_IN_STACK): Remove.
8033         * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove.
8034         * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove.
8035         * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New.
8036         (TARGET_MUST_PASS_IN_STACK): New.
8037         * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New.
8038         * config/sh/sh.h (MUST_PASS_IN_STACK): Remove.
8039         * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New.
8040         * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove.
8041         * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New.
8042         * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove.
8043         * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from
8044         MUST_PASS_IN_STACK.
8045
8046         * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h,
8047         config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c,
8048         config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h,
8049         config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c,
8050         config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c,
8051         config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c,
8052         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
8053         config/xtensa/xtensa.c: Use target hook.
8054
8055 2004-07-13  Anthony Heading  <aheading@jpmorgan.com>
8056
8057         * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo.
8058         * configure: Rebuilt.
8059
8060 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
8061
8062         * doc/invoke.texi: Remove documentation for MIPS -mrnames option.
8063         * config/mips/mips.h (mips_reg_names): Don't declare.
8064         (MASK_NAME_REGS): Delete.  Shuffle other MASK_* values down.
8065         (TARGET_NAME_REGS): Delete.
8066         (TARGET_SWITCHES): Remove -mrnames.
8067         (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[].
8068         (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned
8069         in REGISTER_NAMES.
8070         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete.
8071         (override_options): Remove handling of TARGET_NAME_REGS.
8072
8073 2004-07-13  Richard Sandiford  <rsandifo@redhat.com>
8074
8075         * config/mips/mips.h (TARGET_*): Boolify.
8076
8077 2004-07-12  Nick Clifton  <nickc@redhat.com>
8078
8079         * config.gcc: Add sh-*-symbianelf target.
8080         * config/sh/sh.c: Add new target macros:
8081         TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING,
8082         TARGET_CXX_IMPORT_EXPORT_CLASS.
8083         (sh_file_start): Create a definition of the .directive section.
8084         (sh_attribute): Add dllimport and dllexport attributes.
8085         * config/sh/symbian-pre.h: New file.
8086         * config/sh/symbian-post.h: New file.
8087         * config/sh/symbian.c: New file. Contains Symbian specific
8088         functions.
8089         * config/sh/sh-protos.h: Add prototypes for new functions
8090         provided by symbian.c.
8091         * config/sh/t-symbian: New file.
8092         * doc/extend.texi: Document support for dllimport and dllexport
8093         attributes by the sh-symbianelf target.
8094
8095 2004-07-12  James E Wilson  <wilson@specifixinc.com>
8096
8097         * Makefile.in (AR): Use @AR@ not ar.
8098         (NM): New.
8099         (AR_FOR_TARGET): Use $(AR) not ar for native.
8100         (NM_FOR_TARGET): Use $(NM) not nm for native.
8101         * configure.ac: Add AC_CHECK_PROG calls for NM and AR.
8102         * configure: Regenerate.
8103
8104 2004-07-12  David S. Miller  <davem@nuts.davemloft.net>
8105
8106         * config/sparc/sparc.md (ashlsi3): Eliminate const 1
8107         special case.
8108         (ashldi3_sp64): Likewise.
8109
8110 2004-07-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8111
8112         PR target/16477
8113         * pa.c (function_arg): Update comment.
8114         * pa.h (BLOCK_REG_PADDING): Define.
8115
8116 2004-07-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8117
8118         PR tree-optimization/16461
8119         * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name
8120         arguments of phi nodes.
8121
8122 2004-07-12  Devang Patel  <dpatel@apple.com>
8123
8124         * doc/invoke.texi (Darwin Options): Document -gused and -gfull.
8125
8126 2004-07-12  Steve Ellcey  <sje@cup.hp.com>
8127
8128         * function.c (expand_function_start): Ensure r_save is in Pmode.
8129         * calls.c (prepare_call_address): Ensure static_chain_value is
8130         in Pmode.
8131         * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and
8132         r_save_area are in Pmode.
8133         * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr,
8134         fnaddr, and static_chain are in Pmode.
8135
8136 2004-07-12  Vladimir Makarov  <vmakarov@redhat.com>
8137
8138         PR target/16445
8139         * config/ia64/ia64.c (bundling): Don't count ignored insns.
8140
8141 2004-07-12  Richard Henderson  <rth@redhat.com>
8142
8143         * target.h (struct gcc_target): Move gimplify_va_arg_expr
8144         next to build_builtin_va_list.
8145         * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
8146         * builtins.c (gimplify_va_arg_expr): Likewise.
8147         * gimplify.c (copy_if_shared_r): Likewise.
8148
8149 2004-07-12  Alexandre Oliva  <aoliva@redhat.com>
8150
8151         * passes.c (rest_of_decl_compilation): Don't defer call of
8152         assemble_variable if its DECL_RTL is already set.
8153
8154 2004-07-12  Sebastian Pop  <pop@cri.ensmp.fr>
8155
8156         * cfgloop.h (struct loop): Add nb_iterations field.
8157         (current_loops): Declare.
8158         * tree-chrec.c (chrec_not_analyzed_yet,
8159         chrec_dont_know, chrec_known, count_ev_in_wider_type,
8160         chrec_contains_symbols_defined_in_loop): Remove the temporary
8161         hooks.
8162         * tree-flow-inline.h (loop_containing_stmt): New function.
8163         * tree-scalar-evolution.c: Add implementation.
8164         * tree-scalar-evolution.h: Add declarations.
8165
8166 2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
8167
8168         PR rtl-optimization/15921
8169         * Makefile.in (global.o): Add recog.h.
8170
8171         * global.c (recog.h): Add the include-clause.
8172         (bb_info): New member earlyclobber.
8173         (allocate_bb_info, free_bb_info): Initialize/finish the new
8174         member.
8175         (earlyclobber_regclass, earlyclobber_regclass_length): The new
8176         global variables.
8177         (check_earlyclobber, regclass_intersect,
8178         mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1):
8179         New functions.
8180         (calculate_local_reg_bb_info): Calculate value of earlyclobber.
8181         (make_accurate_live_analysis): Modify pavin.
8182
8183 2004-07-12  Diego Novillo  <dnovillo@redhat.com>
8184
8185         * tree-cfg.c (find_taken_edge): Statically compute the truth
8186         value of a predicate comparing an SSA_NAME to itself.
8187
8188 2004-07-12  Roger Sayle  <roger@eyesopen.com>
8189
8190         * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the
8191         rs6000 doesn't have shift-and-add or shift-and-sub instructions
8192         by returning the cost of a multiplication plus an addition.
8193
8194 2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
8195
8196         PR tree-optimization/14107
8197         * gimplify.c (gimplify_return_expr): Accept a
8198         RETURN_EXPR with an error argument.
8199         * tree-optimize.c (init_tree_optimization_passes):
8200         Run pass_warn_function_return at -O0.
8201
8202 2004-07-12  Roger Sayle  <roger@eyesopen.com>
8203
8204         * doc/invoke.texi: Correct -fasynchronous-unwind-tables option
8205         index entry.
8206
8207 2004-07-12  Richard Sandiford  <rsandifo@redhat.com>
8208
8209         * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete.
8210         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
8211         * config/mips/3000.md: Add copyright notice.  Remove automota and
8212         function units; use generic ones instead.  Only define reservations
8213         for things that are different from generic.md.  Extend each clause
8214         to include r3900.
8215         * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files.
8216         * config/mips/mips.md: Include them. Remove define_function_units.
8217         (alu, imuldiv): New automata and units.
8218
8219 2004-07-12  Ben Elliston  <bje@au.ibm.com>
8220
8221         * doc/invoke.texi (Optimize Options): Document -frename-registers
8222         not being enabled by default at -O3.
8223
8224 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8225
8226         * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for
8227         floating point additions, to keep real immediate constant positive.
8228         <MINUS_EXPR>:  For floating point subtractions, only transform X - -C
8229         into X + C, and leave positive real constants as X - C.
8230
8231 2004-07-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8232
8233         * pa.c (hppa_gimplify_va_arg_expr): Remove comment.
8234
8235 2004-07-11  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8236
8237         PR tree-optimization/15654
8238         * tree-tailcall.c (eliminate_tail_call): Remove unreachable code.
8239
8240 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8241
8242         * builtins.c (fold_builtin_fputs): Don't bother converting the
8243         return type to integer_type_node, as we've already checked that
8244         the result will be ignored.
8245
8246         * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such
8247         that signed addition, subtraction, multiplication, division,
8248         remainder, negation and absolute value may potentially trap.
8249
8250         * fold-const.c (fold_ignored_result): New function to strip
8251         non-side-effecting tree nodes from an expression whose result
8252         is ignored.
8253         (fold_convert): Call fold_ignored_result when casting a value
8254         to VOID_TYPE.
8255         (omit_one_operand):  Call fold_ignored_result on the "omitted"
8256         operand when building a COMPOUND_EXPR.
8257         (pedantic_omit_one_operand): Likewise.
8258         * tree.h (fold_ignored_result): Prototype here.
8259         * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result
8260         when we're going to ignore the result.
8261
8262 2004-07-11  Richard Henderson  <rth@redhat.com>
8263
8264         PR tree-opt/16383
8265         * tree-ssa-ccp.c (fold_stmt_r): Split out...
8266         * tree.c (fields_compatible_p, find_compatible_field): ... new.
8267         * tree.h (fields_compatible_p, find_compatible_field): Declare.
8268         * tree-sra.c (sra_hash_tree): Hash fields by offset.
8269         (sra_elt_eq): Use fields_compatible_p.
8270         (generate_one_element_ref): Use find_compatible_field.
8271
8272 2004-07-11  Richard Henderson  <rth@redhat.com>
8273
8274         PR tree-opt/16422
8275         * tree-sra.c (generate_one_element_init): New.
8276         (generate_element_init): Use it.
8277         (scalarize_init): Push/pop gimplify context around it.
8278         (find_new_referenced_vars_1, find_new_referenced_vars): New.
8279         * gimplify.c (gimplify_expr): Allow SSA_NAME.
8280
8281 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8282
8283         * rtlanal.c (insn_rtx_cost): New function, moved and renamed from
8284         combine.c's combine_insn_cost.
8285         * rtl.h (insn_rtx_cost): Prototype here.
8286         * combine.c (combine_insn_cost): Delete function.
8287         (combine_validate_cost): Update callers of combine_insn_cost to
8288         call insn_rtx_cost instead.
8289         (combine_instructions): Likewise.  Use NONJUMP_INSN_P to avoid
8290         requesting the rtx_cost of call and/or jump instructions.
8291
8292         * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling
8293         rtx_cost directly.  Don't request/use the cost of call or jump
8294         instructions.  Return -1 if the cost of any instruction can't be
8295         determined (or the BB contains a function call).
8296         (find_if_case_1): Abort transformation if total_bb_rtx_cost returns
8297         -1 (i.e. can't determine the cost of any instruction or the basic
8298         block contains a subroutine call).
8299         (find_if_case_2): Likewise.
8300
8301 2004-07-11  Roger Sayle  <roger@eyesopen.com>
8302
8303         * rs6000.c (struct processor_costs): Change semantics of fields to
8304         include the COST_N_INSNS scaling, and update all initializers.
8305         (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields.
8306         Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE.
8307         Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP.  When
8308         optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE.
8309
8310 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8311
8312         * LANGUAGES: Remove obsolete information.
8313
8314 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
8315
8316         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and
8317         SIGBUS signal frames, the PSW address points *to* the faulting
8318         instruction, not after it.
8319
8320 2004-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
8321
8322         * config/s390/s390.c (legitimize_tls_address): Handle constant offsets
8323         added to TLS symbol addresses.
8324
8325 2004-07-11  Richard Henderson  <rth@redhat.com>
8326
8327         * expmed.c (init_expmed): Use stack-local structures for
8328         temporary rtl.  Don't recognize shifts.
8329
8330 2004-07-11  Richard Henderson  <rth@redhat.com>
8331
8332         * expr.c (store_expr): Don't fiddle subreg promotion for types
8333         with precision smaller than the mode.
8334
8335 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8336
8337         * tree.h (all_types_permanent): Remove.
8338
8339 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8340
8341         * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
8342         maybe_build_cleanup, update_decl_after_saving): Remove hooks.
8343         * langhooks.c (lhd_clear_binding_stack): Remove.
8344         * langhooks-def.h (lhd_clear_binding_stack,
8345         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
8346         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
8347         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
8348         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
8349         (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
8350         * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
8351         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
8352         LANG_HOOKS_MAYBE_BUILD_CLEANUP,
8353         LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
8354         * tree.h (poplevel): Don't declare.
8355         * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
8356         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
8357         * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
8358         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
8359         Remove.
8360
8361 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
8362
8363         PR tree-optimization/16437
8364         * c-common.c (shorten_compare): Don't mark result of conversion to
8365         narrower signed type as overflowing.
8366         * fold-const.c (decode_field_reference): Determine whether
8367         signedness comes from outer type using precision rather than size.
8368
8369 2004-07-11  Phil Edwards  <phil@codesourcery.com>
8370
8371         * configure.ac:  Alphabetize --enable-checking list, add
8372         missing valgrind entry.
8373         * configure:  Regenerate.
8374
8375 2004-07-11  Phil Edwards  <phil@codesourcery.com>
8376
8377         * doc/install.texi (Testing):  Fix syntax in "make check" example.
8378
8379 2004-07-10  James E Wilson  <wilson@specifixinc.com>
8380
8381         * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp.
8382
8383 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8384
8385         PR rtl-optimization/16001
8386         * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in
8387         niter_expr.
8388
8389 2004-07-10  Geoffrey Keating  <geoffk@apple.com>
8390
8391         * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt.
8392
8393 2004-07-10  Steve Kargl  <sgk@troutmask.apl.washington.edu>
8394             James Morrison  <phython@gcc.gnu.org>
8395
8396         * doc/contrib.texi (Contributors): Add gfortran contributors and
8397         fix a couple of typos.
8398
8399 2004-07-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8400
8401         PR rtl-optimization/15387
8402         * calls.c (check_sibcall_argument_overlap_1): Handle pointers
8403         to incoming args space correctly.
8404
8405 2004-07-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8406
8407         * pa.c (output_indirect_call): Only use %r2 as the link register in
8408         indirect calls with the long PA 2.0 pc-relative branch.
8409
8410 2004-07-10  Daniel Jacobowitz  <dan@debian.org>
8411
8412         * config/i386/i386.c (override_options): Pick a 64-bit CPU
8413         for the default tuning if TARGET_64BIT.
8414
8415 2004-07-10  Richard Henderson  <rth@redhat.com>
8416
8417         * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary
8418         to HOST_WIDE_INT.  Fold pad-args-down arithmetic.
8419
8420 2004-07-10  Jakub Jelinek  <jakub@redhat.com>
8421
8422         * expr.h (store_bit_field, extract_bit_field): Remove last argument.
8423         * expmed.c (store_bit_field, extract_bit_field): Remove last
8424         argument.
8425         * builtins.c (expand_builtin_signbit): Adjust callers.
8426         * optabs.c (expand_vector_binop, expand_vector_unop): Likewise.
8427         * calls.c (store_unaligned_arguments_into_pseudos): Likewise.
8428         * ifcvt.c (noce_emit_move_insn): Likewise.
8429         * stmt.c (expand_return): Likewise.
8430         * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg,
8431         store_field, expand_expr_real_1): Likewise.
8432
8433 2004-07-10  Richard Henderson  <rth@redhat.com>
8434
8435         * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR.
8436
8437 2004-07-09  Mike Stump  <mrs@apple.com>
8438
8439         * config/darwin.c (no_dead_strip): Add.
8440         (HAVE_DEAD_STRIP): Add.
8441         (darwin_emit_unwind_label): Ensure that we don't dead code strip
8442         the .eh label.
8443
8444 2004-07-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8445
8446         * tree-ssa-loop-im.c: New file.
8447         * Makefile.in (tree-ssa-loop-im.o): Add.
8448         * cfgloop.c (superloop_at_depth): New function.
8449         * cfgloop.h (superloop_at_depth): Declare.
8450         * common.opt (ftree-lim): New flag.
8451         * expr.c (array_ref_up_bound): New function.
8452         * params.def (PARAM_LIM_EXPENSIVE): New parameter.
8453         * timevar.def (TV_LIM): New timevar.
8454         * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when
8455         computing immediate uses of a phi node.
8456         * tree-flow.h (struct tree_ann_common_d): Add aux field.
8457         (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare.
8458         * tree-optimize.c (init_tree_optimization_passes): Add pass_lim.
8459         * tree-pass.h (pass_lim): Declare.
8460         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New
8461         functions.
8462         (pass_lim): New pass structure.
8463         * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly.
8464         * tree.c (in_array_bounds_p): New function.
8465         * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs.
8466         (in_array_bounds_p, array_ref_up_bound): Declare.
8467         * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document.
8468         * doc/passes.texi (tree-ssa-loop-im.c): Document.
8469
8470 2004-07-09  Richard Henderson  <rth@redhat.com>
8471
8472         * builtins.c (expand_builtin_stpcpy): Don't modify len.
8473
8474         * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs
8475         with prejudice.
8476
8477 2004-07-10  Kelley Cook  <kcook@gcc.gnu.org>
8478
8479         * flags.h: Delete redundant prototypes that are being generated
8480         in options.h from common.opt.
8481         * common.opt: Add in the expository comments formerly in flags.h.
8482
8483 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8484
8485         * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers
8486         available for use only when TARGET_MMX/_SSE is set, and check for
8487         variable argument function if any register count is non-zero.
8488         (function_arg): Correctly suppress repeated warnings for passing SSE
8489         vectors are arguments without SSE enabled.
8490         (ix86_function_arg_boundary): Without SSE enabled, the use of what
8491         would be SSE register modes does no longer influence the alignment.
8492
8493 2004-07-09  Richard Henderson  <rth@redhat.com>
8494
8495         * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD.
8496         Always align upward to arg boundary.  Use size_in_bytes/round_up.
8497         Maintain type-correctness of constants.
8498         * stor-layout.c (round_up, round_down): Special-case powers of 2.
8499
8500 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
8501
8502         * config/sparc/sparc.c (*_costs): Scale instruction costs
8503         by COSTS_N_INSNS.
8504         (sparc_rtx_costs): Adjust as appropriate.
8505
8506 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8507
8508         * config/i386/mm3dnow.h: New.
8509         * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64.
8510
8511 2004-07-09  Richard Henderson  <rth@redhat.com>
8512
8513         * simplify-rtx.c (simplify_const_relational_operation): Only
8514         look at bounds of scalar integers.
8515
8516 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8517
8518         * config/i386/i386.md (sse2_clflush): Use correct operand for clflush.
8519
8520 2004-07-09  Andrew Pinski  <apinski@apple.com>
8521
8522         * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as
8523         always referenced.
8524         (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and
8525         UOBJC_METACLASS_decl.
8526
8527 2004-07-09  James E Wilson  <wilson@specifixinc.com>
8528
8529         PR target/16364
8530         * config/ia64/ia64.c (ia64_function_arg): For a single element HFA,
8531         do return a parallel if hfa_mode == XFmode and mode == TImode.
8532
8533 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8534
8535         * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes
8536         permissible for unary plus.
8537
8538 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8539
8540         * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED.
8541         (BT_FN_UINT): Rename from BT_FN_UNSIGNED.
8542         (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED.
8543         (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG,
8544         BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New.
8545         * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx,
8546         BUILTIN_POPCOUNTxxx): Arguments are unsigned.
8547         (BUILTIN_xxxIMAX): New.
8548         * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX,
8549         BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and
8550         BUILT_IN_PARITYIMAX.
8551
8552 2004-07-09  David S. Miller  <davem@nuts.davemloft.net>
8553
8554         * config/sparc/sparc.h (processor_costs): Define.
8555         (sparc_costs): Declare.
8556         * config/sparc/sparc.c (cypress_costs, supersparc_costs,
8557         hypersparc_costs, sparclet_costs, ultrasparc_costs,
8558         ultrasparc3_costs): New.
8559         (sparc_override_options): Set sparc_costs as appropriate.
8560         (sparc_rtx_costs): Use sparc_costs instead of messy
8561         conditionals.
8562
8563 2004-07-09  Steven Bosscher  <stevenb@suse.de>
8564
8565         * doc/md.texi (Processor pipeline description): Mention that
8566         the old pipeline description is deprecated.
8567
8568         * config/rs6000/7450.md (automaton ppc7450): Split up, move
8569         mciu_7450 function unit to...
8570         (automaton ppc7450mciu): ...new automaton.
8571
8572         * haifa-sched.c (insert_schedule_bubbles_p): Remove.
8573         (schedule_block): Don't consider inserting bubbles.
8574         (sched_init): Don't initialize DFA bubbles.
8575         * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES,
8576         TARGET_SCHED_DFA_BUBBLE): Remove.
8577         * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks.
8578         * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES,
8579         TARGET_SCHED_DFA_BUBBLE): Remove documentation.
8580
8581         * stmt.c (conditional_context): Remove prototype.
8582         * tree.h (conditional_context): Remove.
8583         * tree-cfg.c (pre_insert_on_edge): Remove.
8584
8585         * c-common.h (c_expand_asm_operands): Remove prototype.
8586         * c-typeck.c (c_expand_asm_operands): Remove.
8587
8588 2004-07-09  Jan Beulich  <jbeulich@novell.com>
8589
8590         * config/i386/i386.c (classify_argument): Treat V1xx modes the same as
8591         their base modes. CTImode, TCmode, and XCmode must be passed in memory.
8592         TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode,
8593         and V8QI are class SSE. All sufficiently small remaining vector modes
8594         must be passed in one or two integer registers.
8595         (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be
8596         returned in memory.
8597         (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and
8598         __builtin_ia32_pmuludq128 have non-uniform argument and return types
8599         and must thus be handled explicitly.
8600         * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between
8601         MMX and XMM regs.
8602         (movv8qi_internal, movv4hi_internal, movv2si_internal,
8603         movv2sf_internal): Permit moving between MMX and XMM registers (since
8604         MMX areguments and return values are passed in XMM registers).
8605         (sse2_umulsidi3): Correct type and mode.
8606
8607 2004-07-09  Richard Henderson  <rth@redhat.com>
8608
8609         * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors.
8610
8611 2004-07-09  Eric Christopher  <echristo@redhat.com>
8612
8613         * config/rs6000/40x.md: Split into two automatons.
8614
8615 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
8616             Andrew Pinski  <apinski@apple.com>
8617
8618         * c-opts.c (c_common_post_options): Force unit-at-a-time mode
8619         on when we have more than one input file.
8620         (c_common_parse_file): Restore loop over all input files.
8621         Clarify diagnostic for -dy when YYDEBUG wasn't defined.
8622
8623         * c-decl.c (set_type_context): New function.
8624         (pop_scope): Use it to set context of types.  When we
8625         encounter a TYPE_DECL, set the context of the attached type too.
8626         (pop_file_scope): Don't call cpp_undef_all here.
8627         (diagnose_mismatched_decls): Do not complain about a second
8628         definition of an 'extern inline' function if it's not in the
8629         same translation unit.  Do not complain about inline
8630         declaration after use if the use was in a different
8631         translation unit.
8632         (merge_decls): Don't clobber olddecl's DECL_CONTEXT.
8633         (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in
8634         the external scope.
8635         (pushdecl_top_level): Likewise.
8636         (grokdeclarator): Clarify what is going on with setting
8637         DECL_EXTERNAL on function types, a little.
8638         (c_write_global_declarations): Don't do anything if
8639         -fsyntax-only or errors have been encountered.
8640
8641 2004-07-09  Zack Weinberg  <zack@codesourcery.com>
8642
8643         * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument.
8644
8645 2004-07-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8646
8647         PR target/16459
8648         * pa.c (output_indirect_call): Use %r2 as the link register when
8649         calling $$dyncall with a pc-relative branch.
8650
8651 2004-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
8652
8653         * doc/install.texi (Binaries): Mention OpenPKG.
8654
8655 2004-07-09  Diego Novillo  <dnovillo@redhat.com>
8656
8657         Fix PR tree-optimization/15555
8658         * tree-dfa.c (dump_variable): If the variable is a pointer
8659         SSA_NAME, also dump its points-to information.
8660         * tree-flow.h (struct ptr_info_def): Add field
8661         is_dereferenced.
8662         (dump_points_to_info_for): Declare.
8663         (debug_points_to_info_for): Declare.
8664         * tree-optimize.c (init_tree_optimization_passes): Add a
8665         second alias analysis pass after DOM2.
8666         Move pass_del_pta to a later spot.
8667         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not
8668         create a name tags when we find a dereferenced pointer.  Just
8669         mark the pointer dereferenced.
8670         (collect_points_to_info_for): Move code to clear points-to
8671         information to create_name_tags.
8672         (create_name_tags): New function.
8673         (compute_flow_sensitive_aliasing): Call it.
8674         (setup_pointers_and_addressables): Mark type tags for renaming
8675         here instead of ...
8676         (create_memory_tag): ... here.
8677         (merge_pointed_to_info): Do not merge PT_MALLOC attributes.
8678         (dump_points_to_info_for): Declare extern.
8679         (debug_points_to_info_for): New function.
8680
8681 2004-07-09  Paolo Bonzini  <bonzini@gnu.org>
8682
8683         * config/arc/arc.md: Switch to DFA-based scheduler description.
8684         * config/arc/arc.c: Switch to DFA-based scheduler description.
8685
8686 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8687
8688         * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame
8689         pointer.
8690
8691 2004-07-09  Richard Henderson  <rth@redhat.com>
8692
8693         * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove.
8694         * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8695         (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg.
8696         * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove.
8697
8698         * config/v850/v850-protos.h (v850_va_arg): Remove.
8699         * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8700         (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg.
8701         * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove.
8702         (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types.
8703         (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE.
8704
8705 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8706
8707         PR target/12133
8708         * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float
8709         and DImode to use +/-4k offset.
8710
8711 2004-07-09  Richard Henderson  <rth@redhat.com>
8712
8713         * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg):
8714         Remove.
8715         * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8716         (xstormy16_gimplify_va_arg_expr): Rewrite from
8717         xstormy16_expand_builtin_va_arg.
8718         * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove.
8719
8720         * config/sparc/sparc-protos.h (sparc_va_arg): Remove.
8721         * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static.
8722
8723         * config/sh/sh-protos.h (sh_va_arg): Remove.
8724         * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8725         (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg.
8726         * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove.
8727
8728         * config/pa/pa-protos.h (hppa_va_arg): Remove.
8729         * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8730         (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg.
8731         * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove.
8732
8733         * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove.
8734         * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8735         (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg.
8736         * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove.
8737
8738 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8739
8740         * config/sparc/sparc.md (return): Rewrite length formula.
8741         * config/sparc/sparc.c (output_return): Pass 1 as 5th
8742         argument to final_scan_insn when in a delay slot.
8743         (output_sibcall): Likewise.
8744
8745 2004-07-09  Richard Earnshaw  <rearnsha@arm.com>
8746
8747         * arm.c (arm_cpp_interwork): New variable.
8748         (arm_override_options): Set it if TARGET_INTERWORK was on the command
8749         line.
8750         * arm.h (arm_cpp_interwork): Declare it.
8751         (TARGET_CPU_CPP_BUILTINS): Use it to control definition of
8752         __THUMB_INTERWORK__ in the preprocessor.
8753
8754 2004-07-09  Nathan Sidwell  <nathan@codesourcery.com>
8755
8756         * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto.
8757
8758 2004-07-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
8759
8760         PR target/16416
8761         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro.
8762         Override default settings to account for -m32 and -m64.
8763
8764 2004-07-08  Randolph Chung  <tausq@debian.org>
8765
8766         * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
8767
8768 2004-07-09  Alexandre Oliva  <aoliva@redhat.com>
8769
8770         * builtins.c (fold_builtin_strncpy): Make sure len is a constant
8771         before comparing it as such.
8772
8773 2004-07-08  Richard Henderson  <rth@redhat.com>
8774
8775         * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a
8776         temporary.  Use bit arithmetic to align.
8777
8778 2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
8779
8780         * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
8781         nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
8782         NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
8783         * bb-reorder.c (mark_bb_for_unlikely_executed_section,
8784         add_labels_and_missing_jumps, find_jump_block,
8785         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
8786         Likewise.
8787         * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
8788         link_btr_uses, move_btr_def): Likewise.
8789         * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
8790         expand_builtin_expect_jump): Likewise.
8791         * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
8792         * calls.c (expand_call, emit_library_call_value_1): Likewise.
8793         * cfganal.c (forwarder_block_p): Likewise.
8794         * cfgbuild.c (inside_basic_block_p, count_basic_blocks,
8795         make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
8796         find_bb_boundaries): Likewise.
8797         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
8798         merge_blocks_move_predecessor_nojumps,
8799         merge_blocks_move_successor_nojumps, insns_match_p,
8800         flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
8801         try_optimize_cfg): Likewise.
8802         * cfgexpand.c (expand_block, construct_exit_block): Likewise.
8803         * cfglayout.c (skip_insns_after_block, label_for_bb,
8804         record_effective_endpoints, insn_locators_initialize,
8805         fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
8806         * cfgmainloop.c (create_loop_notes): Likewise.
8807         * cfgrtl.c (delete_insn, delete_insn_chain,
8808         create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
8809         update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
8810         block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
8811         redirect_branch_edge, force_nonfallthru_and_redirect,
8812         rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
8813         rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
8814         update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
8815         purge_dead_edges, cfg_layout_redirect_edge_and_branch,
8816         cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
8817         cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
8818         need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
8819         * combine.c (combine_instructions, can_combine_p, try_combine,
8820         find_split_point, record_dead_and_set_regs, reg_dead_at_p,
8821         distribute_notes, distribute_links, insn_cuid): Likewise.
8822         * cse.c (fold_rtx, cse_insn, cse_around_loop,
8823         invalidate_skipped_block, cse_set_around_loop,
8824         cse_end_of_basic_block, cse_main, cse_basic_block,
8825         cse_condition_code_reg): Likewise.
8826         * cselib.c (cselib_process_insn): Likewise.
8827         * ddg.c (create_ddg): Likewise.
8828         * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
8829         Likewise.
8830         * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
8831         gen_label_die, dwarf2out_var_location): Likewise.
8832         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
8833         next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
8834         last_call_insn, active_insn_p, next_label, prev_label,
8835         link_cc0_insns, next_cc0_user, try_split, add_insn_after,
8836         add_insn_before, remove_insn, add_function_usage_to,
8837         reorder_insns, find_line_note, remove_unnecessary_notes,
8838         emit_insn_after_1, classify_insn): Likewise.
8839         * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
8840         connect_post_landing_pads, sjlj_mark_call_sites,
8841         sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
8842         can_throw_internal, can_throw_external, set_nothrow_function_flags,
8843         convert_to_eh_region_ranges): Likewise.
8844         * explow.c (optimize_save_area_alloca): Likewise.
8845         * expr.c (expand_expr_real): Likewise.
8846         * final.c (insn_current_reference_address, compute_alignments,
8847         shorten_branches, final, scan_ahead_for_unlikely_executed_note,
8848         final_scan_insn, output_asm_label, leaf_function_p): Likewise.
8849         * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
8850         propagate_block_delete_insn, propagate_one_insn,
8851         init_propagate_block_info, propagate_block, libcall_dead_p,
8852         mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
8853         Likewise.
8854         * function.c (instantiate_virtual_regs, reorder_blocks_1,
8855         expand_function_start, expand_function_end, contains,
8856         thread_prologue_and_epilogue_insns,
8857         reposition_prologue_and_epilogue_notes): Likewise.
8858         * gcse.c (constprop_register, bypass_conditional_jumps,
8859         insert_insn_end_bb, gcse_after_reload): Likewise.
8860         * genemit.c (gen_expand, gen_split): Likewise.
8861         * genpeep.c (gen_peephole, main): Likewise.
8862         * global.c (build_insn_chain): Likewise.
8863         * graph.c (node_data, print_rtl_graph_with_bb): Likewise.
8864         * haifa-sched.c (unlink_other_notes, unlink_line_notes,
8865         get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
8866         restore_line_notes, rm_redundant_line_notes, rm_other_notes,
8867         ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
8868         * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
8869         cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
8870         merge_if_block, block_jumps_and_fallthru_p, find_if_block,
8871         dead_or_predicable): Likewise.
8872         * integrate.c (try_constants): Likewise.
8873         * jump.c (rebuild_jump_labels, cleanup_barriers,
8874         purge_line_number_notes, init_label_info, mark_all_labels,
8875         squeeze_notes, get_label_before, get_label_after,
8876         reversed_comparison_code_parts, simplejump_p, pc_set,
8877         returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
8878         delete_barrier, delete_prior_computation, delete_computation,
8879         delete_related_insns, delete_for_peephole, redirect_jump):
8880         Likewise.
8881         * lcm.c (optimize_mode_switching): Likewise.
8882         * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
8883         Likewise.
8884         * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
8885         * loop-invariant.c (find_exits, find_invariants_bb): Likewise.
8886         * loop-iv.c (simplify_using_assignment): Likewise.
8887         * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
8888         libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
8889         find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
8890         loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
8891         check_insn_for_givs, check_final_value, update_giv_derive,
8892         basic_induction_var, product_cheap_p, check_dbra_loop,
8893         loop_insn_first_p, last_use_this_basic_block,
8894         canonicalize_condition, get_condition, loop_regs_scan, load_mems,
8895         try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
8896         * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
8897         sms_schedule_by_order): Likewise.
8898         * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
8899         * postreload.c (reload_cse_simplify_operands, reload_combine,
8900         reload_cse_move2add): Likewise.
8901         * predict.c (can_predict_insn_p, estimate_probability,
8902         expected_value_to_br_prob, process_note_predictions): Likewise.
8903         * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
8904         * profile.c (branch_prob): Likewise.
8905         * ra-build.c (live_out_1, livethrough_conflicts_bb,
8906         detect_webs_set_in_cond_jump): Likewise.
8907         * ra-debug.c (ra_print_rtx_object, ra_debug_insns,
8908         ra_print_rtl_with_bb): Likewise.
8909         * ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
8910         * recog.c (next_insn_tests_no_inequality, find_single_use,
8911         split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
8912         * reg-stack.c (next_flags_user, record_label_references,
8913         emit_swap_insn, swap_rtx_condition, subst_stack_regs,
8914         compensate_edge, convert_regs_1): Likewise.
8915         * regclass.c (scan_one_insn): Likewise.
8916         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
8917         regmove_optimize, fixup_match_1, single_set_for_csa,
8918         combine_stack_adjustments_for_block): Likewise.
8919         * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
8920         * reload.c (find_reloads, find_reloads_address_1, subst_reloads,
8921         find_equiv_reg): Likewise.
8922         * reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
8923         reload_as_needed, emit_input_reload_insns, do_output_reload,
8924         delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
8925         Likewise.
8926         * reorg.c (find_end_label, emit_delay_sequence,
8927         delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
8928         get_jump_flags, rare_destination, mostly_true_jump,
8929         try_merge_delay_insns, redundant_insn, own_thread_p,
8930         fill_simple_delay_slots, fill_slots_from_thread,
8931         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
8932         dbr_schedule): Likewise.
8933         * resource.c (find_basic_block, next_insn_no_annul,
8934         find_dead_or_set_registers, mark_target_live_regs): Likewise.
8935         * rtl.h (RTX_PREV): Likewise.
8936         * rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
8937         no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
8938         reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
8939         find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
8940         tablejump_p, computed_jump_p, insns_safe_to_move_p,
8941         find_first_parameter_load, can_hoist_insn_p): Likewise.
8942         * sched-deps.c (get_condition, add_dependence, sched_analyze_2,
8943         sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
8944         * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
8945         schedule_ebbs): Likewise.
8946         * sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
8947         is_conditionally_protected, can_schedule_ready_p,
8948         add_branch_dependences, debug_dependencies): Likewise.
8949         * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
8950         Likewise.
8951         * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
8952         reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
8953         set_dominates_use, ujump_to_loop_cont): Likewise.
8954         * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
8955         * varasm.c (output_constant_pool_1): Likewise.
8956
8957 2004-07-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8958
8959         * tree-scalar-evolution.c: New file.
8960         * tree-scalar-evolution.h: New file.
8961         * tree-ssa-loop-niter.c: New file.
8962         * Makefile.in (SCEV_H): New.
8963         (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
8964         * cfgloop.h (struct loop): Add bounds field.
8965         * tree-flow.h (struct tree_niter_desc): New type.
8966         (number_of_iterations_cond, number_of_iterations_exit,
8967         loop_niter_by_eval, find_loop_niter_by_eval,
8968         estimate_numbers_of_iterations, can_count_iv_in_wider_type,
8969         free_numbers_of_iterations_estimates): Declare.
8970         * tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
8971         * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
8972         * doc/invoke.texi (max-iterations-to-track): Document.
8973
8974 2004-07-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8975
8976         * config/sh/sh.c (sh_va_arg): Initinalize lab_over.
8977         * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses.
8978         (MODE_AFTER): Add cast appropriately.
8979         * config/sh/sh.md (movdi splitter): Likewise.
8980         (casesi_worker_2): Add const qualifier appropriately.
8981         (eh_return): Remove unused variable.
8982         (insv): Initialize v;
8983
8984 2004-07-08  Richard Henderson  <rth@redhat.com>
8985
8986         * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove.
8987         * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8988         (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg.
8989         * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove.
8990         (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label.
8991
8992         * config/m32r/m32r-protos.h (m32r_va_arg): Remove.
8993         * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8994         (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg.
8995         * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove.
8996
8997         * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove.
8998         * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
8999         (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg.
9000         * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove.
9001
9002         * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove.
9003         * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9004         (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg.
9005         * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove.
9006
9007         * config/i860/i860-protos.h (i860_va_arg): Remove.
9008         * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9009         (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg.
9010         * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove.
9011
9012 2004-05-31  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9013
9014         * system.h: Prototype getpagesize if missing.
9015         * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS.
9016         * configure: Regenerate.
9017         * config.in: Regenerate.
9018
9019 2004-07-08  Richard Henderson  <rth@redhat.com>
9020
9021         * config/fr30/fr30-protos.h (fr30_va_arg): Remove.
9022         * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9023         (fr30_gimplify_va_arg_expr): New.
9024         (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove.
9025         * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove.
9026
9027 2004-07-08  Vladimir Makarov  <vmakarov@redhat.com>
9028
9029         PR target/16414
9030         * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison
9031         of asm_noperands result.
9032
9033 2004-07-08  Richard Henderson  <rth@redhat.com>
9034
9035         * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove.
9036         * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9037         (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg.
9038         * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove.
9039
9040 2004-07-08  Richard Henderson  <rth@redhat.com>
9041
9042         * builtins.c (ind_gimplify_va_arg_expr): New.
9043         * tree.h (ind_gimplify_va_arg_expr): Declare.
9044         * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it.
9045
9046 2004-07-08  Jan Beulich  <jbeulich@novell.com>
9047
9048         * expmed.c (extract_bit_field): Correct condition to use vec_extract
9049         patterns also on vector elements other than the first one.
9050         * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing
9051         break statements.
9052
9053 2004-07-08  Geoffrey Keating  <geoffk@apple.com>
9054
9055         * config/rs6000/darwin-ldouble.c: Correct reference
9056         to the Linnainmaa paper.
9057
9058 2004-07-08  Richard Henderson  <rth@redhat.com>
9059
9060         * config/arc/arc-protos.h (arc_va_arg): Remove.
9061         * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9062         (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg.
9063         * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove.
9064
9065         * config/c4x/c4x-protos.h (c4x_va_arg): Remove.
9066         * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New.
9067         (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg.
9068         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove.
9069
9070 2004-07-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9071
9072         * pa.md (prefetch_32, prefetch_64): Simplify constraint checks.
9073
9074 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
9075
9076         * c-decl.c (static_ctors, static_dtors): Make static.
9077         (pop_file_scope): Call c_common_write_pch and
9078         cgraph_finalize_compilation_unit here.
9079         (build_cdtor): Moved here from c-objc-common.c; simplify.
9080         (c_write_global_declarations_1): Clarify comment.
9081         (c_write_global_declarations): Close the external scope before
9082         doing anything else.  Call build_cdtor, cgraph_optimize, and
9083         mudflap_finish_file here.
9084         * c-lang.c (finish_file): Don't call c_objc_common_finish_file.
9085         Clarify comment.
9086         * c-objc-common.c: No need to include cgraph.h.
9087         (build_cdtor): Moved to c-decl.c.
9088         (c_objc_common_finish_file): Delete.
9089         * c-tree.h: Update to match.
9090         * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
9091         (generate_static_references): Set TREE_USED before calling finish_decl.
9092         Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
9093         on the static_instances_decl.
9094
9095 2004-07-08  Zack Weinberg  <zack@codesourcery.com>
9096
9097         * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope
9098         decls when there is only one input translation unit.
9099         * langhooks.c (lhd_set_decl_assembler_name): Partially revert
9100         change of 2004-07-05; do not treat declarations with
9101         DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
9102         * opts.c (cur_in_fname): Delete.
9103         * opts.h: Likewise.
9104         * tree.c: Revert changes of 2004-07-05; no special treatment
9105         for TRANSLATION_UNIT_DECLs.
9106         * Makefile.in (tree.o): Update dependencies.
9107
9108 2004-07-08  Roger Sayle  <roger@eyesopen.com>
9109
9110         * builtins.c (fold_builtin_strcpy): Merge functionality from
9111         simplify_builtin_strcpy.  Add additional len argument.  No longer
9112         static.  Remove function prototype.
9113         (fold_builtin_strncpy): Likewise integrate functionality from
9114         simplify_builtin_strncpy.  Add additional slen argument.  No
9115         longer static.  Remove function prototype.
9116         (simplify_builtin_strcy, simplify_builtin_strncpy): Delete.
9117         (simplify_builtin_fputs): Rename to fold_builtin_fputs.  Change
9118         types of "ignore" and "unlocked" parameters to bool.
9119         (fold_builtin_1):  Add additional ignore argument.  Call renamed
9120         fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked"
9121         builtins.  Update arguments to fold_builtin_strncpy and
9122         fold_builtin_strcpy.  Add function prototype.
9123         (fold_builtin): Add additional Boolean ignore argument to pass
9124         to fold_builtin_1.
9125         (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy
9126         and fold_builtin_strncpy instead of simplify_builtin_fputs,
9127         simplify_builtin_strcpy and simplify_builtin_strncpy respectively.
9128
9129         * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy,
9130         simplify_builtin_strncpy): Delete function prototypes.
9131         * tree.h (fold_builtin_fputs, fold_builtin_strcpy,
9132         fold_builtin_strncpy): Add function prototypes here.
9133         (fold_builtin): Update function prototype with new "bool ignore".
9134
9135         * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin.
9136         (ccp_fold_builtin):  Update call to fold_builtin.  Call
9137         fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy
9138         instead of simplify_builtin_fputs, simplify_builtin_strcpy and
9139         simplify_builtin_strncpy respectively.
9140         * fold-const.c (fold): Update call to fold_builtin.
9141
9142 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
9143
9144         * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy
9145         to strcpy.
9146
9147         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0.
9148         (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise.
9149         (FUNCTION_ARG_CALLEE_COPIES): Likewise.
9150         * calls.c: Remove ifdefs of macros above.
9151         * functions.c: Likewise.
9152         * expr.c: Likewise.
9153
9154 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9155
9156         * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete.
9157         (arch attribute): Delete.
9158         (current_function_calls_alloca attribute): Rename into calls_alloca.
9159         (calls_eh_return): New attribute.
9160         (leaf_function): Likewise.
9161         (length attribute): Fix formula for sibcalls.
9162         (return insn): Correctly compute the 'length' attribute.
9163         (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca.
9164
9165 2004-07-08  Richard Henderson  <rth@redhat.com>
9166
9167         * tree-cfg.c (make_exit_edges): Use get_call_expr_in.
9168         (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise.
9169         (tree_block_ends_with_call_p, need_fake_edge_p): Likewise.
9170         * tree-eh.c (lower_eh_constructs_1): Likewise.
9171         * tree-sra.c (sra_walk_modify_expr): Likewise.
9172         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9173         (eliminate_unnecessary_stmts): Likewise.
9174         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
9175         * tree-tailcall.c (optimize_tail_call): Likewise.
9176         * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch.
9177
9178 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9179             Jakub Jelinek  <jakub@redhat.com>
9180
9181         * config/i386/i386.c (override_options): Enable
9182         SSE prefetches with -mtune, as long as we are
9183         compiling for i686 or higher.  All i686 processors
9184         accept SSE prefetches as NOPS, some i586's don't.
9185
9186 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9187
9188         PR target/10567
9189         * config/sparc/sparc.md (update_return): Honor flag_delayed_branch.
9190
9191 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
9192
9193         * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in
9194         the handling of clobbering ASM_EXPRs.
9195
9196 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9197
9198         PR target/16430
9199         * config/sparc/sparc.c (function_value): In 64-bit mode,
9200         return the aggregates larger than 16 bytes like unions.
9201
9202 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9203
9204         PR target/16199
9205         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When
9206         'temp' is zero, generate new pseudos as needed and emit the
9207         sequence of insns in single-assignment form.  Resync comments
9208         with code.
9209         (sparc_emit_set_const64): Pass zero as 'temp' argument to above
9210         function before reload.
9211
9212 2004-07-08  Nathan Sidwell  <nathan@codesourcery.com>
9213
9214         * vec.c (vec_assert_fail): Remove duplicate 'function'.
9215
9216         * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed.
9217
9218         * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init):
9219         Allocation is signed.
9220         (VEC_reserve): Return flag, allocation is signed.
9221
9222 2004-07-08  Richard Henderson  <rth@redhat.com>
9223
9224         * tree-ssa-ccp.c (fold_stmt): Get type directly from
9225         OBJ_TYPE_REF_OBJECT.
9226
9227 2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
9228             Neil Booth  <neil@daikokuya.co.uk>
9229
9230         PR c/2511
9231         PR c/3325
9232         * c-decl.c (finish_struct): Ensure bit-fields are given the
9233         correct type.
9234         * c-common.c (c_common_signed_or_unsigned_type): For C, require
9235         the precision to match as well as the mode.
9236         * expr.c (reduce_to_bit_field_precision): New function.
9237         (expand_expr_real_1): Reduce expressions of bit-field type to
9238         proper precision.
9239         * langhooks.h (reduce_bit_field_operations): New hook.
9240         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
9241         Define.
9242         * c-lang.c, objc/objc-lang.c
9243         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
9244         * objc/objc-act.c (check_ivars): Convert types to bit-field types
9245         before checking.
9246         * tree.c (build_nonstandard_integer_type): New function.
9247         * tree.h (build_nonstandard_integer_type): New prototype.
9248         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
9249         conversions between integer and boolean types as useless.
9250
9251 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9252
9253         * c-common.c (c_common_nodes_and_builtins): Do not
9254         create __builtin_ptrdiff_t and __builtin_size_t.
9255
9256 2004-07-08  Andrew Pinski  <apinski@apple.com>
9257
9258         * Makefile.in (libbackend.o): Add -combine to the gcc
9259         command line.
9260
9261 2004-07-08  Nick Clifton  <nickc@redhat.com>
9262
9263         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define.
9264         Set to -Os.
9265
9266 2004-07-08  Richard Henderson  <rth@redhat.com>
9267
9268         * except.c (expand_eh_region_start, expand_eh_region_end,
9269         expand_eh_handler, expand_eh_region_end_cleanup,
9270         expand_start_all_catch, expand_start_catch, expand_end_catch,
9271         expand_end_all_catch, expand_eh_region_end_allowed,
9272         expand_eh_region_end_must_not_throw, expand_eh_region_end_throw,
9273         expand_eh_region_end_fixup): Remove.
9274         * stmt.c (struct nesting): Remove stack_level, innermost_stack_block,
9275         cleanups, outer_cleanups, label_chain, exception_region.
9276         (struct goto_fixup): Remove stack_level, cleanup_list_list.
9277         (struct label_chain): Remove.
9278         (struct stmt_status): Remove x_stack_block_stack.
9279         (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups,
9280         fixup_gotos, save_stack_pointer, expand_decl_cleanup,
9281         expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral,
9282         end_cleanup_deferral, last_cleanup_this_contour,
9283         containing_blocks_have_cleanups_or_stack_level,
9284         any_pending_cleanups): Remove.
9285         (expand_null_return_1): Take no arguments.
9286         (expand_label, expand_naked_return, expand_return,
9287         expand_start_bindings_and_block, expand_end_bindings, expand_decl,
9288         expand_anon_union_decl, expand_start_case, pushcase, pushcase_range,
9289         expand_end_case_type): Don't use any of them.
9290         * calls.c (expand_call): Likewise.
9291         * dojump.c (do_jump): Likewise.
9292         * function.c (expand_function_end): Likewise.
9293         * expr.c (store_expr, expand_expr_real_1): Likewise.
9294         (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR.
9295         (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR,
9296         CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR,
9297         EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR.
9298         * fold-const.c (fold_checksum_tree): Use first_rtl_op.
9299         * gengtype.c (adjust_field_tree_exp): Remove rtl op handling.
9300         * gimplify.c (gimplify_cleanup_point_expr): Renumber operands
9301         for WITH_CLEANUP_EXPR.
9302         (gimple_push_cleanup): Likewise.
9303         * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE.
9304         * print-tree.c (print_node): Likewise.
9305         * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR.
9306         * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH.
9307         (has_cleanups): Remove GOTO_SUBROUTINE_EXPR.
9308         * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2.
9309         (GOTO_SUBROUTINE_EXPR): Remove.
9310         * tree.h (WITH_CLEANUP_EXPR_RTL): Remove.
9311         (DECL_TOO_LATE): Remove.
9312         * except.h, tree.h: Update decls.
9313
9314 2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
9315
9316         * explow.c (optimize_save_area_alloca): Do not accept parameters.
9317         * passes.c (rest_of_handle_final): Handle symout.
9318         (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc):
9319         Push timevar here.
9320         (rest_of_handle_sched): Break out SMS.  Remove ifs for
9321         flag_schedule_insns and flag_modulo_sched.
9322         (rest_of_handle_addressof, rest_of_handle_cse2): Garbage
9323         collect at the end.
9324         (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS.
9325         (rest_of_handle_partition_blocks, rest_of_handle_sms,
9326         rest_of_handle_if_after_reload, rest_of_handle_peephole2,
9327         rest_of_handle_mode_switching, rest_of_handle_jump,
9328         rest_of_handle_guess_branch_prob, rest_of_handle_eh,
9329         rest_of_handle_jump2, rest_of_handle_postreload,
9330         rest_of_handle_flow2, rest_of_clean_state,
9331         rest_of_handle_shorten_branches,
9332         rest_of_handle_prologue_epilogue,
9333         rest_of_handle_branch_target_load_optimize): New.
9334         (rest_of_compilation): Call the above.  Remove ggc_collect
9335         calls moved to rest_of_handle_*.
9336         * rtl.h (optimize_save_area_alloca): Do not accept parameters.
9337
9338         * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW.
9339         * except.c (set_nothrow_function_flags): Set TREE_NOTHROW.
9340         * except.h (set_nothrow_function_flags): Update comment.
9341         * function.c (current_function_nothrow): Remove.
9342         * output.h (current_function_nothrow): Remove.
9343         * passes.c (rest_of_compilation): Do not set TREE_NOTHROW.
9344         * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW.
9345
9346 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9347
9348         PR bootstrap/16326
9349         * reorg.c: Revert 2004-06-30 change.
9350         (find_end_label): If HAVE_epilogue and !HAVE_return,
9351         return 0 instead of creating a label at the end of the insn chain.
9352         (optimize_skip): Account for the failure mode of find_end_label.
9353         (fill_simple_delay_slots): Likewise.
9354         (fill_slots_from_thread): Likewise.
9355         (relax_delay_slots): Likewise.
9356
9357 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
9358
9359         * tree-flow.h (addressable_vars): Declare.
9360         * tree-ssa-alias.c (addressable_vars): Define.
9361         (setup_pointers_and_addressables): Add addressable variables
9362         to addressable_vars.
9363         * tree-ssa-operands.c (get_stmt_operands): Move
9364         handling of ASM_EXPRs ...
9365         (get_asm_expr_operands): ... here.
9366         When the ASM_EXPR clobbers memory, also clobber addressable
9367         variables.
9368         * tree-ssa.c (init_tree_ssa): Initialize addressable_vars.
9369         (delete_tree_ssa): Reset addressable_vars.
9370
9371 2004-07-07  Jan Beulich  <jbeulich@novell.com>
9372             Richard Henderson  <rth@redhat.com>
9373
9374         * varasm.c (assemble_variable): Use assemble_zeros for
9375         zero-initialized variables.
9376         (categorize_decl_for_section): Honor flag_zero_initialized_in_bss
9377         for SECCAT_BSS and SECCAT_TBSS.
9378
9379 2004-07-07  Jan Beulich  <jbeulich@novell.com>
9380
9381         * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP.
9382
9383         * expmed.c (emit_store_flag): Also special-case double-word
9384         (in-)equality comparison against -1.
9385
9386         * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
9387         passing arguments the containers for which are registers.
9388
9389         * calls.c (emit_library_call_value_1): Use mode of function parameter
9390         rather than that of argument since constants have none.
9391
9392 2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
9393
9394         Introduce H8SX support.
9395         * expr.c (expand_strcpy): Renamed and moved to...
9396         * builtins.c (expand_movstr): ... here.  Tweak.
9397         (expand_builtin_strcpy): Adjust.  Use movstr if len can't be
9398         computed or has side effects.
9399         (expand_builtin_stpcpy): Likewise.  Use strcpy if return value is
9400         unused, or if mempcpy fails.  Adjust the return value in the
9401         latter case.  Use movstr if everything else fails.
9402         * doc/md.texi (movstr): Document.
9403         (movmemM, clrmemM): Fix explanation of memory block operands.
9404         * config/h8300/h8300.md (stpcpy): Renamed to...
9405         (movstr): ... this.  Adjust.
9406         2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9407         * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to
9408         movmem* and clrstr* to clrmem*.
9409         2004-06-27  Alexandre Oliva  <aoliva@redhat.com>
9410         * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to
9411         GENERAL_REGS, always.
9412         (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of
9413         getting the stack pointer as addr.
9414         * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes
9415         from general_operand_dst.
9416         * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode
9417         variant of...
9418         (movmd_internal): ... this.  Add modes to operands.  Disparage `D'
9419         instead of requiring it to match only before reload.
9420         (stpcpy_internal_normal): New, normal-mode variant of...
9421         (stpcpy_internal): ... this.  Add modes to operands.  Disparage
9422         `D' instead of requiring it to match only before reload.
9423         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add
9424         mode argument.
9425         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to...
9426         * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to
9427         h8300_get_index.
9428         * config/h8300/h8300.md (attr type): Add call.
9429         (attr can_delay): If type is call, set it no.
9430         (call, call_value): Set type to call.
9431         2004-06-21  Alexandre Oliva  <aoliva@redhat.com>
9432         * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New.
9433         2004-06-16  Alexandre Oliva  <aoliva@redhat.com>
9434         * tree.c (get_narrower): Don't narrow integral types into
9435         non-integral types.
9436         * config/h8300/h8300.c (h8300_expand_epilogue): Initialize
9437         frame_size *before* the first use.
9438         * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment
9439         on input.
9440         (peephole2): Don't widen instructions that push SP.  Move
9441         decrement of SP to the end of all stm-generating peepholes.
9442         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
9443         * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield
9444         and OR to set it to all ones.
9445         2003-07-24  Richard Sandiford  <rsandifo@redhat.com>
9446         * config/h8300/h8300.md (can_delay): Default to "no" for bit branches.
9447         (call, call_value): Set can_delay to "no".
9448         2003-07-22  Richard Sandiford  <rsandifo@redhat.com>
9449         * config/h8300/h8300.md (extzv): Make subreg check more robust.
9450         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9451         * config/h8300/h8300.md (*brabit): Remove.
9452         * config/h8300/h8300.md (*brabc, *brabs): Remove mode from
9453         zero_extract.  Use bit_memory_operand as the predicate for
9454         operand 1 and 'WU' as the constraint.  Check the difference
9455         between the base length and the final one when deciding which
9456         type of branch to use.
9457         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9458         * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1.
9459         Use convert_move to extend the result for TARGET_H8300SX.  Check
9460         for QImode memory references.  Optimize the case where the
9461         destination is a paradoxical subreg.
9462         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9463         * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative.
9464         * config/h8300/h8300.md (andqi): Remove bclr from h8sx version.
9465         2003-07-21  Richard Sandiford  <rsandifo@redhat.com>
9466         * config/h8300/h8300.md: Include mova.md
9467         (length_table): Add mova and mova_zero.
9468         * config/h8300/h8300.c (print_operand): Handle '%o'.  Print a length
9469         after all constant addresses for '%R', '%X', '%T' and '%S'.
9470         (h8300_mova_length): New function.
9471         (h8300_insn_length_from_table): Use it to handle mova and mova_zero.
9472         * config/h8300/t-h8300 (mova.md): Generate from genmova.sh.  Add to
9473         dependencies for s-config, etc.
9474         * config/h8300/gemova.sh: New file.
9475         * config/h8300/mova.md: Generated.
9476         2003-07-20  Alexandre Oliva  <aoliva@redhat.com>
9477         * config/h8300/h8300.c (h8300_bitfield_length): New.
9478         (nibble_operand): Adjust.
9479         (h8300_binary_length): Handle conditional binary op.
9480         (h8300_insn_length_from_table): Handle bitfield and bitbranch.
9481         * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and
9482         P#<X, respectively.  The original P is now IP4>X.  Introduced P#>0
9483         and P#<0, unused so far.  W and Y are now prefixes to multi-letter
9484         constraints.  WU is introduced as a variant of U that requires a
9485         mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT.
9486         * config/h8300/h8300.md (attr type): Added bitbranch.
9487         (attr length_table): Added bitfield and bitbranch.
9488         (attr length): Compute bitbranch length.
9489         (andqi): Separate pattern for H8300SX.  Use bfld for loading the
9490         least-significant bit of a byte.
9491         (brabit, brabc, brabs): New.
9492         (insv, extzv): Emit bfst and bfld on H8300SX.
9493         (bfld, bfst, seq, sne): New.
9494         (bstzhireg, cmpstz, bstz, bistz): New.
9495         (cmpcondbset, condbset, cmpcondbclr, condbclr): New.
9496         (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New.
9497         2003-07-11  Richard Sandiford  <rsandifo@redhat.com>
9498         * config/h8300/h8300.c (h8sx_binary_memory_operator): New function.
9499         (h8sx_unary_memory_operator): New function.
9500         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable.
9501         (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator.
9502         * config/h8300/h8300.md: Add peepholes to combine reloads and
9503         arithmetic insns.
9504         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
9505         * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints.
9506         (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise.
9507         (and?i, ior?i, xor?i): Likewise.
9508         2003-07-10  Richard Sandiford  <rsandifo@redhat.com>
9509         * config/h8300/h8300.c: Move enums and prototypes to head of file.
9510         Various whitespace fixes.
9511         (h8300_constant_length): New function, split out from...
9512         (h8300_displacement_size): ...here.  Rename h8300_displacement_length.
9513         (h8300_classify_operand): Use IN_RANGE.
9514         (h8300_classify_operand): Use h8300_constant_length.
9515         (h8300_short_move_mem_p): Tighten size check.
9516         (h8sx_mergeable_memrefs_p): Tighten equality check.
9517         2003-06-30  Richard Sandiford  <rsandifo@redhat.com>
9518         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__
9519         for -msx.
9520         * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code.
9521         * config/h8300/crtn.asm: Likewise.
9522         * config/h8300/lib1funcs.asm: Likewise.  Use 32-bit pointers
9523         if __H8300SX__ is defined.
9524         2003-06-27  Richard Sandiford  <rsandifo@redhat.com>
9525         * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter.
9526         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly.
9527         (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed
9528         addresses as mode-dependent.
9529         * config/h8300/h8300.c (print_operand_address): Update call to
9530         h8300_get_index.
9531         (h8300_get_index): Take a mode argument.  Rework to fix an
9532         earlier misunderstanding.
9533         2003-06-26  Richard Sandiford  <rsandifo@redhat.com>
9534         * config/h8300/h8300.c (zero_extendqisi2): Force the source operand
9535         into a register if TARGET_H8300SX.
9536         (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for
9537         TARGET_H8300SX.  Also disable related define_splits.
9538         (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns.
9539         2003-06-23  Richard Sandiford  <rsandifo@redhat.com>
9540         * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling.
9541         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
9542         * config/h8300/h8300.h (OK_FOR_Z): New macro.
9543         (EXTRA_CONSTRAINT_STR): Check it.
9544         * config/h8300/h8300.c (h8300_classify_operand): Accept null
9545         class arguments.
9546         (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4.
9547         * config/h8300/h8300.md (length_table): Add mov_imm4.
9548         (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns.
9549         2003-06-20  Richard Sandiford  <rsandifo@redhat.com>
9550         * genattrtab.c (write_eligible_delay): Allow candidate_insn to
9551         be a label.
9552         * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro.
9553         * config/h8300/h8300.c (h8300_reorg): New function.
9554         (TARGET_MACHINE_DEPENDENT_REORG): Define.
9555         * config/h8300/h8300.md (length): Subtract the length of the
9556         delay slot from (pc) when checking the range of forward branches.
9557         (delay_slot, can_delay): New attributes.
9558         (define_delay): Add bra/s handling.
9559         (movmd_internal, return_h8sx, *return_1): Set can_delay to no.
9560         (jump): Add delayed-branch handling.
9561         2003-06-17  Richard Sandiford  <rsandifo@redhat.com>
9562         * expr.c (expand_strcpy): New function.
9563         * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy.
9564         (expand_builtin_stpcpy): Likewise.
9565         * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove.
9566         (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare.
9567         * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd'
9568         handling to improve register allocation for -fno-omit-frame-pointer.
9569         (h8sx_split_movmd): Delete, moving er6 handling into...
9570         (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions.
9571         * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant.
9572         (movmd): Add calls to copy_rtx.
9573         (movmd_internal): In the second alternative, allow the initial and
9574         final destination registers to be different .  Update the splitter
9575         accordingly.  Call h8300_swap_into_er6 and h8300_swap_out_of_er6
9576         instead of h8sx_split_movmd.
9577         (stpcpy, movsd): New expanders.
9578         (movsd_internal): New define_insn.
9579         2003-06-13  Richard Sandiford  <rsandifo@redhat.com>
9580         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare.
9581         (h8sx_emit_movmd, h8sx_split_movmd): Declare.
9582         * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS
9583         and DESTINATION_REGS.
9584         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
9585         (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes.
9586         (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter.
9587         (h8300_move_ratio): Declare.
9588         (MOVE_RATIO): Use it.
9589         * config/h8300/h8300.c (h8300_move_ratio): New variable.
9590         (h8300_init_once): Initialize it.
9591         (h8300_reg_class_from_letter): New function.
9592         (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l".
9593         (h8sx_emit_movmd, h8sx_split_movmd): New functions.
9594         * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant.
9595         (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants.
9596         (movstrsi, movmd): New expanders.
9597         (movmd_internal): New insn.
9598         2003-06-06  Richard Sandiford  <rsandifo@redhat.com>
9599         * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define.
9600         2003-06-04  Richard Sandiford  <rsandifo@redhat.com>
9601         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn.
9602         * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise.
9603         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9604         * config/h8300/h8300.c (nibble_operand): Fix warning.
9605         * config/h8300/h8300.md (movstricthi): Set adjust_length to no.
9606         (movsi_h8sx): Likewise here and the normal h8sx movhi pattern.
9607         (movsf_h8300h): Disable for TARGET_H8300SX.
9608         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9609         * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel,
9610         h8300_stm_parallel and h8300_return_parallel.
9611         * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p,
9612         h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel,
9613         h8300_stm_parallel, h8300_return_parallel): New functions.
9614         (h8300_expand_prologue): Don't enforce ldm/stm register alignment
9615         if TARGET_H8300SX.  Use h8300_push_pop.
9616         (h8300_expand_epilogue): Likewise.  Try to merge the return insn
9617         and final pop when generating h8sx code.  Always emit some form
9618         of return insn.
9619         * config/h8300/h8300.md: Don't enforce register alignment in
9620         stm peepholes if TARGET_H8300SX.
9621         (ldm_h8300s, stm_h8300s, return_h8sx): New patterns.
9622         (ldm_h8300s_[234], stm_h8300_[234]): Disable.
9623         (epilogue): Expect h8300_expand_epilogue to emit a return insn.
9624         2003-06-03  Richard Sandiford  <rsandifo@redhat.com>
9625         * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib.
9626         (MULTILIB_DIRNAMES): Add a directory for it.
9627         (MULTILIB_MATCHES): Delete.
9628         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
9629         * final.c (walk_alter_subreg): Handle addresses with subregs
9630         inside a ZERO_EXTEND or AND.
9631         * config/h8300/h8300-protos.h (h8300_get_index): Declare.
9632         * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS
9633         if TARGET_H8300SX.
9634         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index.
9635         * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b),
9636         @(dd,Rn.w) and @(dd,ERn.L).
9637         (h8300_displacement_size): Take the whole address as argument.
9638         (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly.
9639         2003-05-28  Richard Sandiford  <rsandifo@redhat.com>
9640         * config/mips/mips-protos.h (h8300_operands_match_p): Declare.
9641         (h8sx_mergeable_memrefs_p): Declare.
9642         * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX.
9643         (HAVE_PRE_INCREMENT): Likewise.
9644         (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement
9645         addresses for TARGET_H8300SX,
9646         * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC
9647         and POST_DEC.
9648         (movb_length_table, movl_length_table): New tables.
9649         (movw_length_table): Define to movb_length_table.
9650         (h8300_displacement_size): New, split out from...
9651         (h8300_classify_address): ...here.  Handle pre/post inc/dec.
9652         (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands.
9653         (h8300_insn_length_from_table): Add cases for movb, movw and movl.
9654         (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions.
9655         (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx.
9656         (compute_plussi_length, compute_plussi_cc): Update accordingly.
9657         (h8sx_unary_shift_operator): Get the mode from the operator.
9658         (binary_shift_operator): Likewise.
9659         * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to
9660         a memory reference, check whether the reference is offsettable.
9661         (length_table): Add movb, movw and movl.
9662         (movqi): Add new h8sx pattern.  Don't force one operand to be a
9663         register when generating h8sx code.
9664         (movhi, movsi, movsf): Likewise.
9665         (movstrictqi): Use the length_table attribute.
9666         (movstricthi): Likewise.  Add h8sx alternative for mov.w #xx:3,Rn.
9667         (addqi3): Split into a define_expand and define_insn.  Don't accept
9668         memory operands in the expander.  Use h8300_operands_match_p to
9669         check for matching operands in the define_insn.
9670         (subqi3, negqi2, one_cmplqi2): Likewise.
9671         (add[hs]i3): Don't accept memory operands in the expander.  Likewise
9672         in any patterns that are unused in h8sx code.  In the h8sx patterns,
9673         use h8300_operands_match_p to check whether operands match.
9674         (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3,
9675         one_cmpl[hs]i3): Likewise.
9676         (andqi3, iorqi3, xorqi3): Likewise.  Don't call fix_bit_operand
9677         in the expander.
9678         2003-05-23  Richard Sandiford  <rsandifo@redhat.com>
9679         * config/h8300/h8300-protos.h (expand_a_shift): Return a bool.
9680         (h8300_insn_length_from_table): Add a second parameter.
9681         (output_h8sx_shift): Declare.
9682         * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros.
9683         (EXTRA_CONSTRAINT): Replace with...
9684         (EXTRA_CONSTRAINT_STR): ...this.  Use OK_FOR_W and OK_FOR_Y.
9685         (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'.
9686         (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator
9687         and h8sx_binary_shift_operator.
9688         * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false
9689         for TARGET_H8300SX.
9690         (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U.
9691         (bit_memory_operand, fix_bit_operand): Likewise.
9692         (h8300_length_table_for_insn): Remove.
9693         (h8300_classify_operand): Fix check for 16-bit operands in 32-bit
9694         instructions.
9695         (h8300_short_immediate_length, h8300_binary_length): New functions.
9696         (h8300_insn_length_from_table): Add an opcodes parameter.  Rework.
9697         (output_plussi): Use sub to add negative constants.
9698         (compute_plussi_length): Adjust accordingly.
9699         (h8sx_single_shift_type): New enum.
9700         (h8sx_single_shift, h8sx_unary_shift_operator,
9701         h8sx_binary_shift_operator, output_h8sx_shift): New functions.
9702         (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a
9703         single h8sx instruction.  Return false in this case.
9704         * config/h8300/h8300.md (length_table): Add short_immediate.
9705         (length): Pass the operand array to h8300_insn_length_from_table.
9706         (adjust_length): Assume "no" for insns with a length_table attribute.
9707         (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3.
9708         (*addhi3_h8300hs): Don't use for h8sx.
9709         (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3
9710         and sub.w #xx:3.
9711         (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand
9712         1's predicate to nonimmediate_operand.  Only skip default expansion
9713         if expand_a_shift or expand_a_rotate returns true.  Add new patterns
9714         for single h8sx shift instructions.
9715         2003-05-22  Alexandre Oliva  <aoliva@redhat.com>
9716         * config/h8300/h8300.c (nibble_operand): Split out of...
9717         (reg_or_nibble_operand): ... this.
9718         * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand.
9719         * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3,
9720         umulhisi3): Introduce expand, and introduce separate insns for
9721         sign- or zero-extended REG and already-extended CONST_INT.
9722         2003-05-20  Richard Sandiford  <rsandifo@redhat.com>
9723         * config/h8300/h8300.c (h8300_unary_length): Fix miscounting.
9724         * config/h8300/h8300.md (subqi3): Generalize for h8sx.
9725         (subhi3): Likewise.  Don't accept immediates for operand 1.
9726         Remove the early clobber from second alternative of the h8300s pattern.
9727         (subsi3): Generalize for h8sx.  Force operand 2 into a register
9728         on plain h8300 targets.
9729         (subsi3_h8300): Use h8300_dst_operand for consistency with expander.
9730         (subsi3_h8300h): Generalize for h8sx.
9731         (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise.
9732         2003-05-19  Alexandre Oliva  <aoliva@redhat.com>
9733         * config/h8300/h8300.c (reg_or_nibble_operand): New.
9734         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
9735         (TARGET_H8300SXMUL): New.
9736         (CONST_OK_FOR_P): New.
9737         (CONST_OK_FOR_LETTER_P): Adjust.
9738         * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3,
9739         umulhisi3): Accept 4-bit immediate on H8SX.
9740         (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New.
9741         (udivsi3, divhi3, udivsi3, divsi3): New.
9742         2003-05-19  Richard Sandiford  <rsandifo@redhat.com>
9743         * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare.
9744         * config/h8300/h8300.h (OK_FOR_Q): New macro.
9745         (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint.
9746         (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand.
9747         Add ADDRESSOF to the bit_operand entry.
9748         * config/h8300/h8300.c (h8300_dst_operand): New predicate.
9749         (h8300_src_operand): Likewise.
9750         (bit_operand): Check nonimmediate_operand rather than general_operand.
9751         Accept any nonimmediate_operand in h8sx code.
9752         (h8300_and_costs): Initialize operands[1].
9753         (h8300_rtx_costs) <AND>: Return false if the operands aren't valid.
9754         (h8300_operand_class): New enum.
9755         (h8300_length_table): New typedef.
9756         (addb_length_table, addw_length_table, addl_length_table,
9757         logicl_length_table): New tables.
9758         (logicb_length_table, logicw_length_table): New macros.
9759         (h8300_classify_operand, h8300_length_from_table,
9760         h8300_length_table_for_insn, h8300_unary_length,
9761         h8300_insn_length_from_table): New functions.
9762         (output_plussi): Only use adds and subs for register destinations.
9763         Disable redundant clause.
9764         (compute_plussi_cc): Likewise.
9765         (compute_plussi_length): Likewise.  Use h8300_length_from_table
9766         to work out the length of an insn.
9767         (output_logical_op): Only use narrower immediate instructions
9768         if the destination is a register.
9769         (compute_logical_op_cc): Likewise.
9770         (compute_logical_op_length): Likewise.  Use h8300_length_from_table.
9771         (h8300_adjust_insn_length): Tighten check for reg<->mem moves.
9772         * config/h8300/h8300.md (length_table): New attribute.
9773         (length): When an instruction has a length_table attribute, use
9774         h8300_insn_length_from_table to calculate its default length.
9775         (cmpqi): Use h8300_dst_operand for the first operand and
9776         h8300_src_operand for the second.
9777         (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2,
9778         negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3,
9779         addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3,
9780         iorsi3, xorhi3, xorsi3): Likewise.
9781         (andqi3): Use h8300_src_operand for operand 2.  Adjust the condition
9782         so that it allows any combination of operands for TARGET_H8300SX.
9783         (iorqi3, xorqi3): Likewise.
9784         (cmpqi): Use the length_table attribute.
9785         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3,
9786         xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
9787         (cmpqi): Add 'Q' constraint.
9788         (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3,
9789         iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise.
9790         2003-05-14  Richard Sandiford  <rsandifo@redhat.com>
9791         * config/h8300/h8300.h (MASK_H8300SX): New macro.
9792         (TARGET_H8300S): True for both -ms and -msx.
9793         (TARGET_H8300SX): New macro.
9794         (TARGET_SWITCHES): Add entries for -msx and -mno-sx.
9795         * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx.
9796         * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx.
9797         * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx.
9798         [Temporary change.]
9799         2003-02-28  Alexandre Oliva  <aoliva@redhat.com>
9800         * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with
9801         16-bit pointers and 32-bit ints.
9802         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept
9803         CONST_DOUBLE with mode no wider than SImode.
9804         * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for
9805         output operand.
9806         2003-02-27  Alexandre Oliva  <aoliva@redhat.com>
9807         * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX
9808         or SUBREG thereof.
9809         * config/h8300/h8300.h (PREDICATE_CODES): Adjust.
9810         2003-02-22  Alexandre Oliva  <aoliva@redhat.com>
9811         * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode.
9812
9813 2004-05-28  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
9814
9815         * config.gcc (i[34567]86-*-mingw32*): Enable threads by default.
9816
9817 2004-07-07  Per Bothner  <per@bothner.com>
9818
9819         * flow.c (attempt_auto_inc):  Remove now-redundant PUT_CODE.
9820
9821 2004-07-07  Mike Stump  <mrs@apple.com>
9822
9823         * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore.
9824         * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name)
9825         (machopic_finish): Likewise.
9826
9827 2004-07-07  Richard Henderson  <rth@redhat.com>
9828
9829         * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look
9830         through any value-preserving cast.
9831
9832 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9833
9834         * function.c (assign_parm_find_data_types): Call
9835         FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined.
9836
9837 2004-07-07  Steven Bosscher  <stevenb@suse.de>
9838
9839         * tree-cfg.c (group_case_labels): Remove case labels that have
9840         the same target as the default case.
9841
9842 2004-07-07  Steven Bosscher  <stevenb@suse.de>
9843
9844         * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS
9845         regardless of DECL_LANG_SPECIFIC being present or not.
9846         * tree.h (DECL_NUM_STMTS): Purge.
9847
9848 2004-07-07  Andrew Pinski  <apinski@apple.com>
9849
9850         * configure: Regenerate with the right autoconf.
9851
9852 2004-07-07  David Edelsohn  <edelsohn@gnu.org>
9853
9854         * ifcvt.c (total_bb_rtx_cost): New function.
9855         (find_if_case_1): Compare rtx_cost of basic block to cost of
9856         BRANCH_COST insns.
9857         (find_if_case_2): Same.
9858
9859 2004-07-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9860
9861         PR target/10567
9862         * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch.
9863         (output_return): Likewise.
9864         (output_sibcall): Abort if !flag_delayed_branch.
9865         (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch.
9866         (emit_and_preserve): New function.
9867         (sparc_output_mi_thunk): Use it.  Honor flag_delayed_branch.  Emit an
9868         indirect jump to the thunked-to function if !flag_delayed_branch.
9869         * config/sparc/sparc.md (delayed_branch): New attribute.
9870         (load_pcrel_sym): Honor flag_delayed_branch.  Use above
9871         attribute to compute the length of the insn.
9872         (goto_handler_and_restore): Likewise.
9873
9874 2004-07-07  Andrew Pinski  <apinski@apple.com>
9875
9876         PR tree-optimization/15777
9877         * fold-const.c (fold_single_bit_test): Fold the x^1 expression.
9878
9879         * expr.c (expand_expr_real_1): Fix formating.
9880         BUFFER_REF and IN_EXPR are dead.
9881         * fold-const.c (non_lvalue): BUFFER_REF is dead.
9882         * tree-inline.c (estimate_num_insns_1): Likewise.
9883         * tree-pretty-print.c (dump_generic_node): BUFFER_REF,
9884         IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead.
9885         * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill.
9886
9887 2004-07-07  H.J. Lu  <hongjiu.lu@intel.com>
9888
9889         * collect2.c (dump_file): Don't call cplus_demangle if
9890         HAVE_LD_DEMANGLE is defined.
9891         (main): Pass "--demangle" to ld if no_demangle is not 0 and
9892         HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style
9893         if HAVE_LD_DEMANGLE is defined.
9894
9895         * configure.ac (--with-demangler-in-ld): Added
9896         (HAVE_LD_DEMANGLE): Define if ld supports --demangle when
9897         --with-demangler-in-ld is used.
9898         * config.in: Regenerated.
9899         * configure: Likewise.
9900
9901 2004-07-07  Roger Sayle  <roger@eyesopen.com>
9902
9903         * config/rs6000/rs6000.c (struct processor_costs): Add new fields
9904         for simple floating point operations "fp", double precision
9905         multiplication "dmul", and single and double precision division
9906         "sdiv" and "ddiv".  Update all CPU variant tables as appropriate.
9907         (ppc630_cost): New table split from ppc620_cost, to distinguish
9908         differences in floating point latencies.
9909         (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630.
9910         (rs6000_rtx_costs): Add support for single and double precision
9911         floating point addition, subtraction, multiplication, division,
9912         fused-multiply-add, fused-multiply-sub, negation, absolute value
9913         and negative absolute value.  Tweak MEM case to use prefered idiom.
9914
9915 2004-07-07  Richard Henderson  <rth@redhat.com>
9916
9917         * tree-flow-inline.h (may_propagate_copy): Move...
9918         * tree-ssa-copy.c (may_propagate_copy): ... here.  Fail if we
9919         attempt to copy between types requiring conversion.
9920         * tree-flow.h (may_propagate_copy): Update decl.
9921         * tree-ssa-dom.c (cprop_operand): Tidy redundant tests.
9922
9923 2004-07-07  Jakub Jelinek  <jakub@redhat.com>
9924
9925         * config/i386/i386.c (override_options): Don't set x86_prefetch_sse
9926         from -mtune= option.
9927
9928 2004-07-07  Alexandre Oliva  <aoliva@redhat.com>
9929
9930         * builtins.c: Rename movstr*, except for movstrict*, to
9931         movmem* and clrstr* to clrmem*.
9932         * expr.c: Likewise.
9933         * expr.h: Likewise.
9934         * genopinit.c: Likewise.
9935         * integrate.c: Likewise.
9936         * local-alloc.c: Likewise.
9937         * optabs.c: Likewise.
9938         * optabs.h: Likewise.
9939         * config/alpha/alpha.h: Likewise.
9940         * config/alpha/alpha.md: Likewise.
9941         * config/arm/arm-protos.h: Likewise.
9942         * config/arm/arm.c: Likewise.
9943         * config/arm/arm.md: Likewise.
9944         * config/avr/avr.md: Likewise.
9945         * config/c4x/c4x.c: Likewise.
9946         * config/c4x/c4x.md: Likewise.
9947         * config/frv/frv.md: Likewise.
9948         * config/i386/i386-protos.h: Likewise.
9949         * config/i386/i386.c: Likewise.
9950         * config/i386/i386.h: Likewise.
9951         * config/i386/i386.md: Likewise.
9952         * config/i860/i860.c: Likewise.
9953         * config/i860/i860.md: Likewise.
9954         * config/ip2k/ip2k.md: Likewise.
9955         * config/ip2k/libgcc.S: Likewise.
9956         * config/ip2k/t-ip2k: Likewise.
9957         * config/m32r/m32r.c: Likewise.
9958         * config/m32r/m32r.md: Likewise.
9959         * config/mcore/mcore.md: Likewise.
9960         * config/mips/mips.c: Likewise.
9961         * config/mips/mips.md: Likewise.
9962         * config/ns32k/ns32k.c: Likewise.
9963         * config/ns32k/ns32k.h: Likewise.
9964         * config/ns32k/ns32k.md: Likewise.
9965         * config/pa/pa.c: Likewise.
9966         * config/pa/pa.md: Likewise.
9967         * config/pdp11/pdp11.h: Likewise.
9968         * config/pdp11/pdp11.md: Likewise.
9969         * config/rs6000/rs6000.c: Likewise.
9970         * config/rs6000/rs6000.md: Likewise.
9971         * config/s390/s390-protos.h: Likewise.
9972         * config/s390/s390.c: Likewise.
9973         * config/s390/s390.md: Likewise.
9974         * config/sh/lib1funcs.asm: Likewise.
9975         * config/sh/sh.c: Likewise.
9976         * config/sh/sh.md: Likewise.
9977         * config/sh/t-sh: Likewise.
9978         * config/sparc/sparc.h: Likewise.
9979         * config/vax/vax.md: Likewise.
9980         * config/xtensa/xtensa.c: Likewise.
9981         * config/xtensa/xtensa.md: Likewise.
9982         * doc/invoke.texi: Likewise.
9983         * doc/md.texi: Likewise.
9984         * doc/rtl.texi: Likewise.
9985
9986 2004-07-07  Richard Sandiford  <rsandifo@redhat.com>
9987
9988         PR target/16407
9989         * config/mips/mips-protos.h (mips_declare_common_object): Declare.
9990         * config/mips/mips.c (mips_declare_common_object): New function,
9991         mostly split out from...
9992         (mips_output_aligned_decl_common): ...here.
9993         * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of...
9994         (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition.
9995         * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this
9996         rather than ASM_OUTPUT_LOCAL.  Call mips_declare_common_object.
9997
9998 2004-07-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9999
10000         PR c/16392
10001         * function.c (assign_parms): Fix typo from previous change.
10002
10003 2004-07-07  Jason Merrill  <jason@redhat.com>
10004
10005         PR c++/15815
10006         * doc/extend.texi (C++ Interface): Correct information and
10007         discourage use.
10008
10009 2004-07-07  Vladimir Makarov  <vmakarov@redhat.com>
10010
10011         PR target/16130
10012         PR target/16142
10013         PR target/16143
10014         * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm
10015         insn.
10016
10017 2004-07-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10018
10019         PR target/1679.
10020         * config/m32r/m32r.c (m32r_function_symbol): New function:
10021         Generate a symbol name RTX with the correct m32r specific flags
10022         set.
10023         (block_move_call): Use new function to generate correct symbol.
10024         * config/m32r/m32r-protos.h: Add prototype for new funcion.
10025         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new
10026         function.
10027
10028 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
10029
10030         * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE,
10031         TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES,
10032         TYPE_BINFO_BASETYPE): Remove.
10033         (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename
10034         to ...
10035         (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ...
10036         here.
10037         (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ...
10038         (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here.
10039         (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used.
10040         (struct tree_binfo): Rename base_types to base_binfos.
10041         * alias.c (record_component_aliases): Adjust BINFO macros.
10042         * dbxout.c (dbxout_type): Likewise.
10043         * dwarf2out.c (gen_member_die): Likewise.
10044         * sdbout.c (sdbout_one_type): Likewise.
10045         * tree-dump.c (deque_and_dump): Likewise.
10046         * config/i386/i386.c (classify_argument,
10047         contains_128bit_aligned_vector_p): Likewise.
10048
10049 2004-07-07  Nick Clifton  <nickc@redhat.com>
10050
10051         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change
10052         arguments to match TARGET_SETUP_INCOMING_VARARGS prototype.
10053
10054 2004-07-07  Nathan Sidwell  <nathan@codesourcery.com>
10055
10056         * vec.h: Fix the example use.
10057
10058 2004-07-06  Richard Henderson  <rth@redhat.com>
10059
10060         * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove.
10061         * langhooks.h (struct lang_hooks): Remove gimple_before_inlining.
10062         * tree-inline.c (copy_body_r, setup_one_parameter,
10063         initialize_inlined_parameters, expand_call_inline,
10064         declare_inline_vars): Don't check it.
10065         (expand_calls_inline): Remove old version, rename new version
10066         from gimple_expand_calls_inline.
10067         * tree-optimize.c (execute_gimple): Remove.
10068         (pass_gimple): Don't run anything.
10069
10070 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
10071
10072         * doc/sourcebuild.texi: Use semicolons instead of commas in
10073         section title.
10074
10075 2004-07-06  Richard Henderson  <rth@redhat.com>
10076
10077         * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change.
10078         (sra_walk_modify_expr, scan_init): Likewise.
10079         (generate_element_zero): Check visited before scanning children.
10080         (generate_element_init): Set visited on error.
10081         (scalarize_init): Handle generate_element_init failure similar
10082         to use_block_copy.
10083
10084 2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
10085
10086         * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
10087         (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
10088
10089 2004-07-06  Richard Henderson  <rth@redhat.com>
10090
10091         * config/i386/i386.c (legitimize_pic_address): Make static.
10092         (legitimize_address): Handle CONST with TLS operand.
10093         (ix86_expand_move): Don't call legitimize_pic_address directly.
10094         * config/i386/i386-protos.h (legitimize_pic_address): Remove.
10095
10096 2004-07-06  Roger Sayle  <roger@eyesopen.com>
10097
10098         * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field.
10099         (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway.
10100         (noce_process_if_block): Initialize if_info.b_unconditional if insn_b
10101         is currently executed unconditionally, i.e. not in "else_bb".
10102
10103 2004-07-06  Steven Bosscher  <stevenb@suse.de>
10104
10105         * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove.
10106         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10107         * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove.
10108         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10109         * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove.
10110         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10111         * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove.
10112         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10113         * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove.
10114         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10115         * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove.
10116         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10117         * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove.
10118         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10119         * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove.
10120         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1.
10121
10122 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
10123
10124         * dojump.c (do_jump): REFERENCE_EXPR is dead.
10125         * expr.c (expand_expr_real_1): Ditto.
10126         * tree-inline.c (estimate_num_insns_1): Ditto.
10127         * tree-pretty-print.c (dump_generic_node): Ditto.
10128         (op_symbol): Ditto.
10129         * tree.def: Ditto.
10130
10131 2004-07-06  Daniel Berlin  <dberlin@dberlin.org>
10132
10133         * tree-ssa-pre.c (reference_node_pool): New pool.
10134         (find_or_generate_expression): Class 'r' is okay too.
10135         (create_value_expr_from): Ditto.
10136         (add_to_sets): LHS should not include vuses.
10137         (eliminate): Ditto.
10138         (compute_avail): Reverse ordering of tests.
10139         Valuize INDIRECT_REF as well.
10140
10141 2004-07-06  Richard Sandiford  <rsandifo@redhat.com>
10142
10143         PR rtl-optimization/16380
10144         * loop.c (check_dbra_loop): Sink comparison instructions if they
10145         do something other than set cc0.
10146
10147 2004-07-06  James E Wilson  <wilson@specifixinc.com>
10148
10149         * doc/interface.texi (longjmp and automatic variables): Delete
10150         paragraph recommending taking the address of a variable.
10151
10152 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
10153
10154         * vec.h (VEC_embedded_alloc): Remove.
10155         (VEC_embedded_size, VEC_embedded_init): New.
10156         (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add
10157         MEM_STAT_INFO.
10158         (VEC_truncate): New.
10159         (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL.
10160         (vec_embedded_alloc): Remove.
10161         * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust.
10162         (vec_embedded_alloc): Remove.
10163
10164 2004-07-06  Mark Mitchell  <mark@codesourcery.com>
10165
10166         * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h.
10167         (gt-langhooks.h): Remove.
10168
10169 2004-07-06  George Helffrich <george@gly.bris.ac.uk>
10170
10171         * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo.
10172
10173 2004-07-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
10174
10175         * config/sparc/sparc.c (get_pc_symbol): Rename into
10176         add_pc_to_pic_symbol.
10177         (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name.
10178         (load_pic_register): Account for previous changes.
10179         Use reg_names.  Don't create the label twice.
10180         * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into
10181         UNSPEC_LOAD_PCREL_SYM.
10182         (get_pc): Rename into load_pcrel_sym.  Add predicate to
10183         operands.  Remove condition.
10184
10185 2004-07-06  Nathan Sidwell  <nathan@codesourcery.com>
10186
10187         * dbxout.c (dbxout_type): Don't test whether the binfo slot of
10188         RECORD, UNION & QUAL_UNION is actually a binfo.
10189
10190         * tree.h (TREE_VIA_VIRTUAL): Rename to ...
10191         (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only.
10192         (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags.
10193         * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P.
10194         * dwarf2out.c (add_data_member_location_attribute): Likewise.
10195         (gen_inheritance_die): Likewise.
10196         * tree-dump.c (deque_and_dump): Likewise.
10197         * doc/c-tree.texi (Binfos): Add under reconstruction note.
10198
10199 2004-07-06  Steven Bosscher  <stevenb@suse.de>
10200
10201         * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
10202         Define.
10203         * config/mcore/mcore.md: Model memory latency with a simple DFA
10204         pipeline description instead of a define_function_unit.
10205
10206 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10207
10208         * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg.
10209         * langhooks.h (var_mod_type_p): Likewise.
10210         * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p.
10211         * expr.c (count_type_elements): Properly handle return from
10212         array_type_nelts and properly test for overflow.
10213         * gimplify.c (gimplify_init_constructor): Properly handle return
10214         from array_type_nelts.
10215         (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS.
10216         * integrate.c (copy_decl_for_inlining): Correct comments.
10217         * tree-inline.c (remap_decl): Update comments, remove dead code,
10218         and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist.
10219         (remap_type): Only remap if variably modified by vars in function
10220         being inlined.
10221         (copy_body_r): Use compatible_type langhooks to see when can fold.
10222         (setup_one_parameter): Don't remap type.
10223         (inline_forbidden_p_1): Add arg to variably_modified_type_p.
10224         * tree.c (recompute_tree_invarant_for_addr_expr): Properly
10225         compute TREE_INVARIANT for decl case.
10226         (find_var_from_fn): New function.
10227         (variably_modified_type_p): Add arg and call new function.
10228         * tree.h (variably_modified_type_p): Add extra arg.
10229
10230 2004-07-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10231
10232         * config/sparc/sparc.md (nonlocal_goto): Remove disabled code.
10233         (goto_handler_and_restore_v9): Delete disabled insn.
10234         (goto_handler_and_restore_v9_sp64): Likewise.
10235
10236 2004-07-05  Roger Sayle  <roger@eyesopen.com>
10237
10238         * calls.c (load_register_parameters): Call expand_shift instead
10239         of expand_binop with ashl_optab (or other shift optab) directly.
10240         * expr.c (emit_group_load, emit_group_store): Likewise.
10241         * function.c (assign_parm_setup_block): Likewise.
10242         * stmt.c (shift_return_value): Likewise.
10243
10244 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
10245
10246         * expr.c (expand_assignment): Disable the bitfield += optimizations.
10247
10248 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10249
10250         * doc/sourcebuild.texi: Revert previous patch.
10251
10252 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10253
10254         * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check
10255         TARGET_MEM_FUNCTIONS.
10256         * system.h: Poison TARGET_MEM_FUNCTIONS.
10257         * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc,
10258         bcmp_libfunc, bzero_libfunc): Remove.
10259         * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or
10260         bzero_libfunc.
10261         * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove.
10262         * doc/standards.texi: Don't mention calling BSD string functions.
10263         * doc/invoke.texi: Likewise.  Mention that memmove may be called.
10264         * config/vax/t-memfuncs: New.
10265         * config/memcmp.c, config/memcpy.c, config/memmove.c,
10266         config/memset.c: New.
10267         * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files.
10268         * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use
10269         vax/t-memfuncs.
10270         * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h,
10271         config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h,
10272         config/elfos.h, config/gnu.h, config/h8300/h8300.h,
10273         config/i386/gas.h, config/ia64/ia64.h, config/interix.h,
10274         config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h,
10275         config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h,
10276         config/netbsd.h, config/openbsd.h, config/pa/pa.h,
10277         config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h,
10278         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
10279         config/svr3.h: Don't define TARGET_MEM_FUNCTIONS.
10280
10281 2004-07-05  Richard Henderson  <rth@redhat.com>
10282
10283         * function.c (assign_parm_setup_reg): Properly rename variables in
10284         FUNCTION_ARG_CALLEE_COPIES section.
10285
10286 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
10287
10288         * tree-mudflap.c: Include cgraph.h.
10289         (mf_init_extern_trees): Rename to mudflap_init.  Export.
10290         Rewrite to create synthetic declarations instead of looking
10291         up declarations from mf-runtime.h.
10292         (mf_make_builtin, mf_make_cache_struct_type): New functions.
10293         (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl):
10294         Correct commentary.
10295         (execute_mudflap_function_decls, mudflap_register_call):
10296         Don't call mf_init_extern_trees.
10297         (mudflap_finish_file): Use cgraph_build_static_cdtor.
10298
10299         * tree-mudflap.h: Update prototypes.
10300         * c-mudflap.c: Delete file.
10301         * c-common.c: Include tree-mudflap.h.
10302         (c_common_nodes_and_builtins): Call mudflap_init if appropriate.
10303         * Makefile.in: Remove all references to c-mudflap.o.
10304         Update dependencies.
10305
10306 2004-07-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10307
10308         * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short
10309         displacements with the spatial-locality cache-control completer.
10310
10311 2004-07-05  Zack Weinberg  <zack@codesourcery.com>
10312
10313         * langhooks.c: Don't include gt-langhooks.h.
10314         (var_labelno): Delete.
10315         (lhd_set_decl_assembler_name): Do not append a distinguishing
10316         number to file-scope internal-linkage declarations for the first
10317         input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
10318         the declaration itself (if at block scope), or its containing
10319         TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
10320         number.
10321
10322         * opts.c (cur_in_fname): New global.
10323         * opts.h: Declare it.
10324         * tree.c: Include opts.h.
10325         (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
10326         DECL_UID equal to cur_in_fname.
10327         (copy_node_stat): Do not change DECL_UID when copying a
10328         TRANSLATION_UNIT_DECL.
10329         (build_common_tree_nodes): Adjust next_decl_uid to reserve the
10330         range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
10331
10332         * c-decl.c (c_static_assembler_name): Delete.
10333         * c-tree.h (c_static_assembler_name): Delete prototype.
10334         * c-lang.c, objc/objc-lang.c: Don't override
10335         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
10336
10337         * Makefile.in (tree.o): Update dependencies.
10338         (GTFILES): Remove langhooks.c.
10339
10340 2004-07-05  Roger Sayle  <roger@eyesopen.com>
10341
10342         * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
10343         by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
10344         Normalize "X % C" as "X % -C" for signed modulus and negative C.
10345         Optimize "X % -Y" as "X % Y" for signed modulus.
10346         <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
10347         into "((unsigned) X % Y) == 0".
10348
10349 2004-07-05  Joseph S. Myers  <jsm@polyomino.org.uk>
10350
10351         * sourcebuild.texi (Config Fragments): Use @comma{} in
10352         cross-reference to section title.
10353
10354 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10355
10356         * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro.
10357         * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it.
10358         (gimplify_target_expr, gimplify_expr): Likewise.
10359         (copy_if_shared_r): No longer need special case for BIND_EXPR.
10360         (unshare_body, unvisit_body): Only look at nested if BODY_P is
10361         whole function.
10362         (gimplify_compound_lval): See if we can strip any useless conversion.
10363         (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size
10364         from RHS, not LHS.
10365         (gimplify_modify_expr_to_memset): Likewise.
10366         (gimplify_expr, case CONSTRUCTOR): Handle use as statement.
10367         * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P.
10368         (declare_inline_vars): Likewise.
10369         (walk_type_fields): New function.
10370         (walk_tree): Use it.
10371         * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR.
10372
10373         * tree-sra.c (struct sra_walk_fns): Init function now returns bool.
10374         (sra_walk_modify_expr): Allow init function to fail.
10375         (scan_init): Now returns bool.
10376         (generate_element_init): If can't understand INIT, return false.
10377         (scalarize_init): Return false if generate_element_init does.
10378
10379         * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly
10380         print bounds.
10381
10382         * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against
10383         bounds if bounds aren't constant.
10384
10385         * tree-cfg.c (verify_expr): Use CHECK_OP in binary case.
10386
10387         * function.c, langhooks-def.h, langhooks.h: Move max_size hook
10388         to type hooks; remove bogus PARAMS.
10389
10390 2004-07-05  Nathan Sidwell  <nathan@codesourcery.com>
10391
10392         * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
10393         * dwarf2out.c (add_data_member_location_attribute): Check for
10394         TREE_BINFO.
10395         * tree.c (tree_node_kinds): Add "binfos".
10396         (binfo_lang_slots): New.
10397         (make_node_stat): Add TREE_BINFO.
10398         (make_tree_binfo_stat): New.
10399         (tree_node_structure): Add TREE_BINFO.
10400         * tree.def (TREE_BINFO): New.
10401         * tree.h (REC_OR_UNION_CHECK): Rename to ...
10402         (RECORD_OR_UNION_CHECK): ... here.
10403         (NOT_RECORD_OR_UNION_CHECK): New.
10404         (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
10405         (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
10406         RECORD_OR_UNION_CHECK.
10407         (TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
10408         (TYPE_LANG_SLOT_1): New.
10409         (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
10410         BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
10411         BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
10412         (BINFO_ELTS): Remove.
10413         (BINFO_LANG_SLOT): New.
10414         (struct tree_binfo): New.
10415         (binfo_lang_slots): Declare.
10416         (enum tree_node_structure_enum): Add TS_BINFO.
10417         (union tree_node): Add binfo.
10418         (make_tree_binfo_stat): Declare.
10419         (make_tree_binfo): New.
10420         (enum tree_node_kind): Add binfo_kind.
10421
10422         * objc/objc-act.c (start_class, objc_declare_protocols,
10423         start_protocols): Use TYPE_LANG_SLOT_1.
10424         * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
10425         to ...
10426         (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
10427         (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
10428         CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
10429         PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
10430
10431 2004-07-05  Steven Bosscher  <stevenb@suse.de>
10432
10433         * rtl.h (struct rtx_def): Remove the integrated flag.
10434         Use the return_val flag for MEM_SCALAR_P.
10435         Reshuffle and update flags in CLEAR_RTX_FLAGS.
10436
10437 2004-07-05  Richard Sandiford  <rsandifo@redhat.com>
10438
10439         PR target/16357
10440         * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs
10441         to mips_expand_unaligned_load, mips_expand_unaligned_store, and
10442         move_by_pieces.
10443
10444 2004-07-05  Josef Zlomek  <zlomekj@suse.cz>
10445
10446         * var-tracking.c: Fix some comments.
10447         (frame_stack_adjust): New.
10448         (vt_stack_adjustments): Init stack_adjust of entry block to
10449         minus stack adjustment of function prologue.
10450         (adjust_stack_reference): Do not adjust if adjustment == 0.
10451         (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS.
10452         (emit_notes_in_bb): Likewise.
10453         (vt_add_function_parameters): Do not adjust locations of
10454         function arguments.
10455         (vt_initialize): Compute the stack adjustment of function
10456         prologue and offset the initial "location" of frame_base_decl
10457         from the stack pointer after prologue.
10458
10459 2004-07-04  Richard Henderson  <rth@redhat.com>
10460
10461         * function.c (struct assign_parm_data_all): New.
10462         (struct assign_parm_data_one): New.
10463         (assign_parms_initialize_all, assign_parms_augmented_arg_list,
10464         assign_parm_find_data_types, assign_parms_setup_varargs,
10465         assign_parm_find_entry_rtl, assign_parm_is_stack_parm,
10466         assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl,
10467         assign_parm_adjust_stack_rtl, assign_parm_setup_block_p,
10468         assign_parm_setup_block, assign_parm_setup_reg,
10469         assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ...
10470         (assign_parms): ... here.
10471
10472 2004-07-04  Daniel Berlin  <dberlin@dberlin.org>
10473
10474         * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets
10475         now are bitmap_set_t's.
10476         (bitmap_insert_into_set): No point in inserting the value if
10477         it's invariant.
10478         (bitmap_set_contains): New function.
10479         (bitmap_set_replace_value): Add comment on why we do it
10480         this way.
10481         (set_contains): Removed.
10482         (bitmap_set_subtract_from_value_set): New name of
10483         set_subtract now that it's arguments are two different
10484         types of sets.
10485         Update callers.
10486         (bitmap_find_leader): Change algorithm used.
10487         (find_or_generate_expression): Update use of functions for new
10488         bitmap sets.
10489         (create_expression_by_pieces): Ditto.
10490         (insert_aux): Ditto.
10491         (insert): Ditto.
10492         (add_to_sets): Ditto.
10493         (init_pre): Ditto.
10494         (execute_pre): Ditto.
10495         (compute_avail): Ditto.
10496         Also ignore virtual phis.
10497
10498 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
10499
10500         * combine.c (simplify_comparison): Fix comment typo.
10501
10502 2004-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10503
10504         * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename
10505         into LEAF_SIBCALL_SLOT_RESERVED_P after negation.
10506         (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P.
10507         (output_restore): Change parameter from 'insn' to 'pat'.
10508         (output_return): Adjust call to output_restore.
10509         (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P.
10510         Adjust call to output_restore.
10511
10512 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
10513
10514         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__
10515         and assert system is bsd.
10516
10517 2004-07-04  Richard Sandiford  <rsandifo@redhat.com>
10518
10519         * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete.
10520         (TARGET_SWITCHES): Remove -mdebugc.
10521         * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu)
10522         (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling.
10523         (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i)
10524         (sle_[sd]i_reg): Delete.
10525
10526 2004-07-04  Steven Bosscher  <stevenb@suse.de>
10527
10528         * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
10529         Define.
10530         * config/iq2000/iq2000.md: Translate old pipeline description to an
10531         equivalent new one.
10532
10533 2004-07-04  Roger Sayle  <roger@eyesopen.com>
10534
10535         * tree-ssa-ccp.c (set_rhs): Change function to return a bool.
10536         Ensure the replacement rhs is valid gimple before performing
10537         the substitution.  Return false if these sanity checks fail.
10538         (fold_stmt): Only set changed to true, if set_rhs returns true.
10539         (execute_fold_all_builtins): Only call modify_stmt if set_rhs
10540         succeeds.
10541
10542 2004-07-04  Richard Henderson  <rth@redhat.com>
10543
10544         PR c/16348
10545         * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops.
10546
10547 2004-07-04  Mark Mitchell  <mark@codesourcery.com>
10548
10549         * configure.ac (ranlib_flags): New variable.
10550         * Makefile.in (RANLIB_FLAGS): New variable.
10551         (libbackend.a): Use it.
10552         * configure: Regenerated.
10553
10554 2004-07-04  Roger Sayle  <roger@eyesopen.com>
10555
10556         * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate
10557         a "sign mask" instead of using ashr_optab directly.
10558
10559 2004-07-04  Neil Booth  <neil@duron.akihabara.co.uk>
10560
10561         * doc/cpp.texi: Don't document what we do for ill-formed expressions.
10562         * doc/cppopts.texi: Clarify processing of command-line defines.
10563
10564 2004-07-04  Gerald Pfeifer  <gerald@pfeifer.com>
10565
10566         * doc/contrib.texi (Contributors): Adjust link for GNU Classpath.
10567
10568 2004-07-04  Richard Henderson  <rth@redhat.com>
10569
10570         * rtl.def (ADDRESSOF): Remove.
10571         * alias.c (rtx_equal_for_memref_p): Don't handle addressof.
10572         (find_base_term, memrefs_conflict_p): Likewise.
10573         * cse.c (fixed_base_plus_p, find_best_addr: Likewise.
10574         (fold_rtx, cse_insn, set_live_p): Likewise.
10575         * dwarf2out.c (mem_loc_descriptor): Likewise.
10576         (add_location_or_const_value_attribute): Likewise.
10577         * emit-rtl.c (copy_insn_1): Likewise.
10578         * explow.c (memory_address): Likewise.
10579         * expmed.c (store_split_bit_field): Likewise.
10580         * expr.c (expand_expr_real_1): Likewise.
10581         * function.c (instantiate_decl
10582         (instantiate_virtual_regs_1, fix_lexical_addr): Likewise.
10583         * genrecog.c (preds, validate_pattern): Likewise.
10584         * integrate.c (copy_rtx_and_substitute): Likewise.
10585         * recog.c (general_operand, register_operand): Likewise.
10586         (memory_address_p): Likwise.
10587         * reload1.c (eliminate_regs, elimination_effects): Likewise.
10588         * rtl.c (copy_rtx): Likewise.
10589         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise.
10590         (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise.
10591         * rtlhooks.c (gen_lowpart_general): Likewise.
10592         * stmt.c (expand_asm_operands): Likewise.
10593         * web.c (entry_register, replace_ref, web_main): Likewise.
10594         * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p,
10595         alpha_expand_block_move, alpha_expand_block_clear): Likewise.
10596         * config/arm/arm.c (thumb_rtx_costs): Likewise.
10597         * config/c4x/c4x.c (c4x_valid_operands): Likewise.
10598         * config/frv/frv.c (move_destination_operand, move_source_operand,
10599         condexec_dest_operand, condexec_source_operand,
10600         condexec_memory_operand): Likewise.
10601         * config/h8300/h8300.h (PREDICATE_CODES): Likewise.
10602         * config/ia64/ia64.c (general_xfmode_operand): Likewise.
10603         (destination_xfmode_operand): Likewise.
10604         * config/mips/mips.h (PREDICATE_CODES): Likewise.
10605         * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise.
10606         * config/s390/s390.c (general_s_operand): Likewise.
10607         * config/s390/s390.md (mov*): Likewise.
10608         * config/sparc/sparc.h (PREDICATE_CODES): Likewise.
10609
10610         * c-typeck.c (c_mark_addressable): Don't put_var_into_stack.
10611         * expr.c (expand_expr_real_1): Likewise.
10612         * stmt.c (expand_decl): Likewise.
10613         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
10614
10615         * function.c (struct fixup_replacement, struct insns_for_mem_entry,
10616         postponed_insns, put_var_into_stack, put_reg_into_stack,
10617         schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement,
10618         fixup_var_refs_insns, fixup_var_refs_insns_with_hash,
10619         fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg,
10620         walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field,
10621         gen_mem_addressof, flush_addressof, put_addressof_into_stack,
10622         purge_bitfield_addressof_replacements, purge_addressof_replacements,
10623         purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp,
10624         struct insns_for_mem_walk_info, insns_for_mem_walk,
10625         compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect,
10626         setjmp_protect_args): Remove.
10627         (push_function_context_to): Don't handle var_refs_queue.
10628         (pop_function_context_from, free_after_compilation): Likewise.
10629         (instantiate_virtual_regs): Don't handle parm_reg_stack_loc.
10630         (assign_parms, allocate_struct_function): Likewise.
10631         (use_register_for_decl): New.
10632         (expand_function_end): Don't setjmp_protect.
10633         * function.h (struct emit_status): Update commentary.
10634         (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc.
10635         (max_parm_reg, parm_reg_stack_loc): Remove.
10636         * passes.c (DFI_addressof): Remove.
10637         (dump_file_info): Remove addressof.
10638         (rest_of_handle_addressof): Remove.
10639         (rest_of_compilation): Don't call it.
10640         * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove.
10641         * stmt.c (expand_decl): Use use_register_for_decl.
10642         * tree.h: Update decls.
10643         * web.c (mark_addressof): Remove.
10644         * doc/invoke.texi (-dF): Remove.
10645
10646 2004-07-03  Richard Henderson  <rth@redhat.com>
10647
10648         * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp
10649         instead of gen_mem_addressof.
10650         * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle
10651         TImode output register.
10652
10653 2004-07-03  Richard Henderson  <rth@redhat.com>
10654
10655         PR tree-optimization/16341
10656         * tree-sra.c (sra_walk_function): Increment to next stmt before
10657         processing the current stmt.
10658         (sra_insert_after): Always use BSI_SAME_STMT.
10659
10660 2004-07-03  Richard Henderson  <rth@redhat.com>
10661
10662         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold
10663         fp plus with minus.
10664
10665 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
10666
10667         * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal
10668         with tree_int_cst_equal.
10669
10670 2004-07-03  Andreas Schwab  <schwab@suse.de>
10671
10672         * config/ia64/ia64.md: Define new attribute "empty".
10673         (prologue_use, nop_x, insn_group_barrier): Set it.
10674
10675         * config/ia64/ia64.c (ia64_reorg): When looking for trailing call
10676         skip over "empty" insns.
10677
10678 2004-07-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10679
10680         * tree-inline.c (initialize_inlined_parameters): Pass proper function
10681         context to gimplify_body.
10682         (walk_tree): Don't walk into types twice.
10683         (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers.
10684
10685         * tree-sra.c (generate_element_init): Remove any useless conversions.
10686
10687         * gimplify.c (gimplify_conversion): Remove stripping useless
10688         conversions from here.
10689         (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS.
10690         (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare):
10691         Unshare before substituting PLACEHOLDER_EXPR.
10692         (gimplify_modify_expr_to_memset): Likewise.
10693         Pass address of TO to memset, not TO itself.
10694         (gimplify_init_constructor): Make copy of OBJECT so we have it each
10695         time we make an expression (to match a PLACEHOLDER_EXPR).
10696
10697         * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at
10698         VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.
10699         * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION.
10700         * tree-ssa-dom.c (local_fold): Likewise.
10701
10702         * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook.
10703         * langhooks.h (strct lang_hooks): New field type_max_size.
10704         * function.c (assign_temp): Call it.
10705
10706 2004-07-03  Steven Bosscher  <stevenb@suse.de>
10707
10708         * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1.
10709         * config/sh/sh.md: Convert the SH1 pipeline description to
10710         a DFA model.
10711
10712 2004-07-02  Zack Weinberg  <zack@codesourcery.com>
10713
10714         * c-decl.c (struct c_binding): Remove contour field; add
10715         depth, invisible, nested fields.
10716         (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE)
10717         (B_IN_EXTERNAL_SCOPE): New convenience macros.
10718         (bind): Add invisible and nested arguments. Initialize
10719         new fields of struct c_binding; adjust loop scanning for
10720         insertion point.
10721         (free_binding_and_advance): Clear structure with memset.
10722         (pop_scope): Adjust to match.  Set DECL_CONTEXT on everything
10723         in file scope, even if it's in external scope too.
10724         (pushdecl): Adjust to match.  Create invisible file-scope
10725         declarations for block-scope forward declarations of static functions.
10726         (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare)
10727         (undeclared_variable, lookup_label, declare_label, define_label)
10728         (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function)
10729         (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value)
10730         (store_parm_decls_oldstyle): Adjust to match.
10731         (diagnose_mismatched_decls): Correct handling of linkage clashes.
10732         (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE.
10733
10734         * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete.
10735         (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one.
10736
10737 2004-07-02  Richard Henderson  <rth@redhat.com>
10738
10739         * c-decl.c (grokdeclarator): Don't frob current_function_decl
10740         around variable_size.
10741         (set_decl_nonlocal): Remove.
10742         (store_parm_decls): Add stmts for pending sizes.
10743         * calls.c (calls_function, calls_function_1): Remove.
10744         (precompute_arguments): Don't call it.
10745         * cfgexpand.c (set_save_expr_context): Remove.
10746         (tree_expand_cfg): Don't call it.
10747         * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR.
10748         (dwarf2out_finish): Likewise.
10749         * expr.c (emit_block_move): Adjust addresses to BLKmode.
10750         (store_constructor): Don't pre-evaluate SAVE_EXPR.
10751         (safe_from_p): Don't queue SAVE_EXPRs.
10752         (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect,
10753         or build plain VAR_DECLs.
10754         * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL.
10755         (fold): Likewise.
10756         (fold_checksum_tree): Don't special-case SAVE_EXPR.
10757         * function.c (free_after_compilation): Don't clear x_save_expr_regs.
10758         (put_var_into_stack): Don't handle SAVE_EXPR.
10759         (gen_mem_addressof): Likewise.
10760         * function.h (struct function): Remove x_save_expr_regs.
10761         (save_expr_regs): Remove.
10762         * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR.
10763         * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER.
10764         * stor-layout.c (variable_size): Don't set it.
10765         (force_type_save_exprs, force_type_save_exprs_1): Remove.
10766         * tree-inline.c (remap_save_expr): Remove fn argument.  Update
10767         all callers.  Don't set SAVE_EXPR_CONTEXT.
10768         * tree-inline.h (remap_save_expr): Update decl.
10769         * tree.c (save_expr): Update build size.
10770         (first_rtl_op): Don't handle SAVE_EXPR.
10771         (unsave_expr_1, contains_placeholder_p): Likewise.
10772         (decl_function_context): Likewise.
10773         * tree.def (SAVE_EXPR): Remove args 1 and 2.
10774         * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove.
10775         (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove.
10776
10777 2004-07-03  Joseph S. Myers  <jsm@polyomino.org.uk>
10778
10779         * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi,
10780         doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi,
10781         doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi,
10782         doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid
10783         some first-person references and patronizing comments.  Based on
10784         printed manual.
10785         * doc/invoke.texi: Don't reference fortran@gnu.org.
10786         * doc/trouble.texi (Warning when a non-void function value is
10787         ignored): Rewrite.  From Russ Allbery and Chris Devers.
10788
10789 2004-07-02  Daniel Berlin  <dberlin@dberlin.org)
10790
10791         * tree-ssa-pre.c (bitmap_set_t): New.
10792         (bb_value_sets): avail_out is now a bitmap_set_t.
10793         (bitmap_find_leader): New function.
10794         (bitmap_value_insert_into_set): Ditto.
10795         (bitmap_set_copy): Ditto.
10796         (bitmap_value_replace_in_set): Ditto.
10797         (bitmap_set_contains_value): Ditto.
10798         (bitmap_set_new): Ditto.
10799         (bitmap_set_pool): New pool.
10800         (find_or_generate_expression): Use bitmap_ functions on AVAIL sets.
10801         (insert_aux): Ditto.
10802         (add_to_sets): Ditto.
10803         (compute_avail): Ditto
10804         (eliminate): Ditto.
10805         (init_pre): Ditto.
10806         (fini_pre): Ditto.
10807         (execute_pre): Ditto.
10808
10809 2004-07-02  Roger Sayle  <roger@eyesopen.com>
10810
10811         * config/rs6000/rs6000.c (struct processor_costs): New structure
10812         used to hold instruction latencies/sizes for processor types.
10813         (rs6000_cost): New global variable pointing to current CPU's costs.
10814         (rs6000_override_options): Initialize rs6000_cost to point to the
10815         appropriate cost table based upon rs6000_cpu and optimize_size.
10816         (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor
10817         timings inline.
10818
10819 2004-07-02  Richard Henderson  <rth@redhat.com>
10820
10821         * expmed.c (make_tree): Don't use SET_DECL_RTL.
10822
10823 2004-07-02  Steven Bosscher  <stevenb@suse.de>
10824
10825         * tree-flow.h (bb_ann_d): Remove ephi_nodes field.
10826
10827 2004-07-01  Richard Henderson  <rth@redhat.com>
10828
10829         * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx.
10830         (alpha_gp_save_rtx): Use assign_stack_local instead of
10831         gen_mem_addressof.
10832
10833 2004-07-01  Richard Henderson  <rth@redhat.com>
10834
10835         * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div.
10836         (alpha_rtx_cost_data): Update to match.
10837         (alpha_rtx_cost_size): New.
10838         (alpha_rtx_costs): Honor optimize_size.
10839
10840 2004-07-01  Richard Henderson  <rth@redhat.com>
10841
10842         * gimple-low.c (lower_function_body): Don't reset_block_changes here.
10843         * cfgexpand.c (tree_expand_cfg): Do it here.
10844         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here.
10845         * config/ia64/ia64.c (ia64_output_mi_thunk): And here.
10846         * config/mips/mips.c (mips_output_mi_thunk): And here.
10847         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here.
10848         * config/sh/sh.c (sh_output_mi_thunk): And here.
10849         * config/sparc/sparc.c (sparc_output_mi_thunk): And here.
10850
10851 2004-07-01  Richard Henderson  <rth@redhat.com>
10852
10853         * tree.def (RTL_EXPR): Remove.
10854         * c-typeck.c (lvalue_p): Don't handle it.
10855         * expr.c (safe_from_p): Likewise.
10856         (expand_expr_real_1): Likewise.
10857         * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
10858         (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
10859         * gengtype.c (adjust_field_tree_exp): Likewise.
10860         * stmt.c (warn_if_unused_value): Likewise.
10861         * tree-gimple.c (recalculate_side_effects): Likewise.
10862         * tree-pretty-print.c (dump_generic_node): Likewise.
10863         * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
10864         (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
10865         * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.
10866
10867         * stmt.c (struct stmt_status): Remove x_last_expr_type,
10868         x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
10869         (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
10870         (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
10871         all the bits that tracked last_expr.
10872         (expand_end_bindings): Don't track last_expr.
10873         (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
10874         (clear_last_expr): Remove.
10875         (expand_asm): Don't call it.
10876         (expand_asm_operands, expand_end_cond): Likewise.
10877         (expand_naked_return, expand_null_return_1): Likewise.
10878         * c-typeck.c (c_begin_compound_stmt): Likewise.
10879         * cfgexpand.c (expand_block): Use expand_expr_stmt.
10880         * expr.c (expand_expr_real_1): Likewise.
10881         * tree.h: Update prototypes.
10882
10883         * function.h (struct sequence_stack): Remove sequence_rtl_expr.
10884         (struct emit_status): Remove sequence_rtl_expr.
10885         (struct function): Remove x_rtl_expr_chain.
10886         (seq_rtl_expr, rtl_expr_chain): Remove.
10887         * function.c (struct temp_slot): Remove rtl_expr.
10888         (assign_stack_temp_for_type): Don't set it.
10889         (free_temp_slots, pop_temp_slots): Don't check it.
10890         (free_after_compilation): Don't clear x_rtl_expr_chain.
10891         (fixup_var_refs): Don't search it.
10892         (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
10893         * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
10894         or seq_rtl_expr.
10895         (push_topmost_sequence): Likewise.
10896         (end_sequence, init_emit): Likewise.
10897         (start_sequence_for_rtl_expr): Remove.
10898         * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
10899         * rtl.h (preserve_rtl_expr_result): Remove.
10900
10901 2004-07-02  Kazu Hirata  <kazu@cs.umass.edu>
10902
10903         * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c,
10904         tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment
10905         typos.
10906
10907 2004-07-02  Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
10908
10909         * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define.
10910         (STANDARD_STARTFILE_PREFIX_2): Define.
10911         (standard_startfile_prefix_1): Initialize to
10912         STANDARD_STARTFILE_PREFIX_1.
10913         (standard_startfile_prefix_2): Initialize to
10914         STANDARD_STARTFILE_PREFIX_2.
10915         * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove.
10916         (STANDARD_STARTFILE_PREFIX_1): Define.
10917         (STANDARD_STARTFILE_PREFIX_2): Define.
10918         * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document.
10919         (STANDARD_STARTFILE_PREFIX_2): Document.
10920
10921 2004-07-01  Richard Henderson  <rth@redhat.com>
10922
10923         * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr
10924         in order to disable scalarization.  Instead set a flag and wait
10925         for a candidate decl.
10926
10927 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
10928
10929         * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi,
10930         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi:
10931         Use terminology "testsuite" and "enumerated".
10932
10933 2004-07-01  Richard Henderson  <rth@redhat.com>
10934
10935         * dwarf2out.c (reg_save): Use INVALID_REGNUM.
10936         (dwarf2out_reg_save, dwarf2out_return_save): Likewise.
10937         (initial_return_save): Likewise.
10938         (flush_queued_reg_saves): Remap register numbers.
10939         (dwarf2out_return_reg): Likewise.
10940
10941 2004-07-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10942
10943         * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL.
10944
10945         * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use
10946         access functions for lower bound and element size and only output
10947         if lower bound nonzero or element size not same as that of type.
10948         (dump_generic_node, case COMPONENT_REF): Use access func. for offset.
10949
10950 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
10951
10952         * c-pretty-print.c (pp_c_postfix_expression): Fix pasto.
10953
10954 2004-07-01  Per Bothner  <per@bothner.com>
10955
10956         * final.c (final):  Fix typo reported by Aaron W. LaFramboise.
10957
10958 2004-07-01  Jakub Jelinek  <jakub@redhat.com>
10959
10960         * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit
10961         bitfields as well.  STRIP_NOPS from src operand and PLUS_EXPR's
10962         first operand.  Don't optimize if the bitfield is volatile.
10963
10964 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
10965
10966         * c-pretty-print.c (pp_c_postfix_expression): Handle
10967         floating-point comparison operators.
10968         (pp_c_expression): Pass floating-point comparison
10969         operators to pp_c_postfix_expression.
10970
10971 2004-07-01  Roger Sayle  <roger@eyesopen.com>
10972
10973         * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use
10974         rtx_cost instead of "had_mult" to determine whether the transformed
10975         expression is cheaper than the original.
10976
10977 2004-07-01  Jerry Quinn  <jlquinn@optonline.net>
10978
10979         * alias.c (get_alias_set, canon_rtx, get_addr,
10980         nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1):
10981         Use MEM_P.
10982         * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func,
10983         expand_builtin): Likewise.
10984         * calls.c (expand_call, emit_library_call_value_1, store_one_arg):
10985         Likewise.
10986         * combine.c (can_combine_p, combinable_i3pat, try_combine,
10987         find_split_point, combine_simplify_rtx, simplify_set, make_extraction,
10988         rtx_equal_for_field_assignment_p, gen_lowpart_for_combine,
10989         record_dead_and_set_regs_1, get_last_value_validate,
10990         mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise.
10991         * cse.c (check_dependence, canon_hash, equiv_constant,
10992         gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers,
10993         cse_around_loop, cse_check_loop_start, cse_set_around_loop,
10994         count_reg_usage): Likewise.
10995         * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup,
10996         cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set,
10997         cselib_record_sets): Likewise.
10998         * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol,
10999         dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise.
11000         * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise.
11001         * df.c (df_uses_record): Likewise.
11002         * dojump (do_jump): Likewise.
11003         * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor,
11004         loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info,
11005         decl_start_label): Likewise.
11006         * emit-rtl.c (gen_complex_constant_part, gen_highpart,
11007         operand_subword, change_address_1, make_safe_from): Likewise.
11008         * explow.c (break_out_memory_refs, copy_all_regs, validize_mem,
11009         stabilize, force_not_mem): Likewise.
11010         * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field,
11011         expand_mult_const, expand_divmod, emit_store_flag): Likewise.
11012         * expr.c (convert_move, convert_modes, emit_block_move,
11013         emit_group_load, emit_group_store, clear_storage, emit_move_insn,
11014         emit_move_insn_1, expand_assignment, store_expr,
11015         store_constructor_field, store_constructor, store_field,
11016         force_operand, safe_from_p, expand_expr_real_1, expand_increment):
11017         Likewise.
11018         * final.c (cleanup_subreg_operands, alter_subreg,
11019         get_mem_expr_from_op): Likewise.
11020         * flow.c (notice_stack_pointer_modification_1,
11021         init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs):
11022         Likewise.
11023         * function.c (mark_temp_addr_taken, preserve_temp_slots,
11024         preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1,
11025         optimize_bit_field, flush_addressof, purge_addressof_1,
11026         instantiate_decl, instantiate_virtual_regs_1, assign_parms,
11027         setjmp_protect, setjmp_protect_args, fix_lexical_addr,
11028         keep_stack_depressed): Likewise.
11029         * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok,
11030         noce_process_if_block, find_memory): Likewise.
11031         * integrate.c (subst_constants, allocate_initial_values): Likewise.
11032         * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p,
11033         update_equiv_regs): Likewise.
11034         * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store,
11035         maybe_eliminate_biv_1, find_mem_in_note_1): Likewise.
11036         * optabs.c (expand_abs, emit_unop_insn): Likewise.
11037         * passes.c (rest_of_handle_final): Likewise.
11038         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
11039         move2add_note_store): Likewise.
11040         * ra-build.c (detect_remat_webs): Likewise.
11041         * ra-debug.c (dump_static_insn_cost): Likewise.
11042         * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise.
11043         * recog.c (validate_change, apply_change_group, cancel_changes,
11044         validate_replace_rtx_1, general_operand, register_operand,
11045         nonmemory_operand, push_operand, pop_operand, memory_operand,
11046         indirect_operand, asm_operand_ok, offsettable_memref_p,
11047         offsettable_nonstrict_memref_p, constrain_operands,
11048         store_data_bypass_p): Likewise.
11049         * reg-stack.c (subst_stack_regs_pat): Likewise.
11050         * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes,
11051         copy_cost, reg_scan_mark_refs): Likewise.
11052         * regmove.c (optimize_reg_copy_3, stack_memref_p,
11053         combine_stack_adjustments_for_block): Likewise.
11054         * regrename.c (copyprop_hardreg_forward_1): Likewise.
11055         * reload.c (can_reload_into, push_reload, decompose, immune_p,
11056         find_reloads, find_reloads_address, find_reloads_address_1,
11057         reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p,
11058         find_equiv_reg): Likewise.
11059         * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn,
11060         reload_as_needed, choose_reload_regs, emit_input_reload_insns,
11061         do_input_reload, emit_reload_insns, gen_reload, delete_output_reload,
11062         delete_address_reloads): Likewise.
11063         * resource.c (mark_referenced_resources): Likewise.
11064         * rtlanal.c (get_jump_table_offset, count_occurrences,
11065         reg_referenced_p, reg_set_p, set_of_1, set_noop_p,
11066         reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1,
11067         num_sign_bit_copies1): Likewise.
11068         * rtlhooks.c (gen_lowpart_general): Likewise.
11069         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
11070         * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol,
11071         sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms,
11072         sdbout_global_decl): Likewise.
11073         * simplify-rtx.c (simplify_subreg): Likewise.
11074         * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl,
11075         expand_anon_union_decl, expand_end_case_type): Likewise.
11076         * unroll.c (calculate_giv_inc): Likewise.
11077         * var-tracking.c (stack_adjust_offset_pre_post,
11078         bb_stack_adjust_offset, track_expr_p, count_uses, add_uses,
11079         add_stores, compute_bb_dataflow, vt_get_decl_and_offset,
11080         vt_add_function_parameters): Likewise.
11081         * varasm.c (make_var_volatile, notice_global_symbol,
11082         assemble_external, decode_addr_const, mark_weak,
11083         default_encode_section_info): Likewise.
11084
11085 2004-07-01  Steven Bosscher  <stevenb@suse.de>
11086
11087         * stmt.c (check_seenlabel): Remove.
11088         (pushcase, pushcase_range, expand_end_case_type): Don't call it.
11089
11090 2004-07-01  Richard Henderson  <rth@redhat.com>
11091
11092         * function.h (struct function): Remove x_function_call_count.
11093         (function_call_count): Remove.
11094         * calls.c (expand_call): Don't set it.
11095         * integrate.c (copy_rtx_and_substitute): Likewise.
11096
11097         * function.h (struct function): Remove x_cleanup_label.
11098         (cleanup_label): Remove.
11099         * stmt.c (expand_value_return): Don't use it.
11100         * function.c (free_after_compilation): Don't set it.
11101         (expand_function_start): Likewise.  Remove parms_have_cleanups arg.
11102         * cfgexpand.c (tree_expand_cfg): Update call.
11103         * tree.h (expand_function_start): Update decl.
11104
11105 2004-07-01  Joseph S. Myers  <jsm@polyomino.org.uk>
11106
11107         PR c/1027
11108         * c-lang.c (c_initialize_diagnostics): Move from here ...
11109         * c-objc-common.c: ... to here.  Include "c-pretty-print.h".
11110         (c_tree_printer): Use pretty-printer to format %T.
11111         * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
11112         before '*' if not C++.
11113         (pp_c_direct_abstract_declarator): Don't try to print array upper
11114         bound for flexible array members.
11115         * c-tree.h: Include "diagnostic.h".
11116         (c_initialize_diagnostics): Declare.
11117         * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
11118         * c-format.c (format_type_warning): New function.  Improve
11119         diagnostics for incorrect format argument types.
11120         (check_format_types): Use it.  Add two parameters.  Use the
11121         TYPE_MAIN_VARIANT of wanted_type.
11122         (check_format_info_main): Pass new parameters to
11123         check_format_types.
11124         (struct format_wanted_type): Update comment.
11125
11126 2004-07-01  Nick Clifton  <nickc@redhat.com>
11127
11128         * target.h (struct gcc_target): Add new field to struct cxx:
11129         import_export_class.
11130         * target-def.h (TARGET_CXX): Initialise the new field.
11131         (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for
11132         the new field.
11133         * doc/tm.texi: Document the new target hook.
11134
11135 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
11136
11137         * builtins.c (fold_builtin_classify): Fix typo.
11138
11139 2004-07-01  Richard Henderson  <rth@redhat.com>
11140
11141         * function.c (identify_blocks, identify_blocks_1): Remove.
11142         * function.h (identify_blocks): Remove.
11143         * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment.
11144
11145 2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
11146
11147         * builtins.c (fold_builtin_classify): New.
11148         (fold_builtin_unordered_cmp): Fix commentary.
11149         (fold_builtin): Use it.
11150         * builtins.def: Define builtins for isnan,
11151         isnanf, isnanl, finite, finitef, finitel,
11152         isinf, isinff, isinfl.
11153
11154 2004-07-01  Richard Henderson  <rth@redhat.com>
11155
11156         * function.h (struct function): Remove dont_emit_block_notes.
11157         * gimple-low.c (lower_function_body): Don't set it.
11158         * cfgexpand.c (expand_block): Don't check it.
11159         * cfglayout.c (insn_locators_initialize): Likewise.
11160         * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
11161         * passes.c (rest_of_compilation): Likewise.
11162         * stmt.c (expand_start_bindings_and_block): Likewise.
11163         (expand_end_bindings): Likewise.
11164
11165 2004-07-01  Richard Henderson  <rth@redhat.com>
11166
11167         * cgraph.h (cgraph_build_static_cdtor): Declare.
11168         * cgraphunit.c (cgraph_build_static_cdtor): New.
11169         * c-objc-common.c (build_cdtor): Use it.
11170         * coverage.c (create_coverage): Likewise.
11171         * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove.
11172         * optabs.c (init_optabs): Don't set gcov_init_libfunc.
11173
11174 See ChangeLog.11 for earlier changes.