OSDN Git Service

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