OSDN Git Service

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