OSDN Git Service

c2d984bc888f0f1f0d4c119b35ef2de6a445075f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
2
3         * rtl.def: Reorganize, placing all codes used only in machine
4         descriptions at the end.
5
6 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
7
8         * basic-block.h (struct basic_block_def): Reorder fields to
9         eliminate interior padding.  Remove 'partition' field.
10         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
11         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
12         (BB_COPY_PARTITION): New macros.
13         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
14         Replace all references to the 'partition' field of a basic
15         block with new macros.
16
17         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
18         * final.c (final_scan_insn): Don't handle it.
19         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
20         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
21         * sched-rgn.c (sched_is_disabled_for_current_region_p):
22         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
23
24 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
25
26         * c-decl.c (c_init_decl_processing): Adjust
27         build_common_tree_nodes call.
28         * expmed.c (const_mult_add_overflow_p): Use
29         build_distinct_type_copy.
30         * stor-layout.c (early_type_list): Remove.
31         (layout_type): Don't append to early_type_list.
32         (initialize_sizetypes): Add signed_p argument.
33         (set_sizetype): Overwrite the stub type nodes directly.
34         * tree.c (copy_node_stat): Clear a type's value cache here ...
35         (build_distinct_type): ... not here.
36         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
37         * tree.h (initialize_sizetypes): Add signed_p argument.
38         (build_common_tree_nodes): Likewise.
39
40         * objc/objc-act.c (get_static_reference): Use
41         build_variant_type_copy.
42         (get_protocol_reference): Likewise.
43         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
44
45 2004-08-24  Richard Henderson  <rth@redhat.com>
46             Andrew Pinski  <apinski@apple.com>
47
48         * gimplify.c (gimplify_array_ref_to_plus): Delete.
49         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
50         for ARRAY_REF.
51
52         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
53         ARRAY_REF also to get to the STRING_CST.
54
55 2004-08-24  Paul Brook  <paul@codesourcery.com>
56
57         * config/arm/arm.c (arm_override_options): Update error message.
58         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
59         TARGET_HARD_FLOAT_ABI.
60         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
61         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
62
63 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
64
65         PR target/17093
66         * config/m32r.md (movsi_sda): Add SI mode specification to
67         UNSPEC.
68
69 2004-08-24  Nick Clifton  <nickc@redhat.com>
70
71         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
72         of seth_add3_operand.
73
74 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
75
76         * Makefile.in (PROTO_OBJS): Add errors.o.
77         * protoize.c (fancy_abort): Remove.
78         * mips-tfile.c (fancy_abort): Add parameters.
79
80 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
81
82         * doc/trouble.texi (C++ misunderstandings): Fix example code.
83
84 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
85
86         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
87         (host-default.o): Add dependency on HOOKS_H.
88         * config/x-linux: Likewise.
89         * config/x-solaris: Likewise.
90         * config/i386/x-mingw32: Likewise.
91         * config/rs6000/x-darwin: Likewise.
92
93 2004-08-23  James E Wilson  <wilson@specifixinc.com>
94
95         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
96         DEF_REG_NOTE.
97
98 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
99
100         PR c/14492
101         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
102
103 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
104
105         * cfg.c (check_bb_profile): Fix typos.
106         * function.c (assign_parm_is_stack_parm): Likewise.
107         * tree-nested.c: Likewise.
108
109 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
110
111         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
112         Remove TYPECODE.
113         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
114
115 2004-08-23  Eric Christopher  <echristo@redhat.com>
116
117         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
118         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
119         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
120         * target.h: Ditto.
121         * hooks.h: Include machmode.h.
122         (hook_bool_mode_false): Declare.
123         * hooks.c (hook_bool_mode_false): Define.
124         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
125         * stor-layout.c (layout_type): Ditto.
126         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
127         Define to target macro.
128         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
129         * config/arm/arm.c: Ditto. Use.
130         * config/arm/arm.h: Ditto.
131         * config/arm/arm-protos.h: Ditto.
132         * config/i386/i386.c: Ditto.
133         * config/i386/i386.h: Ditto.
134         * config/rs6000/rs6000.c: Ditto.
135         * config/rs6000/rs6000.h: Ditto.
136         * config/sh/sh.c: Ditto.
137         * config/sh/sh.h: Ditto.
138         * config/sh/sh-protos.h: Ditto.
139         * config/sh/sh.md: Use.
140         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
141         to TARGET_VECTOR_MODE_SUPPORTED_P.
142
143 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
144
145         * Makefile.in (BUILD_ERRORS): Set to build-errors.
146         (errors.o): New target for host.
147         (build-errors.o): New target for build.
148         (genobjs): Replace errors.o with build-errors.
149         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
150         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
151         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
152         (fix-header.o): Add errors.h
153         * collect2.c (fancy_abort): Add parameters.
154         * collect2.h (fancy_abort): Don't declare.
155         * errors.h (fancy_abort): Don't declare.
156         * errors.c: Include either bconfig.h or config.h.
157         (fancy_abort): Trim filename.
158         * fix-header.c (v_fatal, fatal): Remove.
159         (progname): Remove definition.
160         (main): Set progname here.
161         * gcc.c (fancy_abort): Add parameters.
162         * gcc.h (fancy_abort): Remove declaration.
163         * gcov.c (fancy_abort): Remove.
164         * rtl.h (fancy_abort): Don't declare.
165         (abort): Don't define.
166         * tree.h (fancy_abort): Don't declare.
167         (abort): Don't define.
168         * system.h (fancy_abort): Declare.
169         (abort): Define to fancy_abort.
170         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
171
172         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
173         (usize_type, ubitsizetype): Remove.
174         * stor-layout.c (set_sizetype): Don't initialize usizetype,
175         ubitsizetype.
176         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
177
178         * tree.h (build_distinct_type_copy): New.
179         (build_type_copy): ... here.  Rename to ...
180         (build_variant_type_copy): ... here.
181         * tree.c (build_qualified_type): Rename build_type_copy call.
182         (build_distinct_type_copy): New, broken out of ...
183         (build_type_copy): ... here.  Rename to ...
184         (build_variant_type_copy): ... here.  Use
185         build_distinct_type_copy.
186         (build_common_tree_nodes_2): Rename build_type_copy call.
187         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
188         call.
189         (handle_packed_attribute, handle_unused_attribute,
190         handle_transparanet_union_attribute, handle_aligned_attribute,
191         handle_deprecated_attribute): Likewise.
192         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
193         Likewise.
194         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
195         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
196         build_distinct_type_copy.
197
198 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
199
200         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
201         attribute.
202
203 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
204
205         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
206         loads and stores.
207         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
208         formerly unnamed patterns.  Redefine using :P for the address.  Remove
209         explicit length attributes.
210
211 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
212
213         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
214         New functions.
215         (single_reachable_address): Use them.
216         (schedule_sm): Add dump.
217         (is_call_clobbered_ref): New function.
218         (determine_lsm_reg): Check whether the reference is call clobbered.
219         Only work for gimple_reg_type values.
220
221 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
222
223         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
224         $31 store insns.  Redefine using :GPR.
225
226 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
227
228         * config/mips/mips.md (P): New mode macro.
229         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
230         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
231         Add mode attributes.
232
233 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
234
235         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
236         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
237         later constants to cover the gap.
238         (load, store): New mode attributes.
239         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
240         Use new unspec constants.
241
242 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
243
244         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
245         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
246         to use register_operand rather than uns_arith_operand as the predicate
247         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
248         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
249         Redefine using :GPR.  Make same predicate change here.  Extend the
250         commutativity of operands 1 and 2 from the SImode version to the
251         DImode one.
252         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
253         but with no predicate changes.
254         (*nor[sd]i3): Redefine using :GPR.
255
256 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
257
258         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
259         noreturn functions.
260
261 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
262
263         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
264         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
265         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
266         rather than "%z2" (with a fake const0_rtx for operand 2).
267         (ffs[sd]i2): Redefine using :GPR.
268         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
269
270 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
271
272         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
273
274 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
275
276         * config/mips/mips.md (any_extend): New code macro.
277         (u, su): New code attributes.
278         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
279         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
280         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
281         (*{s,u}mul_acc_di): Redefine using any_extend.
282         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
283         to reflect real insn names.
284         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
285         with an any_extend template.
286         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
287         Add '*' to name.
288
289 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
290
291         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
292         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
293         (mul[sd]i3_r4000): Redefine using :GPR.
294         (mulsi3_mult3): Don't check TARGET_MAD separately.
295         (muldi3_mult3): Moved after mulsi_mult3.
296
297 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
298
299         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
300         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
301         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
302         (TARGET_GAS, TARGET_MIPS_AS): Delete.
303         (TARGET_GPWORD): Define to true for n32 on IRIX.
304         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
305         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
306         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
307         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
308         (MDEBUG_ASM_SPEC): Delete, folding into...
309         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
310         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
311         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
312         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
313         to define asm_abi_default_spec.
314         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
315         (TARGET_ASM_SELECT_SECTION): Delete.
316         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
317         for non-mips16 code, removing previous workaround for SGI assemblers.
318         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
319         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
320         (override_options): Remove !TARGET_GAS and !have_named_sections code.
321         (print_operand): Fold TARGET_GAS conditionals into asm strings.
322         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
323         ASM_STABS_OP and ASM_STABN_OP.
324         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
325         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
326         (mips_output_function_prologue): Remove !TARGET_GAS code.
327         (mips_select_rtx_section): Remove !have_named_sections code.
328         (mips_select_section): Delete.
329         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
330         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
331         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
332         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
333         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
334         * config/mips/windiss.h (ASM_SPEC): Likewise.
335
336 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
337
338         * read-rtl.c (map_value, mapping, macro_group): New structures.
339         (BELLWETHER_CODE): New macro.
340         (modes, codes, bellwether_codes): New variables.
341         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
342         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
343         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
344         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
345         (add_map_value, initialize_macros): New functions.
346         (def_hash, def_hash_eq_p): Generalize to anything that points to,
347         or starts with, a char * field.
348         (find_macro, read_mapping, check_code_macro): New functions.
349         (read_rtx_1): New, split out from read_rtx.  Handle the new
350         define_{mode,code}_{macro,attr} constructs.  Use find_macro
351         to parse the name of a code or mode.  Use BELLWETHER_CODE to
352         extract the format and to choose a suitable code for rtx_alloc.
353         Modify recursive invocations to use read_rtx_1.
354         (read_rtx): Call initialize_macros.  Apply code and mode macros
355         to the rtx returned by read_rtx_1.  Cache everything after the
356         first macro expansion for subsequent read_rtx calls.
357         * doc/md.texi: Document new .md constructs.
358         * config/mips/mips.md (GPR): New mode macro.
359         (d, si8_di5): New mode attributes.
360         (any_cond): New code macro.
361         (add[sd]i3): Redefine using :GPR.
362         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
363         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
364         previously unnamed MIPS16 patterns.
365         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
366         lines.  Don't match (plus (const_int 0) ...).
367         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
368         Use a define_split to generate the addition.
369         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
370         (subsi3_internal): Delete.
371         (*subsi3_extended): Renamed from subsi3_internal_2.
372         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
373         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
374         using an any_cond template.
375
376 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
377
378         * read-rtl.c (read_rtx): Tidy use of format_ptr.
379
380 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
381
382         * read-rtl.c (string_obstack): New file-scope variable.
383         (read_string, read_quoted_string, read_braced_string)
384         (read_escape): Remove obstack parameter and use string_obstack instead.
385         (read_rtx): Remove function-local rtl_obstack and initialize
386         string_obstack instead.  Update call to read_string.
387
388 2004-08-22  Andrew Pinski  <apinski@apple.com>
389
390         PR c/15262
391         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
392         expression is not constant.
393         (c_finish_return): Do not go through INDIRECT_REF when looking
394         for the inner expression of an ADDR_EXPR for warning about.
395
396 2004-08-22  Richard Henderson  <rth@redhat.com>
397
398         PR 17075
399         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
400         create new blocks and fall through.
401         (expand_gimple_basic_block): Update to match.
402
403 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
404
405         * reload.c (find_reloads_address): Make return value tri-state.
406         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
407         (find_reloads): Assume that reloaded addresses match 'o' or
408         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
409         returned 1 (not -1).  Omit optional reloads for address operands
410         only if find_reloads_address returned 1 (not -1).
411
412         * config/s390/s390.c (legitimize_reload_address): New function.
413         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
414         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
415         legitimize_reload_address.
416
417 2004-08-22  Richard Hendersion  <rth@redhat.com>
418
419         * tree.h (SAVE_EXPR_RESOLVED_P): New.
420         * gimplify.c (gimplify_save_expr): Use it.
421         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
422         on the temporary variable.
423
424 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
425
426         * fold-const.c (rtl_expr_nonnegative_p): Delete.
427         * tree.h (rtl_expr_nonnegative_p): Remove.
428
429 2004-08-22  Steven Bosscher  <stevenb@suse.de>
430
431         * config/i386/ppro.md (ppro_complex_insn): Add missing check
432         for cpu==pentiumpro.
433
434         * combine.c (struct reg_stat): Fix comment typo.
435
436 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
437
438         * c-tree.h (c_sizeof_nowarn): Remove.
439
440 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
441
442         * c-decl.c (set_array_declarator_type): Rename to
443         set_array_declarator_inner.
444         (build_c_parm, build_attrs_declarator, build_function_declarator):
445         New functions.
446         (make_pointer_declarator): Call build_attrs_declarator.
447         * c-tree.h (set_array_declarator_type): Rename to
448         set_array_declarator_inner.
449         (build_c_parm, build_attrs_declarator, build_function_declarator):
450         New prototypes.
451         * c-parse.in (after_type_declarator,
452         parm_declarator_starttypename, parm_declarator_nostarttypename,
453         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
454         firstparm): Use these functions
455
456 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
457
458         * c-decl.c (build_array_declarator, set_array_declarator_type,
459         start_decl, grokdeclarator, grokparms): Change boolean parameters
460         to type bool.
461         * c-tree.h (build_array_declarator, set_array_declarator_type,
462         start_decl): Update prototypes.
463         * c-decl.c, c-parse.in: All callers changed.
464
465 2004-08-21  Mike Stump  <mrs@apple.com>
466
467         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
468         (darwin_fix_and_continue): Likewise.
469         (darwin_fix_and_continue_switch): Likewise.
470         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
471         (darwin_fix_and_continue): Likewise.
472         (darwin_fix_and_continue_switch): Likewise.
473
474 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
475
476         PR  c++/16030
477         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
478         Remove, merging into ...
479         (gen_stdcall_or_fastcall_suffix): New function, returning tree
480         rather than const char*, and accepting additional parameter.
481         Don't add suffix to '*'-prefixed symbols or variadic functions.
482         (i386_pe_encode_section_info): Adjust for call to new function.
483         Call change_decl_assembler_name.
484
485 2004-08-20  Mike Stump  <mrs@apple.com>
486
487         * config/darwin.c (machopic_indirect_data_reference): Mark
488         stubs as defined.
489         * config/386/386.c (darwin_local_data_pic): Add.
490         (legitimate_constant_p): Reorder so that PLUS handling runs
491         before darwin_local_data_pic to match the ordering in
492         legitimate_pic_address_disp_p and so that MINUS runs after
493         darwin_local_data_pic as otherwise the darwin_local_data_pic
494         logic can be skipped, which would be very bad.
495         (legitimate_pic_address_disp_p): Move from from here to
496         darwin_local_data_pic so it can be reused.
497
498 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
499
500         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
501         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
502         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
503         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
504         (RS6000_ABI_NAME): Define as "linux".
505         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
506         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
507         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
508         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
509         * config/rs6000/rs6000.c (dot_symbols): New global var.
510         (rs6000_output_function_entry): New function, modified for
511         !DOT_SYMBOLS..
512         (print_operand <case 'z'>): ..extracted from here.
513         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
514         (rs6000_output_function_epilogue): Likewise.
515         (rs6000_elf_declare_function_name): Likewise.
516         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
517         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
518         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
519         * configure: Regenerate.
520         * config.in: Regenerate.
521
522 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
523
524         * reload.c (find_reloads_address): Fix thinko in previous change.
525
526         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
527         a CONST_INT.
528
529 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
530
531         PR rtl-optimization/17099
532         * combine.c (force_to_mode): Check if inner_mask has any bits set
533         outside of GET_MODE (x) instead of op_mode.
534
535 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
536
537         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
538         fragment.
539         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
540         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
541         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
542         architecture.
543         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
544         configurations.
545         * config/arm/t-symbian: New file.
546
547 2004-08-20  Andrew Pinski  <apinski@apple.com>
548
549         * regrename.c (kill_value_regno): ANSIfy.
550
551 2004-08-20  Dale Johannesen  <dalej@apple.com>
552
553         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
554
555 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
556
557         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
558         (kill_value_regno): New function, derived from kill_value.
559         (kill_value): Update.
560         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
561
562 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
563
564         Fix PR tree-optimization/17111
565         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
566         of non-value_handles.
567         (bitmap_set_contains): All constants are in every set.
568
569 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
570
571         * fold-const.c (round_up, round_down): Use build_int_cst.
572         Optimize common case.
573
574 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
575             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
576
577         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
578         one_only_data_section): Rename to som_readonly_data_section,
579         som_one_only_readonly_data_section and som_one_only_data_section.
580         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
581         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
582         conditional defines.
583         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
584         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
585         string values.
586         (pa_select_section): Use renamed section functions.
587         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
588         SOM_READONLY_DATA_SECTION_FUNCTION,
589         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
590         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
591         Define here ...
592         * config/pa/som.h: ... not here.
593         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
594         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
595         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
596         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
597         (READONLY_DATA_SECTION): Use som_readonly_data_section.
598
599 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
600
601         * fold-const.c (int_const_binop): Don't generate non-overflowing
602         size-types specially.
603         (fold_convert_const): Likewise.
604
605         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
606         clear cache on copied sizetype.
607
608 2004-08-20  Ben Elliston  <bje@au.ibm.com>
609
610         * configure.ac: Don't escape apostrophe in --enable-coverage help.
611         * configure: Regenerate.
612
613 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
614
615         PR 5620
616         * gcc.c (struct stat input_stat): Don't define if
617         HOST_LACKS_INODE_NUMBERS
618         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
619         than stat to determine if temp file is same as input file.
620         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
621         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
622
623 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
624
625         * configure.ac (mips*-*-*): Print an error if not using GAS.
626         * configure: Regenerated.
627         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
628         comments about buggy MIPSpro assemblers.
629         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
630         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
631         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
632         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
633         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
634         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
635         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
636         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
637         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
638         of more general IRIX 6 definitions.
639         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
640         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
641         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
642         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
643         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
644         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
645         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
646         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
647         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
648         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
649         (LINK_SPEC): Move most of definition to iris.h.
650         (SUBTARGET_LINK_SPEC): New macro.
651         (IRIX_STARTFILE_SPEC): Fold into...
652         (STARTFILE_SPEC): ...here.
653         (IRIX_ENDFILE_SPEC): Fold into...
654         (ENDFILE_SPEC): ...here.
655         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
656         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
657         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
658         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
659         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
660         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
661         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
662         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
663         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
664         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
665         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
666         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
667         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
668         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
669         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
670         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
671         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
672         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
673         (TARGET_IRIX6): Define to 1.
674         (DRIVER_SELF_SPECS): Define.
675         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
676         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
677         (SUBTARGET_LINK_SPEC): New macro.
678         (IRIX_STARTFILE_SPEC): Fold into...
679         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
680         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
681         (LIB_SPEC, LIBGCC_SPEC): Use them.
682         (LIB_SPEC): Remove !mabi=* case.
683         (IRIX_ENDFILE_SPEC): Fold into...
684         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
685         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
686         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
687         (TARGET_IRIX6): New macro.
688         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
689         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
690         (LABEL_AFTER_LOC): Delete.
691         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
692         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
693         (mips_build_builtin_va_list): Check TARGET_IRIX6.
694         (override_options): Remove TARGET_SGI_O32_AS-related code.
695         (irix_output_external_libcall): Make static.
696         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
697         LABEL_AFTER_LOC.
698         (mips_file_start): Tidy guard for ABI sections.  Remove use of
699         ABICALLS_ASM_OP; use .abicalls instead.
700         (mips_output_aligned_decl_common, mips_declare_object_name)
701         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
702         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
703         .globl foo .text directives.
704         (irix_asm_named_section_1, irix_asm_named_section)
705         (irix_section_align_entry, irix_section_align_htab)
706         (irix_orig_asm_out_file, irix_section_align_entry_eq)
707         (irix_section_align_entry_hash, irix_asm_output_align)
708         (irix_file_start, irix_section_align_1, copy_file_data)
709         (irix_file_end, irix_section_type_flags): Delete.
710         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
711         Use standard section syntax.  Remove protective "jr $31".
712         (__gcc_fini): Likewise .gcc_fini.
713         * config/mips/irix-crtn.asm: Adjust sections accordingly.
714         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
715         iris5gas.h.
716         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
717         from t-irix-gld.
718         (EXTRA_MULTILIB_PARTS): Define.
719         * config/mips/t-iris6: Remove bogus comment.
720         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
721         * config/mips/iris5gas.h, config/mips/iris5gld.h,
722         config/mips/iris6gas.h, config/mips/iris6gld.h,
723         config/mips/t-iris5-as, config/mips/t-iris5-gas
724         config/mips/t-irix-gld: Delete.
725         * config/mips/iris.h: New file.
726         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
727
728 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
729
730         * postreload.c (reload_cse_move2add): Allow any condjump, but check
731         that the implicit set isn't clobbered in the jump insn.
732
733 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
734
735         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
736         * optabs.c (init_optabs): Don't check it.
737         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
738         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
739
740 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
741
742         * config/s390/s390.md (s390_warn_framesize_string)
743         (s390_warn_dynamic_string, s390_stack_size_string)
744         (s390_stack_guard_string): New global string variables.
745         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
746         (s390_stack_guard): New global variables.
747         (override_options): Added checks for the new options.
748         (s390_emit_prologue): Emit stack check and trap code and perform
749         compile time stack size checking.
750
751         * config/s390/s390.h (TARGET_OPTIONS): Added new options
752         "warn-framesize", "warn-dynamicstack", "stack-size" and
753         "stack-guard".
754
755         * doc/invoke.texi: Added documentation for the new options.
756
757 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
758
759         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
760         to eliminate warning.
761         (linear_search_fdes): Declare p as unsigned.
762         (binary_search_mixed_encoding_fdes): Likewise.
763         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
764         to eliminate warning.
765         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
766         type cast.
767
768 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
769
770         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
771         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
772         instead of one.  Check for strictly legitimate address.
773         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
774         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
775
776 2004-08-19  Eric Christopher  <echristo@redhat.com>
777
778         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
779         * langhooks.h (unsave_expr_now): Ditto.
780         * tree.h (unsave_expr_1): Remove prototype.
781         (lhd_unsave_expr_now): Rename to unsave_expr_now.
782         * tree-inline.c (unsave_expr_1): Move here
783         from tree.c. Make static.
784         (unsave_expr_now): Rename from lhd_unsave_expr_now.
785         * tree-sra.c: Fix up for rename.
786         * tree-ssa-copy.c: Ditto.
787         * tree-eh.c: Ditto.
788         * tree.c (unsave_expr_1): Move to tree-inline.c.
789
790 2004-08-19  Caroline Tice  <ctice@apple.com>
791
792         * config/i386/cygming.h (switch_to_section):  Fix typo (change
793         in_unlikely_text_section to in_unlikely_executed_text).
794
795 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
796
797         * vec.h (VEC_lower_bound): New macro.
798
799 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
800
801         PR target/16446
802         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
803         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
804         treat each ABI separately.  Deal with n32/n64 complex float arguments.
805         (function_arg): Add associated complex handling here.
806
807 2004-08-19  Richard Henderson  <rth@redhat.com>
808
809         * config/arm/arm.c (arm_gen_load_multiple): Use
810         adjust_automodify_address.  Take base memory and offset instead
811         of unchanging/struct/scalar bits.
812         (arm_gen_store_multiple): Likewise.
813         (arm_gen_movmemqi): Use adjust_automodify_address.
814         * config/arm/arm-protos.h: Update decls.
815         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
816         (store_multiple): Similarly.
817
818 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
819
820         * regclass.c (globalize_reg): Update call_really_used_regs.
821
822 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
823
824         * doc/invoke.texi (integer-share-limit): Document.
825
826         * tree.h (TYPE_CACHED_VALUES_P): New.
827         (TYPE_CACHED_VALUES): New.
828         (TYPE_ORIG_SIZE_TYPE): Adjust.
829         * tree.def (INTEGER_CST): Update documentation.
830         * tree.c: Inlcude params.h.
831         (build_int_cst): Cache small values.
832         (build_type_copy): Do not copy the value cache.
833         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
834         unneeded zeroing.
835         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
836         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
837         cache.
838         * fold-const.c (force_fit_type): Copy value when setting
839         overflows.
840         (int_const_binop): Likewise.
841         * stor-layout.c: Include params.h
842         (set_sizetype): Create values cache.
843         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
844         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
845         * params.h (INTEGER_SHARE_LIMIT): New.
846         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
847
848 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
849
850         * gimplify.c (gimplify_minimax_expr): Remove.
851         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
852
853 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
854
855         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
856         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
857
858 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
859
860         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
861
862 2004-08-18  Andrew Pinski  <apinski@apple.com>
863
864         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
865
866 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
867
868         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
869         (__aeabi_ul2f): Likewise.
870
871 2004-08-18  Richard Henderson  <rth@redhat.com>
872
873         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
874         move to rtl completely.
875         (struct meminsnbuf, xtensa_emit_block_move): Remove.
876         (xtensa_find_mode_for_size): Remove.
877         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
878         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
879
880 2004-08-18  Richard Henderson  <rth@redhat.com>
881
882         * config/mcore/mcore.c (mode_from_align): Remove DImode.
883         (block_move_sequence): Rewrite to use adjust_address.
884         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
885         Return boolean indicating success/failure.
886         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
887         * config/mcore/mcore.md (movmemsi): Update to match.
888
889 2004-08-18  Mike Stump  <mrs@apple.com>
890
891         * doc/invoke.texi (-mfix-and-continue): Add support for
892         fast turn around debugging.
893         (-ffix-and-continue): Likewise.
894         (-mindirect-data): Likewise.
895         (-findirect-data): Likewise.
896         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
897         (indirect_data): Likewise.
898         (machopic_data_defined_p): Likewise.
899         (machopic_output_indirection): Likewise.
900         (darwin_encode_section_info): Likewise.
901         (darwin_fix_and_continue): Likewise.
902         (darwin_fix_and_continue_switch): Likewise.
903         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
904         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
905         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
906         (SUBTARGET_OPTIONS): Likewise.
907         (darwin_fix_and_continue): Likewise.
908         (darwin_fix_and_continue_switch): Likewise.
909         (TARGET_FIX_AND_CONTINUE): Likewise.
910         * config/rs6000.c (rs6000_emit_prologue): Likewise.
911
912 2004-08-19  Steven Bosscher  <stevenb@suse.de>
913
914         * basic-block.h (struct edge_def): Remove crossing_edge.
915         (EDGE_CROSSING): New define.
916         (EDGE_ALL_FLAGS): Update.
917         * bb-reorder.c (find_traces_1_round, better_edge_p,
918         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
919         find_jump_block, fix_crossing_conditional_branches,
920         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
921         Replace all occurences of crossing_edge with an edge flag check
922         or set/reset.
923         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
924         try_crossjump_bb): Likewise.
925         * cfglayout.c (fixup_reorder_chain): Likewise.
926         * cfgrtl.c (force_nonfallthru_and_redirect,
927         commit_one_edge_insertion): Likewise.
928
929         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
930         * tree-flow.h (compute_dominance_frontiers): Move prototype...
931         * basic-block.h:  ...here.
932         * tree-cfg.c (compute_dominance_frontiers_1,
933         compute_dominance_frontiers): Move from here...
934         * cfganal.c: ...to here.  Include timevar.h.
935
936 2004-08-18  James E Wilson  <wilson@specifixinc.com>
937
938         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
939         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
940
941         * config/mips/mips.md (type): Add frdiv.
942         (divsf3+1, divsf3+2): Change type to frdiv.
943         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
944         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
945
946         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
947         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
948         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
949         * config/mips/5000.md (r5k_fdiv_single): Likewise.
950         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
951         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
952         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
953         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
954         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
955         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
956         Likewise.
957         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
958
959 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
960
961         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
962         get regression tester working again.
963
964 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
965
966         * insn-notes.def, reg-notes.def: New files.
967         * rtl.h: Use them to define enum insn_note and enum reg_note.
968         * rtl.c: Use them to define note_insn_name and reg_note_name.
969         * Makefile.in (RTL_BASE_H): Update.
970
971         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
972         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
973
974 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
975
976         * arm.c (arm_size_rtx_costs): New function.
977         (arm_override_options): Use it if optimizing for space.
978
979 2004-08-18  Richard Henderson  <rth@redhat.com>
980
981         * emit-rtl.c (gen_const_mem): New.
982         * rtl.h (gen_const_mem): Declare.
983         * expr.c (do_tablejump): Use it.
984         * varasm.c (force_const_mem): Likewise.
985         * config/darwin.c (machopic_indirect_data_reference): Likewise.
986         (machopic_legitimize_pic_address): Likewise.
987         * config/arm/arm.c (legitimize_pic_address): Likewise.
988         * config/i386/i386.c (legitimize_pic_address): Likewise.
989         (legitimize_tls_address): Likewise.
990         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
991         * config/ia64/ia64.md (load_fptr): Likewise.
992         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
993         * config/pa/pa.c (legitimize_pic_address): Likewise.
994         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
995         (rs6000_emit_move): Likewise.
996         * config/s390/s390.c (legitimize_pic_address): Likewise.
997         (legitimize_tls_address): Likewise.
998         * config/s390/s390.md (casesi): Likewise.
999         * config/sh/sh.c (sh_reorg): Likewise.
1000         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1001         * config/v850/v850.md (casesi): Likewise.
1002
1003         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
1004         * config/sh/sh.c (prepare_move_operands): Remove incorrect
1005         use of MEM_READONLY_P.
1006
1007 2004-08-18  Steven Bosscher  <stevenb@suse.de>
1008
1009         * Makefile.in (OBJS-common): Add postreload-gcse.c.
1010         Add new postreload-gcse.o.
1011         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
1012         (lookup_as_function, insert, rehash_using_reg, use_related_value,
1013         equiv_constant): Use SAFE_HASH instead of safe_hash.
1014         (exp_equiv_p): Export.  Add for_gcse argument when comparing
1015         for GCSE.
1016         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
1017         find_comparison_args, fold_rtx, cse_insn): Update callers.
1018         (hash_rtx): New function derived from old canon_hash and bits
1019         from gcse.c hash_expr_1.
1020         (canon_hash_string): Rename to hash_rtx_string.
1021         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
1022         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
1023         (cselib_lookup): Update this caller.
1024         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
1025         Make static.
1026         (hash_expr): Call hash_rtx.
1027         (ldst_entry): Likewise.
1028         (expr_equiv_p): Call exp_equiv_p.
1029         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
1030         reg_used_on_edge, reg_set_between_after_reload_p,
1031         reg_used_between_after_reload_p, get_avail_load_store_reg,
1032         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
1033         get_bb_avail_insn, hash_scan_set_after_reload,
1034         compute_hash_table_after_reload,
1035         eliminate_partially_redundant_loads, gcse_after_reload,
1036         get_bb_avail_insn, gcse_after_reload_main): Remove.
1037         * postreload-gcse.c: New file, reincarnating most of the above.
1038         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
1039         (gcse_after_reload_main): Update prototype.
1040         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
1041         * passes.c (rest_of_handle_gcse2): Use it.
1042
1043 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
1044
1045         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
1046         (pass_loop_done): Likewise.
1047
1048 2004-08-18  Andrew Pinski  <apinski@apple.com>
1049
1050         * config/rs6000/darwin.md: Delete the altivec patterns which are
1051         handled differently now.
1052         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
1053         (macho_correct_pic_di): Likewise.
1054         (call_indirect_nonlocal_darwin64): Likewise.
1055         Delete the save world/saveFP/saveVec patterns.
1056
1057         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
1058         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1059         * config/rs6000/rs6000.md: Include darwin.md.
1060         (builtin_setjmp_receiver): Add DImode case.
1061         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1062         Darwin bits.
1063
1064 2004-08-18  Matt Austern  <austern@apple.com>
1065
1066         Dead code stripping
1067         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
1068         * darwin.c (darwin_file_end): Mark file as potentially strippable.
1069
1070 2004-08-18  Richard Henderson  <rth@redhat.com>
1071
1072         * alias.c (readonly_fields_p): Remove.
1073         (objects_must_conflict_p): Don't call it.
1074         * tree.h (readonly_fields_p): Remove.
1075         * langhooks.h (struct lang_hooks): Remove honor_readonly.
1076         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
1077
1078 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
1079
1080         * tree-dfa.c (add_referenced_var): Only global variables are
1081         call-clobbered.
1082         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
1083         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
1084         all pointers dereferenced if the statement dereferences them.
1085         (create_name_tags): Do not create memory tags for pointers
1086         that have PT_ANYTHING set.
1087         Also check if PT_VARS is not empty before creating a name tag.
1088         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
1089         variables that share the same alias set with a pointer that
1090         may point anywhere.
1091         (add_may_alias): Add FIXME comment to remove clobbering
1092         aliased variables and tags.
1093         (replace_may_alias): Likewise.
1094         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
1095         (merge_pointed_to_info): If the original variable has not
1096         points-to information, call set_pt_anything.
1097         (add_pointed_to_var): Do not prevent adding a pointed-to
1098         variable if the pointers is PT_ANYTHING.
1099         If the variable is a global, set PT_GLOBAL_MEM.
1100         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
1101         pointer type only come in PTR+OFFSET flavours.
1102         Always call merge_pointed_to_info on PHI arguments that are
1103         SSA_NAMEs.
1104         (get_nmt_for): Mark call-clobbered tags whose pointer points
1105         to global memory.
1106         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
1107         values.
1108         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
1109         FLAGS.
1110         (add_stmt_operand): Abort if the caller tried to add a killing
1111         definition for a memory tag.
1112         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
1113         unnecessary checks.
1114
1115 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
1116
1117         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
1118         from call_used_regs.  Update call_really_used_regs.
1119         (CALL_REALLY_USED_REGISTERS): Define.
1120         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
1121         Replace call_used_regs with call_really_used_regs.
1122         (calc_live_regs, sh_media_register_for_return): Likewise.
1123         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
1124         * sh.md (return_media): Likewise.
1125
1126 2004-08-18  Andrew Pinski  <apinski@apple.com>
1127
1128         * config/darwin.c (machopic_legitimize_pic_address): Only set
1129         MEM_READONLY_P in the non TARGET_TOC case.
1130
1131 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
1132
1133         * rtl.def (NIL): Delete.
1134         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
1135         Tighten the syntax a little.
1136
1137         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
1138         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
1139         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
1140         * config/i386/predicates.md, config/m32r/m32r.h
1141         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
1142         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
1143         * config/sparc/sparc.h, doc/tm.texi:
1144         Replace all occurrences of NIL with UNKNOWN.
1145
1146 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
1147
1148         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
1149         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
1150         sequence inline.  Move drop_through_label code into this
1151         block, being the only place it is used.  Adjust comments.
1152
1153 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
1154
1155         * config/rs6000/altivec.md: Add new patterns for calls to
1156         save_world/rest_world functions.
1157
1158         * config/rs6000/rs6000-protos.h: (save_world_operation,
1159         restore_world_operation) new declarations.
1160
1161         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
1162         field added.
1163         (rs6000_stack_info): Set world_save_p field.
1164         (save_world_operation): New function.
1165         (restore_world_operation): New function.
1166         (compute_save_world_info): New function.
1167         (rs6000_stack_info): Call compute_save_world_info.
1168         (rs6000_emit_prologue): Check for world_save_p and generate
1169         pattern to call save_world for saving all non-volatile and
1170         special registers.
1171         (rs6000_emit_epilogue): Check for world_save_p and generate
1172         pattern to call rest_world to restore saved registers.
1173
1174         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
1175         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
1176         (rs6000_reg_names): New entries added for save_world_operation and
1177         restore_world_operation.
1178
1179 2004-08-18  Caroline Tice  <ctice@apple.com>
1180
1181         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
1182         "-freorder-blocks-and-partition" to the flags used in second
1183         stage of profiledbootstrap.
1184         * bb-reorder.c (push_to_next_round_p): Add new variable,
1185         next_round_is_last; set and use variable to make sure, when
1186         partitioning, that the last trace construction round consists
1187         of all (and only) cold basic blocks.
1188         (rotate_loop): Don't copy blocks that end in a section
1189         crossing jump.
1190         (copy_bb): Correctly initialize "partition" of duplicated bb.
1191         (add_unlikely_executed_notes): Add a comment.
1192         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
1193         to make sure, if function contains hot blocks, that the
1194         successors of ENTRY_BLOCK_PTR are hot; also, only look for
1195         crossing edges if the architecture supports named sections.
1196         (mark_bb_for_unlikely_executed_section): Modify to always
1197         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
1198         the basic block note insn.
1199         (fix_crossing_unconditional_branches): Remove extra space.
1200         (fix_edges_for_rarely_executed_code): Modify to only do
1201         partitioning work if the architecture supports named sections.
1202         (reorder_basic_blocks): Modify to only add
1203         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
1204         supports named sections.
1205         * c-common.c (handle_section_attribute): Initialize new global
1206         variable, user_defined_section_attribute, to true if user has
1207         specified one.
1208         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
1209         forward edges that cross section boundaries.
1210         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
1211         partitioning information if the architecture supports named
1212         sections.
1213         * cfgrtl.c (target.h): Add statement to include this.
1214         (rtl_split_block): Make sure newly created bb gets correct
1215         partition.
1216         (try_redirect_by_replacing_jump): Make sure redirection isn't
1217         attempting to cross section boundaries.
1218         (force_nonfallthru_and_redirect): Only do partition fix up if
1219         architecture supports named sections.
1220         (rtl_split_edge): Make sure newly created bb ends up in
1221         correct partition.
1222         (commit_one_edge_insertion): Remove code that incorrectly
1223         updated basic block partition; Make sure partition fix up only
1224         happens if architecture supports named sections and it's not
1225         already done.
1226         (rtl_verify_flow_info_1): Fix if-condition on test/error
1227         condition that fallthru edges are not allowed to cross section
1228         boundaries.
1229         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
1230         * final.c (final_scan_insn): Remove redundant test from if-statement;
1231         change calls to text_section into calls to function_section; add code
1232         to only to partitioning fix up if architecture supports named
1233         sections.
1234         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
1235         partition.
1236         (if_convert): Add targetm.have_named_sections to test.
1237         * output.h (unlikely_section_label): Extern declaration for new global
1238         variable.
1239         (unlikely_text_section_name): Likewise.
1240         * opts.c (decode_options): If both partitioning and DWARF debugging
1241         are turned on, issue a warning that this doesn't work, and change
1242         partitiong to basic block reordering (without hot/cold partitions).
1243         * passes.c (rest_of_handle_final): Re-set new global variable,
1244         user_defined_section_attribute, to false.
1245         (rest_of_compilation): Change options for calling partitioning
1246         function: Don't call if the user defined the section attribute, and
1247         don't call if DECL_ONE_ONLY is true for the current function.
1248         * predict.c (choose_function_section): Return immediately if we
1249         are doing hot/cold partitioning (i.e. let the basic block partitioning
1250         determine where the function belongs).
1251         * reg-stack.c (emit_swap_insn): Add condition to step over
1252         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1253         * toplev.c (user_defined_section_attribute): New global variable.
1254         * toplev.h (user_defined_section_attribute): Extern declaration
1255         for new global variable.
1256         * varasm.c (unlikely_section_label): New global variable.
1257         (unlikely_text_section_name): New global variable.
1258         (unlikely_text_section): Add code to initialize
1259         unlikely_text_section_name if necessary; modify to use
1260         unlikely_text_section_name and unlikely_section_label; also to use
1261         named_section properly.
1262         (in_unlikely_text_section):  Modify to work correctly with
1263         named_section and to use unlikely_text_section_name.
1264         (named_section):  Add code to work properly with cold section.
1265         (function_section): Clean up if-statement.
1266         * config/darwin.c (darwin_asm_named_section): Return to original
1267         code, removing use of SECTION_FORMAT_STRING.
1268         * config/arm/pe.h (switch_to_section):  Add case for
1269         in_unlikely_executed_text to switch statement.
1270         * config/i386/cygming.h (switch_to_section): Likewise.
1271         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1272         (SECTION_FORMAT_STRING): Likewise.
1273         * config/mcore/mcore.h (switch_to_section): Likewise.
1274         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1275         (SECTION_FORMAT_STRING): Remove.
1276
1277 2004-08-18  Roger Sayle  <roger@eyesopen.com>
1278
1279         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
1280         -ffixed-reg safe, by preserving the meanings of zero and one.
1281         (CALL_USED_REGISTERS): Likewise.
1282         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
1283
1284 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1285
1286         * config/sh/sh.c (split_branches): Check the result of
1287         next_active_insn.
1288         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
1289         Call rtl_register_cfg_hooks.
1290
1291 2004-08-18  Richard Henderson  <rth@redhat.com>
1292
1293         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1294         * alias.c (true_dependence): Update to match new semantics.
1295         (canon_true_dependence, write_dependence_p): Likewise.
1296         (anti_dependence, output_dependence): Update write_dependence_p args.
1297         (unchanging_anti_dependence): Remove.
1298         * calls.c (purge_mem_unchanging_flag): Remove.
1299         (fixup_tail_calls): Don't call it.
1300         (expand_call): Don't add unchanging memory to function usage.
1301         * expr.c (emit_block_move_via_libcall): Likewise.
1302         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
1303         (get_subtarget): Don't use RTX_UNCHANGING_P.
1304         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
1305         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
1306         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
1307         * cse.c (insert): Don't use RTX_UNCHANGING_P.
1308         (cse_insn, canon_hash): Use MEM_READONLY_P.
1309         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
1310         instead of RTX_UNCHANGING_P.
1311         * explow.c (maybe_set_unchanging): Remove.
1312         * expr.h (maybe_set_unchanging): Remove.
1313         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
1314         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
1315         (assign_parm_setup_reg, expand_function_start): Likewise.
1316         * integrate.c (copy_rtx_and_substitute): Likewise.
1317         * ra-rewrite.c (emit_colors): Likewise.
1318         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
1319         (fixup_match_1): Likewise.
1320         * reload1.c (reload, alter_reg): Likewise.
1321         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
1322         not RTX_UNCHANGING_P.
1323         (equiv_init_varies_p): Likewise.
1324         * loop-invariant.c (check_maybe_invariant): Likewise.
1325         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
1326         * loop.c (note_addr_stored): Likewise.
1327         (prescan_loop): Likewise. Don't check function usage for clobbered
1328         unchanging memory.
1329         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
1330         not RTX_UNCHANGING_P.
1331         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
1332         * varasm.c (force_const_mem): Likewise.
1333         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
1334         * web.c (entry_register): Likewise.
1335         * tree-gimple.h (get_base_address): Move decl ...
1336         * tree.h: ... here.
1337         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1338
1339         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
1340         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
1341         (alpha_set_memflags): Update to match.
1342
1343         * config/darwin.c (machopic_indirect_data_reference): Set
1344         MEM_READONLY_P instead of RTX_UNCHANGING_P.
1345         (machopic_indirect_call_target): Likewise.
1346         (machopic_legitimize_pic_address): Likewise.
1347         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
1348         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
1349         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
1350         * config/frv/frv.md (symGOT2reg): Likewise.
1351         * config/i386/i386.c (legitimize_pic_address,
1352         legitimize_tls_address, ix86_split_to_parts): Likewise.
1353         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1354         * config/ia64/ia64.md (load_fptr): Likewise.
1355         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1356         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
1357         * config/mcore/mcore.c (block_move_sequence): Likewise.
1358         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
1359         * config/pa/pa.c (legitimize_pic_address): Likewise.
1360         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1361         (rs6000_emit_move): Likewise.
1362         * config/s390/s390.c (legitimize_pic_address): Likewise.
1363         (legitimize_tls_address): Likewise.
1364         * config/s390/s390.md (casesi): Likewise.
1365         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
1366         * config/sh/sh.md (symGOT2reg): Likewise.
1367         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1368         * config/v850/v850.md (casesi): Likewise.
1369
1370         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
1371         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
1372         * config/mips/mips.c (mips_restore_gp): Likewise.
1373         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
1374         * config/sh/sh.c (sh_reorg): Likewise.
1375
1376 2004-08-18  Richard Henderson  <rth@redhat.com>
1377
1378         * tree.h (struct tree_decl): Add gimple_formal_temp.
1379         (DECL_GIMPLE_FORMAL_TEMP_P): New.
1380         * gimplify.c (pop_gimplify_context): Clear it.
1381         (lookup_tmp_var): Set it, if is_formal.
1382         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
1383         Use is_gimple_val for VECTOR.  Simplify return value.
1384         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
1385         (gimplify_expr): Likewise.
1386         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
1387         is_gimple_tmp_rhs for clarity.  Update all callers.
1388         (is_gimple_reg_rhs): Simplify logic.
1389         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
1390         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
1391         (is_gimple_formal_tmp_reg): Similarly.
1392         * tree-gimple.h: Update decls.
1393         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
1394         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
1395         * tree-ssa-live.c (var_union, type_var_init): Likewise.
1396
1397 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
1398
1399         * c4x.c (legitimize_operands): Remove calls to
1400         preserve_subexpressions_p.
1401
1402 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
1403
1404         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
1405         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
1406
1407 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
1408
1409         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
1410         Objective-C++ extensions.
1411         * gengtype.c (get_file_basename): Match entire subdirectory name
1412         ('cp', 'objc', 'objcp') rather than just its suffix.
1413         (get_base_file_bitmap): Allow for files to belong to more than one
1414         language.
1415         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
1416         used by more than one front-end.
1417
1418 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
1419
1420         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
1421         avoid use of preserve_subexpressions_p.
1422
1423 2004-08-17  Richard Henderson  <rth@redhat.com>
1424
1425         PR 17051
1426         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
1427
1428 2004-08-17  DJ Delorie  <dj@redhat.com>
1429
1430         * doc/extend.texi: Document new xstormy16 attribute.
1431
1432         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
1433         (xstormy16_splittable_below100_or_register): New.
1434         (combine_bnp): New.
1435         (xstormy16_reorg): New.
1436         (TARGET_MACHINE_DEPENDENT_REORG): Define.
1437
1438         * config/stormy16/stormy16.md (movqi_internal): Make name public.
1439         (movhi_internal): Likewise.
1440         (cbhranchhi): Likewise.
1441         (cbhranchhi_neg): Likewise.
1442         (andhi3): Only allow splittable below100 operands.
1443         (iorhi3): Likewise.
1444         (peephole2): New and/zero_extend->and peephole.
1445         (peephole2): New load/ior/save->set1 peephole.
1446         (peephole2): New load/and/save->clr1 peephole.
1447         (bclrx, bclrx2, bclr7, bclr15): New.
1448         (bsetx, bsetx2, bset7, bset15): New.
1449
1450         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
1451         liberal about acceptable 'B' masks.
1452
1453         * config/stormy16/stormy16-protos.h
1454         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1455         xstormy16_below100_operand, xstormy16_below100_or_register,
1456         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1457         (PREDICATE_CODES): Add new predicates.
1458
1459         * config/stormy16/stormy16.c
1460         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1461         xstormy16_below100_operand, xstormy16_below100_or_register,
1462         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1463         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
1464         (xstormy16_legitimate_address_p): Allow below100 symbols.
1465         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
1466         (xstormy16_expand_move): Leave below100 operands as-is.
1467         (xstormy16_encode_section_info): Encode below100 symbols.
1468         (xstormy16_strip_name_encoding): New.
1469         (xstormy16_print_operand): Print 'b' as shift mask.
1470         (xstormy16_attribute_table): Add below100 attributes.
1471         (xstormy16_handle_below100_attribute): New.
1472
1473         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
1474         (XSTORMY16_SECTION_FUNCTION): New.
1475         (EXTRA_SECTION_FUNCTIONS): Define using the above.
1476         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1477         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
1478         (ASM_OUTPUT_LABELREF): Define.
1479
1480         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
1481         (movhi_internal): Add below100 support.
1482         (andhi3): Add below100 support.
1483         (iorhi3): Add below100 support.
1484         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
1485
1486 2004-08-17  James E Wilson  <wilson@specifixinc.com>
1487
1488         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
1489         of VOIDmode for comparison code mode.
1490         * config/mips/mips.md: For conditional move patterns, use mode of
1491         first compare operand for comparison mode, instead of VOIDmode.
1492
1493         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1494         normal and -ffast-math code.
1495
1496 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
1497
1498         PR c++/15871
1499         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1500
1501 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
1502
1503         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1504
1505 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
1506
1507         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1508         for non Darwin targets.
1509         (*call_value_nonlocal_darwin64): Likewise.
1510
1511 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
1512
1513         * config/rs6000/rs6000.c (rs6000_function_value): Check for
1514         altivec mode for altivec return register.
1515
1516 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
1517
1518         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
1519         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1520         * config/rs6000/rs6000.md: Include darwin.md.
1521         (builtin_setjmp_receiver): Add DImode case.
1522         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1523         Darwin bits.
1524
1525 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
1526
1527         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
1528         trees.
1529         * tree-vectorizer.h: New File: Same.
1530         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
1531         * common.opt (ftree-vectorize): New flag to enable vectorization.
1532         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
1533         vectorization pass.
1534         * tree-data-ref.h (init_data_ref): Additional argument.
1535         (array_base_name_differ_p): Moved to tree-data-ref.c.
1536         * tree-data-ref.c (array_base_name_differ_p): Revised.
1537         (initialize_data_dependence_relation): Call array_base_name_differ_p
1538         with an extra argument.
1539         (analyze_all_data_dependences): Same.
1540         (init_data_ref): Additional argument is_read to set DR_IS_READ.
1541         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
1542         file.
1543         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
1544         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
1545         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
1546         vectorization pass.
1547         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
1548         (tree_ssa_loop_done): Call scev_finalize.
1549         (tree_vectorize): Define the new vectorization pass.
1550         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
1551         size of the vector they support (until support for multiple vector
1552         sizes is added to the vectorizer).
1553         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
1554         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
1555         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
1556         documentation.
1557
1558 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
1559
1560         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1561         usage.
1562         (generate_protocol_list, handle_impent): Likewise.
1563
1564 2004-08-17  Roger Sayle  <roger@eyesopen.com>
1565
1566         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
1567         ensure that call_used_regs is a superset of both fixed_regs and
1568         call_really_used_regs.
1569
1570 2004-08-17  Daniel Bornstein  <danfuzz@milk.com>
1571
1572         PR target/17019
1573         * arm.md (addsi3_cbranch_scratch): Correct case labels.
1574
1575 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
1576
1577         PR middle-end/17036
1578         * fold-const.c (fold): Check for integer operand when
1579         folding (A >> N) & 1 ? (1 << N) : 0.  Fix from Andrew
1580         Pinski  <pinskia@physics.uc.edu>.
1581
1582 2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
1583
1584         * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1585         No need to check if in a cross configuration.
1586         * configure: Regenerate.
1587
1588         * calls.c (precompute_register_parameters):
1589         Inline preserve_subexpressions_p ().
1590         * expmed.c (expand_mult_const, emit_store_flag): Likewise.
1591         * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
1592         Likewise.
1593         * expr.c (get_subtarget): Likewise.
1594         * rtl.h (preserve_subexpressions_p): Remove.
1595         * stmt.c (preserve_subexpressions_p): Remove.
1596
1597         * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
1598         TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
1599         Abort on gimplified cases.
1600
1601 2004-08-16  James E Wilson  <wilson@specifixinc.com>
1602
1603         * tree.h (VECTOR_FLOAT_TYPE_P): New.
1604         (FLOAT_TYPE_P): Use it.
1605         * c-typeck.c (build_binary_op): After convert calls, check for
1606         check for ERROR_MARK operands.
1607
1608 2004-08-16  Zack Weinberg  <zack@codesourcery.com>
1609
1610         * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
1611         (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
1612         (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
1613         (genobjs static pattern rule): Remove %.c dependency.
1614         ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
1615         Rename rules; delete commands; fix dependencies.
1616         (mostlyclean): Do not delete temporary source copies.
1617         * configure.ac: Delete all references to BUILD_PREFIX and
1618         BUILD_PREFIX_1.
1619         * configure: Regenerate.
1620
1621         * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
1622         Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
1623         basic-block.h #ifdef GENERATOR_FILE.  Surround some more code
1624         with #ifndef GENERATOR_FILE so that nothing from those headers
1625         is used.
1626
1627         * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1628
1629 2004-08-16  Adam Nemet  <anemet@lnxw.com>
1630
1631         * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1632
1633 2004-08-16  Andrew Pinski  <apinski@apple.com>
1634
1635         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1636         extraneous semicolon.
1637
1638 2004-08-16  Devang Patel  <dpatel@apple.com>
1639
1640         * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
1641         * print-tree.c (print_node): Print DECL_PRESERVE_P.
1642         * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
1643         (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
1644         * target.h (struct gcc_target): New member, mark_decl_preserved.
1645         * hooks.c (hook_void_charptr): Rename to ...
1646         (hook_void_constcharptr): ... new name.
1647         * hooks.h (hook_void_charptr): Rename to ..
1648         (hook_void_constcharptr): ... new name.
1649         * tree.h (DECL_PRESERVE_P): New #define.
1650         (struct tree_decl): New member, preserve_flag.
1651         * varasm.c (assemble_start_function): Mark decl preserved.
1652         (assemble_variable): Same.
1653         * darwin.c (darwin_mark_decl_preserved): New function.
1654         * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
1655         * darwin-protos.h (darwin_mark_decl_preserved): New decl.
1656         * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
1657
1658 2004-08-16  Joseph S. Myers  <jsm@polyomino.org.uk>
1659
1660         * c-decl.c (grokdeclarator): Allow for function definition where
1661         innermost declarator has attributes.
1662
1663 2004-08-16  Fariborz Jahanian <fjahanian@apple.com>
1664
1665         * except.c (get_exception_filter, build_post_landing_pads,
1666         dw2_build_landing_pads): Use target-specific mode for 'filter'.
1667         * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
1668         * target.h (eh_return_filter_mode): New field added.
1669         * targhooks.c (default_eh_return_filter_mode): Defined.
1670         * targhooks.h (default_eh_return_filter_mode): Declared.
1671         * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
1672
1673 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
1674
1675         * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
1676         ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
1677         * configure: Regenerate.
1678
1679 2004-08-16  Stan Shebs  <shebs@apple.com>
1680
1681         Basic support for 64-bit Darwin.
1682         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1683         (machopic_legitimize_pic_address): Similarly, plus use Pmode
1684         instead of SImode.
1685         * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
1686         (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
1687         (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
1688         (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
1689         (PROCESSOR_DEFAULT64): Define.
1690         * config/rs6000/darwin.md: New file, patterns specific to 64-bit
1691         Darwin.
1692         * config/rs6000/rs6000.md: Include darwin.md.
1693         (builtin_setjmp_receiver): Add DImode case.
1694         * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
1695         Darwin.
1696         (TARGET_ASM_ALIGNED_DI_OP): Ditto.
1697         (rs6000_emit_move): Add DImode case to Darwin bits.
1698         (machopic_output_stub): Use .quad if 64-bit.
1699         * invoke.texi: Document -m32 and -m64.
1700
1701 2004-08-16  Janis Johnson  <janis187@us.ibm.com>
1702
1703         * doc/extend.texi (AltiVec builtins): Document additional differences
1704         from the Motorola AltiVec PIM.
1705
1706 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
1707
1708         * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
1709         * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
1710         (struct tree_common): Update public_flag documentation.
1711
1712 2004-08-16  Nathanael Nerode  <neroden@gcc.gnu.org>
1713
1714         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1715         Check for artificial variables, not is_gimple_tmp_var.
1716         * tree-ssa-live.c (var_union): Likewise.
1717
1718 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
1719
1720         * calls.c (load_register_parameters): Remove spurious FIXME token.
1721
1722 2004-08-15  Ziemowit Laski  <zlaski@apple.com>
1723
1724         * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
1725         (c-lang.o): Depend on c-objc-common.h.
1726         (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
1727         c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
1728         * c-lang.c: Include c-objc-common.h.
1729         (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1730         LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1731         LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1732         LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1733         LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1734         LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1735         LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1736         LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1737         LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1738         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1739         LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1740         LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1741         LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1742         LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1743         LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1744         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1745         LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1746         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1747         LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1748         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1749         LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1750         LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1751         LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1752         LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1753         Move to c-objc-common.h.
1754         * c-objc-common.c: Include c-objc-common.h.
1755         * c-objc-common.h: New file.
1756
1757 2004-08-15  Andreas Tobler  <a.tobler@schweiz.ch>
1758             Andrew Pinski  <pinskia@physics.uc.edu>
1759
1760         PR target/14931
1761         * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
1762         style.
1763
1764 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
1765
1766         * tree.h (build_int_cst): New.
1767         (build_int_2): Remove.
1768         * tree.c (build_int_2): Remove.
1769         (build_int_cst): New.
1770         (make_vector_type, build_common_tree_nodes,
1771         build_common_tree_nodes_2): Use build_int_cst.
1772         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1773         expand_builtin_strpbrk, expand_builtin_fputs,
1774         build_string_literal, expand_builtin_printf,
1775         expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
1776         fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
1777         fold_builtin_isdigit, simplify_builtin_strstr,
1778         simplify_builtin_strpbrk, fold_builtin_fputs,
1779         simplify_builtin_sprintf): Use build_int_cst.
1780         * c-common.c (start_fname_decls, fix_string_type,
1781         c_common_nodes_and_builtins, c_init_attributes,
1782         shorten_compare): Likewise.
1783         * c-decl.c (complete_array_type,
1784         check_bitfield_type_and_width): Likewise.
1785         * c-lex.c (interpret_integer, lex_charconst): Likewise.
1786         * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
1787         * c-pretty-print.c (pp_c_integer_constant): Likewise.
1788         * c-typeck.c (really_start_incremental_init, push_init_level,
1789         set_nonincremental_init_from_string): Likewise.
1790         * calls.c (load_register_parameters): Likewise.
1791         * convert.c (convert_to_pointer): Likewise.
1792         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1793         build_fn_info_type, build_ctr_info_value, build_gcov_info):
1794         Likewise.
1795         * except.c (init_eh, assign_filter_values, assign_filter_values):
1796         Likewise.
1797         * expmed.c (store_fixed_bit_field, extract_bit_field,
1798         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1799         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1800         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1801         * expr.c (convert_move, emit_group_load, emit_group_store,
1802         expand_assignment, store_constructor, store_field,
1803         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1804         * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1805         invert_truthvalue, optimize_bit_field_compare,
1806         decode_field_reference, all_ones_mask_p, constant_boolean_node,
1807         fold_div_compare, fold, fold_read_from_constant_string,
1808         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
1809         * function.c (assign_parm_setup_block): Likewise.
1810         * stmt.c (shift_return_value, expand_end_case_type,
1811         estimate_case_costs): Likewise.
1812         * stor-layout.c (layout_type, initialize_sizetypes,
1813         set_min_and_max_values_for_integral_type): Likewise.
1814         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1815         reset_evolution_in_loop): Likewise.
1816         * tree-chrec.h (build_polynomial_chrec): Likewise.
1817         * tree-complex.c (build_replicated_const): Likewise.
1818         * tree-eh.c (honor_protect_cleanup_actions,
1819         lower_try_finally_onedest, lower_try_finally_copy,
1820         lower_try_finally_switch): Likewise.
1821         * tree-mudflap.c (mf_build_string, mx_register_decls,
1822         mudflap_register_call, mudflap_enqueue_constant): Likewise.
1823         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1824         * tree-pretty-print.c (dump_generic_node): Likewise.
1825         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1826         Likewise.
1827         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1828         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1829         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1830         Likewise.
1831
1832         * config/alpha/alpha.c (alpha_initialize_trampoline,
1833         alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
1834         * config/arm/arm.c (arm_get_cookie_size): Likewise.
1835         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1836         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1837         * config/i860/i860.c (i860_va_start): Likewise.
1838         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1839         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1840         mips_gimplify_va_arg_expr): Likewise.
1841         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1842         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1843         add_compiler_branch_island): Likewise.
1844         * config/s390/s390.c (s390_va_start): Likewise.
1845         * config/sh/sh.c (sh_va_start): Likewise.
1846         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1847         Likewise.
1848         * config/xtensa/xtensa.c (xtensa_va_start,
1849         xtensa_gimplify_va_arg_expr): Likewise.
1850
1851         * objc/objc-act.c (build_objc_string_object,
1852         build_objc_symtab_template, init_def_list, init_objc_symtab,
1853         init_module_descriptor, generate_static_references,
1854         build_selector_translation_table, get_proto_encoding,
1855         build_typed_selector_reference, build_selector_reference,
1856         build_next_objc_exception_stuff,
1857         build_method_prototype_list_template, generate_descriptor_table,
1858         generate_protocols, build_protocol_initializer,
1859         build_ivar_list_template, build_method_list_template,
1860         build_ivar_list_initializer, generate_ivars_list,
1861         generate_dispatch_table, generate_protocol_list,
1862         build_category_initializer, build_shared_structure_initializer,
1863         generate_shared_structures, handle_impent,
1864         generate_objc_image_info): Use build_int_cst.
1865
1866 2004-08-15  Ben Elliston  <bje@au.ibm.com>
1867
1868         * vec.h: Comment improvements.
1869
1870 2004-08-14  Roger Sayle  <roger@eyesopen.com>
1871
1872         * c-common.c (shorten_compare, pointer_int_sum,
1873         c_common_truthvalue_conversion, boolean_increment): Replace calls
1874         to build with calls to buildN.
1875         * c-decl.c (complete_array_type, grokdeclarator): Likewise.
1876         * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
1877         gimplify_switch_stmt): Likewise.
1878         * c-typeck.c (default_function_array_conversion,
1879         build_component_ref, build_array_ref, build_function_call,
1880         pointer_diff, build_unary_op, build_conditional_expr,
1881         build_compound_expr, build_modify_expr, c_finish_goto_label,
1882         c_finish_goto_ptr, c_finish_return, c_finish_loop,
1883         c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
1884         build_binary_op): Likewise.
1885
1886 2004-08-15  Steven Bosscher  <stevenb@suse.de>
1887
1888         * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
1889
1890 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1891
1892         * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
1893         curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
1894         * fixinc/fixincl.x: Rebuilt.
1895
1896 2004-08-14  Richard Sandiford  <rsandifo@redhat.com>
1897
1898         * config/mips/mips-protos.h (mips_symbolic_constant_p)
1899         (mips_atomic_symbolic_constant_p, mips_stack_address_p)
1900         (mips_small_data_pattern_p): Declare.
1901         * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
1902         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1903         * config/mips/mips.c (mips_symbolic_constant_p): Make global.
1904         (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
1905         (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
1906         (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
1907         (reg_or_const_float_1_operand, hilo_operand, extend_operator)
1908         (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
1909         (pc_or_label_operand, call_insn_operand, move_operand)
1910         (consttable_operand, symbolic_operand, general_symbolic_operand)
1911         (global_got_operand, local_got_operand, stack_operand)
1912         (fp_register_operand, lo_operand, fcc_register_operand): Delete.
1913         (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
1914         (mips_small_data_pattern_p): Replace previous small_data_pattern
1915         predicate.  Turn into a bool () (rtx) function.
1916         * config/mips/predicates.md: New file.
1917         * config/mips/mips.md: Include it.  Use the target-independent
1918         comparison_operator instead of cmp_op.  Rename trap_cmp_op to
1919         trap_comparison_operator and equality_op to equality_operator.
1920         Replace uses of small_int with the equivalent const_arith_operand.
1921         Rename reg_or_const_float_1_operand to reg_or_1_operand.  Rename
1922         const_float_1_operand to const_1_operand.  Rename fcc_register_operand
1923         to fcc_reload_operand.
1924         * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
1925
1926 2004-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1927
1928         PR libstdc++/17005 partial fix.
1929         * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
1930         except when generating ANSI/C89 code.
1931
1932 2004-08-14  Nathan Sidwell  <nathan@codesourcery.com>
1933
1934         * c-common.c (shorten_compare): Use force_fit_type directly.
1935
1936 2004-08-14  Gerald Pfeifer  <gerald@pfeifer.com>
1937             Dimitri Papadopoulos-Orfanos  <papadopo@shfj.cea.fr>
1938             Dave Korn  <dk@artimi.com>
1939
1940         * doc/install.texi (Building): Avoid duplicate reference to GNU
1941         make requirement.
1942         (*-*-solaris2*): Do not recommend GNU make any longer.  Simplify.
1943
1944 2004-08-14  Richard Henderson  <rth@redhat.com>
1945
1946         * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
1947         * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
1948
1949 2004-08-13  Richard Henderson  <rth@redhat.com>
1950
1951         * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
1952         for constant_call_address_operand.
1953         (call_value_pop_1, call_value_1): Likewise.
1954         (sibcall_value_1, call_value_1_rex64): Likewise.
1955
1956 2004-08-13  James E Wilson  <wilson@specifixinc.com>
1957
1958         * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
1959         Correct mode from SFmode to DFmode.
1960
1961 2004-08-13  Ziemowit Laski  <zlaski@apple.com>
1962
1963         * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
1964         __cstring_object and __image_info sections with the no_dead_strip
1965         attribute.
1966
1967 2004-08-13  Roger Sayle  <roger@eyesopen.com>
1968             David Billinghurst  <David.Billinghurst@riotinto.com>
1969
1970         PR libgfortran/15930
1971         * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
1972         * fixinc/fixincl.x: Regenerate.
1973         * fixinc/tests/base/internal/math_core.h: New file.
1974
1975 2004-08-13  Richard Henderson  <rth@redhat.com>
1976
1977         * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
1978         (dbxout_function_end): Remove ifdefs for it.
1979         (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
1980
1981 2004-08-13  Richard Henderson  <rth@redhat.com>
1982
1983         * Makefile.in (insn-preds.o): Depend on TREE_H.
1984         * genpreds.c (write_insn_preds_c): Include tree.h.
1985         * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
1986         reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
1987         const48_operand, and_operand, or_operand, mode_width_operand,
1988         mode_mask_operand, mul8_operand, const0_operand,
1989         hard_fp_register_operand, hard_int_register_operand,
1990         reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
1991         samegp_function_operand, direct_call_operand, small_symbolic_operand,
1992         global_symbolic_operand, call_operand, symbolic_operand,
1993         dtp16_symbolic_operand, dtp32_symbolic_operand,
1994         gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
1995         gottp_symbolic_operand, alpha_comparison_operator,
1996         alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
1997         signed_comparison_operator, alpha_fp_comparison_operator,
1998         divmod_operator, fix_operator, aligned_memory_operand,
1999         unaligned_memory_operand, reg_or_unaligned_mem_operand,
2000         any_memory_operand, reg_not_elim_operand, normal_memory_operand,
2001         reg_no_subreg_operand, addition_operation): Move to predicates.md.
2002         (reg_or_const_int_operand): Remove.  Replace all users with
2003         reg_or_cint_operand.
2004         (tls_symbolic_operand_1): Export.  Don't check mode or for CONST.
2005         (resolve_reload_operand): Split out of aligned_memory_operand.
2006         * config/alpha/alpha-protos.h: Update for exports.
2007         * config/alpha/alpha.h (PREDICATE_CODES): Remove.
2008         * config/alpha/alpha.md: Include predicates.md.
2009         * config/alpha/predicates.md: New file.
2010
2011 2004-08-13  Richard Sandiford  <rsandifo@redhat.com>
2012
2013         * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
2014         fields with a pointer to the instruction definition.
2015         (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
2016         (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
2017         (write_attr_case, write_const_num_delay_slots): Update accordingly.
2018         (write_attr_case, write_const_num_delay_slots): Write the name of
2019         an insn next to its case statement.
2020         * genoutput.c (data): Add a filename field.
2021         (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
2022         (output_insn_data): Print the location of each insn definition.
2023         * genrecog.c (write_action): Print the name of an insn above
2024         the statement that returns its code.
2025
2026 2004-08-12  Andrew Pinski  <pinskia@physics.uc.edu>
2027
2028         * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
2029         * config/libgloss.h: Likewise.
2030         * config/arm/arm.c (arm_gen_load_multiple): Likewise.
2031         * c4x/c4x-modes.def: Likewise.
2032         * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
2033         (c4x_rptb_nop_p): Likewise.
2034         (c4x_rptb_valid_p): Likewise.
2035         (c4x_rptb_insert): Likewise.
2036         (c4x_address_conflict): Likewise.
2037         * config/c4x/c4x.md: Likewise.
2038         * config/frv/frv.md: Likewise.
2039         * config/i386/athlon.md: Likewise.
2040         * config/i386/i386.md: Likewise.
2041         * config/i386/predicates.md: Likewise.
2042         * config/ia64/ia64.c: Likewise.
2043         * config/ia64/itanium1.md: Likewise.
2044         * config/ia64/itanium2.md: Likewise.
2045         * config/iq2000/iq2000.md: Likewise.
2046         * config/mcore/mcore.c: Likewise.
2047         * config/mips/mips.c: Likewise.
2048         * config/mips/r3900.h: Likewise.
2049         * config/mips/sb1.md: Likewise.
2050         * config/pa/milli64.S: Likewise.
2051         * config/pa/pa.c: Likewise.
2052         * config/pa/pa.h: Likewise.
2053         * config/rs6000/8540.md: Likewise.
2054
2055 2004-08-13  Daniel Berlin  <dberlin@dberlin.org>
2056
2057         * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
2058
2059 2004-08-13  J"orn Rennecke <joern.rennecke@superh.com>
2060
2061         * sh.md (cbranch define_delay) Use cond_delay_slot for
2062         non-anulled condition too.
2063
2064 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
2065
2066         * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
2067         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2068         any_parallel_operand, lmw_operation, stmw_operation,
2069         mfcr_operation, mtcrf_operation.  Remove PARALLEL from any_operand.
2070         * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
2071         any_parallel_operand.
2072         (return_and_restore_fpregs_{si,di}): Same.
2073
2074 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
2075
2076         * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
2077         if pred->singleton != PARALLEL, issue a warning and pretend it was.
2078         Also issue a warning for any predicate we don't know about.
2079
2080 2004-08-12  Richard Henderson  <rth@redhat.com>
2081
2082         * config/i386/i386.c (internal_label_prefix): Export.
2083         (internal_label_prefix_len, struct ix86_address,
2084         ix86_decompose_address, maybe_get_pool_constant,
2085         ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
2086         memory_address_length): Export.
2087         (any_fp_register_operand, fp_register_operand,
2088         register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
2089         x86_64_general_operand, x86_64_szext_general_operand,
2090         x86_64_nonmemory_operand, x86_64_movabs_operand,
2091         x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
2092         x86_64_zext_immediate_operand, const_int_1_31_operand,
2093         symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
2094         tls_symbolic_operand, global_dynamic_symbolic_operand,
2095         local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
2096         local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
2097         constant_call_address_operand, const0_operand, const1_operand,
2098         const248_operand, const_0_to_3_operand, const_0_to_7_operand,
2099         const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
2100         shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
2101         general_no_elim_operand, nonmemory_no_elim_operand,
2102         index_register_operand, q_regs_operand, flags_reg_operand,
2103         non_q_regs_operand, zero_extended_scalar_load_operand,
2104         vector_move_operand, no_seg_address_operand, sse_comparison_operator,
2105         ix86_comparison_operator, ix86_carry_flag_operator,
2106         fcmov_comparison_operator, promotable_binary_operator,
2107         cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
2108         mult_operator, div_operator, arith_or_logical_operator,
2109         memory_displacement_operand, cmpsi_operand, long_memory_operand,
2110         aligned_operand): Move to predicates.md as define_predicates.
2111         (tls_symbolic_operand_1): Remove.
2112         (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
2113         (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
2114         (legitimize_address): Merge tls_symbolic_operand contents.
2115         (ix86_expand_move): Likewise.
2116         * config/i386/i386-protos.h: Update for exports.
2117         * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
2118         (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
2119         * config/i386/i386.md: Include predicates.md.
2120         * config/i386/predicates.md: New file.
2121
2122 2004-08-13  Mark Mitchell  <mark@codesourcery.com>
2123
2124         PR c++/16924
2125         * config/i386/winnt.c (i386_pe_mark_dllexport): Set
2126         SYMBOL_REF_DECL.
2127         (i386_pe_mark_dllimport): Likewise.
2128         (i386_pe_encode_section_info): Likewise, when overriding
2129         dllimport attribute.
2130
2131 2004-08-12  Geoffrey Keating  <geoffk@apple.com>
2132
2133         * configure.ac: When testing for flex, nm, ar, and bison, check
2134         that they will actually be built.
2135         * configure: Regenerate.
2136
2137 2004-08-12  Ulrich Weigand  <uweigand@de.ibm.com>
2138
2139         * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
2140         (MOVE_MAX_PIECES): Define.
2141
2142 2004-08-12  Devang patel  <dpatel@apple.com>
2143
2144         * dbxout.c (dbxout_begin_prologue): New function.
2145         (dbx_debug_hooks): Use new begin prologue hook.
2146         (dbxout_function_end): Emit N_ENSYM.
2147         * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
2148
2149 2004-08-12  Janis Johnson  <janis187@us.ibm.com>
2150
2151         * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
2152         argument is float*.
2153
2154         * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
2155         for vec_dss.
2156
2157         * doc/extend.texi (AltiVec builtins): Fix description for recent
2158         changes.  Update operation list to match current support.
2159
2160 2004-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2161
2162         * config/s390/s390.c (struct s390_frame_layout): New struct as element
2163         of struct machine_function.
2164         (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
2165         changed all uses.
2166         (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
2167         changed all uses.
2168         (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
2169         (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
2170         (s390_frame_area, s390_register_info): New functions.
2171         (s390_optimize_prolog): Renamed to s390_optimize_prologue.  Added check
2172         for base register.
2173         (s390_return_addr_rtx, s390_return_address_offset)
2174         (s390_va_start, s390_gimplify_va_arg)
2175         (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
2176         layouts.
2177         (s390_frame_info): Functionality partly moved to s390_register_info.
2178         Made adaptions for new stack layout.
2179         (save_gprs, restore_gprs): Changed meaning of second parameter and
2180         adapted all callers.
2181
2182         * config/s390/s390.h (s390_backchain_string): New global variable.
2183         (MASK_BACKCHAIN): Removed definition.
2184         (TARGET_BACKCHAIN): Changed check.
2185         (TARGET_KERNEL_BACKCHAIN): New macro.
2186         (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
2187         (TARGET_OPTIONS): Added "backchain", "no-backchain" and
2188         "kernel-backchain".
2189         (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
2190
2191         * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
2192         as condition.  Adjusted for new stack layout.
2193
2194         * doc/invoke.texi: Added documentation for new option
2195         "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
2196         "-mno-backchain".
2197
2198 2004-08-12  Paul Brook  <paul@codesourcery.com>
2199
2200         * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
2201         (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
2202
2203 2004-08-12  David Daney  <ddaney@avtrex.com>
2204
2205         * java/gcj.texi:  Add subsection on signal usage.
2206
2207 2004-08-12  David Edelsohn  <edelsohn@gnu.org>
2208
2209         * expr.c (move_by_pieces): Set alignment for move to minimum of
2210         MOVE_MAX_PIECES mode alignment and the largest non-slow mode
2211         alignment, but not less than the original alignment.
2212         (move_by_pieces_ninsns): Same.
2213         (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
2214         (store_by_pieces_1): Same.
2215
2216 2004-08-12  Diego Novillo  <dnovillo@redhat.com>
2217
2218         PR tree-optimization/16867
2219         * tree.c (is_global_var): New function.
2220         (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
2221         Call is_global_var.
2222         * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
2223         Update all users.
2224         (is_global_var): Declare.
2225         * tree-dfa.c (dump_variable): Display global and addressable
2226         attributes.
2227         (add_referenced_var): Clarify documentation when marking
2228         variables call-clobbered.
2229         * tree-flow-inline.h (is_call_clobbered): Call is_global_var
2230         instead of needs_to_live_in_memory.
2231         (mark_call_clobbered): If the variable is a tag, mark it
2232         DECL_EXTERNAL.
2233         * tree-gimple.c (is_gimple_reg): Don't check for
2234         TREE_ADDRESSABLE.
2235         (is_gimple_non_addressable): Likewise.
2236         * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
2237         needs to be marked call-clobbered.
2238         (setup_pointers_and_addressables): Call is_global_var instead
2239         of needs_to_live_in_memory.
2240         * tree-ssa-dce.c (need_to_preserve_store): Remove.
2241         Update all users with is_global_var.
2242         (mark_stmt_if_obviously_necessary): Fix processing of aliased
2243         stores.  Don't check the virtual definitions.  Rather, check
2244         whether the store is going into global memory.
2245         (find_obviously_necessary_stmts): Get the symbol from the PHI
2246         result.
2247         * tree-ssa-operands.c (get_call_expr_operands): Do not add
2248         clobbering may-defs if the call does not have side effects.
2249
2250 2004-08-12  Jakub Jelinek  <jakub@redhat.com>
2251
2252         PR c++/16276
2253         * output.h (default_function_rodata_section,
2254         default_no_function_rodata_section): New prototypes.
2255         * target.h (struct gcc_target): Add asm_out.function_rodata_section.
2256         * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2257         (TARGET_ASM_OUT): Add it.
2258         * varasm.c (default_function_rodata_section,
2259         default_no_function_rodata_section): New functions.
2260         * final.c (final_scan_insn): Call
2261         targetm.asm_out.function_rodata_section instead of
2262         readonly_data_section.
2263         * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2264         * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2265         * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2266         * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2267         Likewise.
2268         * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2269         * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2270         Likewise.
2271         * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2272         Likewise.
2273         * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2274         * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2275         * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
2276
2277 2004-08-12  Paul Brook  <paul@codesourcery.com>
2278
2279         * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
2280         frame info.
2281         * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
2282         DWARF2_UNWIND_INFO.
2283
2284 2004-08-12  Ben Elliston  <bje@au.ibm.com>
2285
2286         PR target/16286
2287         * config/rs6000/altivec.h: Change vector to __vector throughout.
2288         (Except for the `vector' macro itself).
2289
2290 2004-08-12  Zack Weinberg  <zack@codesourcery.com>
2291
2292         * genpreds.c: Add capability to generate predicate bodies as
2293         well as function prototypes.  Write function prototypes for
2294         the generic predicates too.
2295         (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
2296         (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
2297         (write_match_code, write_predicate_expr, write_one_predicate_function)
2298         (parse_option): New functions.
2299         (output_predicate_decls): Delete.
2300         (main): Read the machine description, process DEFINE_PREDICATE or
2301         DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
2302         as appropriate.
2303
2304         * genrecog.c (struct decision_test): Replace index with
2305         struct pred_data pointer.
2306         (next_index): Remove, unused.
2307         (pred_table, preds, special_mode_pred_table): Delete.
2308         (compute_predicate_codes, process_define_predicate): New functions.
2309         (validate_pattern, add_to_sequence, write_switch): Update for
2310         new data structures.
2311         (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2312         Check both error_count and have_error.
2313
2314         * gensupport.c (in_fname, first_predicate): New globals.
2315         (define_pred_queue, define_pred_tail): New RTL-pattern queue.
2316         (predicate_table, last_predicate, old_pred_table)
2317         (old_special_pred_table): New statics.
2318         (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
2319         (add_predicate, init_predicate_table): New functions.
2320         (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2321         (init_md_reader_args_cb): Use the global in_fname.  No need to zero
2322         it or max_include_len.  Call init_predicate_table.
2323         (read_rtx): Run the predicate queue after the attribute queue
2324         but before all the others.
2325         * gensupport.h (in_fname, struct pred_data, first_predicate)
2326         (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
2327         * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
2328         (DEFINE_SPECIAL_PREDICATE): New RTL codes.
2329         * dummy-conditions.c: Don't include bconfig.h, system.h,
2330         coretypes.h, tm.h, or system.h.  Do include stddef.h.
2331         Duplicate declaration of struct c_test from gensupport.h.
2332
2333         * Makefile.in (OBJS-common): Add insn-preds.o.
2334         (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
2335         (insn-preds.c, insn-preds.o): New rules.
2336         (s-preds): Also generate insn-preds.c.
2337         (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
2338         Update dependencies.
2339         (print-rtl.o, print-rtl1.o): Correct dependencies.
2340
2341         * recog.h: Delete prototypes of predicate functions.
2342
2343         * doc/md.texi (Predicates): New section with complete
2344         documentation of operand/operator predicates.  Remove some
2345         incomplete documentation of predicates from other places.
2346         * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
2347         PREDICATE_CODES; indicate that both are deprecated in favor
2348         of define_predicate/define_special_predicate.
2349
2350         * config/ia64/ia64.c: All predicate function definitions moved
2351         to ia64.md, except
2352         (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
2353         (ia64_expand_load_address, ia64_expand_move):
2354         Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
2355
2356         * config/ia64/ia64.md: All predicates now defined here.
2357         (symbolic_operand): Is now a special predicate.
2358
2359         * config/ia64/ia64.h: Declare ia64_section_threshold.
2360         (PREDICATE_CODES): Delete.
2361
2362 2004-08-12  Richard Henderson  <rth@redhat.com>
2363
2364         * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
2365         * c-semantics.c (add_stmt): Set it.
2366         * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
2367         before instantiating a variable sized type.
2368
2369 2004-08-12  Richard Henderson  <rth@redhat.com>
2370
2371         * stor-layout.c (round_up, round_down): Move ...
2372         * fold-const.c (round_up, round_down): ... here.  Use
2373         multiple_of_p to avoid any arithmetic at all.
2374
2375 2004-08-12  Richard Henderson  <rth@redhat.com>
2376
2377         * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
2378         (gimplify_init_ctor_preeval_1): New.
2379         (gimplify_init_ctor_preeval): New.
2380         (gimplify_init_ctor_eval): New.
2381         (gimplify_init_constructor): Use them.  Always gimplify the LHS
2382         object first.
2383
2384 2004-08-12  Ziemowit Laski  <zlaski@apple.com>
2385
2386         (This patch is part of merge of objc-improvements-branch
2387         into mainline.)
2388
2389         * doc/frontends.texi: Mention Objective-C++ in addition to
2390         Objective-C.
2391         * doc/install.texi: Add 'obj-c++' to list of configurable
2392         languages.
2393         * doc/invoke.texi: Rename Objective-C option headings to
2394         indicate they also apply to Objective-C++.  List file
2395         extensions for Objective-C++ sources.  Mention that
2396         ObjC and ObjC++ compilations may also use C and C++ options,
2397         respectively.  Point users to doc/standards.texi for
2398         further info on ObjC and ObjC++.
2399         * doc/sourcebuild.texi: Mention the objcp/ directory and
2400         the Objective-C++ sources it contains.
2401         * doc/standards.texi: Update link to Apple ObjC site;
2402         add link to gcc readings.html WWW doc.
2403
2404 2004-08-12  Alan Modra  <amodra@bigpond.net.au>
2405
2406         * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
2407         and 2004-07-14 changes.
2408
2409 2004-08-12  Paul Brook  <paul@codesourcery.com>
2410
2411         * doc/invoke.texi: Fix typo.
2412
2413 2004-08-11 Devang Patel  <dpatel@apple.com>
2414
2415         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
2416         and -no_dead_strip_inits_and_terms.
2417         (LINK_SPEC): Same.
2418         * doc/invoke.texi (Darwin Options): Document -dead_strip and
2419         -no_dead_strip_inits_and_terms.
2420
2421 2004-08-11  Paul Brook  <paul@codesourcery.com>
2422
2423         * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
2424         (arm_load_pic_register): ... to this.
2425         * config/arm/arm.c (arm_finalize_pic): Rename ...
2426         (arm_load_pic_register): ... to this.  Always output insns at the
2427         current location.  Load via low reg in thumb mode.
2428         (arm_expand_prologue): Call arm_load_pic_register.
2429         (thumb_expand_prologue): Ditto.
2430         * config/arm/arm.h (FINALIZE_PIC): Remove.
2431         * config/arm/arm.md (builtin_setjmp_receiver): Call
2432         arm_load_pic_register.
2433
2434 2004-08-11  Paul Brook  <paul@codesourcery.com>
2435
2436         * arm.c (thumb_force_lr_save): Add prototype.
2437         (thumb_compute_save_reg_mask): New function.
2438         (thumb_find_work_register): New function.
2439         (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
2440         (thumb_unexpanded_epilogue): Ditto.  Remove redundant code.
2441         Don't clobber r3 when removing pretend args.
2442         (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
2443         (thumb_output_function_prologue): Use new functions.
2444         (thumb_set_return_address): Use thumb_compute_save_reg_mask.
2445         * arm.h (THUMB_REG_PUSHED_P): Remove.
2446
2447 2004-08-11  James E Wilson  <wilson@specifixinc.com>
2448
2449         PR rtl-optimization/16490
2450         * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
2451         global_live_at_end for new basic block if already set for other blocks.
2452
2453 2004-08-11 David Edelsohn  <edelsohn@gnu.org>
2454
2455         * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
2456
2457         * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
2458         (mfcr rlwinm rlwinm patterns): Set length to 12.
2459
2460 2004-08-11  Andrew MacLeod  <amacleod@redhat.com>
2461
2462         * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
2463         get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
2464         (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
2465         (start_ssa_stmt_operands): Delete.
2466         * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
2467         struct stmt_operands_d.
2468         (build_ssa_operands): New extern entry point.
2469         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
2470         building code, replace with create_ssa_artficial_load_stmt().
2471         * tree-ssa-operands.c (struct voperands_d): Delete.
2472         (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
2473         (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
2474         (free_uses, free_defs, free_vuses, free_v_may_defs,
2475         free_v_must_defs): Remove dealloc parameter.
2476         (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
2477         (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
2478         finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
2479         vector comparisons, ssa_name reuse, and allocations here.
2480         (verify_start_operands): Delete.
2481         (finalize_ssa_stmt_operands): Set new operands by calling finalize
2482         routines.
2483         (start_ssa_stmt_operands): Move from tree-flow-inline.h.
2484         (append_def, append_usei): Simplify to simple accumulation.
2485         (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
2486         duplicates and simple accumulation.
2487         (free_ssa_operands): Free vectors in a stmt_operand structure.
2488         (build_ssa_operands): New. Create a new stmt_operand structure from
2489         a stmt and an old set of stmt_operands.
2490         (get_stmt_operands): Simplify and call build_ssa_operands.
2491         (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
2492         get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
2493         add_call_read_ops): Don't pass prev_vops around anymore.
2494         (note_addressable): Return if no stmt annotation.
2495         (copy_virtual_operands): Access v_may_def operands through a struct.
2496         (create_ssa_artficial_load_stmt): New.  Create a load stmt for DOM's
2497         hash tables without treating the stmt as a real stmt.
2498         * tree-ssa-operands.h (struct v_may_def_operand_type): New.  Access
2499         v_may_def def and use through a struct instead of 2 array elements.
2500         (struct v_may_def_optype_d): Use v_may_def_operand_type.
2501         (struct stmt_operands_d): New.  Struct for storing all operand vectors.
2502
2503 2004-08-11  Nick Clifton  <nickc@redhat.com>
2504
2505         * config/arm/arm.c (arm_is_longcall_p): Update comment describing
2506         this funciton's behaviour.  Return true when the current function
2507         has a section attribute and -mlong-calls is in effect.
2508         * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
2509         short-call marker when -mlong-calls is in effect and the function
2510         has a section attribute.
2511
2512 2004-08-10  Zack Weinberg  <zack@codesourcery.com>
2513
2514         * stmt.c (expand_return): If asked to return the RESULT_DECL,
2515         just call expand_value_return on result_rtl.
2516
2517 2004-08-10  Richard Henderson  <rth@redhat.com>
2518
2519         * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
2520         * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
2521         * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
2522         (add_location_or_const_value_attribute): ... not here.  Use
2523         loc_descriptor_from_tree if possible.
2524         (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
2525         Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
2526         values specially.
2527         (loc_descriptor_from_tree): New.  Update callers.
2528         * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
2529         * gimplify.c (gimplify_decl_expr): Lower variable sized types to
2530         pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
2531         (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
2532         and BUILT_IN_STACK_RESTORE.
2533         (gimplify_expr): Lower DECL_VALUE_EXPR decls.
2534         * stmt.c (expand_stack_alloc): Remove.
2535         * tree-mudflap.c (mx_register_decls): Don't look for
2536         BUILT_IN_STACK_ALLOC.
2537         * tree-nested.c (convert_local_reference): Likewise.
2538         * tree.h (DECL_VALUE_EXPR): New.
2539
2540 2004-08-10  Richard Henderson  <rth@redhat.com>
2541
2542         * stor-layout.c (round_up): Check for 0/1 before dividing.
2543         (round_down): Likewise.
2544
2545         * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2546
2547 2004-08-09  Mark Mitchell  <mark@codesourcery.com>
2548
2549         * config.gcc (arm*-*-eabi*): New target.
2550         * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
2551         (TARGET_LIB_INT_CMP_BIASED): Likewise.
2552         * expmed.c (expand_divmod): Try a two-valued divmod function as a
2553         last resort.
2554         * gthr.h: Remove bogus tokens at end of #pragma.
2555         * optabs.c (expand_twoval_binop_libfunc): New function.
2556         (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
2557         (prepare_float_lib_cmp): Try reversing the condition.
2558         (debug_optab_libfuncs): New function.
2559         * optabs.h (expand_twoval_binop_libfunc): Declare.
2560         * config/arm/arm.c (arm_init_libfuncs): New function.
2561         (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
2562         (TARGET_INIT_LIBFUNCS): Define it.
2563         * config/arm/arm.h (TARGET_BPABI): New macro.
2564         * config/arm/arm-protos.h
2565         (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
2566         * config/arm/bpabi.S: New file.
2567         * config/arm/bpabi.c: Likewise.
2568         * config/arm/bpabi.h: Likewise.
2569         * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
2570         (__aeabi_drsub): Likewise.
2571         (__aeabi_dsub): Likewise.
2572         (__aeabi_dadd): Likewise.
2573         (__aeabi_ui2d): Likewise.
2574         (__aeabi_i2d): Likewise.
2575         (__aeabi_f2d): Likewise.
2576         (__aeabi_dmul): Likewise.
2577         (__aeabi_ddiv): Likewise.
2578         (__aeabi_cdrcmple): Likewise.
2579         (__aeabi_cdcmpeq): Likewise.
2580         (__aeabi_cdcmple): Likewise.
2581         (__aeabi_dcmpeq): Likewise.
2582         (__aeabi_dcmplt): Likewise.
2583         (__aeabi_dcmple): Likewise.
2584         (__aeabi_dcmpge): Likewise.
2585         (__aeabi_dcmpgt): Likewise.
2586         (__aeabi_dcmpun): Likewise.
2587         (__aeabi_d2iz): Likewise.
2588         (__aeabi_d2uiz): Likewise.
2589         (__aeabi_d2f): Likewise.
2590         * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
2591         (__aeabi_frsub): Likewise.
2592         (__aeabi_fsub): Likewise.
2593         (__aeabi_fadd): Likewise.
2594         (__aeabi_ui2f): Likewise.
2595         (__aeabi_i2f): Likewise.
2596         (__aeabi_fmul): Likewise.
2597         (__aeabi_fdiv): Likewise.
2598         (__aeabi_cfrcmple): Likewise.
2599         (__aeabi_cfcmpeq): Likewise.
2600         (__aeabi_cfcmple): Likewise.
2601         (__aeabi_fcmpeq): Likewise.
2602         (__aeabi_fcmplt): Likewise.
2603         (__aeabi_fcmple): Likewise.
2604         (__aeabi_fcmpge): Likewise.
2605         (__aeabi_fcmpgt): Likewise.
2606         (__aeabi_fcmpun): Likewise.
2607         (__aeabi_f2iz): Likewise.
2608         (__aeabi_f2uiz): Likewise.
2609         * config/arm/lib1funcs.asm (ARM_CALL): New macro.
2610         (__aeabi_uidivmod): New function or alias.
2611         (__aeabi_idivmod): Likewise.
2612         (__aeabi_idiv0): Likewise.
2613         (__aeabi_ldiv0): Likewise.
2614         (__aeabi_llsr): Likewise.
2615         (__aeabi_lasr): Likewise.
2616         (__aeabi_llsl): Likewise.
2617         (bpabi.S): Include it.
2618         * config/arm/libgcc-bpabi.ver: New file.
2619         * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
2620         (LINK_SPEC): Remove.
2621         * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
2622         __aeabi_ulcmp.
2623         * config/arm/t-bpabi: New file.
2624         * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2625         (TARGET_LIB_INT_CMP_BIASED): Likewise.
2626
2627 2004-08-10  David Edelsohn  <edelsohn@gnu.org>
2628
2629         * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
2630         * config/rs6000/rs6000.md (clrmemsi): New pattern.
2631         * config/rs6000/rs6000.c (expand_block_clear): New function.
2632         (expand_block_move): Convert alignment to bits.  Use SImode and
2633         HImode for unaligned addresses if not STRICT_ALIGNMENT.
2634
2635 2004-08-10  Caroline Tice  <ctice@apple.com>
2636
2637         * varasm.c (unlikely_section_label): New global variable.
2638         (unlikely_text_section_name): New global variable.
2639         (text_section):  Remove alignment statement.
2640         (unlikely_text_section): Remove alignment statement; use
2641         unlikely_section_label rather than hard-coded string.
2642         (assemble_start_function): Initialize unlikely_section_label and
2643         unlikely_text_section_name;  make sure cold section is properly
2644         aligned at start of function; output unlikely_section_label if
2645         appropriate.
2646
2647 2004-08-10  Ulrich Weigand  <uweigand@de.ibm.com>
2648
2649         * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
2650         * config/s390/s390.c (s390_canonicalize_comparison): New function.
2651         * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
2652         * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
2653         "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
2654         ("*tmqi_mem"): Remove SUBREG from pattern.
2655         ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
2656         ("*andsi3_cconly"): Likewise.
2657
2658 2004-08-10  H.J. Lu  <hongjiu.lu@intel.com>
2659
2660         PR target/16909
2661         * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
2662
2663 2004-08-10  Janis Johnson  <janis187@us.ibm.com>
2664
2665         * doc/sourcebuild.texi (compat testing): Document available test
2666         framework commands.  Use the preferred spelling of DejaGnu.
2667
2668 2004-08-10  Daniel Berlin <dberlin@dberlin.org>
2669
2670         * lambda.h: Add matrix type, and prototypes for remainder of
2671         matrix and vector functions.
2672         (lambda_vector_mult_const): New function.
2673         (lambda_vector_negate): Ditto.
2674         (lambda_vector_add): Ditto.
2675         (lambda_vector_add_mc): Ditto.
2676         (lambda_vector_copy): Ditto.
2677         (lambda_vector_zerop): Ditto.
2678         (lambda_vector_equal): Ditto.
2679         (lambda_vector_min_nz): Ditto.
2680         (lambda_vector_first_nz): Ditto.
2681         (lambda_vector_matrix_mult): Ditto.
2682         * lambda-mat.c: New file.
2683         * Makefile.in (lambda-mat.o): New.
2684
2685 2004-08-10  Andrew MacLeod  <amacleod@redhat.com>
2686
2687         * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
2688         after linking stmt into the program.
2689         (bsi_remove): Don't call modify_stmt.
2690         * tree-complex.c (update_complex_assignment,
2691         expand_complex_comparison): Call modify_stmt after changing the stmt.
2692         * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
2693         removing the stmt.
2694         * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
2695         the stmt, and only if needed.
2696         * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
2697         expression.
2698         (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
2699         (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
2700         (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
2701         (eliminate_redundant_computations): Don't pass an annotation. Call
2702         modify_stmt rather than setting the annotation directly.
2703         (record_equivalences_from_stmt): Remove unused local 'j'.
2704         (cprop_operand): Take a stmt rather than an annotation as a parameter.
2705         Call modify_stmt.
2706         (cprop_into_stmt): Pass stmt rather than annotation.
2707         (update_rhs_and_lookup_avail_expr): Call modify_stmt.
2708         * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
2709         modify_stmt.
2710         * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
2711
2712 2004-08-10  Jason Merrill  <jason@redhat.com>
2713
2714         PR middle-end/16948
2715         * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
2716         the RESULT_DECL.
2717
2718 2004-08-10  Geoffrey Keating  <geoffk@apple.com>
2719
2720         * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
2721         hash function.
2722
2723 2004-08-10  Roger Sayle  <roger@eyesopen.com>
2724
2725         * config/mips/mips.md: New reciprocal square root patterns that
2726         match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
2727
2728 2004-08-10  Paul Brook  <paul@codesourcery.com>
2729
2730         * config/arm/arm-protos.h (arm_set_return_address,
2731         thumb_set_return_address): Add prototypes.
2732         * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
2733         * config/arm/arm.c (arm_compute_func_type,
2734         use_return_insn, arm_compute_save_reg0_reg12_mask,
2735         arm_compute_save_reg_mask, arm_output_function_prologue,
2736         arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
2737         current_function_calls_eh_return.
2738         (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
2739         old eh code.
2740         (arm_set_return_address, thumb_set_return_address): New functions.
2741         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
2742         ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
2743         * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
2744         (epilogue): Use the stackadj register.
2745         (eh_return, arm_eh_return, thumb_eh_return): New pattern.
2746
2747 2004-08-10  Jakub Jelinek  <jakub@redhat.com>
2748
2749         PR target/3144
2750         * expr.c (move_by_pieces_ninsns): Add max_size argument.
2751         (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
2752         (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
2753         (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
2754         but using MOVE_RATIO.
2755         (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
2756         (can_store_by_pieces): Change max_size type to unsigned int.
2757         (store_by_pieces_1): Likewise.  Pass max_size to
2758         move_by_pieces_ninsns.
2759         * config/s390/s390.h (STORE_BY_PIECES_P): Define.
2760         * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
2761         to move_by_pieces_ninsns.
2762         (STORE_BY_PIECES_P): Define.
2763         * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
2764         to move_by_pieces_ninsns.
2765         * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
2766
2767         * config/i386/i386.h (CLEAR_RATIO): Define.
2768
2769 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
2770
2771         * expr.c (expand_expr_real_1): Add back code that was not dead.
2772
2773 2004-08-09  Andrew Pinski  <apinski@apple.com>
2774
2775         * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
2776         which is found to be compatible before returning the aliasing set.
2777
2778 2004-08-09  Daniel Jacobowitz  <dan@debian.org>
2779
2780         * ggc-zone.c (struct alloc_zone): Add statistics counters.
2781         (always_collect): New flag.
2782         (ggc_alloc_zone_1): Update statistics support.  Don't include
2783         overhead in allocated counter.
2784         (sweep_pages): Update allocated counter for large pages.  Don'y
2785         include overhead.
2786         (ggc_collect_1): Always collect.
2787         (ggc_collect): Honor always_collect flag.  Sum all zones to decide
2788         whether to collect.
2789         (SCALE, LABEL): New macros.
2790         (ggc_print_statistics): Add statistics support.
2791
2792 2004-08-09  Roger Sayle  <roger@eyesopen.com>
2793
2794         * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
2795         (init_expmed): Fix potential overrun problem with "all.reg".
2796         (expand_sdiv2_pow2): Add an alternate implementation for signed
2797         division, if the target provides a suitable conditional move insn.
2798
2799 2004-08-09  Paul Brook  <paul@codesourcery.com>
2800         Richard Henderson  <rth@redhat.com>
2801
2802         * unwind-dw2.c (uw_install_context_1): Update target saved stack
2803         pointer.
2804
2805 2004-08-09  Geoffrey Keating  <geoffk@apple.com>
2806
2807         * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
2808         Check DATA limit only if there's no AS limit.  Ignore insanely
2809         low DATA limits.
2810         (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
2811         but take care that the AS limit isn't overrun.
2812         * doc/invoke.texi: Update documentation of min-heapsize parameter.
2813
2814 2004-08-09  Jeff Law  <law@redhat.com>
2815
2816         * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
2817         (tree-ssa-threadupdate.o): Add dependencies.
2818         * tree-ssa-threadupdate.c: New file.
2819         * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
2820         (rewrite_vars_out_of_ssa): Remove prototype.
2821         (cleanup_tree_cfg): Returns a bool.
2822         * tree.h (thread_through_all_blocks): Prototype.
2823         * tree-outof-ssa.c  (SSANORM_*): Move into here.
2824         (remove_ssa_form): Now static.
2825         (rewrite_vars_out_of_ssa): Kill.
2826         * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
2827         * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
2828         (remove_ssa_form, register_partitions_for_vars): Kill declarations.
2829         * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
2830         anything was changed.
2831         * tree-phinodes.c (add_phi_arg): Get the block for the PHI
2832         from the PHI's annotation rather than the edge associated with
2833         the new argument.
2834         * tree-ssa-dom.c (redirection_edges): Kill.
2835         (redirect_edges_and_update_ssa_graph): Kill.
2836         (tree_ssa_dominator_optimize): Do not reset forwardable flag
2837         for blocks anymore.  Do not initialize redirection_edges.
2838         Call thread_through_all_blocks.  Simplify code for cleanup
2839         of the CFG and iterating.  No longer call cleanup_tree_cfg
2840         outside the iteration loop.
2841         (thread_across_edge): No longer mess with forwardable blocks.
2842
2843 2004-08-09  Zack Weinberg  <zack@codesourcery.com>
2844
2845         * explow.c (memory_address): Use memory_address_p.
2846         * recog.c (general_operand): Likewise.
2847         * regrename.c: No need to define REG_OK_STRICT.
2848
2849 2004-08-09  Steven Bosscher  <stevenb@suse.de>
2850
2851         * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
2852         New timers.
2853         * gcse.c: Include timevar.h.
2854         (const_prop_count, copy_prop_count): Rename to global_const_prop_count
2855         and global_copy_prop_count.
2856         (local_const_prop_count, local_copy_prop_count): New static globals.
2857         (gcse_main): Set the right timevar for each pass.
2858         (cprop_jump): Increment global_const_prop_count when a constant is
2859         propagated.  Add "GLOBAL" to dump output.
2860         (cprop_insn): Increment global_const_prop_count when a constant is
2861         propagated, or global_copy_prop_count when a copy is propagated.
2862         (do_local_cprop): Likewise for local_const_prop_count and
2863         local_copy_prop_count.
2864         (one_cprop_pass): Initialize const/cprop counters to zero.
2865         Print out results of local and global const/cprop separately.
2866         (bypass_block): Break over-length line.
2867         * Makefile.in (gcse.o): Add TIMEVAR_H dependency.  Fix dependencies
2868         for bb-reorder.o and tracer.o.
2869
2870 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
2871
2872         * Makefile.in (GTFILES): Remove stmt.c
2873         (stmt.o): Do not depend on gt-stmt.h.
2874         * emit-rtl.c (emit_line_note): Do not call
2875         set_file_and_line_for_stmt.
2876         * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
2877         do everything.
2878         * function.c (free_after_parsing): Do not free STMT field.
2879         (allocate_struct_function): Do not call init_stmt_for_function.
2880         (assign_stack_temp_for_type): Do not accept values of keep
2881         other than 0 or 1.
2882         (init_temp_slots): Do not initialize removed variables.
2883         * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
2884         and X_VAR_TEMP_SLOT_LEVEL fields.
2885         * rtl.h (set_file_and_line_for_stmt): Remove.
2886         * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
2887         struct stmt_status, cond_stack, case_stack, nesting_stack,
2888         nesting_depth, emit_locus, set_file_and_line_for_stmt,
2889         same_case_target_p, init_stmt_for_function, emit_nop,
2890         expand_start_cond, expand_start_elseif, expand_start_else,
2891         expand_elseif, expand_end_cond): Remove.
2892         (preserve_subexpressions_p): Remove references to CFUN->STMT.
2893         (expand_start_case, expand_end_case_type): Remove, merge into...
2894         (expand_case): ... this one, including other bits from
2895         expand_expr_real_1.  Inline same_case_target_p.  Turn members
2896         of CASE_STACK into local variables.
2897         (emit_case_bit_tests): Inline same_case_target_p.
2898         (add_case_node): Add HEAD argument, return new head of the list,
2899         do not handle default label here.
2900         * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
2901         expand_start_elseif, current_nesting_level, expand_start_case,
2902         expand_end_case_type, expand_end_case, add_case_node,
2903         init_stmt_for_function, expand_elseif): Remove prototypes.
2904         (expand_case): Add prototype.
2905
2906 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
2907
2908         * expr.c (expand_expr_real_1): Use optab_for_tree_code.
2909
2910 2004-08-09  Paolo Bonzini  <bonzini@gnu.org>
2911
2912         * expr.c (var_rtx): Remove.
2913         (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
2914         LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
2915         TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
2916         Abort.
2917         (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
2918         * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
2919         * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
2920
2921 2004-08-08  Mostafa Hagog  <mustafa@il.ibm.com>
2922         Ayal Zaks <zaks@il.ibm.com>
2923
2924         * common.opt (freschedule-modulo-scheduled-loops): New flag.
2925         * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
2926         * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
2927         when -freschedule-modulo-scheduled-loops flag is not specified.
2928         (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
2929         add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
2930         More accurate placing of insn in row of partial schedule.
2931         (ps_insn_find_column): New function.
2932         * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
2933         * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
2934         (schedule_region): Use sched_is_disabled_for_current_region_p.
2935         * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
2936
2937 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2938
2939         * config/i386/i386.c (ix86_expand_clrmem): Revert the last
2940         change.
2941
2942 2004-08-07  H.J. Lu  <hongjiu.lu@intel.com>
2943
2944         * config/i386/i386.c (ix86_expand_clrmem): Properly call
2945         gen_strset for 64bit target.
2946
2947 2004-08-07  Olivier Hainque  <hainque@act-europe.fr>
2948
2949         * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
2950
2951 2004-08-07  Jason Merrill  <jason@redhat.com>
2952
2953         Make return in memory explicit.
2954         * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
2955         (assign_parm_find_data_types): Remove code for old front end
2956         invisible reference handling.
2957         (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
2958         (expand_function_end): Likewise.
2959         * gimplify.c (gimplify_return_expr): Handle a dereferenced
2960         RESULT_DECL.
2961         * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
2962         (declare_return_variable): Handle DECL_BY_REFERENCE.
2963         * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
2964         (cp_genericize_r): Use convert_from_reference.
2965         Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
2966         (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.
2967
2968         * c-common.c (c_warn_unused_result): Check TREE_USED before
2969         warning about a CALL_EXPR with an unused value.
2970
2971 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
2972
2973         * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
2974         to the compiler.  Use -fshort-wchar by default.
2975
2976 2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>
2977
2978         * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
2979         * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
2980         threshhold.
2981         * doc/invoke.texi (param): Document min-crossjump-insns.
2982
2983 2004-08-06  Richard Sandiford  <rsandifo@redhat.com>
2984
2985         PR c/13282
2986         * c.opt (Wmissing-field-initializers): New option.
2987         * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
2988         * c-typeck.c (pop_init_level): Guard the missing field warning with
2989         warn_missing_field_initializers rather than extra_warnings.
2990         * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
2991         some of the explanation from...
2992         (-Wextra): ...here.  Say that the missing field warning can be
2993         seperately controlled by -Wmissing-field-initializers.
2994
2995 2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
2996
2997         * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
2998         * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
2999         * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
3000         * tree.def (ENTRY_VALUE_EXPR): Remove.
3001
3002 2004-08-06  Jakub Jelinek  <jakub@redhat.com>
3003
3004         * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
3005         the places where it is actually needed.  Don't use repz; stosb
3006         for -Os with sufficiently small constant sizes.
3007         For sufficiently small repz; stos{l,q} repeat counts use a sequence
3008         of stos{l,q} instructions instead.
3009
3010 2004-08-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3011
3012         PR tree-optimization/16807
3013         * loop-iv.c (dump_iv_info): Dump invariants correctly.
3014         (iv_subreg, iv_extend): Express value of invariant purely in
3015         base field.
3016
3017 2004-08-06  Mark Mitchell  <mark@codesourcery.com>
3018
3019         * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
3020         (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
3021
3022 2004-08-06  Roman Zippel  <zippel@linux-m68k.org>
3023
3024         * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
3025         * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
3026         pre_dec_operand.
3027         * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
3028         pattern until reload is finished to allow better code generation
3029         and split them completely into separate instrunctions.
3030         (*andsi3_split): New pattern.
3031
3032 2004-08-05  Mark Mitchell  <mark@codesourcery.com>
3033
3034         * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
3035         Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P.  Set
3036         DECL_VISIBLITY.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3037         * tree.h (handle_dll_attribute): Declare.  Test
3038         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3039         * c-common.h (c_determine_visibility): Declare.
3040         * c-common.c (c_determine_visibility): New function.
3041         * c-decl.c (finish_decl): Use it.
3042         (finish_function): Likewise.
3043         * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
3044         zero, by default.  Use #if, not #ifdef, to test it.
3045         * config/arm/arm.c (arm_attribute_table): Use
3046         handle_dll_attribute.  Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
3047         #if.
3048         * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
3049         * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3050         to 1.
3051         * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
3052         * config/i386/i386.c (ix86_attribute_table): Use
3053         handle_dll_attribute for dllimport/dllexport.  Test
3054         TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3055         * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
3056         * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3057         it to 1.
3058         * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
3059         with #if.
3060         * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3061         it to 1.
3062         * doc/extend.texi (dllexport): Clarify and correct documentation.
3063         (dllimport): Likewise.
3064         * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
3065         handle_dll_attribute.
3066
3067 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3068
3069         * tree-ssa-loop-manip.c: New file.
3070         * Makefile.in (tree-ssa-loop-manip.o): Add.
3071         * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
3072         Declare.
3073         * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
3074         form.
3075         (tree_ssa_loop_done): Verify loop closed ssa form.
3076         * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
3077
3078 2004-08-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3079
3080         * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
3081         pa_asm_output_aligned_local): New functions.
3082         * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
3083         pa_asm_output_aligned_common and pa_asm_output_aligned_local.
3084         * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
3085         pa_asm_output_aligned_common.
3086         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3087         * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
3088         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3089         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3090         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
3091         (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3092         (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3093         * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
3094         common data.
3095
3096 2004-08-05  Andrew Pinski  <apinski@apple.com>
3097
3098         * objc/objc-act.c (build_objc_string_object): Mark the address
3099         expression as constant.
3100
3101 2004-08-05  David Edelsohn  <edelsohn@gnu.org>
3102
3103         * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
3104         and mask64_operand thinkos.  Handle ZERO_EXTRACT.  Handle
3105         SIGN_EXTEND / ZERO_EXTEND of MEM.  Handle rlwinm patterns.
3106
3107 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3108
3109         * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
3110         Remove definitions conditioned on USE_GNULIBC_1 or conditioned
3111         out, and associated obsolete comments.
3112
3113 2004-08-05  Nathan Sidwell  <nathan@codesourcery.com>
3114
3115         * tree.h (force_fit_type): Return a tree, take three flags.
3116         * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
3117         TREE_CONSTANT_OVERFLOW here.
3118         (int_const_binop, const_binop): Adjust.
3119         (size_int_type): Do sign extension here.
3120         (fold_convert_const, optimize_bit_field_compare,
3121         decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
3122         fold_negate_const, fold_abs_const, fold_not_const): Adjust.
3123         * tree.c (size_in_bytes, int_fits_type_p): Adjust.
3124
3125 2004-08-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3126
3127         PR tree-optimization/16864
3128         * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
3129         for ssa names without default_def.
3130
3131 2004-08-05  Richard Sandiford  <rsandifo@redhat.com>
3132
3133         * config/i386/i386.c (ix86_expand_prologue): If the function uses a
3134         frame pointer, restore eax with an ebp-relative address.
3135
3136 2004-08-04  Geoffrey Keating  <geoffk@apple.com>
3137
3138         PR 14516
3139         * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
3140         * c-common.h (make_rtl_for_local_static): Delete.
3141         * c-decl.c (shadow_tag_warned): Clean up comment.
3142         (finish_decl): Clean up spacing.  Use set_user_assembler_name when
3143         appropriate.  Don't pass asmspec to rest_of_decl_compilation.
3144         * c-semantics.c (make_rtl_for_local_static): Delete.
3145         * expr.c (init_block_move_fn): Use set_user_assembler_name.
3146         (init_block_clear_fn): Likewise.
3147         * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
3148         expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
3149         * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
3150         * tree.h (make_decl_rtl): Remove second parameter.
3151         (set_user_assembler_name): New.
3152         * varasm.c (set_user_assembler_name): New.
3153         (make_decl_rtl): Remove second parameter.  Update callers in many
3154         files.
3155
3156 2004-08-05  Adam Nemet  <anemet@lnxw.com>
3157
3158         * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
3159         (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*.  Update
3160         to LynxOS 4.0.
3161         * gthr-lynx.h: New file.
3162         * config/lynx-ng.h: Remove file.
3163         * config/lynx.h: Update to LynxOS 4.0.
3164         * config/t-lynx: New file.
3165         * config/i386/lynx-ng.h: Remove file.
3166         * config/i386/lynx.h: Update to LynxOS 4.0.
3167         * config/rs6000/lynxbase.h: Remove file.
3168         * config/rs6000/lynx.h: Update to LynxOS 4.0.
3169         * config/rs6000/t-lynx: New file.
3170         * doc/install.texi (Options specification): Remove reference to
3171         LynxOS from systems where --with-gnu-as makes a difference.
3172
3173 2004-08-05  Joseph S. Myers  <jsm@polyomino.org.uk>
3174
3175         * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
3176         __UINTMAX_TYPE__.
3177         * c-cppbuiltin.c (builtin_define_stdint_macros): New.  Define
3178         __INTMAX_MAX__.
3179         (c_cpp_builtins): Call it.
3180         * doc/cpp.texi: Update.
3181
3182 2004-08-04  David Edelsohn  <edelsohn@gnu.org>
3183
3184         * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
3185         cost.
3186
3187 2004-08-04  Jan Hubicka  <jh@suse.cz>
3188
3189         * basic-block.h (profile_staus): New global variable.
3190         * cfg.c (profile_status): Declare.
3191         (check_bb_profile): Break out from ....; use profile_status
3192         (dump_flow_info): ... here.
3193         * cfgbuild.c (find_basic_blocks): Set profile_status.
3194         * cfgexpand.c (tree_expand_cfg): Likewise.
3195         * predict.c (estimate_probability): Likewise.
3196         * profile.c (branch_prob): Likewise.
3197         * tree-cfg.c (build_tree_cfg): Likewise.
3198         (dump_function_to_file): Use check_bb_profile.
3199         * tree-pretty-print (dump_bb_header): Likewise.
3200         * tree-profile.c (do_tree_profiling): Cleanup.
3201
3202 2004-08-04  Zack Weinberg  <zack@codesourcery.com>
3203
3204         * Makefile.in (RTL_BASE_H, RTL_H): Correct.
3205         (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
3206         (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
3207         (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
3208         (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
3209         (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
3210         (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
3211         (ggc-none.o, errors.o): Move rule to generators section;
3212         correct dependencies.
3213         (min-insn-modes.o): Move rule to generators section; remove
3214         unnecessary explicit command; correct dependencies.
3215         (print-rtl.o, print-rtl1.o): Correct dependencies.
3216         ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
3217         (mostlyclean): Update.
3218
3219         * errors.c: Include bconfig.h not config.h.  Correct comment.
3220         * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
3221         * ggc-none.c: Include bconfig.h; not config.h or tm.h.
3222         * print-rtl.c: Don't include tm_p.h.
3223
3224         * rtl.h: Move forward-decl of struct function down where it's
3225         needed.  Include genrtl.h #ifndef GENERATOR_FILE, not
3226         #ifndef NO_GENRTL_H.  Remove unnecessary #ifdef BUFSIZ statements.
3227
3228 2004-08-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3229             Jeff Law  <law@redhat.com>
3230
3231         * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
3232         * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
3233         * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
3234         manipulate the duplicated ssa names.
3235         * tree-ssanames.c (ssa_names_to_rewrite): New variable.
3236         (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
3237         unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
3238         New functions.
3239         (release_ssa_name): Do not release ssa names that may have multiple
3240         definitions.
3241         * tree.h (release_ssa_name_force, mark_for_rewrite,
3242         unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
3243         marked_ssa_names): Declare.
3244         * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
3245         (duplicate_blocks): Remove call to mark_defs_for_rewrite.
3246         Update call to rewrite_ssa_into_ssa.
3247
3248 2004-08-04  Mark Mitchell  <mark@codesourcery.com>
3249
3250         * defaults.h (TARGET_DECLSPEC): New macro.
3251         * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
3252         * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
3253         * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
3254         * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
3255         __declspec support.
3256         (TARGET_DECLSPEC): Define.
3257         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
3258         __declspec support.
3259         * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
3260         __declspec support.
3261         (TARGET_DECLSPEC): Define.
3262         * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
3263         __declspec support.
3264         * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
3265         support.
3266         * doc/tm.texi (TARGET_DECLSPEC): Document.
3267
3268         * doc/extend.texi: Fix typo in comment.
3269
3270 2004-08-04  Paul Brook  <paul@codesourcery.com>
3271
3272         * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3273         (TARGET_CXX): Use it.
3274         * target.h (struct gcc_target): Add cdtor_returns_this.
3275         * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
3276         (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3277         * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
3278
3279 2004-08-03  Nathan Sidwell  <nathan@codesourcery.com>
3280
3281         * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
3282         low/high pair. Do range checking directly.
3283         (interpret_integer): Adjust.
3284
3285 2004-08-04  Nick Clifton  <nickc@redhat.com>
3286
3287         * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
3288         GCC ABI.
3289         * doc/invoke.texi: Document this new switch and also the -mrenesas
3290         switch.
3291
3292 2004-08-04  Nathan Sidwell  <nathan@codesourcery.com>
3293
3294         * cfglayout.c (insn_locators_initialize): Update the current
3295         location before initializing a location.
3296
3297 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3298
3299         * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
3300         (dbxout_function_end): Return after emitting the "Lscope" symbol
3301         under the same conditions that this function formerly wasn't called.
3302         Add explanatory comments.
3303
3304         PR 14860
3305         * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
3306         on the new decl.
3307
3308         PR 13956
3309         * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
3310         functions, broken out of dbxout_block.
3311         (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
3312         stabs too, if it contains symbols.  Use the begin_label and
3313         the Lscope label (emitted by dbxout_function_end) for the
3314         range of this block.
3315
3316 2004-08-03  Nathanael Nerode  <neroden@gcc.gnu.org>
3317
3318         * doc/install.texi: Update autoconf version requirements.
3319
3320 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3321
3322         * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
3323         * recog.c (general_operand, immediate_operand, nonmemory_operand)
3324         (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
3325         * regclass.c (record_reg_classes): Likewise.
3326         * reload.c (find_reloads): Likewise.
3327         * reload1.c (reload): Likewise.
3328
3329 2004-08-03  Zack Weinberg  <zack@codesourcery.com>
3330
3331         * gensupport.c (init_md_reader_args_cb): Renamed from
3332         init_md_reader_args.  Add third option, callback function for
3333         parsing program-specific options.  Add diagnosis of incorrect
3334         number of input files.
3335         (init_md_reader): Fold into init_md_reader_args_cb.
3336         (init_md_reader_args): Now a thin wrapper around
3337         init_md_reader_args_cb.
3338         * gensupport.h: Update prototypes.
3339
3340         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3341         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3342         * genrecog.c: No need to diagnose lack of an input file;
3343         init_md_reader_args will handle it.
3344         * genconditions.c: Likewise, and use init_md_reader_args.
3345         * genconstants.c: Likewise, and no need to call read_md_rtx.
3346
3347 2004-08-03  Joseph S. Myers  <jsm@polyomino.org.uk>
3348
3349         * c-decl.c (implicitly_declare): Diagnose incompatible implicit
3350         declarations.
3351
3352 2004-08-03  Mike Stump  <mrs@apple.com>
3353
3354         * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
3355         for frameworks.
3356         * doc/invoke.texi (Darwin Options): Update to reflect above.
3357
3358 2004-08-03  Roger Sayle  <roger@eyesopen.com>
3359
3360         PR middle-end/16790
3361         * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
3362         truncations, not just global truncations.
3363
3364 2004-08-03  Andrew Pinski  <apinski@apple.com>
3365
3366         PR bootstrap/16865
3367         * loop-iv.c (simplify_using_assignment): Initialize lhs.
3368
3369 2004-08-03  Paul Brook  <paul@codesourcery.com>
3370
3371         * gcc/doc/install.texi: Document MPFR requirement.
3372
3373 2004-08-03  Maciej W. Rozycki  <macro@linux-mips.org>
3374
3375         * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3376         and mmap() explicitly instead of relying on preset autoconf cache
3377         variables.
3378         * configure: Regenerate.
3379
3380 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
3381
3382         PR target/16570
3383         * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
3384         to tmake_file.
3385         (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
3386         (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
3387         to tmake_file.
3388
3389         * config/i386/t-gmm_malloc: New file.
3390         * config/i386/t-pmm_malloc: Likewise.
3391
3392         * config/i386/xmmintrin.h: Include <mm_malloc.h>.
3393
3394 2004-08-03  H.J. Lu  <hongjiu.lu@intel.com>
3395             Tanguy Fautrà <tfautre@pandora.be>
3396
3397         * config/i386/pmm_malloc.h: New file.
3398
3399 2004-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
3400
3401         * config/i386/gmm_malloc.h: New file.
3402
3403 2004-08-03  Dale Johannesen  <dalej@apple.com>
3404
3405         * config/rs6000/rs6000.c (machopic_output_stub):  Align Darwin stubs.
3406         * c-common.c: Include opts.h.
3407         (c_common_get_alias_set): Fix check for a single input file.
3408         * toplev.c: Remove current_file_decl.
3409         * tree.h: Ditto.
3410
3411 2004-08-03  Mark Mitchell  <mark@codesourcery.com>
3412
3413         * config.gcc (arm*-*-symbianelf*): New target.
3414         * config/arm/symbian.h: New file.
3415
3416         * gthr-gnat.c: Add visibility #pragmas.
3417         * gthr-gnat.h : Likewise.
3418         * gthr.h: Likewise.
3419         * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
3420         (__ffsDI2): Likewise.
3421         (__clzSI2): Likewise.
3422         (__ctzSI2): Likewise.
3423         (__ctzDI2): Likewise.
3424         (__popcountSI2): Likewise.
3425         (__popcountDI2): Likewise.
3426         (__paritySI2): Likewise.
3427         (__parityDI2): Likewise.
3428         * libgcc2.h: Add visibility #pragmas.
3429         (__clzDI2): Add prototype.
3430         (__clzSI2): Likewise.
3431         (__ctzSI2): Likewise.
3432         (__ffsDI2): Likewise.
3433         (__ffsSI2): Likewise.
3434         (__ctzDI2): Likewise.
3435         (__popcountSI2): Likewise.
3436         (__popcountDI2): Likewise.
3437         (__paritySI2): Likewise.
3438         (__parityDI2): Likewise.
3439         * unwind-dw2-fde.h: Add visibility #pragmas.
3440         * unwind.h: Likewise.
3441
3442 2004-08-03  David Edelsohn  <edelsohn@gnu.org>
3443             Dale Johannesen  <dalej@apple.com>
3444             Roger Sayle  <roger@eyesopen.com>
3445
3446         * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
3447         constants more accurately.  Adjust costs for FMA instructions.
3448         Add cases for most logical and float operations.  Recurse into
3449         most operands.
3450
3451 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
3452
3453         * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
3454
3455 2004-08-03  Pat Haugen  <pthaugen@us.ibm.com>
3456
3457         * ra-build.c (conflicts_between_webs): For webs that cross a call add
3458         conflicts to regs_invalidated_by_call.
3459
3460 2004-08-03  Paul Brook  <paul@codesourcery.com>
3461
3462         * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3463
3464 2004-08-03  Jan Hubicka  <jh@suse.cz>
3465
3466         * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3467         ARRAY_REF argument.
3468
3469 2004-08-03  Richard Earnshaw  <rearnsha@arm.com>
3470
3471         * arm-cores.def: Sort by architecture.  Add arm946es, arm966es,
3472         arm968es, arm10e, arm1020e, arm1022e.
3473         * invoke.texi: Update list of ARM cores.
3474         * arm-tune.md: Regenerate.
3475
3476 2004-08-03  Richard Earnshaw <rearnsha@arm.com>
3477
3478         * arm/gentune.sh: New file.
3479         * arm/t-arm: New file.
3480         * arm/arm-tune.md: New file (autogenerated).
3481         * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
3482         * arm.md (attribute tune): Delete.  Include arm-tune.md.
3483
3484 2004-08-03  Paolo Bonzini <bonzini@gnu.org>
3485
3486         * gcc.c (add_prefix, add_sysrooted_prefix): Remove
3487         penultimate parameter.  All callers adjusted.
3488         (struct prefix_list): Remove used_flag_ptr.
3489         (find_a_file): Do not set *pl->used_flag_ptr.
3490         (warn_B, warn_std_ptr): Remove.
3491
3492 2004-08-03  Yossi Markovich <yossim@il.ibm.com>
3493             Mostafa Hagog <mustafa@il.ibm.com>
3494
3495         * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3496
3497 2004-08-02  Geoffrey Keating  <geoffk@apple.com>
3498
3499         * dwarf2out.c (output_call_frame_info): Don't change data format
3500         due to TARGET_USES_WEAK_UNWIND_INFO.  Always refer to the local
3501         label.  Use 'true' not '1'.
3502         * doc/install.texi (powerpc-*-darwin*): Mention cctools version
3503         required.
3504
3505 2004-08-02  Gabriel Dos Reis  <gdr@cs.tamu.edu>
3506
3507         * gdbinit.in: Reflect previous changes to rtunion_def.
3508
3509 2004-08-02  Roger Sayle  <roger@eyesopen.com>
3510
3511         * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3512         -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3513
3514 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3515
3516         * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3517         vec_p_reserve.
3518         * langhooks.h (lang_hooks::builtin_function): Rename parameter
3519         from "class" to "bt_class".
3520
3521 2004-08-02  Paul Brook  <paul@codesourcery.com>
3522
3523         PR rtl-optimization/15068
3524         * flow.c (init_propagate_block_info): Check condition is reversible.
3525
3526 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3527
3528         * gengtype.h (options::info): Change type to const char *.
3529         (enum gc_used_enum): Move out of struct type scope.
3530         * gengtype.c (create_option): Convert initializer for option::info to
3531         appropiate type.
3532         (adjust_field_type, walk_type, write_func_for_structure,
3533         write_root, write_roots): Remove pointless cast.
3534
3535 2004-08-02  J"orn Rennecke <joern.rennecke@superh.com>
3536
3537         * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3538
3539 2004-08-02  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3540
3541         * rtl.h (union rtunion_def): Have all members  start with the
3542         prefix "rt_".
3543         (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
3544         X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
3545         X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
3546         XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
3547         access.
3548         * gengtype.c (adjust_field_rtx_def): Likewise.
3549         * rtlanal.c (loc_mentioned_in_p): Likewise.
3550
3551 2004-08-02  Richard Sandiford  <rsandifo@redhat.com>
3552
3553         * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
3554         Replace uses of mips/elf64.h with mips/elf.h
3555         * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
3556         (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
3557         (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
3558         (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
3559         (HANDLE_SYSV_PRAGMA): Delete.
3560         (ASM_OUTPUT_DEF): Fix formatting.
3561         * config/mips/elf64.h: Delete.
3562
3563 2004-08-01  Zack Weinberg  <zack@codesourcery.com>
3564
3565         * config/ia64/ia64.c (got_symbolic_operand): Do require a
3566         symbol+offset operand to have its offset be zero mod 0x3fff
3567         when GOT entries are in use.  Clarify logic in SYMBOL_REF
3568         case.  Clarify comments.
3569         (ia64_expand_load_address): Split a symbol+offset load when
3570         the offset is nonzero mod 0x3fff, not 0x1fff.
3571
3572 2004-08-01  Geoffrey Keating  <geoffk@apple.com>
3573
3574         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
3575         if trying to *store* to a non-offsettable address.
3576         * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
3577         a nonoffsettable address.
3578         (movdi_internal32): Don't move GPRs to a nonoffsettable address.
3579         Clean up.
3580         (movti_string): Don't move GPRs to a nonoffsettable address.
3581         (movti_ppc64): Don't move GPRs to a nonoffsettable address.  Clean up.
3582
3583 2004-08-02  Ben Elliston  <bje@au.ibm.com>
3584
3585         PR target/16155
3586         * config/rs6000/altivec.h: Replace typeof with __typeof__.
3587
3588 2004-08-01  Richard Henderson  <rth@redhat.com>
3589
3590         * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3591         variable sized types.
3592
3593 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3594
3595         * doc/invoke.texi: In the MIPS options section, remove the passage
3596         saying that -mexplicit-relocs is usually disabled for -mabicalls
3597         -fno-unit-at-a-time.
3598         * config/mips/mips.c (override_options): Remove the code that enforced
3599         this rule.
3600
3601 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3602
3603         * config/mips/mips.md (cprestore): Provide two alternatives, one for
3604         an in-range offset and one for an out-of-range offset.  Wrap the latter
3605         in .set macro/.set nomacro if it's inside a .set nomacro block.
3606
3607 2004-08-01  Richard Sandiford  <rsandifo@redhat.com>
3608
3609         * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
3610         (mips_restore_gp): Declare.
3611         * config/mips/mips.c (mips_add_offset): Add a scratch register
3612         argument.  Reimplement in rtl only, reusing MIPS16 logic from
3613         mips_output_mi_thunk.
3614         (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
3615         to mips_add_offset.
3616         (mips_gp_save_slot): Delete.
3617         (mips_restore_gp): New function.
3618         (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
3619         * config/mips/mips.md (exception_receiver): Turn into a
3620         define_insn_and_split.  Use mips_restore_gp to do the split.
3621         (call_internal, call_value_internal, call_value_multiple_internal): Use
3622         mips_restore_gp to restore $gp.
3623
3624 2004-07-31  Andrew Pinski  <apinski@apple.com>
3625
3626         PR other/16842
3627         * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3628
3629 2004-07-31  Joseph S. Myers  <jsm@polyomino.org.uk>
3630
3631         * c-decl.c (diagnose_mismatched_decls): Give error for external
3632         redeclaration of identifier declared with no linkage, not just
3633         warning with -Wtraditional.  Do not check DECL_CONTEXT to give
3634         error for redeclaration with no linkage.
3635
3636 2004-07-30  Geoffrey Keating  <geoffk@apple.com>
3637             Fariborz Jahanian <fjahanian@apple.com>
3638
3639         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
3640         non-offsettable addresses even for DImode.
3641         (rs6000_split_multireg_move): Cope with non-offsettable addresses
3642         being moved into multiple GPRs.
3643
3644         * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
3645         to 64.
3646         (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
3647         * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
3648         to 128.
3649         * config/rs6000/darwin-ldouble.c (isless): New macro.
3650         (inf): New macro.
3651         (nonfinite): New macro.
3652         (FPKINF): Delete.
3653         (_xlqadd): Completely rewrite.
3654         (_xlqmul): Correct overflow handling.
3655         (_xlqdiv): Correct overflow handling.
3656         * config/rs6000/darwin-ldouble-format: New file.
3657
3658 2004-07-30  Roger Sayle  <roger@eyesopen.com>
3659             Richard Henderson  <rth@redhat.com>
3660
3661         * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
3662         9 into the equivalent lea instruction.
3663
3664 2004-07-30  Richard Henderson  <rth@redhat.com>
3665
3666         * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
3667         with DECL_INITIAL if fb_lvalue.
3668         * tree-gimple.c (is_gimple_id): Add CONST_DECL.
3669         * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
3670         with <Cxxx>.
3671         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
3672
3673 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
3674
3675         * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
3676         pointer escapes through a function call, assume that the
3677         callee will dereference it.
3678         (add_pointed_to_var): Assume that VALUE is always an
3679         ADDR_EXPR.
3680         (collect_points_to_info_r): Only call add_pointed_to_var if
3681         the value is an ADDR_EXPR.
3682
3683 2004-07-30  Diego Novillo  <dnovillo@redhat.com>
3684
3685         * tree-ssa-alias.c (create_alias_map_for): Do not get the
3686         alias set of the inner type of ARRAY_TYPEs.
3687
3688 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3689
3690         * tree-ssa-ccp.c (visit_assignment): Move code to prevent
3691         setting a non-register to UNDEFINED right before the call to
3692         set_lattice_value.
3693
3694 2004-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3695
3696         * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
3697
3698 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3699
3700         * tree-ssa.c (verify_flow_sensitive_alias_info): When
3701         comparing points-to sets of different pointers, make sure the
3702         second pointer is actually referenced in the code.
3703
3704 2004-07-29  Zack Weinberg  <zack@codesourcery.com>
3705
3706         * config/ia64/ia64.c (setjmp_operand): Delete, unused.
3707         (got_symbolic_operand): Remove unreachable code.
3708         * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
3709         setjmp_operand; add entry for tls_symbolic_operand.
3710         * config/ia64/ia64-protos.h: Remove all prototypes of
3711         predicate functions.
3712
3713 2004-07-29  Mark Mitchell  <mark@codesourcery.com>
3714
3715         * c-common.h (lang_post_pch_load): New variable.
3716         * c-pch.c (lang_post_pch_load): Define it.
3717         (c_common_read_pch): Use it.
3718         * cgraphunit.c (record_call_1): Give the front end a chance to
3719         record additional needed entities when a variable is marked as
3720         needed.
3721         * tlink.c (recompile_files): Robustify.
3722         (scan_linker_output): If a symbol is assigned to a file,
3723         but after recompilation is not present there, issue an error
3724         message.
3725
3726 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3727
3728         * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
3729         Take orig_loop argument and pass it to set_level.
3730         (schedule_sm): Pass the correct orig_loop to force_move_till.
3731
3732 2004-07-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3733
3734         * cfgloop.c (update_latch_info): Update dominator of the new block.
3735         (canonicalize_loop_headers, flow_loops_find): Do not free dominance
3736         info.
3737         * dominance.c (verify_dominators): Check that the dominance tree is
3738         connected.
3739         (recount_dominator): Ignore unreachable blocks.
3740         (iterate_fix_dominators): Cleanup old dominance information before
3741         recomputing it.
3742
3743 2004-07-29  Diego Novillo  <dnovillo@redhat.com>
3744
3745         * tree-ssa-operands.c (get_expr_operands): Revert changes
3746         to ADDR_EXPR processing introduced by:
3747             2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3748             * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
3749
3750 2004-07-29  Joseph S. Myers  <jsm@polyomino.org.uk>
3751
3752         * doc/implement-c.texi: Add C90 subclause references.  Point to
3753         preprocessor documentation instead of duplicating it.  Add points
3754         only present in C90.  Fill in documentation for all points.
3755
3756 2004-07-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3757
3758         * pa.c (output_movb): Correct typo.
3759
3760 2004-07-29  Pat Haugen  <pthaugen@us.ibm.com>
3761
3762         * ra.h (single_reg_in_regclass): Declare.
3763         * ra.c (single_reg_in_regclass): Define.
3764         (first_hard_reg): New.
3765         (init_ra): Initialize single_reg_in_regclass.
3766         * ra-colorize.c (ok_class): New.
3767         (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
3768
3769 2004-07-29  Nathan Sidwell  <nathan@codesourcery.com>
3770
3771         * gcov-io.h: Allow zero tag as EOF indicator.
3772         (gcov_is_eof): Remove.
3773         (gcov_truncate): Remove.
3774         * gcov-io.c (gcov_seek): Always SEEK_SET.
3775         * libgcov.c (gcov_exit): Don't use gcov_truncate.  Write explicit
3776         EOF tag.
3777         * coverage.c (read_counts_file): Don't use gcov_is_eof.
3778         * gcov-dump.c (dump_file): Likewise.
3779         * gcov.c (read_graph_file, read_count_file): Likewise.
3780
3781         * c-decl.c (complete_array_type): Don't gratuitously copy
3782         maxindex.  Check it always has a type.
3783
3784 2004-07-29  Steven Bosscher  <stevenb@suse.de>
3785
3786         * rtl.c (currently_expanding_to_rtl): New.
3787         * rtl.h (currently_expanding_to_rtl): Export it.
3788         * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
3789
3790         * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
3791         inliner hack.
3792         * config/sh/sh.c: Replace rtx_equal_function_value_matters
3793         with currently_expanding_to_rtl.
3794         * config/sh/sh.md: Likewise.
3795         * config/ia64/ia64.c (got_symbolic_operand): Likewise.
3796
3797 2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
3798
3799         Introduce sh2a support.
3800         2004-07-29  Alexandre Oliva  <aoliva@redhat.com>
3801         * config.gcc: Build multilibs for sh2a and sh2a-single by
3802         default.
3803         * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
3804         default.  Split their tests out of the corresponding SH4
3805         multilibs.
3806         * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
3807         multilibs for SH2a.
3808         2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
3809         * config.gcc: Handle sh2a multilibs and cpu selection.
3810         * config/sh/sh.h: Likewise.  Handle sh2a command line flags.
3811         * config/sh/t-mlib-sh2a: New.
3812         * config/sh/t-mlib-sh2a-nofpu: New.
3813         * config/sh/t-mlib-sh2a-single: New.
3814         * config/sh/t-mlib-sh2a-single-only: New.
3815         2004-07-09  Nick Clifton  <nickc@redhat.com>
3816         Issue 43400
3817         * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
3818         -ml and -m2a are used together.
3819         2004-03-23  DJ Delorie  <dj@redhat.com>
3820         * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
3821         when we have a double-sized FPU.
3822         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
3823         * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
3824         is set.
3825         * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
3826         -msh2a-single and -msh2a-single-only
3827         2004-02-24  Corinna Vinschen <vinschen@redhat.com>
3828         * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
3829         is set.
3830         2004-02-20  DJ Delorie  <dj@delorie.com>
3831         * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
3832         2004-02-20  Fred Fish <fnf@redhat.com>,
3833         Corinna Vinschen <vinschen@redhat.com>
3834         * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
3835         (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
3836         2004-02-18  DJ Delorie  <dj@redhat.com>
3837         * config/sh/sh.c (broken_move): Add support for movi20.
3838         * config/sh/sh.h: Likewise.
3839         (SHIFT_COUNT_TRUNCATED): Set for sh2a.
3840         * config/sh/sh.md (udivsi3_sh2a): New.
3841         (udivsi3): Call it.
3842         (divsi3_sh2a): New.
3843         (divsi3): Call it.
3844         (mul_r): New.
3845         (ashlsi3_sh2a): New.
3846         (ashrsi3_sh2a): New.
3847         (lshrsi3_sh2a): New.
3848         (movsi_i): Disable for sh2a.
3849         (movsi_ie): Add movi20.
3850         (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
3851         sh2a, for -m2a-nofpu mode.
3852         2004-02-13  DJ Delorie  <dj@redhat.com>
3853         * config/sh/lib1funcs.asm: Handle double vs single better.
3854         * config/sh/sh.h: Likewise.
3855         2004-02-09  DJ Delorie  <dj@redhat.com>
3856         * config/sh/crt1.asm: Add support for sh2a.
3857         * config/sh/elf.h: Likewise.
3858         * config/sh/lib1funcs.asm: Likewise.
3859         * config/sh/sh.c: Likewise.
3860         * config/sh/sh.md: Likewise.
3861         * config/sh/sh.h: Likewise.
3862         * config/sh/t-sh: Likewise.
3863
3864 2004-07-28  Alexandre Oliva  <aoliva@redhat.com>
3865
3866         * config/frv/frv.md (movqi_internal, movhi_internal,
3867         movsi_internal): Add backup alternatives for memory inputs.
3868
3869 2004-07-28  Matt Austern  <austern@apple.com>
3870
3871         * config/darwin.c (darwin_one_byte_bool): New global variable.
3872         * config/darwin.h (darwin_one_byte_bool): Declare.
3873         (SUBTARGET_OPTIONS): Define macro.  (for -mone-byte-bool flag.)
3874         * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
3875         value of darwin_one_byte_bool.
3876         * doc/invoke.texi: Document -mone-byte-bool flag.
3877
3878 2004-07-28  Eric Christopher  <echristo@redhat.com>
3879
3880         * c-common.c (c_common_unsafe_for_reeval): Delete.
3881         * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
3882         * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
3883         * calls.c (fix_unsafe_tree): Delete.
3884         (expand_call): Delete code which used above.
3885         * dojump.c (do_jump): Delete UNSAVE_EXPR case.
3886         * expr.c (expand_expr_real_1): Ditto.
3887         * fold-const.c (non_lvalue): Ditto.
3888         * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3889         (lhd_unsafe_for_reeval): Ditto.
3890         * langhooks.c (lhd_unsafe_for_reeval): Ditto.
3891         * langhooks.h (unsafe_for_reeval): Ditto.
3892         (unsave_expr_now): Adjust comment.
3893         * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
3894         (estimate_num_insns_1): Ditto.
3895         * tree-pretty-print.c (dump_generic_node): Ditto.
3896         * tree.c (expr_align): Ditto.
3897         (unsave_expr): Delete.
3898         (unsafe_for_reeval): Ditto.
3899         * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
3900         * tree.def (UNSAVE_EXPR): Delete.
3901         * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3902
3903 2004-07-28  Zack Weinberg  <zack@codesourcery.com>
3904
3905         * tree.h (enum tls_model): Move ...
3906         * coretypes.h: ... here.
3907
3908 2004-07-28  Richard Sandiford <rsandifo@redhat.com>
3909
3910         * config/frv/frv.h (EPILOGUE_USES): New.  Use LR.
3911
3912 2004-07-28  Richard Sandiford  <rsandifo@redhat.com>
3913
3914         * cse.c (validate_canon_reg): New function, split out from...
3915         (canon_reg): ...here.  Use validate_canon_reg for both 'e' and 'E'.
3916
3917 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
3918
3919         * tree-ssa-alias.c (maybe_create_global_var): Don't just
3920         return if .GLOBAL_VAR has been created.
3921
3922 2004-07-28  Diego Novillo  <dnovillo@redhat.com>
3923
3924         * tree-ssa.c (verify_flow_insensitive_alias_info): Process
3925         every variable that may have aliases, not just tags.
3926
3927 2004-07-28  Aldy Hernandez  <aldyh@redhat.com>
3928
3929         * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
3930         move_from_CR_eq_bit.
3931         Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
3932
3933
3934         * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
3935         e500_flip_eq_bit.
3936
3937         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
3938         output_e500_flip_eq_bit.
3939